private CompositeDescriptionExpanded createExpandedComposite(PortBinding[]... bindings) { CompositeDescriptionExpanded cdExpanded = new CompositeDescriptionExpanded(); cdExpanded.name = "Test Composite"; cdExpanded.componentDescriptions = new ArrayList<>(); int i = 0; for (PortBinding[] binding : bindings) { ContainerDescription desc = new ContainerDescription(); desc.name = CONTAINER_DESC_BASE_NAME + i++; desc.portBindings = binding; cdExpanded.componentDescriptions.add( new ComponentDescription(desc, ResourceType.CONTAINER_TYPE.getName(), desc.name, new ArrayList<>())); } return cdExpanded; } }
private ContainerDescription createAndStoreContainerDescription( String link, Long memoryLimit) throws Throwable { ContainerDescription containerDesc = new ContainerDescription(); containerDesc.documentSelfLink = link + UUID.randomUUID().toString(); containerDesc.name = "name"; containerDesc.memoryLimit = memoryLimit; containerDesc.image = "image"; containerDesc = doPost(containerDesc, ContainerDescriptionService.FACTORY_LINK); assertNotNull(containerDesc); return containerDesc; }
@Test public void testEvaluateSingleBindingWithDefaultValue() { ContainerDescription firstDescription = new ContainerDescription(); firstDescription.name = "A"; ContainerDescription secondDescription = new ContainerDescription(); secondDescription.name = "B"; List<Binding> bindings = Arrays.asList( binding(Arrays.asList("_cluster"), "A~_cluster", "5")); Binding.ComponentBinding componentBinding = new Binding.ComponentBinding("B", bindings); CompositeTemplate compositeTemplate = createCompositeTemplate(Arrays .asList(firstDescription, secondDescription), Arrays.asList(componentBinding)); BindingEvaluator.evaluateBindings(compositeTemplate); firstDescription = (ContainerDescription) compositeTemplate.components.get("A").data; secondDescription = (ContainerDescription) compositeTemplate.components.get("B").data; assertNull(firstDescription._cluster); assertEquals(new Integer(5), secondDescription._cluster); }
@Test public void testSetPodContainerResourcesToContainerDescriptionResources() { Container podContainer = new Container(); podContainer.resources = new ResourceRequirements(); podContainer.resources.limits = new HashMap<>(); podContainer.resources.limits.put("memory", "100M"); podContainer.resources.limits.put("cpu", "500m"); ContainerDescription containerDescription = new ContainerDescription(); setPodContainerResourcesToContainerDescriptionResources(podContainer, containerDescription); Long expectedMemoryLimit = 100000000L; Long actualMemoryLimit = containerDescription.memoryLimit; Integer expectedCpuShares = 1; Integer actualCpuShares = containerDescription.cpuShares; assertEquals(expectedMemoryLimit, actualMemoryLimit); assertEquals(expectedCpuShares, actualCpuShares); }
private void createContainerDescription(boolean cloned) throws Throwable { ContainerDescription containerDesc = new ContainerDescription(); containerDesc.documentSelfLink = TEST_CONTAINER_DESC_NAME; containerDesc.name = TEST_CONTAINER_DESC_NAME; containerDesc.image = TEST_IMAGE_NAME; if (cloned) { containerDesc.parentDescriptionLink = TEST_CONTAINER_DESC_NAME; } verifyOperation(OperationUtil.createForcedPost( UriUtils.buildFactoryUri(host, ContainerDescriptionService.class)) .setBody(containerDesc), (o) -> { ContainerDescription cd = o.getBody(ContainerDescription.class); containerDescSelfLink = cd.documentSelfLink; }); }
@Test(expected = LocalizableValidationException.class) public void testEvaluateBindingsCyclicDependency() { ContainerDescription firstDescription = new ContainerDescription(); firstDescription.name = "A"; ContainerDescription secondDescription = new ContainerDescription(); secondDescription.name = "B"; List<Binding> bBindings = Arrays.asList( binding(Arrays.asList("_cluster"), "A~_cluster")); Binding.ComponentBinding bComponentBinding = new Binding.ComponentBinding("B", bBindings); List<Binding> aBindings = Arrays.asList(binding(Arrays.asList("_cluster"), "B~_cluster")); Binding.ComponentBinding aComponentBinding = new Binding.ComponentBinding("A", aBindings); CompositeTemplate compositeTemplate = createCompositeTemplate(Arrays .asList(firstDescription, secondDescription), Arrays.asList(bComponentBinding, aComponentBinding)); BindingEvaluator.evaluateBindings(compositeTemplate); }
@Test public void testQueryDocument() throws Throwable { descs = queryDocument("testLink"); assertEquals(0, descs.size()); ContainerDescription desc = new ContainerDescription(); desc.image = image1; desc = doPost(desc, ContainerDescriptionService.FACTORY_LINK); descs = queryDocument(desc.documentSelfLink); assertEquals(1, descs.size()); assertEquals(desc.documentSelfLink, descs.get(0).documentSelfLink); assertEquals(image1, descs.get(0).image); delete(desc.documentSelfLink); descs = queryDocument(desc.documentSelfLink); assertEquals(0, descs.size()); }
private ContainerDescription createContainerDescription() { ContainerDescription containerDesc = new ContainerDescription(); containerDesc.documentSelfLink = UriUtils .buildUriPath(ContainerDescriptionService.FACTORY_LINK, TEST_CONTAINER_DESC_SELF_LINK); containerDesc.name = "test-name"; containerDesc.image = String.format("%s:%s", "test", "latest"); containerDesc.volumes = new String[] { "/var/run/docker.sock:/var/run/docker.sock", "/etc/docker:/etc/docker" }; containerDesc.restartPolicy = "always"; containerDesc.networkMode = "host"; return containerDesc; } }
@Test public void testHealthConfigPatch() throws Throwable { ContainerDescription containerDesc = createContainerDescription(); containerDesc = doPost(containerDesc, ContainerDescriptionService.FACTORY_LINK); ContainerDescription patchConfig = new ContainerDescription(); patchConfig.healthConfig = new HealthConfig(); patchConfig.healthConfig.urlPath = "/ping"; patchConfig.healthConfig.protocol = RequestProtocol.TCP; doOperation(patchConfig, UriUtils.buildUri(host, containerDesc.documentSelfLink), false, Action.PATCH); ContainerDescription config = getDocument(ContainerDescription.class, containerDesc.documentSelfLink); assertEquals(patchConfig.healthConfig.urlPath, config.healthConfig.urlPath); }
@Test public void testSetContainerDescriptionResourcesToPodContainerResources() { ContainerDescription description = new ContainerDescription(); description.memoryLimit = 100000L; description.cpuShares = 3; Container podContainer = new Container(); setContainerDescriptionResourcesToPodContainerResources(description, podContainer); String expectedPodContainerMemoryLimit = "100000"; String expectedPodContainerCpuShares = "3"; String actualPodContainerMemoryLimit = (String) podContainer.resources.limits.get("memory"); String actualPodContainerCpuShares = (String) podContainer.resources.limits.get("cpu"); assertEquals(expectedPodContainerMemoryLimit, actualPodContainerMemoryLimit); assertEquals(expectedPodContainerCpuShares, actualPodContainerCpuShares); }
@Test(expected = LocalizableValidationException.class) public void testDiffWithNoContainersProvided() { ContainerDiff.inspect(new ContainerDescription(), null); }
private ContainerDescription createContainerDescription() { ContainerDescription containerDesc = new ContainerDescription(); containerDesc.image = "image:latest"; containerDesc.healthConfig = createHealthConfig(); return containerDesc; }
private ContainerDescription createContainerDescription() { ContainerDescription containerDesc = new ContainerDescription(); containerDesc.image = "image:latest"; containerDesc.healthConfig = createHealthConfig(); return containerDesc; }
/** Create a container description to be used for installing host agents containers. */ public static ContainerDescription buildCoreAgentContainerDescription() { ContainerDescription cd = new ContainerDescription(); cd.documentSelfLink = AGENT_CONTAINER_DESCRIPTION_LINK; cd.name = AGENT_CONTAINER_NAME; cd.image = getAgentImageNameAndVersion(); cd.publishAll = true; cd.volumes = AGENT_CONTAINER_VOLUMES; cd.restartPolicy = "always"; return cd; }
private ContainerDescription createContainerDescription(String name) throws Throwable { ContainerDescription desc = new ContainerDescription(); desc.name = randomName(name); desc.image = "fake-image"; waitForServiceAvailability(ContainerDescriptionFactoryService.SELF_LINK); return getOrCreateDocument(desc, ContainerDescriptionFactoryService.SELF_LINK); }
@Test public void testCreateContainerDescriptionIntercept() throws Throwable { ContainerDescription desc = new ContainerDescription(); desc.name = "test"; desc.image = "test"; ContainerDescription newDesc = doPostWithProjectHeader(desc, ContainerDescriptionService .FACTORY_LINK, project.documentSelfLink, ContainerDescription.class); assertTenantLinks(newDesc, project.documentSelfLink); assertEquals(desc.name, newDesc.name); assertEquals(desc.image, newDesc.image); }
private ContainerDescription createContainerDescription(String name) { ContainerDescription containerDesc = new ContainerDescription(); containerDesc.documentSelfLink = UriUtils.buildUriPath( ContainerDescriptionService.FACTORY_LINK, name);; containerDesc.name = name; containerDesc.image = CONTAINER_DESC_IMAGE; containerDesc._cluster = CONTAINER_DESC_CLUSTER_SIZE; return containerDesc; } }
private ContainerDescription createContainerDescription() { ContainerDescription containerDesc = new ContainerDescription(); containerDesc.image = "image:latest"; return containerDesc; }
private ContainerDescription createContainerDesc(String name, String... volumes) { ContainerDescription cd = new ContainerDescription(); cd.name = name; cd.volumes = volumes; return cd; }
private ContainerDescription createContainerDescription() throws Throwable { ContainerDescription desc = new ContainerDescription(); desc.name = "test-container-description"; desc.image = "test-container-image"; waitForServiceAvailability(ContainerDescriptionFactoryService.SELF_LINK); ContainerDescription result = getOrCreateDocument(desc, ContainerDescriptionFactoryService.SELF_LINK); descriptionLinks.add(result.documentSelfLink); return result; }