Skip to content
Snippets Groups Projects
Commit d9c21ced authored by Lukasz Lopatowski's avatar Lukasz Lopatowski
Browse files

Merge branch '297-properly-handle-removal-od-main-component-name' into 'develop'

Fixed deployment name preparation for Janitor

See merge request !208
parents 2546fac8 b7362082
No related branches found
No related tags found
1 merge request!208Fixed deployment name preparation for Janitor
Pipeline #94322 passed
......@@ -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);
}
......
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment