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 20f622a9d1b84b0c740027b9391a479c4cd964f2..d7d5a07cdd46c04c3d5ac767782bcfce4c75ccfc 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 @@ -3,11 +3,8 @@ package de.ozgcloud.operator; import java.util.Objects; import org.apache.commons.collections.MapUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import co.elastic.clients.elasticsearch._types.ElasticsearchException; -import de.ozgcloud.operator.OzgCloudElasticsearchProperties.OzgCloudElasticsearchServerProperties; import de.ozgcloud.operator.PutRoleRequestData.IndicesPrivilegesData; import de.ozgcloud.operator.common.elasticsearch.ElasticsearchRemoteService; import de.ozgcloud.operator.common.kubernetes.KubernetesRemoteService; @@ -30,7 +27,6 @@ public class OzgCloudElasticsearchService { private final KubernetesRemoteService kubernetesService; - public Secret getOrCreateCredentialSecret(OzgCloudElasticsearchCustomResource resource, Context<OzgCloudElasticsearchCustomResource> context) { try { LOG.debug("{}: Get or create secret.", resource.getMetadata().getNamespace()); @@ -54,12 +50,11 @@ public class OzgCloudElasticsearchService { } private void createCredentialSecret(Resource<Secret> resource, String namespace) { - LOG.debug("getSecretCredentialsName to create: {}" , properties.getSecretCredentialsName()); createAdapter(resource).create(secretHelper.buildCredentialSecret(namespace, properties.getSecretCredentialsName())); } public void createIndexIfMissing(String name) throws Exception { - //copyElasticCertificate(name); + copyAndUpdateElasticCertificate(name); LOG.debug("{}: Check elasticsearch index...", name); if (!remoteService.existsIndex(name)) { remoteService.createIndex(name); @@ -67,7 +62,7 @@ public class OzgCloudElasticsearchService { } public void createSecurityRoleIfMissing(String roleName) throws Exception { - copyElasticCertificate(roleName); + copyAndUpdateElasticCertificate(roleName); remoteService.createOrUpdateSecurityRole(buildPutRoleRequestData(roleName)); } @@ -80,7 +75,7 @@ public class OzgCloudElasticsearchService { } public void createSecurityUserIfMissing(String namespace, String password) throws Exception { - //copyElasticCertificate(namespace); + copyAndUpdateElasticCertificate(namespace); remoteService.createOrUpdateSecurityUser(buildPutUserRequestData(namespace, password)); } @@ -89,24 +84,24 @@ public class OzgCloudElasticsearchService { } public void deleteSecurityUserIfExists(String userName) throws Exception { - //copyElasticCertificate(userName); + copyAndUpdateElasticCertificate(userName); remoteService.deleteSecurityUser(userName); } public void deleteSecurityRoleIfExists(String roleName) throws Exception { - //copyElasticCertificate(roleName); + copyAndUpdateElasticCertificate(roleName); remoteService.deleteSecurityRole(roleName); } public void deleteIndexIfExists(String indexName) throws Exception { - //copyElasticCertificate(indexName); + copyAndUpdateElasticCertificate(indexName); LOG.debug("{}: Check delete elasticsearch index ...", indexName); if (remoteService.existsIndex(indexName)) { remoteService.deleteIndex(indexName); } } - public void copyElasticCertificate(String namespace) { + public void copyAndUpdateElasticCertificate(String namespace) { try { var secretResource = kubernetesService.getSecretResource(namespace, properties.getCertificateSecretName()); LOG.info(" properties.getCertificateSecretName:", properties.getCertificateSecretName()); @@ -132,13 +127,13 @@ public class OzgCloudElasticsearchService { } } - void createOrReplaceCredentialSecret(String namespace, Resource<Secret> secretResource) { var serverSecretResource = kubernetesService.getSecretResource(properties.getServer().getCertificateNamespace(), properties.getServer().getCertificateSecretName()); createAdapter(secretResource).createOrReplace(secretHelper.buildCertificateSecret(namespace, getSecretData(serverSecretResource.get()))); } + void createCredentialSecret(String namespace, Resource<Secret> secretResource) { var serverSecretResource = kubernetesService.getSecretResource(properties.getServer().getCertificateNamespace(), properties.getServer().getCertificateSecretName()); diff --git a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java index b8f6eb3ac3e35de176861aa0f8f942c3ad0f3b16..0c5b0aba8a6d1b8e31e3eb68d807f8f201dda65d 100644 --- a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java +++ b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java @@ -46,8 +46,6 @@ class OzgCloudElasticsearchServiceTest { @Mock private KubernetesRemoteService kubernetesService; - - @DisplayName("Get or create secret") @Nested class TestGetOrCreateSecret { @@ -113,7 +111,7 @@ class OzgCloudElasticsearchServiceTest { } } } - /* + @DisplayName("Create index if missing") @Nested class TestCreateIndexIfMissing { @@ -123,6 +121,7 @@ class OzgCloudElasticsearchServiceTest { void shouldCheckIfIndexExists() { when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); when(properties.getServer()).thenReturn(serverProperties); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); service.createIndexIfMissing(NAMESPACE); @@ -132,40 +131,42 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test void shouldCreateIndexIfMissing() { + when(remoteService.existsIndex(any())).thenReturn(false); when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); when(properties.getServer()).thenReturn(serverProperties); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); service.createIndexIfMissing(NAMESPACE); verify(remoteService).createIndex(NAMESPACE); } - @SneakyThrows + @SneakyThrows @Test - void shouldCallCopyElasticCertificate() { + void shouldCallcopyAndUpdateElasticCertificate() { when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); when(properties.getServer()).thenReturn(serverProperties); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); service.createIndexIfMissing(NAMESPACE); - verify(service).copyElasticCertificate(NAMESPACE); + verify(service).copyAndUpdateElasticCertificate(NAMESPACE); } } - + @DisplayName("Check security role if missing") @Nested class TestCheckSecurityRoleIfMissing { private final PutRoleRequestData putRoleRequest = PutRoleRequestDataTestFactory.create(); - + @SneakyThrows @Test void shouldCreateSecurityRoleIfMissing() { - doReturn(putRoleRequest).when(service).buildPutRoleRequestData(any()); + when(properties.getServer()).thenReturn(serverProperties); when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); when(secretResource.get()).thenReturn(SecretTestFactory.create()); - when(properties.getServer()).thenReturn(serverProperties); service.createSecurityRoleIfMissing(NAMESPACE); @@ -174,14 +175,14 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test - void shouldCallCopyElasticCertificate() { - - when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + void shouldCallCopyAndUpdateElasticCertificate() { when(properties.getServer()).thenReturn(serverProperties); + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); service.createSecurityRoleIfMissing(NAMESPACE); - verify(service).copyElasticCertificate(NAMESPACE); + verify(service).copyAndUpdateElasticCertificate(NAMESPACE); } @DisplayName("create put role request data") @@ -219,7 +220,7 @@ class OzgCloudElasticsearchServiceTest { } } } - + @DisplayName("Create security user if missing") @Nested class TestCheckSecurityUserIfMissing { @@ -231,6 +232,7 @@ class OzgCloudElasticsearchServiceTest { void shouldCreateSecurityUserIfMissing() { doReturn(putUserRequestData).when(service).buildPutUserRequestData(any(), any()); when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); when(properties.getServer()).thenReturn(serverProperties); service.createSecurityUserIfMissing(NAMESPACE, PutUserRequestDataTestFactory.PASSWORD); @@ -238,15 +240,16 @@ class OzgCloudElasticsearchServiceTest { verify(remoteService).createOrUpdateSecurityUser(putUserRequestData); } - @SneakyThrows + @SneakyThrows @Test - void shouldCallCopyElasticCertificate() { - when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + void shouldCallcopyAndUpdateElasticCertificate() { when(properties.getServer()).thenReturn(serverProperties); - + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); + service.createSecurityUserIfMissing(NAMESPACE, PutUserRequestDataTestFactory.PASSWORD); - verify(service).copyElasticCertificate(NAMESPACE); + verify(service).copyAndUpdateElasticCertificate(NAMESPACE); } @DisplayName("create put user request data") @@ -280,7 +283,6 @@ class OzgCloudElasticsearchServiceTest { } } - @DisplayName("Delete security user if exists") @Nested class TestDeleteSecurityUserIfExists { @@ -289,6 +291,7 @@ class OzgCloudElasticsearchServiceTest { @Test void shouldDeleteSecurityUserIfExists() { when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); when(properties.getServer()).thenReturn(serverProperties); service.deleteSecurityUserIfExists(PutUserRequestDataTestFactory.USERNAME); @@ -296,46 +299,49 @@ class OzgCloudElasticsearchServiceTest { verify(remoteService).deleteSecurityUser(PutUserRequestDataTestFactory.USERNAME); } - @SneakyThrows + @SneakyThrows @Test - void shouldCallCopyElasticCertificate() { - when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + void shouldCallcopyAndUpdateElasticCertificate() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); when(properties.getServer()).thenReturn(serverProperties); service.deleteSecurityUserIfExists(PutUserRequestDataTestFactory.USERNAME); - verify(service).copyElasticCertificate(PutUserRequestDataTestFactory.USERNAME); + verify(service).copyAndUpdateElasticCertificate(PutUserRequestDataTestFactory.USERNAME); } } - + @DisplayName("Delete security role if exists") @Nested class TestDeleteSecurityRoleIfExists { - + @SneakyThrows - + @Test void shouldDeleteSecurityRoleIfExists() { when(properties.getServer()).thenReturn(serverProperties); when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); + service.deleteSecurityRoleIfExists(PutRoleRequestDataTestFactory.NAME); - verify(remoteService).deleteSecurityRole(PutRoleRequestDataTestFactory.NAME); } @SneakyThrows @Test - void shouldCallCopyElasticCertificate() { - when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + void shouldCallcopyAndUpdateElasticCertificate() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); when(properties.getServer()).thenReturn(serverProperties); - + service.deleteSecurityRoleIfExists(PutRoleRequestDataTestFactory.NAME); - verify(service).copyElasticCertificate(PutRoleRequestDataTestFactory.NAME); + verify(service).copyAndUpdateElasticCertificate(PutRoleRequestDataTestFactory.NAME); } } - + @DisplayName("Delete index if exists") @Nested class TestDeleteIndexIfExists { @@ -346,6 +352,7 @@ class OzgCloudElasticsearchServiceTest { @Test void shouldCheckIfIndexExists() { when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); when(properties.getServer()).thenReturn(serverProperties); service.deleteIndexIfExists(INDEX_NAME); @@ -357,6 +364,7 @@ class OzgCloudElasticsearchServiceTest { @Test void shouldDeleteIndexIfExists() { when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); when(properties.getServer()).thenReturn(serverProperties); when(remoteService.existsIndex(any())).thenReturn(true); @@ -367,13 +375,14 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test - void shouldCallCopyElasticCertificate() { - when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + void shouldCallcopyAndUpdateElasticCertificate() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SecretTestFactory.create()); when(properties.getServer()).thenReturn(serverProperties); service.deleteIndexIfExists(INDEX_NAME); - verify(service).copyElasticCertificate(INDEX_NAME); + verify(service).copyAndUpdateElasticCertificate(INDEX_NAME); } } @@ -470,5 +479,5 @@ class OzgCloudElasticsearchServiceTest { verify(resourceAdapter).create(CREDENTIAL_SECRET); } } - } */ + } } \ No newline at end of file