diff --git a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java index a185bb21810985dd733e3e959ac5f1df762dc898..1cb6ce71487bd05b78fbade29f70dae91319b9af 100644 --- a/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java +++ b/src/main/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManager.java @@ -3,10 +3,10 @@ package net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes; import com.google.common.base.Strings; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import net.geant.nmaas.gitlab.GitLabManager; -import net.geant.nmaas.gitlab.exceptions.GitLabInvalidConfigurationException; import net.geant.nmaas.externalservices.kubernetes.KubernetesClusterIngressManager; import net.geant.nmaas.externalservices.kubernetes.entities.IngressControllerConfigOption; +import net.geant.nmaas.gitlab.GitLabManager; +import net.geant.nmaas.gitlab.exceptions.GitLabInvalidConfigurationException; import net.geant.nmaas.nmservice.deployment.ContainerOrchestrator; import net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.components.cluster.KClusterCheckException; import net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.components.helm.HelmChartIngressVariable; @@ -367,8 +367,8 @@ public class KubernetesManager implements ContainerOrchestrator { } } - private Identifier getDeploymentIdForJanitorStatusCheck(String releaseName, String componentName) { - return componentName != null ? + static Identifier getDeploymentIdForJanitorStatusCheck(String releaseName, String componentName) { + return StringUtils.isNotEmpty(componentName) ? Identifier.newInstance(releaseName + "-" + componentName) : Identifier.newInstance(releaseName); } diff --git a/src/test/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManagerTest.java b/src/test/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManagerTest.java index 36528417acd828a133bd24bbc97128553cead163..e731123936fbfa7898f805c50e70e49dbe1d8ce1 100644 --- a/src/test/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManagerTest.java +++ b/src/test/java/net/geant/nmaas/nmservice/deployment/containerorchestrators/kubernetes/KubernetesManagerTest.java @@ -1,9 +1,9 @@ package net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes; import com.google.common.collect.Sets; -import net.geant.nmaas.gitlab.GitLabManager; import net.geant.nmaas.externalservices.kubernetes.KubernetesClusterIngressManager; import net.geant.nmaas.externalservices.kubernetes.entities.IngressControllerConfigOption; +import net.geant.nmaas.gitlab.GitLabManager; import net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.components.cluster.DefaultKClusterValidator; import net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.components.cluster.DefaultKServiceOperationsManager; import net.geant.nmaas.nmservice.deployment.containerorchestrators.kubernetes.components.cluster.KClusterCheckException; @@ -41,6 +41,7 @@ import java.util.Map; import java.util.Optional; import java.util.Set; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -142,11 +143,11 @@ public class KubernetesManagerTest { Map<HelmChartIngressVariable, String> sshAccessUserDeploymentParameters = new HashMap<>(); sshAccessUserDeploymentParameters.put(HelmChartIngressVariable.ACCESS_USER, "testUser"); accessMethods.add(new ServiceAccessMethod(ServiceAccessMethodType.INTERNAL, "ssh-service-with-access-user", null, "SSH", sshAccessUserDeploymentParameters)); - accessMethods.add(new ServiceAccessMethod(ServiceAccessMethodType.PUBLIC, "public-service", null, "Public",null)); + accessMethods.add(new ServiceAccessMethod(ServiceAccessMethodType.PUBLIC, "public-service", null, "Public", null)); Map<HelmChartIngressVariable, String> dataAccessUserDeploymentParameters = new HashMap<>(); dataAccessUserDeploymentParameters.put(HelmChartIngressVariable.ACCESS_USER, "testUser"); accessMethods.add(new ServiceAccessMethod(ServiceAccessMethodType.INTERNAL, "data-service-with-access-user", null, "DATA", dataAccessUserDeploymentParameters)); - accessMethods.add(new ServiceAccessMethod(ServiceAccessMethodType.PUBLIC, "public-service", null, "Public",null)); + accessMethods.add(new ServiceAccessMethod(ServiceAccessMethodType.PUBLIC, "public-service", null, "Public", null)); Map<HelmChartIngressVariable, String> dataAccessDeploymentParameters = new HashMap<>(); dataAccessDeploymentParameters.put(HelmChartIngressVariable.K8S_SERVICE_SUFFIX, "component1"); accessMethods.add(new ServiceAccessMethod(ServiceAccessMethodType.INTERNAL, "data-service", null, "DATA", dataAccessDeploymentParameters)); @@ -319,14 +320,14 @@ public class KubernetesManagerTest { } @Test - void shouldVerifyRequest () { + void shouldVerifyRequest() { assertDoesNotThrow(() -> { manager.verifyRequestAndObtainInitialDeploymentDetails(DEPLOYMENT_ID); }); } @Test - void shouldVerifyRequestAndThrowException () { + void shouldVerifyRequestAndThrowException() { assertThrows(ContainerOrchestratorInternalErrorException.class, () -> { doThrow(new KClusterCheckException("")).when(clusterValidator).checkClusterStatusAndPrerequisites(); manager.verifyRequestAndObtainInitialDeploymentDetails(DEPLOYMENT_ID); @@ -356,7 +357,7 @@ public class KubernetesManagerTest { verify(repositoryManager, times(1)).updateKServiceAccessMethods(accessMethodsArg.capture()); assertEquals(10, accessMethodsArg.getValue().size()); assertTrue(accessMethodsArg.getValue().stream().anyMatch(m -> - m.isOfType(ServiceAccessMethodType.DEFAULT) + m.isOfType(ServiceAccessMethodType.DEFAULT) && m.getName().equals("Default") && m.getProtocol().equals("Web") && m.getUrl().equals("base.url"))); @@ -397,9 +398,9 @@ public class KubernetesManagerTest { assertDoesNotThrow(() -> { when(serviceLifecycleManager.checkServiceDeployed(any(Identifier.class))).thenReturn(true); when(janitorService.checkIfReady(any(), any())).thenReturn(true); - when(janitorService.retrieveServiceIp(Identifier.newInstance("deploymentId"),"domain")) + when(janitorService.retrieveServiceIp(Identifier.newInstance("deploymentId"), "domain")) .thenReturn("192.168.100.1"); - when(janitorService.retrieveServiceIp(Identifier.newInstance("deploymentId-component1"),"domain")) + when(janitorService.retrieveServiceIp(Identifier.newInstance("deploymentId-component1"), "domain")) .thenReturn("192.168.100.2"); doThrow(new JanitorResponseException("")).when(janitorService).checkServiceExists(any(), any()); @@ -487,10 +488,10 @@ public class KubernetesManagerTest { assertEquals(2, appUiAccessDetails.getServiceAccessMethods().size()); assertTrue(appUiAccessDetails.getServiceAccessMethods().stream().anyMatch(m -> - m.getType().equals(ServiceAccessMethodType.EXTERNAL) - && m.getName().equals("web-service") - && m.getProtocol().equals("Web") - && m.getUrl().equals("app1.nmaas.eu") + m.getType().equals(ServiceAccessMethodType.EXTERNAL) + && m.getName().equals("web-service") + && m.getProtocol().equals("Web") + && m.getUrl().equals("app1.nmaas.eu") )); assertTrue(appUiAccessDetails.getServiceAccessMethods().stream().anyMatch(m -> m.getType().equals(ServiceAccessMethodType.INTERNAL) @@ -500,4 +501,14 @@ public class KubernetesManagerTest { )); } + @Test + void shouldBuildDeploymentNameForCheck() { + assertThat(KubernetesManager.getDeploymentIdForJanitorStatusCheck("releaseName", "componentName")) + .isEqualTo(Identifier.newInstance("releaseName-componentName")); + assertThat(KubernetesManager.getDeploymentIdForJanitorStatusCheck("releaseName", null)) + .isEqualTo(Identifier.newInstance("releaseName")); + assertThat(KubernetesManager.getDeploymentIdForJanitorStatusCheck("releaseName", "")) + .isEqualTo(Identifier.newInstance("releaseName")); + } + } \ No newline at end of file