use of com.emc.storageos.db.client.model.uimodels.CustomServicesWorkflow in project coprhd-controller by CoprHD.
the class CustomServicesWorkflowFinder method prepareNamedElementFromURI.
private List<NamedElement> prepareNamedElementFromURI(final List<URI> ids) {
final Iterator<CustomServicesWorkflow> it = client.findAllFields(clazz, ids, ImmutableList.<String>builder().add("label").build());
final List<NamedElement> results = new ArrayList<NamedElement>();
while (it.hasNext()) {
final CustomServicesWorkflow element = it.next();
results.add(NamedElement.createElement(element.getId(), element.getLabel()));
}
return results;
}
use of com.emc.storageos.db.client.model.uimodels.CustomServicesWorkflow in project coprhd-controller by CoprHD.
the class WorkflowServiceDescriptor method listDescriptors.
// This method will only return service descriptors for PUBLISHED workflows
public Collection<ServiceDescriptor> listDescriptors() {
List<ServiceDescriptor> wfServiceDescriptors = new ArrayList<>();
List<NamedElement> oeElements = customServicesWorkflowManager.listByStatus(CustomServicesWorkflowStatus.PUBLISHED);
if (null != oeElements) {
CustomServicesWorkflow oeWorkflow;
for (NamedElement oeElement : oeElements) {
oeWorkflow = customServicesWorkflowManager.getById(oeElement.getId());
wfServiceDescriptors.add(mapWorkflowToServiceDescriptor(oeWorkflow));
}
}
return wfServiceDescriptors;
}
use of com.emc.storageos.db.client.model.uimodels.CustomServicesWorkflow 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;
}
Aggregations