private CompositeDescription prepareCompositeDescriptionForClone( CompositeDescriptionExpanded cdExpanded, boolean reverse) { CompositeDescription cd = new CompositeDescription(); cd.name = cdExpanded.name; cd.status = cdExpanded.status; cd.lastPublished = null; if (reverse) { cd.parentDescriptionLink = null; } else { cd.parentDescriptionLink = cdExpanded.documentSelfLink; } cd.descriptionLinks = new ArrayList<String>(); cd.documentSelfLink = null; cd.customProperties = cdExpanded.customProperties; cd.tenantLinks = cdExpanded.tenantLinks; cd.bindings = cdExpanded.bindings; return cd; }
private void initObjectsWithoutContainers() throws Throwable { CompositeDescription firstComposite = new CompositeDescription(); firstComposite.name = "testComposite1"; firstComposite.customProperties = new HashMap<String, String>(); firstComposite.customProperties.put("key1", "value1"); firstComposite.customProperties.put("key2", "value2"); firstComposite.descriptionLinks = new ArrayList<String>(); createdCompositeWithoutContainers = doPost(firstComposite, CompositeDescriptionService.FACTORY_LINK); }
public static CompositeDescription createCompositeDescription(boolean isCloned) { CompositeDescription desc = new CompositeDescription(); desc.name = "composite-admiral-test"; desc.descriptionLinks = new ArrayList<>(); if (isCloned) { desc.parentDescriptionLink = COMPOSITE_DESC_PARENT_LINK; } return desc; }
} else { String[] resourceLinks = o.getBody(String[].class); CompositeDescription description = new CompositeDescription(); description.descriptionLinks = Arrays.asList(resourceLinks); description.name = KUBERNETES_APPLICATION_TEMPLATE_PREFIX + ZonedDateTime
final String testContainerLink = containerDesc2.documentSelfLink; CompositeDescription composite = new CompositeDescription(); composite.name = "composite"; composite.descriptionLinks = new ArrayList<>();
createdSecondContainer = doPost(firstContainer, ContainerDescriptionService.FACTORY_LINK); CompositeDescription secondComposite = new CompositeDescription(); secondComposite.name = "testComposite2"; secondComposite.customProperties = new HashMap<String, String>();
private CompositeDescription createCompositeDescription(String name) throws Throwable { ContainerDescription firstContainer = new ContainerDescription(); firstContainer.name = "testContainer"; firstContainer.image = "registry.hub.docker.com/nginx"; firstContainer._cluster = 1; firstContainer.maximumRetryCount = 1; firstContainer.privileged = true; firstContainer.affinity = new String[] { "cond1", "cond2" }; firstContainer.customProperties = new HashMap<String, String>(); firstContainer.customProperties.put("key1", "value1"); firstContainer.customProperties.put("key2", "value2"); ContainerDescription createdFirstContainer = doPost(firstContainer, ContainerDescriptionService.FACTORY_LINK); ContainerDescription secondContainer = new ContainerDescription(); secondContainer.name = "testContainer2"; secondContainer.image = "registry.hub.docker.com/kitematic/hello-world-nginx"; ContainerDescription createdSecondContainer = doPost(secondContainer, ContainerDescriptionService.FACTORY_LINK); CompositeDescription composite = new CompositeDescription(); composite.name = "name"; composite.customProperties = new HashMap<String, String>(); composite.customProperties.put("key1", "value1"); composite.customProperties.put("key2", "value2"); composite.descriptionLinks = new ArrayList<String>(); composite.descriptionLinks.add(createdFirstContainer.documentSelfLink); composite.descriptionLinks.add(createdSecondContainer.documentSelfLink); return doPost(composite, CompositeDescriptionService.FACTORY_LINK); }
@Before public void initObjects() throws Throwable { ContainerDescription firstContainer = new ContainerDescription(); firstContainer.name = "testContainer"; firstContainer.image = "registry.hub.docker.com/nginx"; firstContainer._cluster = 1; firstContainer.maximumRetryCount = 1; firstContainer.privileged = true; firstContainer.affinity = new String[] { "cond1", "cond2" }; firstContainer.customProperties = new HashMap<String, String>(); firstContainer.customProperties.put("key1", "value1"); firstContainer.customProperties.put("key2", "value2"); createdFirstContainer = doPost(firstContainer, ContainerDescriptionService.FACTORY_LINK); ContainerDescription secondContainer = new ContainerDescription(); secondContainer.name = "testContainer2"; secondContainer.image = "registry.hub.docker.com/kitematic/hello-world-nginx"; createdSecondContainer = doPost(secondContainer, ContainerDescriptionService.FACTORY_LINK); CompositeDescription composite = new CompositeDescription(); composite.name = "testComposite"; composite.customProperties = new HashMap<String, String>(); composite.customProperties.put("key1", "value1"); composite.customProperties.put("key2", "value2"); composite.descriptionLinks = new ArrayList<String>(); composite.descriptionLinks.add(createdFirstContainer.documentSelfLink); composite.descriptionLinks.add(createdSecondContainer.documentSelfLink); createdComposite = doPost(composite, CompositeDescriptionService.FACTORY_LINK); }
@Test public void testPutExpanded() throws Throwable { ContainerDescription container = new ContainerDescription(); container.name = "container"; container.image = "registry.hub.docker.com/kitematic/hello-world-nginx"; container = doPost(container, ContainerDescriptionService.FACTORY_LINK); ComponentDescription containerComponent = new ComponentDescription(); containerComponent.name = "container"; container.name = "updated"; containerComponent.updateServiceDocument(container); containerComponent.type = ResourceType.CONTAINER_TYPE.getContentType(); CompositeDescription cd = new CompositeDescription(); cd.name = "testComposite"; cd = doPost(cd, CompositeDescriptionFactoryService.SELF_LINK); // Make PUT but as expanded state, so that components are also updated CompositeDescriptionExpanded cdUpdate = new CompositeDescriptionExpanded(); cdUpdate.documentSelfLink = cd.documentSelfLink; cdUpdate.name = cd.name; cdUpdate.componentDescriptions = new ArrayList<>(); cdUpdate.componentDescriptions.add(containerComponent); cdUpdate = doPut(cdUpdate); // Explicitly search for document to validate that the list returns the right document kind CompositeDescription foundCd = searchForDocument(CompositeDescription.class, cd.documentSelfLink); assertEquals(Utils.buildKind(CompositeDescription.class), foundCd.documentKind); container = getDocument(ContainerDescription.class, container.documentSelfLink); assertEquals("updated", container.name); }
@Test public void testGetCompositeDescription() { CompositeDescription state1 = new CompositeDescription(); state1.name = "test"; state1.descriptionLinks = Collections.singletonList("test"); CompositeDescription state2 = new CompositeDescription(); state2.name = "test"; state2.descriptionLinks = Collections.singletonList("test"); state1 = doPostWithProjectHeader(state1, CompositeDescriptionFactoryService.SELF_LINK, testProject1.documentSelfLink, CompositeDescription.class); state2 = doPostWithProjectHeader(state2, CompositeDescriptionFactoryService.SELF_LINK, testProject2.documentSelfLink, CompositeDescription.class); ServiceDocumentQueryResult project1Docs = getDocumentsWithinProject( CompositeDescriptionFactoryService.SELF_LINK, testProject1.documentSelfLink); assertEquals(1, project1Docs.documentLinks.size()); assertTrue(project1Docs.documentLinks.contains(state1.documentSelfLink)); ServiceDocumentQueryResult project2Docs = getDocumentsWithinProject( CompositeDescriptionFactoryService.SELF_LINK, testProject2.documentSelfLink); assertEquals(1, project2Docs.documentLinks.size()); assertTrue(project2Docs.documentLinks.contains(state2.documentSelfLink)); }
private void createCompositeDescription(String tenantLink, boolean cloned) throws Throwable { CompositeDescription compositeDesc = new CompositeDescription(); compositeDesc.name = TEST_COMPOSITE_DESC_NAME; if (cloned) { compositeDesc.parentDescriptionLink = TEST_COMPOSITE_DESC_NAME; compositeDesc.documentSelfLink = TEST_COMPOSITE_DESC_NAME_CLONED; } if (tenantLink != null) { compositeDesc.tenantLinks = Collections.singletonList(tenantLink); } compositeDesc.descriptionLinks = Collections.singletonList(containerDescSelfLink); System.out.println(getFactoryUrl(CompositeDescriptionFactoryService.class).toString()); verifyOperation(OperationUtil.createForcedPost( getFactoryUrl(CompositeDescriptionFactoryService.class)) .setBody(compositeDesc), (o) -> { CompositeDescription cd = o.getBody(CompositeDescription.class); compositeDescSelfLink = cd.documentSelfLink; }); }
@Test public void testDeleteContainerDescPartOfComposite() throws Throwable { ContainerDescription containerDescription = createContainerDescription(); containerDescription.name = "containerDescription"; containerDescription = doPost(containerDescription, ContainerDescriptionService.FACTORY_LINK); CompositeDescription composite = new CompositeDescription(); composite.name = "composite"; composite.descriptionLinks = Collections .singletonList(containerDescription.documentSelfLink); composite = doPost(composite, CompositeDescriptionFactoryService.SELF_LINK); delete(containerDescription.documentSelfLink); List<String> resourceLinks = findResourceLinks(ContainerDescription.class, Arrays.asList(containerDescription.documentSelfLink)); Assert.assertEquals("Container description must be deleted on DELETE", 0, resourceLinks.size()); }
@Test public void testContainerDescriptionServices() throws Throwable { verifyService( CompositeDescriptionFactoryService.class, CompositeDescription.class, (prefix, index) -> { CompositeDescription containerDesc = new CompositeDescription(); containerDesc.name = prefix + "name" + index; containerDesc.customProperties = new HashMap<>(); return containerDesc; }, (prefix, serviceDocument) -> { CompositeDescription contDesc = (CompositeDescription) serviceDocument; assertTrue(contDesc.name.startsWith(prefix + "name")); }); }
private CompositeDescription createCompositeDescription() throws Throwable { CompositeDescription description = new CompositeDescription(); description.name = "test-name"; description = doPost(description, CompositeDescriptionFactoryService.SELF_LINK); addForDeletion(description); return description; }
private CompositeDescription createCompositeDescription( String... names) throws Throwable { CompositeDescription cd = new CompositeDescription(); cd.descriptionLinks = new ArrayList<>(); cd.name = names[0]; for (String name : names) { ContainerDescription description = createDescription(name); cd.descriptionLinks.add(description.documentSelfLink); } return doPost(cd, CompositeDescriptionFactoryService.SELF_LINK); }
private CompositeDescription prepareCompositeDescription(String... componentLinks) throws Throwable { CompositeDescription desc = new CompositeDescription(); desc.name = "test-composite-description"; desc.descriptionLinks = Arrays.asList(componentLinks); return desc; }
private CompositeDescription createCompositeDescription(String name, boolean cloned, String... componentLinks) throws Throwable { CompositeDescription desc = new CompositeDescription(); desc.name = randomName(name); desc.descriptionLinks = Arrays.asList(componentLinks); if (cloned) { desc.parentDescriptionLink = "/fake-parent-link"; } waitForServiceAvailability(CompositeDescriptionFactoryService.SELF_LINK); return getOrCreateDocument(desc, CompositeDescriptionFactoryService.SELF_LINK); }
@Test public void testCreateCompositeDescriptionIntercept() { CompositeDescription state = new CompositeDescription(); state.name = "test"; state.descriptionLinks = Collections.singletonList("test"); CompositeDescription doc = doPostWithProjectHeader(state, CompositeDescriptionFactoryService.SELF_LINK, project.documentSelfLink, CompositeDescription.class); assertTenantLinks(doc, project.documentSelfLink); assertEquals(state.name, doc.name); assertEquals(state.descriptionLinks, doc.descriptionLinks); }
public static CompositeDescription fromCompositeTemplateToCompositeDescription( CompositeTemplate template) { assertNotNull(template, "template"); CompositeDescription description = new CompositeDescription(); description.documentSelfLink = template.id; description.name = template.name; description.status = template.status; description.customProperties = template.properties; description.bindings = template.bindings; return description; }
private CompositeDescription createTemplate(String projectLink) throws Throwable { CompositeDescription template = new CompositeDescription(); template.name = TEST_TEMPLATE_NAME; template.tenantLinks = Collections.singletonList(projectLink); return doPost(template, CompositeDescriptionService.FACTORY_LINK); } }