/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package com.emc.storageos.blockorchestrationcontroller; import java.net.URI; import java.util.List; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.db.client.util.NullColumnValueGetter; import com.emc.storageos.svcs.errorhandling.resources.InternalException; import com.emc.storageos.volumecontroller.ControllerException; import com.emc.storageos.volumecontroller.impl.Dispatcher; public class BlockOrchestrationControllerImpl implements BlockOrchestrationController { private Dispatcher _dispatcher; private BlockOrchestrationController _controller; private DbClient _dbClient; @Override public void createVolumes(List<VolumeDescriptor> volumes, String taskId) throws ControllerException { execOrchestration("createVolumes", volumes, taskId); } @Override public void deleteVolumes(List<VolumeDescriptor> volumes, String taskId) throws ControllerException { execOrchestration("deleteVolumes", volumes, taskId); } @Override public void expandVolume(List<VolumeDescriptor> volumes, String taskId) throws ControllerException { execOrchestration("expandVolume", volumes, taskId); } @Override public void restoreVolume(URI storage, URI pool, URI volume, URI snapshot, String syncDirection, String taskId) throws ControllerException { execOrchestration("restoreVolume", storage, pool, volume, snapshot, syncDirection, taskId); } @Override public void changeVirtualPool(List<VolumeDescriptor> volumes, String taskId) throws ControllerException { execOrchestration("changeVirtualPool", volumes, taskId); } @Override public void changeVirtualArray(List<VolumeDescriptor> volumeDescriptors, String taskId) throws ControllerException { execOrchestration("changeVirtualArray", volumeDescriptors, taskId); } private void execOrchestration(String methodName, Object... args) throws ControllerException { _dispatcher.queue(NullColumnValueGetter.getNullURI(), BLOCK_ORCHESTRATION_DEVICE, getController(), methodName, args); } public BlockOrchestrationController getController() { return _controller; } public void setController(BlockOrchestrationController controller) { this._controller = controller; } public Dispatcher getDispatcher() { return _dispatcher; } public void setDispatcher(Dispatcher dispatcher) { this._dispatcher = dispatcher; } public DbClient getDbClient() { return _dbClient; } public void setDbClient(DbClient dbClient) { this._dbClient = dbClient; } @Override public void restoreFromFullCopy(URI storage, List<URI> fullCopyURIs, String opId) throws InternalException { execOrchestration("restoreFromFullCopy", storage, fullCopyURIs, opId); } /* (non-Javadoc) * @see com.emc.storageos.blockorchestrationcontroller.BlockOrchestrationController#createFullCopy(java.util.List, java.lang.String) */ @Override public void createFullCopy(List<VolumeDescriptor> volumeDescriptors, String taskId) throws InternalException { execOrchestration("createFullCopy", volumeDescriptors, taskId); } /* (non-Javadoc) * @see com.emc.storageos.blockorchestrationcontroller.BlockOrchestrationController#createSnapshotSession(java.util.List, java.lang.String) */ @Override public void createSnapshotSession(List<VolumeDescriptor> volumeDescriptors, String taskId) throws InternalException { execOrchestration("createSnapshotSession", volumeDescriptors, taskId); } }