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)); }
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)); }
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 disableContainerHosts(ContainerHostRemovalTaskState state, String subTaskLink) { if (subTaskLink == null) { CounterSubTaskState subTaskInitState = new CounterSubTaskState(); subTaskInitState.completionsRemaining = state.resourceLinks.size(); subTaskInitState.documentExpirationTimeMicros = ServiceUtils
protected void completeSubTasksCounter(String subTaskLink, Throwable ex) { CounterSubTaskState body = new CounterSubTaskState(); body.taskInfo = new TaskState(); if (ex == null) { body.taskInfo.stage = TaskStage.FINISHED; } else { body.taskInfo.stage = TaskStage.FAILED; body.taskInfo.failure = Utils.toServiceErrorResponse(ex); } sendRequest(Operation.createPatch(this, subTaskLink) .setBody(body) .addPragmaDirective(Operation.PRAGMA_DIRECTIVE_QUEUE_FOR_SERVICE_AVAILABILITY) .setCompletion((o, e) -> { if (e != null) { failTask("Notifying counting task failed: %s", e); } })); }
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); }