Search in sources :

Example 6 with CustomServicesWorkflowDocument

use of com.emc.storageos.model.customservices.CustomServicesWorkflowDocument in project coprhd-controller by CoprHD.

the class CustomServicesService method getStepHash.

private ImmutableMap<String, Step> getStepHash(final URI uri) throws Exception {
    final String raw;
    raw = ExecutionUtils.currentContext().getOrder().getWorkflowDocument();
    if (null == raw) {
        throw InternalServerErrorException.internalServerErrors.customServiceExecutionFailed("Invalid custom service.  Workflow document cannot be null");
    }
    final CustomServicesWorkflowDocument obj = WorkflowHelper.toWorkflowDocument(raw);
    final List<CustomServicesWorkflow> wfs = customServicesWorkflowManager.getByNameOrId(obj.getName());
    if (wfs == null || wfs.isEmpty() || wfs.size() > 1) {
        throw InternalServerErrorException.internalServerErrors.customServiceExecutionFailed("Workflow list is null or empty or more than one workflow per Workflow name:" + obj.getName());
    }
    if (wfs.get(0) == null || StringUtils.isEmpty(wfs.get(0).getState())) {
        throw InternalServerErrorException.internalServerErrors.customServiceExecutionFailed("Workflow state is null or empty for workflow:" + obj.getName());
    }
    if (wfs.get(0).getState().equals(CustomServicesWorkflow.CustomServicesWorkflowStatus.NONE.toString()) || wfs.get(0).getState().equals(CustomServicesWorkflow.CustomServicesWorkflowStatus.INVALID.toString())) {
        throw InternalServerErrorException.internalServerErrors.customServiceExecutionFailed("Workflow state is not valid. Cannot run workflow" + obj.getName() + "State:" + wfs.get(0).getState());
    }
    final List<Step> steps = obj.getSteps();
    final ImmutableMap.Builder<String, Step> builder = ImmutableMap.builder();
    for (final Step step : steps) {
        builder.put(step.getId(), step);
    }
    final ImmutableMap<String, Step> stepsHash = builder.build();
    ExecutionUtils.currentContext().logInfo("customServicesService.status", obj.getName());
    return stepsHash;
}
Also used : CustomServicesWorkflowDocument(com.emc.storageos.model.customservices.CustomServicesWorkflowDocument) CustomServicesWorkflow(com.emc.storageos.db.client.model.uimodels.CustomServicesWorkflow) Step(com.emc.storageos.model.customservices.CustomServicesWorkflowDocument.Step) ImmutableMap(com.google.common.collect.ImmutableMap)

Aggregations

CustomServicesWorkflowDocument (com.emc.storageos.model.customservices.CustomServicesWorkflowDocument)6 CustomServicesWorkflow (com.emc.storageos.db.client.model.uimodels.CustomServicesWorkflow)2 Step (com.emc.storageos.model.customservices.CustomServicesWorkflowDocument.Step)2 CustomServicesWorkflowRestRep (com.emc.storageos.model.customservices.CustomServicesWorkflowRestRep)2 IOException (java.io.IOException)2 ServiceDescriptor (com.emc.sa.descriptor.ServiceDescriptor)1 ServiceField (com.emc.sa.descriptor.ServiceField)1 ServiceFieldTable (com.emc.sa.descriptor.ServiceFieldTable)1 ValidationHelper (com.emc.sa.workflow.ValidationHelper)1 CustomServicesValidationResponse (com.emc.storageos.model.customservices.CustomServicesValidationResponse)1 CustomServicesWorkflowCreateParam (com.emc.storageos.model.customservices.CustomServicesWorkflowCreateParam)1 Input (com.emc.storageos.model.customservices.CustomServicesWorkflowDocument.Input)1 InputGroup (com.emc.storageos.model.customservices.CustomServicesWorkflowDocument.InputGroup)1 CustomServicesWorkflowUpdateParam (com.emc.storageos.model.customservices.CustomServicesWorkflowUpdateParam)1 CheckPermission (com.emc.storageos.security.authorization.CheckPermission)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1