private void createDeleteResourceCounterSubTask(ContainerVolumeRemovalTaskState state, Collection<String> resourceLinks) { CounterSubTaskState subTaskInitState = new CounterSubTaskState(); subTaskInitState.completionsRemaining = resourceLinks.size(); subTaskInitState.documentExpirationTimeMicros = ServiceUtils .getDefaultTaskExpirationTimeInMicros(); subTaskInitState.serviceTaskCallback = ServiceTaskCallback.create( state.documentSelfLink, TaskStage.STARTED, SubStage.INSTANCES_REMOVED, TaskStage.STARTED, state.cleanupRemoval ? SubStage.INSTANCES_REMOVED : SubStage.ERROR); CounterSubTaskService.createSubTask(this, subTaskInitState, (subTaskLink) -> deleteResourceInstances(state, resourceLinks, subTaskLink)); }
@Override public void handleCreate(Operation post) { super.handleCreate(post); logInfo("CounterSubTask created."); }
@Override public void handlePatch(Operation patch) { CounterSubTaskState patchBody = patch.getBody(CounterSubTaskState.class); CounterSubTaskState currentState = getState(patch); if (patchBody.taskInfo == null || patchBody.taskInfo.stage == null) { String error = "taskInfo, taskInfo.stage are required"; logWarning(error); patch.fail(new IllegalArgumentException(error)); return; logWarning("Already completed. Ignoring patch from %s", patch.getReferer()); patch.complete(); return; logWarning("Notifying parent of task failure from stage %s. Error: %s", patchBody.taskInfo.stage, patchBody.taskInfo.failure == null ? "n.a." : patchBody.taskInfo.failure.message); logInfo("ignoring patch from %s", patch.getReferer()); patch.complete(); return; logInfo("Remaining %d", currentState.completionsRemaining); return; logInfo("Task completing with count [%d]", currentState.finishedCount); try { sendRequest(Operation.createPatch(this, currentState.serviceTaskCallback.serviceSelfLink) .setBody(responseBody)
private void createDeleteResourceCounterSubTask(ContainerRemovalTaskState state, Collection<String> resourceLinks) { CounterSubTaskState subTaskInitState = new CounterSubTaskState(); subTaskInitState.completionsRemaining = resourceLinks.size(); subTaskInitState.documentExpirationTimeMicros = ServiceUtils .getDefaultTaskExpirationTimeInMicros(); subTaskInitState.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.INSTANCES_REMOVED, TaskStage.STARTED, SubStage.ERROR); CounterSubTaskService.createSubTask(this, subTaskInitState, (subTaskLink) -> deleteResourceInstances(state, resourceLinks, subTaskLink)); }
private void createDeleteResourceCounterSubTask(ContainerNetworkRemovalTaskState state, Collection<String> resourceLinks) { CounterSubTaskState subTaskInitState = new CounterSubTaskState(); subTaskInitState.completionsRemaining = resourceLinks.size(); subTaskInitState.documentExpirationTimeMicros = ServiceUtils .getDefaultTaskExpirationTimeInMicros(); subTaskInitState.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.INSTANCES_REMOVED, TaskStage.STARTED, state.cleanupRemoval ? SubStage.INSTANCES_REMOVED : SubStage.ERROR); CounterSubTaskService.createSubTask(this, subTaskInitState, (subTaskLink) -> deleteResourceInstances(state, resourceLinks, subTaskLink)); }
protected void createCounterSubTask(T state, long count, Enum<?> substageComplete, Consumer<String> callbackFunction) { CounterSubTaskState subTaskInitState = new CounterSubTaskState(); subTaskInitState.completionsRemaining = count; subTaskInitState.documentExpirationTimeMicros = ServiceUtils .getDefaultTaskExpirationTimeInMicros(); subTaskInitState.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, substageComplete, TaskStage.STARTED, DefaultSubStage.ERROR); CounterSubTaskService.createSubTask(this, subTaskInitState, callbackFunction); }
TaskStage.STARTED, SubStage.ERROR); CounterSubTaskService.createSubTask(this, subTaskInitState, (link) -> disableContainerHosts(state, link)); return;