private ContainerState createContainer(String compositeComponentLink) throws Throwable { ContainerState containerState = new ContainerState(); containerState.id = UUID.randomUUID().toString(); containerState.names = new ArrayList<>(Arrays.asList("name_" + containerState.id)); containerState.compositeComponentLink = compositeComponentLink; containerState = doPost(containerState, ContainerFactoryService.SELF_LINK); return containerState; }
@Test public void testShouldSelfDeleteIfOnlyExternalComponentsLeft() throws Throwable { compositeComponent = createCompositeComponent(); ContainerState containerState = createContainer(compositeComponent.documentSelfLink); waitFor(() -> { compositeComponent = getDocument(CompositeComponent.class, compositeComponent.documentSelfLink); if (compositeComponent.componentLinks == null ContainerNetworkState networkState = createNetwork(compositeComponent.documentSelfLink, true); waitFor(() -> { compositeComponent = getDocument(CompositeComponent.class, compositeComponent.documentSelfLink); ContainerVolumeState volumeState = createVolume(compositeComponent.documentSelfLink, true); waitFor(() -> { compositeComponent = getDocument(CompositeComponent.class, compositeComponent.documentSelfLink); delete(containerState.documentSelfLink); waitFor(() -> { ServiceDocumentQuery<CompositeComponent> query = new ServiceDocumentQuery<>(host, CompositeComponent.class);
@Test public void testShouldUpdateContainerLinksWhenUpdatesToContainers() throws Throwable { compositeComponent = createCompositeComponent(); ContainerState containerState1 = createContainer(compositeComponent.documentSelfLink); waitFor(() -> { compositeComponent = getDocument(CompositeComponent.class, compositeComponent.documentSelfLink); if (compositeComponent.componentLinks == null ContainerState containerState2 = createContainer(compositeComponent.documentSelfLink); waitFor(() -> { compositeComponent = getDocument(CompositeComponent.class, compositeComponent.documentSelfLink); delete(containerState2.documentSelfLink); waitFor(() -> { compositeComponent = getDocument(CompositeComponent.class, compositeComponent.documentSelfLink); if (compositeComponent.componentLinks.size() != 1) { doOperation(containerState1, UriUtils.buildUri(host, containerState1.documentSelfLink), false, Action.PUT); waitFor(() -> { ServiceDocumentQuery<CompositeComponent> query = new ServiceDocumentQuery<>(host, CompositeComponent.class);
@Test public void testCompositeComponentServices() throws Throwable { verifyService( CompositeComponentFactoryService.class, CompositeComponent.class, (prefix, index) -> { CompositeComponent compositeComp = new CompositeComponent(); compositeComp.name = prefix + "name" + index; compositeComp.compositeDescriptionLink = prefix + "link" + index; return compositeComp; }, (prefix, serviceDocument) -> { CompositeComponent contDesc = (CompositeComponent) serviceDocument; assertTrue(contDesc.name.startsWith(prefix + "name")); assertTrue(contDesc.compositeDescriptionLink.startsWith(prefix + "link")); }); }
private ContainerNetworkState createNetwork(String compositeComponentLink, boolean external) throws Throwable { ContainerNetworkState networkState = new ContainerNetworkState(); networkState.id = UUID.randomUUID().toString(); networkState.name = "name_" + networkState.id; networkState.compositeComponentLinks = new ArrayList<>(); networkState.compositeComponentLinks.add(compositeComponentLink); networkState.external = external; networkState = doPost(networkState, ContainerNetworkService.FACTORY_LINK); return networkState; }
private CompositeComponent createCompositeComponent() throws Throwable { compositeComponent = new CompositeComponent(); compositeComponent.name = "test-name"; compositeComponent = doPost(compositeComponent, CompositeComponentFactoryService.SELF_LINK); return compositeComponent; }
private ContainerVolumeState createVolume(String compositeComponentLink, boolean external) throws Throwable { ContainerVolumeState volumeState = new ContainerVolumeState(); volumeState.id = UUID.randomUUID().toString(); volumeState.name = "name_" + volumeState.id; volumeState.compositeComponentLinks = new ArrayList<>(); volumeState.compositeComponentLinks.add(compositeComponentLink); volumeState.external = external; volumeState = doPost(volumeState, ContainerVolumeService.FACTORY_LINK); return volumeState; } }