use of com.emc.storageos.workflow.Workflow in project coprhd-controller by CoprHD.
the class AbstractDefaultMaskingOrchestrator method generateExportMaskDeleteWorkflow.
/**
* Generate export mask steps and add to workflow.
*
* @param workflow
* workflow to add steps to
* @param previousStep
* previous step before these steps
* @param storage
* storage system
* @param exportGroup
* export group impacted
* @param exportMask
* export mask to delete
* @param volumes
* volumes we expect to be impacted
* @param initiators
* initiators we expect to be impacted
* @param taskCompleter
* completer
* @return step ID
* @throws Exception
*/
public String generateExportMaskDeleteWorkflow(Workflow workflow, String previousStep, StorageSystem storage, ExportGroup exportGroup, ExportMask exportMask, List<URI> volumes, List<URI> initiators, ExportTaskCompleter taskCompleter) throws Exception {
URI exportGroupURI = exportGroup.getId();
URI exportMaskURI = exportMask.getId();
URI storageURI = storage.getId();
String maskingStep = workflow.createStepId();
ExportTaskCompleter exportTaskCompleter = null;
if (null != taskCompleter) {
exportTaskCompleter = taskCompleter;
exportTaskCompleter.setOpId(maskingStep);
} else {
exportTaskCompleter = new ExportMaskDeleteCompleter(exportGroupURI, exportMaskURI, maskingStep);
}
Workflow.Method maskingExecuteMethod = new Workflow.Method("doExportGroupDelete", storageURI, exportGroupURI, exportMaskURI, volumes, initiators, exportTaskCompleter);
maskingStep = workflow.createStep(EXPORT_GROUP_MASKING_TASK, String.format("Deleting mask %s (%s)", exportMask.getMaskName(), exportMask.getId().toString()), previousStep, storageURI, storage.getSystemType(), MaskingWorkflowEntryPoints.class, maskingExecuteMethod, null, maskingStep);
return maskingStep;
}
use of com.emc.storageos.workflow.Workflow in project coprhd-controller by CoprHD.
the class AbstractDefaultMaskingOrchestrator method generateExportMaskRemoveVolumesWorkflow.
/**
* Generate workflow steps to remove volumes from an export mask
*
* @param workflow
* workflow
* @param previousStep
* previous step ID
* @param storage
* storage system
* @param exportGroup
* export group
* @param exportMask
* export mask
* @param volumesToRemove
* volumes to remove
* @param initiators
* initiators that should be impacted
* @param completer
* completer
* @return step ID
* @throws Exception
*/
public String generateExportMaskRemoveVolumesWorkflow(Workflow workflow, String previousStep, StorageSystem storage, ExportGroup exportGroup, ExportMask exportMask, List<URI> volumesToRemove, List<URI> initiators, ExportTaskCompleter completer) throws Exception {
URI exportGroupURI = exportGroup.getId();
URI exportMaskURI = exportMask.getId();
URI storageURI = storage.getId();
String maskingStep = workflow.createStepId();
ExportTaskCompleter exportTaskCompleter;
if (completer != null) {
exportTaskCompleter = completer;
exportTaskCompleter.setOpId(maskingStep);
} else {
exportTaskCompleter = new ExportMaskRemoveVolumeCompleter(exportGroupURI, exportMask.getId(), volumesToRemove, maskingStep);
}
Workflow.Method maskingExecuteMethod = new Workflow.Method("doExportGroupRemoveVolumes", storageURI, exportGroupURI, exportMaskURI, volumesToRemove, initiators, exportTaskCompleter);
maskingStep = workflow.createStep(EXPORT_GROUP_MASKING_TASK, String.format("Removing volumes from mask %s (%s)", exportMask.getMaskName(), exportMask.getId().toString()), previousStep, storageURI, storage.getSystemType(), MaskingWorkflowEntryPoints.class, maskingExecuteMethod, null, maskingStep);
return maskingStep;
}
use of com.emc.storageos.workflow.Workflow in project coprhd-controller by CoprHD.
the class AbstractDefaultMaskingOrchestrator method generateZoningAddVolumesWorkflow.
protected String generateZoningAddVolumesWorkflow(Workflow workflow, String previousStep, ExportGroup exportGroup, List<ExportMask> exportMasks, List<URI> volumeURIs) throws WorkflowException {
URI exportGroupURI = exportGroup.getId();
List<URI> exportMaskURIs = new ArrayList<URI>();
for (ExportMask mask : exportMasks) {
exportMaskURIs.add(mask.getId());
}
String zoningStep = workflow.createStepId();
Workflow.Method zoningExecuteMethod = _networkDeviceController.zoneExportAddVolumesMethod(exportGroupURI, exportMaskURIs, volumeURIs);
Workflow.Method rollbackMethod = _networkDeviceController.zoneRollbackMethod(exportGroupURI, zoningStep);
zoningStep = workflow.createStep((previousStep == null ? EXPORT_GROUP_ZONING_TASK : null), "Zoning subtask for export-group: " + exportGroupURI, previousStep, NullColumnValueGetter.getNullURI(), "network-system", _networkDeviceController.getClass(), zoningExecuteMethod, rollbackMethod, zoningStep);
return zoningStep;
}
use of com.emc.storageos.workflow.Workflow in project coprhd-controller by CoprHD.
the class AbstractDefaultMaskingOrchestrator method generateExportMaskRemoveInitiatorsWorkflow.
/**
* Generate workflow steps to remove initiators from an export mask
*
* @param workflow
* workflow
* @param previousStep
* previous step ID
* @param storage
* storage device
* @param exportGroup
* export group
* @param exportMask
* export mask
* @param volumeURIs
* volumes impacted by this operation
* @param initiatorURIs
* initiators
* @param removeTargets
* ports to remove
* @param completer
* completer
* @return step ID
* @throws Exception
*/
public String generateExportMaskRemoveInitiatorsWorkflow(Workflow workflow, String previousStep, StorageSystem storage, ExportGroup exportGroup, ExportMask exportMask, List<URI> volumeURIs, List<URI> initiatorURIs, boolean removeTargets, ExportTaskCompleter completer) throws Exception {
URI exportGroupURI = exportGroup.getId();
URI exportMaskURI = exportMask.getId();
URI storageURI = storage.getId();
String maskingStep = workflow.createStepId();
ExportTaskCompleter exportTaskCompleter = null;
if (completer != null) {
exportTaskCompleter = completer;
exportTaskCompleter.setOpId(maskingStep);
} else {
exportTaskCompleter = new ExportMaskRemoveInitiatorCompleter(exportGroupURI, exportMask.getId(), initiatorURIs, maskingStep);
}
Workflow.Method maskingExecuteMethod = new Workflow.Method("doExportGroupRemoveInitiators", storageURI, exportGroupURI, exportMaskURI, volumeURIs, initiatorURIs, removeTargets, exportTaskCompleter);
maskingStep = workflow.createStep(EXPORT_GROUP_MASKING_TASK, String.format("Removing initiators from %s (%s)", exportMask.getMaskName(), exportMask.getId().toString()), previousStep, storageURI, storage.getSystemType(), MaskingWorkflowEntryPoints.class, maskingExecuteMethod, null, maskingStep);
return maskingStep;
}
use of com.emc.storageos.workflow.Workflow in project coprhd-controller by CoprHD.
the class AbstractDefaultMaskingOrchestrator method generateZoningDeleteWorkflow.
protected String generateZoningDeleteWorkflow(Workflow workflow, String previousStep, ExportGroup exportGroup, List<ExportMask> exportMasks) throws WorkflowException {
URI exportGroupURI = exportGroup.getId();
List<URI> exportMaskURIs = new ArrayList<URI>();
Set<URI> volumeURIs = new HashSet<>();
for (ExportMask mask : exportMasks) {
exportMaskURIs.add(mask.getId());
volumeURIs.addAll(ExportMaskUtils.getVolumeURIs(mask));
}
List<NetworkZoningParam> zoningParams = NetworkZoningParam.convertExportMasksToNetworkZoningParam(exportGroupURI, exportMaskURIs, _dbClient);
String zoningStep = workflow.createStepId();
Workflow.Method zoningExecuteMethod = _networkDeviceController.zoneExportMasksDeleteMethod(zoningParams, volumeURIs);
zoningStep = workflow.createStep((previousStep == null ? EXPORT_GROUP_ZONING_TASK : null), "Zoning subtask for export-group: " + exportGroupURI, previousStep, NullColumnValueGetter.getNullURI(), "network-system", _networkDeviceController.getClass(), zoningExecuteMethod, null, zoningStep);
return zoningStep;
}
Aggregations