1717
1818import io .github .microcks .client .ApiClient ;
1919import io .github .microcks .client .ApiException ;
20+ import io .github .microcks .client .api .ConfigApi ;
2021import io .github .microcks .client .api .JobApi ;
2122import io .github .microcks .client .api .MockApi ;
2223import io .github .microcks .client .model .ImportJob ;
2324import io .github .microcks .client .model .Metadata ;
25+ import io .github .microcks .client .model .Secret ;
2426import io .github .microcks .client .model .SecretRef ;
2527import io .github .microcks .operator .AbstractMicrocksDependantReconciler ;
2628import io .github .microcks .operator .KeycloakHelper ;
3840import com .fasterxml .jackson .core .JsonProcessingException ;
3941import com .fasterxml .jackson .databind .JsonNode ;
4042import com .fasterxml .jackson .databind .ObjectMapper ;
41- import io .fabric8 .kubernetes .api .model .ObjectMetaBuilder ;
4243import io .fabric8 .kubernetes .client .KubernetesClient ;
4344import io .javaoperatorsdk .operator .api .config .informer .Informer ;
4445import io .javaoperatorsdk .operator .api .reconciler .Cleaner ;
5152import org .jboss .logging .Logger ;
5253
5354import java .time .Duration ;
55+ import java .util .List ;
5456
5557import static io .javaoperatorsdk .operator .api .reconciler .Constants .WATCH_CURRENT_NAMESPACE ;
5658
@@ -276,7 +278,7 @@ protected String ensureImporterIsPresent(ApiClient apiClient, ImporterSpec impor
276278 JobApi jobApi = new JobApi (apiClient );
277279 ImportJob job = jobApi .getImportJob (previousId );
278280 if (job != null ) {
279- updateWithImporterSpec (job , importerSpec );
281+ updateWithImporterSpec (apiClient , job , importerSpec );
280282 jobApi .updateImportJob (previousId , job );
281283 return previousId ;
282284 }
@@ -287,22 +289,32 @@ protected String ensureImporterIsPresent(ApiClient apiClient, ImporterSpec impor
287289 protected String createImporterJob (ApiClient apiClient , ImporterSpec importerSpec ) throws ApiException {
288290 // Move ImporterSpec into Microcks API model.
289291 ImportJob job = new ImportJob ();
290- updateWithImporterSpec (job , importerSpec );
292+ updateWithImporterSpec (apiClient , job , importerSpec );
291293 // Use the apiClient to create the job.
292294 JobApi jobApi = new JobApi (apiClient );
293295 job = jobApi .createImportJob (job );
294296 return job .getId ();
295297 }
296298
297- protected void updateWithImporterSpec (ImportJob job , ImporterSpec importerSpec ) {
299+ protected void updateWithImporterSpec (ApiClient apiClient , ImportJob job , ImporterSpec importerSpec ) throws ApiException {
298300 job .setName (importerSpec .getName ());
299301 job .setRepositoryUrl (importerSpec .getRepository ().getUrl ());
300302 job .setRepositoryDisableSSLValidation (importerSpec .getRepository ().getDisableSSLValidation ());
301303 job .setMainArtifact (importerSpec .getMainArtifact ());
302304 job .setActive (importerSpec .getActive ());
303305 if (importerSpec .getRepository ().getSecretRef () != null ) {
306+ String secretName = importerSpec .getRepository ().getSecretRef ();
307+ ConfigApi configApi = new ConfigApi (apiClient );
308+ List <Secret > secrets = configApi .searchSecrets (secretName );
309+ String secretId = secrets .stream ()
310+ .filter (secret -> secretName .equals (secret .getName ()))
311+ .findFirst ()
312+ .map (Secret ::getId )
313+ .orElseThrow (() -> new ApiException ("Secret '" + secretName + "' not found in Microcks" ));
314+
304315 SecretRef secretRef = new SecretRef ();
305- secretRef .setName (importerSpec .getRepository ().getSecretRef ());
316+ secretRef .setName (secretName );
317+ secretRef .setSecretId (secretId );
306318 job .setSecretRef (secretRef );
307319 }
308320 if (importerSpec .getLabels () != null ) {
0 commit comments