private String getPostAllocationOperation(RequestBrokerState state) { if (!isProvisionOperation(state)) { // It's not a provision resource operation but other type of operation without a // post-allocation operation associated. return null; } if (state.customProperties != null && Boolean.parseBoolean( state.customProperties.get(FIELD_NAME_ALLOCATION_REQUEST))) { // It's a provision resource operation but the __allocation_request flag indicates that // only the allocation must happen so that skipping the post-allocation operation. return null; } if (isContainerNetworkType(state)) { return NetworkOperationType.CREATE.id; } else if (isContainerVolumeType(state)) { return VolumeOperationType.CREATE.id; } else if (isPKSClusterType(state)) { return PKSOperationType.CREATE_CLUSTER.id; } else { // No ContainerType here since its "unified" ContainerAllocationTaskService handles it! return null; } }
.get(ResourceType.CLOSURE_TYPE)); } else if (isPKSClusterType(state)) { trackedTasks.addAll(SUPPORTED_EXEC_TASKS_BY_RESOURCE_TYPE .get(ResourceType.PKS_CLUSTER_TYPE)); } else if (isComputeType(state)) { requestStatus.addTrackedTasks(ComputeRemovalTaskService.DISPLAY_NAME); } else if (isPKSClusterType(state)) { requestStatus.addTrackedTasks(PKSClusterRemovalTaskService.DISPLAY_NAME); } else { RequestType.RESIZE.toString()); if (isPKSClusterType(state)) { requestStatus.addTrackedTasks(PKSClusterResizeTaskService.DISPLAY_NAME);
@Override protected void validateStateOnStart(RequestBrokerState state) throws IllegalArgumentException { if (state.operation == null) { state.operation = RequestBrokerState.PROVISION_RESOURCE_OPERATION; } if (isProvisionOperation(state) || isClusteringOperation(state)) { if (!isPKSClusterType(state)) { assertNotEmpty(state.resourceDescriptionLink, "resourceDescriptionLink"); } } else { assertNotEmpty(state.resourceLinks, "resourceLinks"); } if (!(isContainerType(state) || isContainerHostType(state) || isContainerNetworkType(state) || isContainerVolumeType(state) || isComputeType(state) || isCompositeComponentType(state) || isClosureType(state) || isPKSClusterType(state))) { throw new LocalizableValidationException( String.format("Only [ %s ] resource types are supported.", ResourceType.getAllTypesAsString()), "request.supported.resource-types", ResourceType.getAllTypesAsString()); } if (state.resourceCount <= 0) { state.resourceCount = 1; } }
private void createReservationTasks(RequestBrokerState state) { if (isContainerNetworkType(state) || isContainerVolumeType(state)) { // No reservation needed here, moving on... proceedTo(SubStage.RESERVED); } else if (isClosureType(state)) { // No reservation needed here, moving on... proceedTo(SubStage.RESERVED); } else if (isPKSClusterType(state)) { // No reservation needed here, moving on.directly to allocated proceedTo(SubStage.ALLOCATED); } else { getContainerDescription(state, (cd) -> createReservationTasks(state, cd)); } }
private void calculateActualRequestedResources(RequestBrokerState state, SubStage next) { if (isPKSClusterType(state)) { proceedTo(next, s -> { s.actualResourceCount = state.resourceCount; s.documentExpirationTimeMicros = getExpirationTimeFromNowInMicros( EXPIRATION_MICROS * 2); }); return; } if (isProvisionOperation(state)) { if (isContainerType(state)) { getContainerDescription(state, (cd) -> { proceedTo(next, s -> { s.actualResourceCount = getRequestContainerResourceCount(state, cd); updateRequestTrackerName(state, cd.name); }); }); } else { proceedTo(next, s -> s.actualResourceCount = state.resourceCount); } } else { proceedTo(next, s -> s.actualResourceCount = state.resourceCount); } }
private void createAllocationTasks(RequestBrokerState state) { if (isContainerType(state)) { createContainerAllocationTask(state); } else if (isContainerNetworkType(state)) { if (!isPostAllocationOperation(state)) { createContainerNetworkAllocationTask(state); } else { createContainerNetworkProvisioningTask(state); } } else if (isContainerVolumeType(state)) { if (!isPostAllocationOperation(state)) { createContainerVolumeAllocationTask(state, null); } else { createContainerVolumeProvisioningTask(state); } } else if (isClosureType(state)) { if (!isPostAllocationOperation(state)) { createClosureAllocationTask(state); } else { createClosureProvisionTask(state); } } else if (isPKSClusterType(state)) { createPKSClusterProvisioningTask(state); } else { failTask(null, new LocalizableValidationException("Not supported resourceType: " + state.resourceType, "request.resource-type.not.supported", state.resourceType)); } }
} else if (isClosureType(state)) { createClosureRemovalTasks(state); } else if (isPKSClusterType(state)) { createPKSClusterRemovalTasks(state, !PKSClusterProvisioningTaskService.DESTROY_CLUSTERS_AFTER_FAILED_PROVISION, state.resourceDescriptionLink); } else { if (!isPKSClusterType(state)) { ResourceDescriptionUtil .deleteResourceDescription(getHost(), state.resourceDescriptionLink);
state.operation)); } else if (isPKSClusterType(state)) { if (isRemoveOperation(state)) { createPKSClusterRemovalTasks(state, false,false);