Search in sources :

Example 1 with StorageIORMConfigSpec

use of com.vmware.vim25.StorageIORMConfigSpec in project coprhd-controller by CoprHD.

the class ComputeSystemControllerImpl method setStorageIOControl.

/**
 * Sets the Storage I/O control on a datastore
 *
 * @param vcenter
 *            vcenter API for the vcenter
 * @param datastore
 *            the datastore to set storage I/O control
 * @param enabled
 *            if true, enables storage I/O control, otherwise disables storage I/O control
 */
public void setStorageIOControl(VCenterAPI vcenter, Datastore datastore, boolean enabled) {
    StorageResourceManager manager = vcenter.getStorageResourceManager();
    StorageIORMConfigSpec spec = new StorageIORMConfigSpec();
    spec.setEnabled(enabled);
    Task task = null;
    try {
        _log.info("Setting Storage I/O to " + enabled + " on datastore " + datastore.getName());
        task = manager.configureDatastoreIORM_Task(datastore, spec);
        boolean cancel = false;
        long maxTime = System.currentTimeMillis() + (60 * 1000);
        while (!isComplete(task)) {
            Thread.sleep(5000);
            if (System.currentTimeMillis() > maxTime) {
                cancel = true;
                break;
            }
        }
        if (cancel) {
            cancelTask(task);
        }
    } catch (Exception e) {
        _log.error("Error setting storage i/o control");
        if (e instanceof InterruptedException) {
            Thread.currentThread().interrupt();
        }
        cancelTaskNoException(task);
    }
}
Also used : StorageResourceManager(com.vmware.vim25.mo.StorageResourceManager) Task(com.vmware.vim25.mo.Task) AsyncTask(com.emc.storageos.volumecontroller.AsyncTask) StorageIORMConfigSpec(com.vmware.vim25.StorageIORMConfigSpec) InternalException(com.emc.storageos.svcs.errorhandling.resources.InternalException) ControllerException(com.emc.storageos.volumecontroller.ControllerException) ComputeSystemControllerException(com.emc.storageos.computesystemcontroller.exceptions.ComputeSystemControllerException) APIException(com.emc.storageos.svcs.errorhandling.resources.APIException) WorkflowException(com.emc.storageos.workflow.WorkflowException) DeviceControllerException(com.emc.storageos.exceptions.DeviceControllerException) RemoteException(java.rmi.RemoteException) CoordinatorException(com.emc.storageos.coordinator.exceptions.CoordinatorException) ClientControllerException(com.emc.storageos.exceptions.ClientControllerException)

Example 2 with StorageIORMConfigSpec

use of com.vmware.vim25.StorageIORMConfigSpec in project coprhd-controller by CoprHD.

the class SetStorageIOControl method execute.

@Override
public void execute() throws Exception {
    debug("Executing: %s", getDetail());
    StorageResourceManager manager = vcenter.getStorageResourceManager();
    StorageIORMConfigSpec spec = new StorageIORMConfigSpec();
    spec.setEnabled(enabled);
    Task task = null;
    try {
        task = manager.configureDatastoreIORM_Task(datastore, spec);
        waitForTask(task);
    } catch (Exception e) {
        logError("SetStorageIOControl.detail.error", datastore.getName());
        if (enabled && failIfErrorDuringEnable) {
            throw e;
        } else {
            cancelTaskNoException(task);
        }
    }
}
Also used : StorageResourceManager(com.vmware.vim25.mo.StorageResourceManager) VMwareTask(com.emc.sa.service.vmware.tasks.VMwareTask) Task(com.vmware.vim25.mo.Task) StorageIORMConfigSpec(com.vmware.vim25.StorageIORMConfigSpec)

Aggregations

StorageIORMConfigSpec (com.vmware.vim25.StorageIORMConfigSpec)2 StorageResourceManager (com.vmware.vim25.mo.StorageResourceManager)2 Task (com.vmware.vim25.mo.Task)2 VMwareTask (com.emc.sa.service.vmware.tasks.VMwareTask)1 ComputeSystemControllerException (com.emc.storageos.computesystemcontroller.exceptions.ComputeSystemControllerException)1 CoordinatorException (com.emc.storageos.coordinator.exceptions.CoordinatorException)1 ClientControllerException (com.emc.storageos.exceptions.ClientControllerException)1 DeviceControllerException (com.emc.storageos.exceptions.DeviceControllerException)1 APIException (com.emc.storageos.svcs.errorhandling.resources.APIException)1 InternalException (com.emc.storageos.svcs.errorhandling.resources.InternalException)1 AsyncTask (com.emc.storageos.volumecontroller.AsyncTask)1 ControllerException (com.emc.storageos.volumecontroller.ControllerException)1 WorkflowException (com.emc.storageos.workflow.WorkflowException)1 RemoteException (java.rmi.RemoteException)1