private void createPKSClusterResizeOperation(RequestBrokerState state) { String link = buildUriPath(PKSClusterResizeTaskService.FACTORY_LINK, getSelfId()); createNewIfNotExist(link, () -> { PKSClusterResizeTaskState task = new PKSClusterResizeTaskState(); task.documentSelfLink = getSelfId(); task.serviceTaskCallback = ServiceTaskCallback.create( state.documentSelfLink, TaskStage.STARTED, SubStage.COMPLETED, TaskStage.STARTED, SubStage.REQUEST_FAILED); task.customProperties = state.customProperties; task.resourceLink = state.resourceLinks.iterator().next(); task.tenantLinks = state.tenantLinks; task.requestTrackerLink = state.requestTrackerLink; // calculate task expiration to be shortly before parent task expiration task.documentExpirationTimeMicros = calculatePKSTaskExpirationTime(state); sendRequest(Operation .createPost(this, PKSClusterResizeTaskService.FACTORY_LINK) .setBodyNoCloning(task) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure in creating PKS resource resize task", e); return; } })); }); }
TaskStage.STARTED, errorState ? SubStage.ERROR : SubStage.ALLOCATED, TaskStage.FAILED, SubStage.ERROR); removalState.documentSelfLink = getSelfId(); removalState.requestTrackerLink = state.requestTrackerLink; Operation post = Operation.createPost(this, ClosureRemovalTaskFactoryService.SELF_LINK) .setBodyNoCloning(removalState) .setContextId(getSelfId()) .setCompletion((o, ex) -> { if (ex != null) {
TaskStage.STARTED, errorState ? SubStage.ERROR : SubStage.ALLOCATED, TaskStage.FAILED, SubStage.ERROR); removalState.documentSelfLink = getSelfId(); removalState.requestTrackerLink = state.requestTrackerLink; Operation post = Operation.createPost(this, ContainerRemovalTaskFactoryService.SELF_LINK) .setBodyNoCloning(removalState) .setContextId(getSelfId()) .setCompletion((o, ex) -> { if (ex != null) {
private void createClosureProvisionTask(RequestBrokerState state) { ClosureProvisionTaskState allocationTask = new ClosureProvisionTaskState(); allocationTask.documentSelfLink = getSelfId(); allocationTask.serviceTaskCallback = ServiceTaskCallback.create( state.documentSelfLink, TaskStage.STARTED, SubStage.COMPLETED, TaskStage.STARTED, SubStage.REQUEST_FAILED); allocationTask.customProperties = state.customProperties; allocationTask.resourceDescriptionLink = state.resourceDescriptionLink; allocationTask.resourceLinks = state.resourceLinks; allocationTask.tenantLinks = state.tenantLinks; allocationTask.requestTrackerLink = state.requestTrackerLink; sendRequest(Operation .createPost(this, ClosureProvisionTaskService.FACTORY_LINK) .setBodyNoCloning(allocationTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating resource provisioning task", e); return; } })); }
String link = buildUriPath(PKSClusterRemovalTaskService.FACTORY_LINK, getSelfId()); createNewIfNotExist(link, () -> { PKSClusterRemovalTaskState task = new PKSClusterRemovalTaskState(); task.documentSelfLink = getSelfId(); task.serviceTaskCallback = ServiceTaskCallback.create(state.documentSelfLink, TaskStage.STARTED, errorState ? SubStage.ERROR : SubStage.COMPLETED, .createPost(this, PKSClusterRemovalTaskService.FACTORY_LINK) .setBodyNoCloning(task) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) {
private void createPKSClusterProvisioningTask(RequestBrokerState state) { String link = buildUriPath(PKSClusterProvisioningTaskService.FACTORY_LINK, getSelfId()); createNewIfNotExist(link, () -> { PKSProvisioningTaskState task = new PKSProvisioningTaskState(); task.documentSelfLink = getSelfId(); task.serviceTaskCallback = ServiceTaskCallback.create( state.documentSelfLink, TaskStage.STARTED, SubStage.COMPLETED, TaskStage.STARTED, SubStage.REQUEST_FAILED); task.customProperties = state.customProperties; task.preferMasterIP = Boolean.parseBoolean(task .removeCustomProperty(PKSConstants.PKS_PREFER_MASTER_IP_PROP_NAME)); task.endpointLink = state.getCustomProperty(PKSConstants.PKS_ENDPOINT_PROP_NAME); task.tenantLinks = state.tenantLinks; task.requestTrackerLink = state.requestTrackerLink; // calculate task expiration to be shortly before parent task expiration task.documentExpirationTimeMicros = calculatePKSTaskExpirationTime(state); sendRequest(Operation .createPost(this, PKSClusterProvisioningTaskService.FACTORY_LINK) .setBodyNoCloning(task) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure in creating PKS resource provision task", e); return; } })); }); }
private void createClosureAllocationTask(RequestBrokerState state) { ClosureAllocationTaskState allocationTask = new ClosureAllocationTaskState(); allocationTask.documentSelfLink = getSelfId(); allocationTask.serviceTaskCallback = ServiceTaskCallback.create( state.documentSelfLink, TaskStage.STARTED, SubStage.ALLOCATED, TaskStage.STARTED, SubStage.REQUEST_FAILED); allocationTask.customProperties = state.customProperties; allocationTask.resourceDescriptionLink = state.resourceDescriptionLink; allocationTask.resourceLinks = state.resourceLinks; allocationTask.tenantLinks = state.tenantLinks; allocationTask.requestTrackerLink = state.requestTrackerLink; sendRequest(Operation .createPost(this, ClosureAllocationTaskService.FACTORY_LINK) .setBodyNoCloning(allocationTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating resource allocation task", e); return; } proceedTo(SubStage.ALLOCATING); })); }
private void createContainerNetworkProvisioningTask(RequestBrokerState state) { // 2. provision the network ContainerNetworkProvisionTaskState provisionTask = new ContainerNetworkProvisionTaskState(); provisionTask.documentSelfLink = getSelfId(); provisionTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.COMPLETED, TaskStage.STARTED, SubStage.REQUEST_FAILED); provisionTask.customProperties = state.customProperties; provisionTask.tenantLinks = state.tenantLinks; provisionTask.requestTrackerLink = state.requestTrackerLink; provisionTask.resourceLinks = state.resourceLinks; provisionTask.resourceDescriptionLink = state.resourceDescriptionLink; sendRequest(Operation .createPost(this, ContainerNetworkProvisionTaskService.FACTORY_LINK) .setBodyNoCloning(provisionTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating resource provision task", e); return; } })); }
private void createContainerVolumeProvisioningTask(RequestBrokerState state) { ContainerVolumeProvisionTaskState provisionTask = new ContainerVolumeProvisionTaskState(); provisionTask.documentSelfLink = getSelfId(); provisionTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.COMPLETED, TaskStage.STARTED, SubStage.REQUEST_FAILED); provisionTask.customProperties = state.customProperties; provisionTask.tenantLinks = state.tenantLinks; provisionTask.requestTrackerLink = state.requestTrackerLink; provisionTask.resourceType = state.resourceType; provisionTask.resourceLinks = state.resourceLinks; provisionTask.resourceDescriptionLink = state.resourceDescriptionLink; sendRequest(Operation .createPost(this, ContainerVolumeProvisionTaskService.FACTORY_LINK) .setBodyNoCloning(provisionTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating resource provision task", e); return; } })); }
private void createContainerOperationTasks(RequestBrokerState state) { ContainerOperationTaskState operationState = new ContainerOperationTaskState(); operationState.resourceLinks = state.resourceLinks; operationState.serviceTaskCallback = ServiceTaskCallback.create(getSelfLink(), TaskStage.STARTED, SubStage.ALLOCATED, TaskStage.FAILED, SubStage.ERROR); operationState.operation = state.operation; operationState.documentSelfLink = getSelfId(); operationState.customProperties = state.customProperties; operationState.requestTrackerLink = state.requestTrackerLink; sendRequest(Operation.createPost(this, ContainerOperationTaskFactoryService.SELF_LINK) .setBodyNoCloning(operationState) .setContextId(getSelfId()) .setCompletion((o, ex) -> { if (ex != null) { failTask("Failed to create container operation task", ex); } proceedTo(SubStage.ALLOCATING); })); }
private void doCreateReservationTasks(RequestBrokerState state, ContainerDescription containerDescription) { ReservationTaskState rsrvTask = new ReservationTaskState(); rsrvTask.documentSelfLink = getSelfId(); rsrvTask.serviceTaskCallback = ServiceTaskCallback.create(getSelfLink(), TaskStage.STARTED, SubStage.RESERVED, TaskStage.STARTED, SubStage.ERROR); rsrvTask.resourceCount = state.actualResourceCount; rsrvTask.tenantLinks = state.tenantLinks; rsrvTask.resourceType = state.resourceType; rsrvTask.resourceDescriptionLink = state.resourceDescriptionLink; rsrvTask.customProperties = mergeCustomProperties( state.customProperties, containerDescription.customProperties); rsrvTask.requestTrackerLink = state.requestTrackerLink; if (state.groupResourcePlacementLink != null) { rsrvTask.groupResourcePlacementLink = state.groupResourcePlacementLink; rsrvTask.taskSubStage = ReservationTaskState.SubStage.RESERVATION_SELECTED; rsrvTask.resourcePoolsPerGroupPlacementLinks = new LinkedHashMap<>(0); } sendRequest(Operation.createPost(this, ReservationTaskFactoryService.SELF_LINK) .setBodyNoCloning(rsrvTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating reservation task", e); return; } proceedTo(SubStage.RESERVING); })); }
private void createComputeRemovalTask(RequestBrokerState state, boolean skipReleaseResourceQuota) { boolean errorState = state.taskSubStage == SubStage.REQUEST_FAILED || state.taskSubStage == SubStage.RESERVATION_CLEANED_UP; if (state.resourceLinks == null || state.resourceLinks.isEmpty()) { proceedTo(errorState ? SubStage.ERROR : SubStage.ALLOCATED); return; } ComputeRemovalTaskState computeRemovalState = new ComputeRemovalTaskState(); computeRemovalState.resourceLinks = state.resourceLinks; computeRemovalState.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, errorState ? SubStage.ERROR : SubStage.ALLOCATED, TaskStage.FAILED, SubStage.ERROR); computeRemovalState.documentSelfLink = getSelfId(); computeRemovalState.tenantLinks = state.tenantLinks; computeRemovalState.customProperties = state.customProperties; computeRemovalState.skipReleaseResourceQuota = skipReleaseResourceQuota; computeRemovalState.requestTrackerLink = state.requestTrackerLink; sendRequest(Operation.createPost(this, ComputeRemovalTaskService.FACTORY_LINK) .setBodyNoCloning(computeRemovalState) .setContextId(getSelfId()) .setCompletion((o, ex) -> { if (ex != null) { failRequest(state, "Failed to create compute removal operation task", ex); return; } proceedTo(SubStage.ALLOCATING); })); }
private void createContainerNetworkAllocationTask(RequestBrokerState state) { // 1. allocate the network ContainerNetworkAllocationTaskState allocationTask = new ContainerNetworkAllocationTaskState(); allocationTask.documentSelfLink = getSelfId(); allocationTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.ALLOCATED, TaskStage.STARTED, SubStage.ERROR); allocationTask.customProperties = state.customProperties; allocationTask.resourceDescriptionLink = state.resourceDescriptionLink; allocationTask.tenantLinks = state.tenantLinks; allocationTask.requestTrackerLink = state.requestTrackerLink; allocationTask.resourceLinks = state.resourceLinks; allocationTask.resourceCount = state.actualResourceCount; sendRequest(Operation .createPost(this, ContainerNetworkAllocationTaskService.FACTORY_LINK) .setBodyNoCloning(allocationTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating resource allocation task", e); return; } proceedTo(SubStage.ALLOCATING); })); }
private void createReservationRemovalTask(RequestBrokerState state) { if (state.groupResourcePlacementLink == null || state.groupResourcePlacementLink.isEmpty()) { proceedTo(SubStage.RESERVATION_CLEANED_UP); return; } ReservationRemovalTaskState rsrvTask = new ReservationRemovalTaskState(); rsrvTask.documentSelfLink = getSelfId(); rsrvTask.serviceTaskCallback = ServiceTaskCallback.create(getSelfLink(), TaskStage.STARTED, SubStage.RESERVATION_CLEANED_UP, TaskStage.FAILED, SubStage.ERROR); rsrvTask.resourceCount = state.actualResourceCount; rsrvTask.resourceDescriptionLink = state.resourceDescriptionLink; rsrvTask.groupResourcePlacementLink = state.groupResourcePlacementLink; rsrvTask.requestTrackerLink = state.requestTrackerLink; rsrvTask.tenantLinks = state.tenantLinks; sendRequest(Operation.createPost(this, ReservationRemovalTaskFactoryService.SELF_LINK) .setBodyNoCloning(rsrvTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { logSevere("Reservations can't be cleaned up. Error: %s", Utils.toString(e)); } proceedTo(SubStage.RESERVATION_CLEANUP); })); }
private void createCompositeComponentRemovalTask(RequestBrokerState state) { if (state.resourceLinks == null) { proceedTo(SubStage.ERROR); return; } CompositeComponentRemovalTaskState removalState = new CompositeComponentRemovalTaskState(); removalState.resourceLinks = state.resourceLinks; removalState.serviceTaskCallback = ServiceTaskCallback.create(getSelfLink(), SubStage.COMPLETED, SubStage.ERROR); removalState.documentSelfLink = getSelfId(); removalState.requestTrackerLink = state.requestTrackerLink; removalState.tenantLinks = state.tenantLinks; Operation post = Operation .createPost(this, CompositeComponentRemovalTaskService.FACTORY_LINK) .setBodyNoCloning(removalState) .setContextId(getSelfId()) .setCompletion((o, ex) -> { if (ex != null) { failTask("Failed to create container removal task", ex); } proceedTo(SubStage.ALLOCATING); }); sendRequest(post); }
TaskStage.FAILED, SubStage.ERROR); clusteringState.documentSelfLink = getSelfId(); clusteringState.requestTrackerLink = state.requestTrackerLink; Operation post = Operation .createPost(this, ClusteringTaskService.FACTORY_LINK) .setBodyNoCloning(clusteringState) .setContextId(getSelfId()) .setCompletion((o, ex) -> { if (ex != null) {
private void createCompositionTask(RequestBrokerState state) { if (isCompositeComponentType(state)) { CompositionTaskState compositionTask = new CompositionTaskState(); compositionTask.documentSelfLink = getSelfId(); compositionTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.ALLOCATED, TaskStage.STARTED, SubStage.ERROR); compositionTask.customProperties = state.customProperties; compositionTask.resourceDescriptionLink = state.resourceDescriptionLink; compositionTask.tenantLinks = state.tenantLinks; compositionTask.requestTrackerLink = state.requestTrackerLink; compositionTask.groupResourcePlacementLink = state.groupResourcePlacementLink; sendRequest(Operation.createPost(this, CompositionTaskFactoryService.SELF_LINK) .setBodyNoCloning(compositionTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) { failTask("Failure creating composition task", e); return; } proceedTo(SubStage.ALLOCATING); })); } else { failTask(null, new LocalizableValidationException("Not supported resourceType: " + state.resourceType, "request.resource-type.not.supported", state.resourceType)); } }
allocationTask.documentSelfLink = getSelfId(); allocationTask.serviceTaskCallback = ServiceTaskCallback.create( getSelfLink(), TaskStage.STARTED, SubStage.ALLOCATED, .createPost(this, ContainerVolumeAllocationTaskService.FACTORY_LINK) .setBodyNoCloning(allocationTask) .setContextId(getSelfId()) .setCompletion((o, e) -> { if (e != null) {