private void sendSelfPatch(TaskState.TaskStage stage, Throwable e) { ProvisionLoadBalancerTaskState body = new ProvisionLoadBalancerTaskState(); body.taskInfo = new TaskState(); if (e == null) { body.taskInfo.stage = stage; } else { body.taskInfo.stage = TaskState.TaskStage.FAILED; body.taskInfo.failure = Utils.toServiceErrorResponse(e); logWarning(() -> String.format("Patching to failed: %s", Utils.toString(e))); } sendSelfPatch(body); } }
@Override public void handleRequest(Operation op) { if (!op.hasBody()) { op.fail(new IllegalArgumentException("body is required")); return; } switch (op.getAction()) { case PATCH: LoadBalancerInstanceRequest request = op .getBody(LoadBalancerInstanceRequest.class); ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState provisionLoadBalancerTaskState = new ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState(); provisionLoadBalancerTaskState.taskInfo = new TaskState(); provisionLoadBalancerTaskState.taskInfo.stage = TaskState.TaskStage.FINISHED; sendRequest(Operation.createPatch( request.taskReference).setBody( provisionLoadBalancerTaskState)); op.complete(); break; default: super.handleRequest(op); } } }
private static ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState buildValidStartState( BaseModelTest test, LoadBalancerInstanceRequest.InstanceRequestType requestType, boolean success) throws Throwable { LoadBalancerState state = LoadBalancerServiceTest.buildValidStartState(); if (success) { state.instanceAdapterReference = UriUtils.buildUri(test.getHost(), MockAdapter.MockLoadBalancerInstanceSuccessAdapter.SELF_LINK); } else { state.instanceAdapterReference = UriUtils.buildUri(test.getHost(), MockAdapter.MockLoadBalancerInstanceFailureAdapter.SELF_LINK); } LoadBalancerState returnState = test.postServiceSynchronously( LoadBalancerService.FACTORY_LINK, state, LoadBalancerState.class); ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState startState = new ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState(); startState.requestType = requestType; startState.loadBalancerLink = returnState.documentSelfLink; startState.isMockRequest = true; return startState; }
@Override public void handleRequest(Operation op) { if (!op.hasBody()) { op.fail(new IllegalArgumentException("body is required")); return; } switch (op.getAction()) { case PATCH: LoadBalancerInstanceRequest request = op .getBody(LoadBalancerInstanceRequest.class); ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState provisionLoadBalancerTaskState = new ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState(); provisionLoadBalancerTaskState.taskInfo = createFailedTaskInfo(); sendRequest(Operation.createPatch( request.taskReference).setBody( provisionLoadBalancerTaskState)); op.complete(); break; default: super.handleRequest(op); } } }
@Override public void handleStart(Operation start) { if (!start.hasBody()) { start.fail(new IllegalArgumentException("body is required")); return; } ProvisionLoadBalancerTaskState state = start .getBody(ProvisionLoadBalancerTaskState.class); try { state.validate(); } catch (Exception e) { start.fail(e); } state.taskInfo = new TaskState(); state.taskInfo.stage = TaskState.TaskStage.CREATED; state.taskSubStage = SubStage.CREATED; start.complete(); // start the task sendSelfPatch(TaskState.TaskStage.CREATED, null); }
@Override public void handleStart(Operation start) { if (!start.hasBody()) { start.fail(new IllegalArgumentException("body is required")); return; } ProvisionLoadBalancerTaskState state = start .getBody(ProvisionLoadBalancerTaskState.class); try { state.validate(); } catch (Exception e) { start.fail(e); } state.taskInfo = new TaskState(); state.taskInfo.stage = TaskState.TaskStage.CREATED; state.taskSubStage = SubStage.CREATED; start.complete(); // start the task sendSelfPatch(TaskState.TaskStage.CREATED, null); }
private void sendSelfPatch(TaskState.TaskStage stage, Throwable e) { ProvisionLoadBalancerTaskState body = new ProvisionLoadBalancerTaskState(); body.taskInfo = new TaskState(); if (e == null) { body.taskInfo.stage = stage; } else { body.taskInfo.stage = TaskState.TaskStage.FAILED; body.taskInfo.failure = Utils.toServiceErrorResponse(e); logWarning(() -> String.format("Patching to failed: %s", Utils.toString(e))); } sendSelfPatch(body); } }
@Test public void testDeletionOfMissingLoadBalancer() throws Throwable { ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState startState = new ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState(); startState.requestType = LoadBalancerInstanceRequest.InstanceRequestType.DELETE; startState.loadBalancerLink = "dummyLbLink"; startState.isMockRequest = true; ProvisionLoadBalancerTaskService.ProvisionLoadBalancerTaskState completeState = postAndWaitForService(this, startState); assertThat(completeState.taskInfo.stage, is(TaskState.TaskStage.FINISHED)); } }