/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.workflow; import java.net.URI; import com.emc.storageos.db.client.util.NullColumnValueGetter; import com.emc.storageos.volumecontroller.ControllerException; import com.emc.storageos.volumecontroller.impl.Dispatcher; public class WorkflowControllerImpl implements WorkflowController { private Dispatcher dispatcher; private WorkflowController controller; @Override public void suspendWorkflowStep(URI workflow, URI stepId, String taskId) throws ControllerException { execOrchestration("suspendWorkflowStep", workflow, stepId, taskId); } @Override public void resumeWorkflow(URI workflow, String taskId) throws ControllerException { execOrchestration("resumeWorkflow", workflow, taskId); } @Override public void rollbackWorkflow(URI workflow, String taskId) throws ControllerException { execOrchestration("rollbackWorkflow", workflow, taskId); } private void execOrchestration(String methodName, Object ... args) throws ControllerException { dispatcher.queue(NullColumnValueGetter.getNullURI(), WORKFLOW_CONTROLLER_DEVICE, getController(), methodName, args); } public Dispatcher getDispatcher() { return dispatcher; } public void setDispatcher(Dispatcher dispatcher) { this.dispatcher = dispatcher; } public WorkflowController getController() { return controller; } public void setController(WorkflowController controller) { this.controller = controller; } }