diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java index 613b763491e1b9c49cc55be091fea2a61a5b4c6b..6ef43e5506d87d6b709d02d98b3b047f196c25b3 100644 --- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java +++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/ElasticsearchReconciler.java @@ -28,17 +28,17 @@ public class ElasticsearchReconciler implements Reconciler<OzgCloudElasticsearch public UpdateControl<OzgCloudElasticsearchCustomResource> reconcile(OzgCloudElasticsearchCustomResource resource, Context<OzgCloudElasticsearchCustomResource> context) { try { - log.info("Reconcile user " + resource.getCRDName() + "..."); + log.log(Level.INFO, "Reconcile user {0} ", resource.getCRDName()); var namespace = resource.getMetadata().getNamespace(); var secret = service.getOrCreateCredentialSecret(resource, context); service.createIndexIfMissing(namespace); service.createSecurityRoleIfMissing(namespace); service.createSecurityUserIfMissing(namespace, getPassword(secret)); service.createCertificateIfMissing(namespace); - log.info("Reconcile user successful."); + log.log(Level.INFO, "Reconcile user {0} successful.", resource.getCRDName()); return OzgCloudElasticsearchUpdateControlBuilder.fromResource(resource).withStatus(CustomResourceStatus.OK).build(); } catch (Exception exception) { - log.info("Reconcile user failed: " + exception); + log.log(Level.WARNING, "Reconcile user " + resource.getCRDName() + " failed.", exception); return buildExceptionUpdateControl(resource, exception); } } diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java index 9962e0167fbd3a894d761762cb70882401a08728..6bd2873dbf0dd294d5b2c8723062312f708131c9 100644 --- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java +++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchService.java @@ -20,22 +20,22 @@ import lombok.extern.java.Log; @RequiredArgsConstructor @Component public class OzgCloudElasticsearchService { - + private final OzgCloudElasticsearchSecretHelper secretHelper; private final OzgCloudElasticsearchProperties properties; - + private final ElasticsearchRemoteService remoteService; - + private final KubernetesRemoteService kubernetesService; public Secret getOrCreateCredentialSecret(OzgCloudElasticsearchCustomResource resource, Context<OzgCloudElasticsearchCustomResource> context) { try { - log.info("Get or create secret..."); + log.log(Level.INFO, "{0}: Get or create secret.", resource.getCRDName()); var namespace = resource.getMetadata().getNamespace(); var secretResource = getCredentialsSecretResource(namespace); - + if (Objects.isNull(secretResource.get())) { - log.info("Secret not exists, create one..."); + log.log(Level.INFO, "{0}: Secret not exists, create one ...", resource.getCRDName()); createCredentialSecret(secretResource, namespace); log.info("Secret creation successful."); } @@ -46,7 +46,7 @@ public class OzgCloudElasticsearchService { throw e; } } - + private Resource<Secret> getCredentialsSecretResource(String namespace) { return kubernetesService.getSecretResource(namespace, properties.getSecretCredentialsName()); } @@ -54,93 +54,94 @@ public class OzgCloudElasticsearchService { private void createCredentialSecret(Resource<Secret> resource, String namespace) { createAdapter(resource).create(secretHelper.buildCredentialSecret(namespace, properties.getSecretCredentialsName())); } - + public void createIndexIfMissing(String name) throws Exception { log.info("Check index..."); - if(!remoteService.existsIndex(name)) { + if (!remoteService.existsIndex(name)) { remoteService.createIndex(name); } log.info("Check index successful."); } - + public void createSecurityRoleIfMissing(String roleName) throws Exception { log.info("Check security role..."); - if(!remoteService.existsSecurityRole(roleName)) { + if (!remoteService.existsSecurityRole(roleName)) { remoteService.createSecurityRole(buildPutRoleRequestData(roleName)); } log.info("Check security role successful."); } - - PutRoleRequestData buildPutRoleRequestData(String roleName){ + + PutRoleRequestData buildPutRoleRequestData(String roleName) { return PutRoleRequestData.builder().name(roleName).indivesPrivilegesData(buildIndicesPrivilegesData(roleName)).build(); } - + private IndicesPrivilegesData buildIndicesPrivilegesData(String roleName) { return IndicesPrivilegesData.builder().names(roleName).privileges(IndicesPrivilege.ALL.getValue()).build(); } - + public void createSecurityUserIfMissing(String namespace, String password) throws Exception { log.info("Check security user..."); - if(!remoteService.existsSecurityUser(namespace)) { + if (!remoteService.existsSecurityUser(namespace)) { remoteService.createSecurityUser(buildPutUserRequestData(namespace, password)); } log.info("Check security user successful."); } - - PutUserRequestData buildPutUserRequestData(String namespace, String password){ + + PutUserRequestData buildPutUserRequestData(String namespace, String password) { return PutUserRequestData.builder().username(namespace).roles(namespace).password(password).build(); } - + public void deleteSecurityUserIfExists(String userName) throws Exception { log.info("Delete security user..."); - if(remoteService.existsSecurityUser(userName)) { + if (remoteService.existsSecurityUser(userName)) { remoteService.deleteSecurityUser(userName); } log.info("Delete security user successful."); } - - public void deleteSecurityRoleIfExists(String roleName) throws Exception { + + public void deleteSecurityRoleIfExists(String roleName) throws Exception { log.info("Delete security role..."); - if(remoteService.existsSecurityRole(roleName)) { + if (remoteService.existsSecurityRole(roleName)) { remoteService.deleteSecurityRole(roleName); } log.info("Delete security role successful."); } - public void deleteIndexIfExists(String indexName) throws Exception { + public void deleteIndexIfExists(String indexName) throws Exception { log.info("Delete index role..."); - if(remoteService.existsIndex(indexName)) { + if (remoteService.existsIndex(indexName)) { remoteService.deleteIndex(indexName); } log.info("Delete index role successful."); } - + public void createCertificateIfMissing(String namespace) { try { log.info("Create certificate secret if missing..."); var secretResource = kubernetesService.getSecretResource(namespace, properties.getCertificateSecretName()); - - if(Objects.isNull(secretResource.get())) { + + if (Objects.isNull(secretResource.get())) { log.info("create..."); createCredentialSecret(namespace, secretResource); log.info("create successful."); } - } catch(Exception e) { + } catch (Exception e) { log.log(Level.SEVERE, "Certificate secret creation failed: " + e); throw e; } } - + void createCredentialSecret(String namespace, Resource<Secret> secretResource) { - var serverSecretResource = kubernetesService.getSecretResource(properties.getServer().getCertificateNamespace(), properties.getServer().getCertificateSecretName()); - + var serverSecretResource = kubernetesService.getSecretResource(properties.getServer().getCertificateNamespace(), + properties.getServer().getCertificateSecretName()); + createAdapter(secretResource).create(secretHelper.buildCertificateSecret(namespace, getSecretData(serverSecretResource.get()))); } - + private String getSecretData(Secret secret) { return MapUtils.getString(secret.getData(), properties.getServer().getCertificateSecretDataKey()); } - + ResourceAdapter<Secret> createAdapter(Resource<Secret> resource) { return new ResourceAdapter<>(resource); }