private ContainerPort createContainerPort() { ContainerPort port = new ContainerPort(); port.hostPort = 8080; port.protocol = "TCP"; return port; } }
return null; Probe probe = new Probe(); switch (healthConfig.protocol) { case COMMAND: probe.exec = new ExecAction(); probe.exec.command = healthConfig.command.split("\\s+"); break; case HTTP: probe.httpGet = new HTTPGetAction(); probe.httpGet.path = healthConfig.urlPath; probe.httpGet.port = String.valueOf(healthConfig.port); break; case TCP: probe.tcpSocket = new TCPSocketAction(); probe.tcpSocket.port = String.valueOf(healthConfig.port); break;
private Container createPodContainer() { Container podContainer = new Container(); podContainer.name = CONTAINER_NAME; podContainer.image = CONTAINER_NAME; podContainer.command = Arrays.asList("app.sh"); podContainer.args = Arrays.asList("start"); podContainer.workingDir = CONTAINER_WORKING_DIR; ContainerPort port = new ContainerPort(); port.containerPort = 80; port.protocol = "TCP"; port.hostPort = 8080; podContainer.ports = Arrays.asList(port); EnvVar env = new EnvVar(); env.name = "name"; env.value = "value"; podContainer.env = Arrays.asList(env); SecurityContext ctx = new SecurityContext(); ctx.privileged = Boolean.TRUE; podContainer.securityContext = ctx; Probe probe = new Probe(); probe.tcpSocket = new TCPSocketAction(); probe.timeoutSeconds = 60; probe.failureThreshold = 3; podContainer.livenessProbe = probe; return podContainer; }
private PodState createPodState() throws Throwable { PodState podState = new PodState(); podState.pod = new Pod(); podState.pod.spec = new PodSpec(); podState.pod.spec.containers = new ArrayList<>(); Container container1 = new Container(); container1.name = "container1"; Container container2 = new Container(); container2.name = "container2"; Container container3 = new Container(); container3.name = "container3"; Container container4 = new Container(); container4.name = "container4"; Container container5 = new Container(); container5.name = "container5"; Container container6 = new Container(); container6.name = "container6"; podState.pod.spec.containers.add(container1); podState.pod.spec.containers.add(container2); podState.pod.spec.containers.add(container3); podState.pod.spec.containers.add(container4); podState.pod.spec.containers.add(container5); podState.pod.spec.containers.add(container6); podState.pod.metadata = new ObjectMeta(); podState.pod.metadata.selfLink = "/api/v1/namespaces/default/pods/test-pod"; podState.pod.metadata.uid = UUID.randomUUID().toString(); podState.documentSelfLink = podState.pod.metadata.uid; podState = doPost(podState, PodFactoryService.SELF_LINK); return podState; }
@Test public void TestCorrectMapContainer() { ContainerState outState = new ContainerState(); Container inContainer = new Container(); ContainerStatus inStatus = new ContainerStatus(); EnvVar e1 = new EnvVar() { EnvVar e2 = new EnvVar() { ContainerPort port1 = new ContainerPort() { ContainerPort port2 = new ContainerPort() { inStatus.state = new com.vmware.admiral.compute.kubernetes.entities.pods.ContainerState(); inStatus.state.running = new ContainerStateRunning();
@Test public void testConvertPodContainerProbeToHealthConfigTCP() { Container podContainer = new Container(); podContainer.livenessProbe = new Probe(); podContainer.livenessProbe.tcpSocket = new TCPSocketAction(); podContainer.livenessProbe.tcpSocket.port = "8080"; podContainer.livenessProbe.timeoutSeconds = 3; HealthConfig expectedHealthConfig = new HealthConfig(); expectedHealthConfig.protocol = RequestProtocol.TCP; expectedHealthConfig.port = 8080; expectedHealthConfig.timeoutMillis = 3000; HealthConfig actualHealthConfig = fromPodContainerProbeToContainerDescriptionHealthConfig( podContainer); assertNotNull(actualHealthConfig); assertEquals(actualHealthConfig.protocol, expectedHealthConfig.protocol); assertEquals(actualHealthConfig.port, expectedHealthConfig.port); assertEquals(actualHealthConfig.timeoutMillis, expectedHealthConfig.timeoutMillis); }
@Test public void testConvertPodContainerProbeToHealthConfigHTTP() { Container podContainer = new Container(); podContainer.livenessProbe = new Probe(); podContainer.livenessProbe.httpGet = new HTTPGetAction(); podContainer.livenessProbe.httpGet.port = "8080"; podContainer.livenessProbe.httpGet.path = "/health"; podContainer.livenessProbe.timeoutSeconds = 3; HealthConfig expectedHealthConfig = new HealthConfig(); expectedHealthConfig.protocol = RequestProtocol.HTTP; expectedHealthConfig.httpVersion = HttpVersion.HTTP_v1_1; expectedHealthConfig.httpMethod = Action.GET; expectedHealthConfig.urlPath = "/health"; expectedHealthConfig.port = 8080; expectedHealthConfig.timeoutMillis = 3000; HealthConfig actualHealthConfig = fromPodContainerProbeToContainerDescriptionHealthConfig( podContainer); assertNotNull(actualHealthConfig); assertEquals(actualHealthConfig.protocol, expectedHealthConfig.protocol); assertEquals(actualHealthConfig.port, expectedHealthConfig.port); assertEquals(actualHealthConfig.httpMethod, expectedHealthConfig.httpMethod); assertEquals(actualHealthConfig.httpVersion, expectedHealthConfig.httpVersion); assertEquals(actualHealthConfig.urlPath, expectedHealthConfig.urlPath); assertEquals(actualHealthConfig.timeoutMillis, expectedHealthConfig.timeoutMillis); }
public static List<EnvVar> fromContainerDescriptionEnvsToPodContainersEnvs(String[] envs) { if (isNullOrEmpty(envs)) { return null; } List<EnvVar> envVars = new ArrayList<>(envs.length); for (int i = 0; i < envs.length; i++) { String[] keyValue = envs[i].split("="); EnvVar podContainerEnvVar = new EnvVar(); podContainerEnvVar.name = keyValue[0]; podContainerEnvVar.value = keyValue[1]; envVars.add(i, podContainerEnvVar); } return envVars; }
@Test public void TestMapContainerWithNullInputStatus() { ContainerState outState = new ContainerState(); Container inContainer = new Container(); inContainer.name = "test"; inContainer.image = "image"; KubernetesContainerStateMapper.mapContainer(outState, inContainer, null); Assert.assertNull(outState.name); Assert.assertNull(outState.names); Assert.assertNull(outState.id); Assert.assertNull(outState.image); Assert.assertNull(outState.command); Assert.assertNull(outState.env); Assert.assertNull(outState.ports); Assert.assertNull(outState.powerState); }
@Test public void TestGetPowerStateRunning() { ContainerStatus status = new ContainerStatus(); status.state = new com.vmware.admiral.compute.kubernetes.entities.pods.ContainerState(); status.state.running = new ContainerStateRunning(); PowerState state = KubernetesContainerStateMapper.getPowerState(status); Assert.assertEquals(PowerState.RUNNING, state); }
@Test public void TestGetPowerStatePaused() { ContainerStatus status = new ContainerStatus(); status.state = new com.vmware.admiral.compute.kubernetes.entities.pods.ContainerState(); status.state.waiting = new ContainerStateWaiting(); PowerState state = KubernetesContainerStateMapper.getPowerState(status); Assert.assertEquals(PowerState.PAUSED, state); }
@Test public void TestGetPowerStateStopped() { ContainerStatus status = new ContainerStatus(); status.state = new com.vmware.admiral.compute.kubernetes.entities.pods.ContainerState(); status.state.terminated = new ContainerStateTerminated(); PowerState state = KubernetesContainerStateMapper.getPowerState(status); Assert.assertEquals(PowerState.STOPPED, state); }
@Test public void TestGetPowerStateUnknown() { ContainerStatus status = new ContainerStatus(); status.state = new com.vmware.admiral.compute.kubernetes.entities.pods.ContainerState(); PowerState state = KubernetesContainerStateMapper.getPowerState(status); Assert.assertEquals(PowerState.UNKNOWN, state); }
@Test public void TestMapContainerWithNullInputContainer() { ContainerState outState = new ContainerState(); ContainerStatus status = new ContainerStatus(); status.containerID = "docker://test-id"; // status.state = new ContainerState(); KubernetesContainerStateMapper.mapContainer(outState, null, status); Assert.assertNull(outState.id); Assert.assertNull(outState.powerState); }
@Test public void testAdapterRequestOnPeriodicMaintenance() throws Throwable { PodState podState = new PodState(); podState.pod = new Pod(); podState.pod.spec = new PodSpec(); podState.pod.spec.containers = new ArrayList<>(); Container container1 = new Container(); container1.name = "container1"; container1.image = "test-image"; podState.pod.spec.containers.add(container1); podState.pod.metadata = new ObjectMeta(); podState.pod.metadata.selfLink = "/api/v1/namespaces/default/pods/test-pod"; podState.pod.metadata.name = "test-pod"; podState = doPost(podState, PodFactoryService.SELF_LINK); waitFor(() -> MockKubernetesAdapterService.requestOnInspect != null); assertNotNull(MockKubernetesAdapterService.requestOnInspect); assertEquals(KubernetesOperationType.INSPECT.id, MockKubernetesAdapterService .requestOnInspect.operationTypeId); assertEquals(podState.documentSelfLink, MockKubernetesAdapterService.requestOnInspect .resourceReference.getPath()); }
@Test public void testFromContainerDescriptionHealthConfigToPodContainerProbe() { Probe expectedProbe1 = new Probe(); expectedProbe1.exec = new ExecAction(); expectedProbe1.exec.command = new String[] { "test", "command" }; expectedProbe1.timeoutSeconds = 1; expectedProbe1.successThreshold = 1; Probe expectedProbe2 = new Probe(); expectedProbe2.httpGet = new HTTPGetAction(); expectedProbe2.httpGet.path = "/test"; expectedProbe2.httpGet.port = "32000"; Probe expectedProbe3 = new Probe(); expectedProbe3.tcpSocket = new TCPSocketAction(); expectedProbe3.tcpSocket.port = "32000";
@Test public void TestCorrectEnvMap() { EnvVar e = new EnvVar(); e.name = "name"; e.value = "val"; String env = KubernetesContainerStateMapper.makeEnv(e); Assert.assertEquals(e.name + "=" + e.value, env); }
@Test public void TestCorrectPortMap() { ContainerPort inPort = new ContainerPort(); inPort.hostIP = "127.0.0.1"; inPort.hostPort = 321; inPort.containerPort = 123; inPort.protocol = "udp"; PortBinding outPort = KubernetesContainerStateMapper.makePort(inPort); Assert.assertEquals(inPort.protocol, outPort.protocol); Assert.assertEquals(inPort.hostIP, outPort.hostIp); Assert.assertEquals(Integer.toString(inPort.hostPort), outPort.hostPort); Assert.assertEquals(Integer.toString(inPort.containerPort), outPort.containerPort); }
@Test public void testCreate() throws Throwable { PodState podState = new PodState(); podState.pod = new Pod(); podState.pod.spec = new PodSpec(); podState.pod.spec.containers = new ArrayList<>(); Container container1 = new Container(); podState.pod.spec.containers.add(container1); podState.pod.metadata = new ObjectMeta(); podState.pod.metadata.selfLink = "/api/v1/namespaces/default/pods/test-pod"; podState.parentLink = kubernetesHostState.documentSelfLink; podState = doPost(podState, PodFactoryService.SELF_LINK); provisioningTaskLink = createProvisioningTask(); AdapterRequest request = new AdapterRequest(); request.resourceReference = UriUtils.buildUri(host, podState.documentSelfLink); request.serviceTaskCallback = ServiceTaskCallback.create(provisioningTaskLink); request.operationTypeId = KubernetesOperationType.CREATE.id; doOperation(KubernetesAdapterService.SELF_LINK, request); waitForPropertyValue(provisioningTaskLink, MockTaskState.class, "taskInfo.stage", TaskState.TaskStage.FAILED); }
@Test public void testFromPodContainerEnvVarToContainerDescriptionEnv() { EnvVar env = new EnvVar(); env.value = "value"; env.name = "name"; List<EnvVar> envVars = Arrays.asList(env); String[] envs = KubernetesConverter.fromPodContainerEnvVarToContainerDescriptionEnv(envVars); assertNotNull(envs); assertEquals(String.format("%s=%s", env.name, env.value), envs[0]); }