diff --git a/Jenkinsfile b/Jenkinsfile index b0f1dcf2b36a789c9176b7a2215f161de1dd0e95..8020f96671328714bfb5d6c57ceedf40accca013 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,7 +48,7 @@ pipeline { } configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { sh 'mvn --version' - sh 'mvn -s $MAVEN_SETTINGS clean install -DskipTests -Dmaven.wagon.http.retryHandler.count=3' + sh 'mvn -s $MAVEN_SETTINGS clean install -Dmaven.wagon.http.retryHandler.count=3' script { try { 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 89bed221f4ad864f318c6142721be59f7782b7b0..44fed4056ab114b07c919b9639062209a997d35b 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 @@ -25,6 +25,7 @@ public class OzgCloudElasticsearchService { private final OzgCloudElasticsearchSecretHelper secretHelper; private final OzgCloudElasticsearchProperties properties; + private final OzgCloudElasticsearchServerProperties serverProperties; private final ElasticsearchRemoteService remoteService; @@ -36,7 +37,7 @@ public class OzgCloudElasticsearchService { LOG.debug("Copy elasticseaerch ssl certificate from namespace: {}" , serverProperties.getCertificateNamespace()); LOG.debug("Copy elasticseaerch ssl certificate secret: {}" , serverProperties.getCertificateSecretName()); - var secretResource = kubernetesService.getSecretResource(serverProperties.getCertificateNamespace(), "ozg-search-cluster-es-http-ca-internal"); + var secretResource = kubernetesService.getSecretResource(serverProperties.getCertificateNamespace(), serverProperties.getCertificateSecretName()); LOG.info("{}: Create certificate secret", namespace); createCredentialSecret(secretResource,namespace); } catch (ElasticsearchException e) { 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 1bb1f5ecbd69412886f4271ed5cffcdadecf0b7c..6a890c7a4f3cdd0357ef6211c2575014bb392db4 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 @@ -31,6 +31,12 @@ class OzgCloudElasticsearchServiceTest { @Spy @InjectMocks private OzgCloudElasticsearchService service; + @Mock + private OzgCloudElasticsearchServerProperties serverProperties; + @Mock + private Resource<Secret> secretResource; + private final Secret secret = SecretTestFactory.create(); + @Mock private ElasticsearchRemoteService remoteService; @Mock @@ -40,6 +46,8 @@ class OzgCloudElasticsearchServiceTest { @Mock private KubernetesRemoteService kubernetesService; + + @DisplayName("Get or create secret") @Nested class TestGetOrCreateSecret { @@ -48,10 +56,10 @@ class OzgCloudElasticsearchServiceTest { private Context<OzgCloudElasticsearchCustomResource> context; @Mock private ResourceAdapter<Secret> resourceAdapter; - @Mock - private Resource<Secret> secretResource; + //@Mock + //private Resource<Secret> secretResource; - private final Secret secret = SecretTestFactory.create(); + private final OzgCloudElasticsearchCustomResource resource = ElasticsearchCustomResourceTestFactory.create(); @@ -117,6 +125,9 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test void shouldCheckIfIndexExists() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(serverProperties.getCertificateNamespace()).thenReturn(NAMESPACE); + service.createIndexIfMissing(NAMESPACE); verify(remoteService).existsIndex(NAMESPACE); @@ -125,12 +136,24 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test void shouldCreateIndexIfMissing() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(serverProperties.getCertificateNamespace()).thenReturn(NAMESPACE); when(remoteService.existsIndex(any())).thenReturn(false); service.createIndexIfMissing(NAMESPACE); verify(remoteService).createIndex(NAMESPACE); } + + @SneakyThrows + @Test + void shouldCallCopyElasticCertificate() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + + service.createIndexIfMissing(NAMESPACE); + + verify(service).copyElasticCertificate(NAMESPACE); + } } @DisplayName("Check security role if missing") @@ -138,18 +161,30 @@ class OzgCloudElasticsearchServiceTest { class TestCheckSecurityRoleIfMissing { private final PutRoleRequestData putRoleRequest = PutRoleRequestDataTestFactory.create(); - + @SneakyThrows @Test void shouldCreateSecurityRoleIfMissing() { doReturn(putRoleRequest).when(service).buildPutRoleRequestData(any()); + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); service.createSecurityRoleIfMissing(NAMESPACE); verify(remoteService).createOrUpdateSecurityRole(putRoleRequest); } + @SneakyThrows + @Test + void shouldCallCopyElasticCertificate() { + + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + + service.createSecurityRoleIfMissing(NAMESPACE); + + verify(service).copyElasticCertificate(NAMESPACE); + } + @DisplayName("create put role request data") @Nested class TestCreatePutRoleRequestData { @@ -196,12 +231,23 @@ class OzgCloudElasticsearchServiceTest { @Test void shouldCreateSecurityUserIfMissing() { doReturn(putUserRequestData).when(service).buildPutUserRequestData(any(), any()); + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); service.createSecurityUserIfMissing(NAMESPACE, PutUserRequestDataTestFactory.PASSWORD); verify(remoteService).createOrUpdateSecurityUser(putUserRequestData); } + @SneakyThrows + @Test + void shouldCallCopyElasticCertificate() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + + service.createSecurityUserIfMissing(NAMESPACE, PutUserRequestDataTestFactory.PASSWORD); + + verify(service).copyElasticCertificate(NAMESPACE); + } + @DisplayName("create put user request data") @Nested class TestCreatePutUserRequestData { @@ -240,10 +286,22 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test void shouldDeleteSecurityUserIfExists() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + service.deleteSecurityUserIfExists(PutUserRequestDataTestFactory.USERNAME); verify(remoteService).deleteSecurityUser(PutUserRequestDataTestFactory.USERNAME); } + + @SneakyThrows + @Test + void shouldCallCopyElasticCertificate() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + + service.deleteSecurityUserIfExists(PutUserRequestDataTestFactory.USERNAME); + + verify(service).copyElasticCertificate(PutUserRequestDataTestFactory.USERNAME); + } } @DisplayName("Delete security role if exists") @@ -253,10 +311,21 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test void shouldDeleteSecurityRoleIfExists() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); service.deleteSecurityRoleIfExists(PutRoleRequestDataTestFactory.NAME); verify(remoteService).deleteSecurityRole(PutRoleRequestDataTestFactory.NAME); } + + @SneakyThrows + @Test + void shouldCallCopyElasticCertificate() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + + service.deleteSecurityRoleIfExists(PutRoleRequestDataTestFactory.NAME); + + verify(service).copyElasticCertificate(PutRoleRequestDataTestFactory.NAME); + } } @DisplayName("Delete index if exists") @@ -268,6 +337,8 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test void shouldCheckIfIndexExists() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + service.deleteIndexIfExists(INDEX_NAME); verify(remoteService).existsIndex(INDEX_NAME); @@ -276,6 +347,7 @@ class OzgCloudElasticsearchServiceTest { @SneakyThrows @Test void shouldDeleteIndexIfExists() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); when(remoteService.existsIndex(any())).thenReturn(true); service.deleteIndexIfExists(INDEX_NAME);