private boolean isPostAllocationOperation(RequestBrokerState state) { return (isContainerType(state) || isContainerNetworkType(state) || isComputeType(state) || isContainerVolumeType(state) || isClosureType(state)) && (ContainerOperationType.CREATE.id.equals(state.operation) || NetworkOperationType.CREATE.id.equals(state.operation) || VolumeOperationType.CREATE.id.equals(state.operation) || ClosureOperationType.CREATE.id.equals(state.operation)); }
private boolean isRemoveOperation(RequestBrokerState state) { if (RequestBrokerState.REMOVE_RESOURCE_OPERATION.equals(state.operation)) { return true; } if (isContainerType(state) || isCompositeComponentType(state)) { return ContainerOperationType.DELETE.id.equals(state.operation) || ApplicationOperationType.DELETE.id.equals(state.operation); } if (isComputeType(state)) { return ComputeOperationType.DELETE.id.equals(state.operation); } if (isContainerNetworkType(state)) { return NetworkOperationType.DELETE.id.equals(state.operation); } if (isContainerVolumeType(state)) { return VolumeOperationType.DELETE.id.equals(state.operation); } if (isClosureType(state)) { return ClosureOperationType.DELETE.id.equals(state.operation); } return false; }
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.COMPUTE_TYPE)); } else if (isContainerNetworkType(state)) { trackedTasks.addAll(SUPPORTED_ALLOCATION_TASKS_BY_RESOURCE_TYPE .get(ResourceType.NETWORK_TYPE)); if (isContainerType(state)) { requestStatus.addTrackedTasks(ContainerAllocationTaskService.DISPLAY_NAME); } else if (isContainerNetworkType(state)) { requestStatus.addTrackedTasks(ContainerNetworkProvisionTaskService.DISPLAY_NAME); } else if (isContainerVolumeType(state)) { requestStatus.addTrackedTasks(ContainerHostRemovalTaskService.DISPLAY_NAME); requestStatus.addTrackedTasks(ComputeRemovalTaskService.DISPLAY_NAME); } else if (isContainerNetworkType(state)) { requestStatus.addTrackedTasks(ContainerNetworkRemovalTaskService.DISPLAY_NAME); } else if (isContainerVolumeType(state)) {
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)); } }
@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 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)); } }
if (isComputeType(state)) { createComputeRemovalTask(state); } else if (isContainerNetworkType(state)) { createContainerNetworkRemovalTask(state, true); } else if (isContainerVolumeType(state)) { break; case RESERVATION_CLEANED_UP: if (isContainerNetworkType(state)) { createContainerNetworkRemovalTask(state, true); } else if (isContainerVolumeType(state)) {
+ state.operation, "request.operation.not.supported", state.operation)); } else if (isContainerNetworkType(state)) { if (isRemoveOperation(state)) { createContainerNetworkRemovalTask(state);