@Test(expected = IllegalArgumentException.class) public void testPutWithEmptyBody() throws Throwable { createContainerHostSpec(null); }
@Test public void testPutFromDifferentTenant() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); List<String> tenantLinksWithDifferentTenant = Arrays.asList( SECOND_TENANT_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinksWithDifferentTenant, SECOND_COMPUTE_DESC_ID); createContainerHostSpec(hostSpec); assertComputeStateExists(hostSpec); }
@Test public void testPutFromDifferentTenantSameUsers() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID, FIRST_USER_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); List<String> tenantLinksWithDifferentGroup = Arrays.asList( SECOND_TENANT_ID, FIRST_USER_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinksWithDifferentGroup, SECOND_COMPUTE_DESC_ID); createContainerHostSpec(hostSpec); assertComputeStateExists(hostSpec); }
@Test public void testPutFromSameTenantDifferentGroup() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID, FIRST_SUB_TENANT_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); List<String> tenantLinksWithDifferentGroup = Arrays.asList( FIRST_TENANT_ID, SECOND_SUB_TENANT_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinksWithDifferentGroup, SECOND_COMPUTE_DESC_ID); createContainerHostSpec(hostSpec); assertComputeStateExists(hostSpec); }
@Test public void testPutEmptyHostType() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinks, SECOND_COMPUTE_DESC_ID); hostSpec.hostState.customProperties.put(ContainerHostService.CONTAINER_HOST_TYPE_PROP_NAME, "invalid"); String errorMessage = String.format( ContainerHostUtil.CONTAINER_HOST_TYPE_NOT_SUPPORTED_MESSAGE_FORMAT, "invalid"); try { createContainerHostSpec(hostSpec); fail("Should've thrown LocalizableValidationException - " + errorMessage); } catch (LocalizableValidationException e) { assertEquals(errorMessage, e.getMessage()); } }
@Test public void testPutFromSameTenantDifferentUsers() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID, FIRST_USER_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); List<String> tenantLinksWithDifferentUser = Arrays.asList( FIRST_TENANT_ID, SECOND_USER_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinksWithDifferentUser, SECOND_COMPUTE_DESC_ID); createContainerHostSpec(hostSpec); assertComputeStateExists(hostSpec); }
@Test public void testPutFromSameTenantSameGroupDifferentUser() throws Throwable { ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); List<String> tenantLinksWithSecondTenant = Arrays.asList( FIRST_TENANT_ID, FIRST_SUB_TENANT_ID, SECOND_USER_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinksWithSecondTenant, SECOND_COMPUTE_DESC_ID); createContainerHostSpec(hostSpec); assertComputeStateExists(hostSpec); }
@Test public void testPutFromSameTenantDifferentGroupSameUser() throws Throwable { ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); List<String> tenantLinksWithSecondTenant = Arrays.asList( FIRST_TENANT_ID, SECOND_SUB_TENANT_ID, FIRST_USER_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinksWithSecondTenant, SECOND_COMPUTE_DESC_ID); createContainerHostSpec(hostSpec); assertComputeStateExists(hostSpec); }
@Test public void testPutAcceptCertificates() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); List<String> tenantLinksWithDifferentTenant = Arrays.asList( SECOND_TENANT_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinksWithDifferentTenant, SECOND_COMPUTE_DESC_ID); hostSpec.acceptHostAddress = true; hostSpec.acceptCertificate = true; createContainerHostSpec(hostSpec); assertComputeStateExists(hostSpec); }
@Test public void testUpdateFromSameTenant() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); cs = doPost(cs, ComputeService.FACTORY_LINK); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinks, FIRST_COMPUTE_DESC_ID); hostSpec.hostState.documentSelfLink = cs.documentSelfLink; String updatedHostName = "updated name"; hostSpec.hostState.name = updatedHostName; hostSpec.isUpdateOperation = true; createContainerHostSpec(hostSpec); ComputeState updatedHost = assertComputeStateExists(hostSpec); assertEquals(updatedHost.name, updatedHostName); }
@Test public void testPutFromSameTenantSameGroup() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID, FIRST_SUB_TENANT_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinks, SECOND_COMPUTE_DESC_ID); try { createContainerHostSpec(hostSpec); fail("Should've thrown IllegalArgumentException - " + ContainerHostService.CONTAINER_HOST_ALREADY_EXISTS_MESSAGE); } catch (LocalizableValidationException e) { assertNotNull(e); assertEquals(ContainerHostService.CONTAINER_HOST_ALREADY_EXISTS_MESSAGE, e.getMessage()); } }
@Test public void testPutFromSameTenantSameUser() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID, FIRST_USER_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinks, SECOND_COMPUTE_DESC_ID); try { createContainerHostSpec(hostSpec); fail("Should've thrown IllegalArgumentException - " + ContainerHostService.CONTAINER_HOST_ALREADY_EXISTS_MESSAGE); } catch (LocalizableValidationException e) { assertNotNull(e); assertEquals(ContainerHostService.CONTAINER_HOST_ALREADY_EXISTS_MESSAGE, e.getMessage()); } }
@Test public void testPutFromSameTenant() throws Throwable { List<String> tenantLinks = Arrays.asList( FIRST_TENANT_ID); ComputeState cs = createComputeHost(tenantLinks, FIRST_COMPUTE_DESC_ID); doPost(cs, ComputeService.FACTORY_LINK); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinks, SECOND_COMPUTE_DESC_ID); try { createContainerHostSpec(hostSpec); fail("Should've thrown IllegalArgumentException - " + ContainerHostService.CONTAINER_HOST_ALREADY_EXISTS_MESSAGE); } catch (LocalizableValidationException e) { assertNotNull(e); assertEquals(ContainerHostService.CONTAINER_HOST_ALREADY_EXISTS_MESSAGE, e.getMessage()); } }
@Test public void testExerciseExceptionOnSendAdapterRequest() throws Throwable { // 1. Shutdown host-docker-service TestContext ctx = testCreate(1); Operation deleteOp = Operation.createDelete( UriUtils.buildUri(host, ManagementUriParts.ADAPTER_DOCKER_HOST)) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_NO_INDEX_UPDATE) .setReplicationDisabled(true) .setCompletion(ctx.getCompletion()) .setReferer(host.getUri()); host.send(deleteOp); ctx.await(); // 2. Create Container Host Spec. List<String> tenantLinks = Arrays.asList(FIRST_TENANT_ID); ContainerHostSpec hostSpec = createContainerHostSpec(tenantLinks, FIRST_COMPUTE_DESC_ID); // 3. Try to create Container Host with Adapter Docker Host service stopped. try { createContainerHostSpec(hostSpec); fail("Should have thrown an exception since the service is stopped."); } catch (LocalizableValidationException e) { assertNotNull(e); } }