@Test public void testBadAuthLink() throws Throwable { SshCommandTaskService.SshCommandTaskState startState = new SshCommandTaskService.SshCommandTaskState(); startState.isMockRequest = true; startState.host = "localhost"; startState.authCredentialLink = "http://localhost/badAuthLink"; startState.commands = new ArrayList<>(); startState.commands.add("ls"); startState.commands.add("pwd"); SshCommandTaskService.SshCommandTaskState returnState = postServiceSynchronously( SshCommandTaskService.FACTORY_LINK, startState, SshCommandTaskService.SshCommandTaskState.class); SshCommandTaskService.SshCommandTaskState completeState = waitForServiceState( SshCommandTaskService.SshCommandTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FAILED)); } }
@Test public void testNoDiskOrNetwork() throws Throwable { String resourcePool = UUID.randomUUID().toString(); createParentCompute(this, resourcePool); ComputeDescriptionService.ComputeDescription cd = createComputeDescription( this, MockAdapter.MockSuccessInstanceAdapter.SELF_LINK, MockAdapter.MockSuccessBootAdapter.SELF_LINK, null, null); ResourceAllocationTaskState startState = createAllocationRequest( resourcePool, cd.documentSelfLink); ResourceAllocationTaskState returnState = this .postServiceSynchronously( ResourceAllocationTaskService.FACTORY_LINK, startState, ResourceAllocationTaskState.class); ResourceAllocationTaskState completeState = this .waitForServiceState( ResourceAllocationTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FINISHED)); }
@Test public void testNoDisk() throws Throwable { String resourcePool = UUID.randomUUID().toString(); createParentCompute(this, resourcePool); ComputeDescriptionService.ComputeDescription cd = createComputeDescription( this, MockAdapter.MockSuccessInstanceAdapter.SELF_LINK, MockAdapter.MockSuccessBootAdapter.SELF_LINK, createNetworkDescription(this), null); ResourceAllocationTaskState startState = createAllocationRequest( resourcePool, cd.documentSelfLink); ResourceAllocationTaskState returnState = this .postServiceSynchronously( ResourceAllocationTaskService.FACTORY_LINK, startState, ResourceAllocationTaskState.class); ResourceAllocationTaskState completeState = this .waitForServiceState( ResourceAllocationTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FINISHED)); }
@Test public void testCreateHostFailure() throws Throwable { ComputeService.ComputeStateWithDescription cs = ModelUtils .createComputeWithDescription(this, MockAdapter.MockFailureInstanceAdapter.SELF_LINK, null); ProvisionComputeTaskService.ProvisionComputeTaskState startState = new ProvisionComputeTaskService.ProvisionComputeTaskState(); startState.computeLink = cs.documentSelfLink; startState.taskSubStage = ProvisionComputeTaskService.ProvisionComputeTaskState.SubStage.CREATING_HOST; startState.isMockRequest = true; ProvisionComputeTaskService.ProvisionComputeTaskState returnState = postServiceSynchronously( ProvisionComputeTaskService.FACTORY_LINK, startState, ProvisionComputeTaskService.ProvisionComputeTaskState.class); ProvisionComputeTaskService.ProvisionComputeTaskState completeState = waitForServiceState( ProvisionComputeTaskService.ProvisionComputeTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FAILED)); }
@Test public void testMissingEnumerationAdapterReferencesSuccess() throws Throwable { ComputeDescriptionService.ComputeDescription cd = ComputeDescriptionServiceTest .buildValidStartState(); cd.enumerationAdapterReference = null; cd = this.postServiceSynchronously( ComputeDescriptionService.FACTORY_LINK, cd, ComputeDescriptionService.ComputeDescription.class); ComputeService.ComputeStateWithDescription computeHost = createCompute( this, cd); ResourceEnumerationTaskState enumState = buildValidStartState(computeHost); ResourceEnumerationTaskService.ResourceEnumerationTaskState startState = this .postServiceSynchronously( ResourceEnumerationTaskService.FACTORY_LINK, enumState, ResourceEnumerationTaskService.ResourceEnumerationTaskState.class); ResourceEnumerationTaskService.ResourceEnumerationTaskState newState = this .waitForServiceState( ResourceEnumerationTaskService.ResourceEnumerationTaskState.class, startState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(newState.taskInfo.stage, is(TaskState.TaskStage.FINISHED)); }
@Test public void testFailedCommand() throws Throwable { String authLink = createAuth(this, this.username, this.privateKey); SshCommandTaskService.SshCommandTaskState startState = new SshCommandTaskService.SshCommandTaskState(); startState.host = this.hostname; startState.authCredentialLink = authLink; startState.commands = new ArrayList<>(); startState.commands.add("test"); // this command fails (return // non-zero) startState.commands.add("pwd"); SshCommandTaskService.SshCommandTaskState returnState = this .postServiceSynchronously( SshCommandTaskService.FACTORY_LINK, startState, SshCommandTaskService.SshCommandTaskState.class); SshCommandTaskService.SshCommandTaskState completeState = this .waitForServiceState( SshCommandTaskService.SshCommandTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FAILED)); } }
@Test public void testFailure() throws Throwable { ComputeDescriptionService.ComputeDescription cd = createComputeDescription( this, MockAdapter.MockFailureEnumerationAdapter.SELF_LINK); ComputeService.ComputeStateWithDescription computeHost = createCompute( this, cd); ResourceEnumerationTaskService.ResourceEnumerationTaskState startState = this .postServiceSynchronously( ResourceEnumerationTaskService.FACTORY_LINK, buildValidStartState(computeHost), ResourceEnumerationTaskService.ResourceEnumerationTaskState.class); ResourceEnumerationTaskService.ResourceEnumerationTaskState newState = this .waitForServiceState( ResourceEnumerationTaskService.ResourceEnumerationTaskState.class, startState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(newState.taskInfo.stage, is(TaskState.TaskStage.FAILED)); } }
@Test public void testHandleNPE() throws Throwable { EndpointState endpoint = new EndpointState(); endpoint.endpointType = "endpointType"; EndpointAllocationTaskState startState = new EndpointAllocationTaskState(); startState.endpointState = endpoint; startState.adapterReference = UriUtils.buildUri(getHost(), MockFailNPEEndpointAdapter.SELF_LINK); EndpointAllocationTaskState returnState = this .postServiceSynchronously( EndpointAllocationTaskService.FACTORY_LINK, startState, EndpointAllocationTaskState.class); EndpointAllocationTaskState completeState = this .waitForServiceState( EndpointAllocationTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskStage.FAILED)); }
@Test public void testValidateComputeHost() throws Throwable { ComputeService.ComputeStateWithDescription cs = ModelUtils .createComputeWithDescription(this); ProvisionComputeTaskService.ProvisionComputeTaskState startState = new ProvisionComputeTaskService.ProvisionComputeTaskState(); startState.computeLink = cs.documentSelfLink; startState.taskSubStage = ProvisionComputeTaskService.ProvisionComputeTaskState.SubStage.VALIDATE_COMPUTE_HOST; startState.isMockRequest = true; ProvisionComputeTaskService.ProvisionComputeTaskState returnState = postServiceSynchronously( ProvisionComputeTaskService.FACTORY_LINK, startState, ProvisionComputeTaskService.ProvisionComputeTaskState.class); ProvisionComputeTaskService.ProvisionComputeTaskState completeState = waitForServiceState( ProvisionComputeTaskService.ProvisionComputeTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FINISHED)); }
@Test public void testNoTenantLinks_neg() throws Throwable { EndpointState endpoint = createEndpointState(); endpoint.tenantLinks = null; EndpointAllocationTaskState startState = createEndpointAllocationRequest(endpoint); startState.adapterReference = UriUtils.buildUri(getHost(), MockSuccessEndpointAdapter.SELF_LINK); EndpointAllocationTaskState returnState = this .postServiceSynchronously( EndpointAllocationTaskService.FACTORY_LINK, startState, EndpointAllocationTaskState.class); EndpointAllocationTaskState completeState = this .waitForServiceState( EndpointAllocationTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskStage.FAILED)); assertEquals(MockSuccessEndpointAdapter.ERROR_NO_TENANTS, completeState.taskInfo.failure.message); } }
@Test public void testCreateAndBootHostSuccess() throws Throwable { ComputeService.ComputeStateWithDescription cs = ModelUtils .createComputeWithDescription(this, MockAdapter.MockSuccessInstanceAdapter.SELF_LINK, MockAdapter.MockSuccessBootAdapter.SELF_LINK); ProvisionComputeTaskService.ProvisionComputeTaskState startState = new ProvisionComputeTaskService.ProvisionComputeTaskState(); startState.computeLink = cs.documentSelfLink; startState.taskSubStage = ProvisionComputeTaskService.ProvisionComputeTaskState.SubStage.CREATING_HOST; startState.isMockRequest = true; ProvisionComputeTaskService.ProvisionComputeTaskState returnState = postServiceSynchronously( ProvisionComputeTaskService.FACTORY_LINK, startState, ProvisionComputeTaskService.ProvisionComputeTaskState.class); ProvisionComputeTaskService.ProvisionComputeTaskState completeState = waitForServiceState( ProvisionComputeTaskService.ProvisionComputeTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FINISHED)); }
@Test public void testPreserveMissingIsPassedSuccess() throws Throwable { ComputeDescriptionService.ComputeDescription cd = createComputeDescription( this, MockAdapter.MockPreserveMissingEnumerationAdapter.SELF_LINK); ComputeService.ComputeStateWithDescription computeHost = createCompute( this, cd); ResourceEnumerationTaskState enumState = buildValidStartState(computeHost); enumState.options = EnumSet.of(TaskOption.PRESERVE_MISSING_RESOUCES); ResourceEnumerationTaskService.ResourceEnumerationTaskState startState = this .postServiceSynchronously( ResourceEnumerationTaskService.FACTORY_LINK, enumState, ResourceEnumerationTaskService.ResourceEnumerationTaskState.class); ResourceEnumerationTaskService.ResourceEnumerationTaskState newState = this .waitForServiceState( ResourceEnumerationTaskService.ResourceEnumerationTaskState.class, startState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(newState.taskInfo.stage, is(TaskState.TaskStage.FINISHED)); }
@Test public void testFailOnMissingEndpointToDelete() throws Throwable { EndpointState endpoint = createEndpointState(); endpoint.documentSelfLink = UriUtils.buildUriPath(EndpointService.FACTORY_LINK, "fake-endpoint"); EndpointRemovalTaskState removalTaskState = createEndpointRemovalTaskState(endpoint); EndpointRemovalTaskState returnState = this .postServiceSynchronously( EndpointRemovalTaskService.FACTORY_LINK, removalTaskState, EndpointRemovalTaskState.class); EndpointRemovalTaskState completeState = this .waitForServiceState( EndpointRemovalTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FAILED.ordinal() <= state.taskInfo.stage .ordinal()); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FAILED)); } }
private static ProvisionNetworkTaskService.ProvisionNetworkTaskState postAndWaitForService( BaseModelTest test, ProvisionNetworkTaskService.ProvisionNetworkTaskState startState) throws Throwable { ProvisionNetworkTaskService.ProvisionNetworkTaskState returnState = test .postServiceSynchronously( ProvisionNetworkTaskService.FACTORY_LINK, startState, ProvisionNetworkTaskService.ProvisionNetworkTaskState.class); ProvisionNetworkTaskService.ProvisionNetworkTaskState completeState = test .waitForServiceState( ProvisionNetworkTaskService.ProvisionNetworkTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); return completeState; }
private static ProvisionSecurityGroupTaskState postAndWaitForService( BaseModelTest test, ProvisionSecurityGroupTaskState startState) throws Throwable { ProvisionSecurityGroupTaskState returnState = test .postServiceSynchronously( ProvisionSecurityGroupTaskService.FACTORY_LINK, startState, ProvisionSecurityGroupTaskState.class); ProvisionSecurityGroupTaskState completeState = test .waitForServiceState( ProvisionSecurityGroupTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); return completeState; }
private IPAddressAllocationTaskState performTask( IPAddressAllocationTaskState allocationTask) { try { IPAddressAllocationTaskState taskState = postServiceSynchronously( IPAddressAllocationTaskService.FACTORY_LINK, allocationTask, IPAddressAllocationTaskState.class); taskState = waitForServiceState( IPAddressAllocationTaskState.class, taskState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertTrue(taskState.taskInfo.stage == TaskState.TaskStage.FINISHED); return taskState; } catch (Throwable throwable) { fail(throwable.getMessage()); return null; } }
private static ProvisionSubnetTaskState postAndWaitForService( BaseModelTest test, ProvisionSubnetTaskState startState) throws Throwable { ProvisionSubnetTaskState returnState = test .postServiceSynchronously( ProvisionSubnetTaskService.FACTORY_LINK, startState, ProvisionSubnetTaskState.class); ProvisionSubnetTaskState completeState = test .waitForServiceState( ProvisionSubnetTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); return completeState; }
private static ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState postAndWaitForService( BaseModelTest test, ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState startState) throws Throwable { ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState returnState = test .postServiceSynchronously( ProvisionLoadBalancerTaskService.FACTORY_LINK, startState, ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState.class); ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState completeState = test .waitForServiceState( ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); return completeState; }
private static NicSecurityGroupsTaskState postAndWaitForService( BaseModelTest test, NicSecurityGroupsTaskState startState) throws Throwable { NicSecurityGroupsTaskState returnState = test .postServiceSynchronously( NicSecurityGroupsTaskService.FACTORY_LINK, startState, NicSecurityGroupsTaskState.class); NicSecurityGroupsTaskState completeState = test .waitForServiceState( NicSecurityGroupsTaskState.class, returnState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); return completeState; }
private void performTaskExpectFailure(IPAddressAllocationTaskState allocationTask, String message) { try { IPAddressAllocationTaskState taskState = postServiceSynchronously( IPAddressAllocationTaskService.FACTORY_LINK, allocationTask, IPAddressAllocationTaskState.class); taskState = waitForServiceState( IPAddressAllocationTaskState.class, taskState.documentSelfLink, state -> TaskState.TaskStage.FINISHED.ordinal() <= state.taskInfo.stage .ordinal()); assertTrue(message, taskState.taskInfo.stage == TaskState.TaskStage.FAILED); } catch (Throwable throwable) { fail(throwable.getMessage()); } }