use of com.emc.storageos.volumecontroller.ControllerException in project coprhd-controller by CoprHD.
the class ComputeSystemControllerImpl method rollbackHostBootVolumeId.
public void rollbackHostBootVolumeId(URI hostId, URI volumeId, String stepId) throws ControllerException {
_log.info("rollbackHostBootVolumeId:" + hostId.toString());
Host host = null;
try {
WorkflowStepCompleter.stepExecuting(stepId);
host = _dbClient.queryObject(Host.class, hostId);
if (host == null) {
throw ComputeSystemControllerException.exceptions.hostNotFound(hostId.toString());
}
_log.info("Rolling back boot volume association for host");
host.setBootVolumeId(NullColumnValueGetter.getNullURI());
_dbClient.persistObject(host);
WorkflowStepCompleter.stepSucceded(stepId);
} catch (Exception e) {
_log.error("unexpected exception: " + e.getMessage(), e);
String hostString = hostId.toString();
if (host != null) {
hostString = host.getHostName();
}
ServiceCoded serviceCoded = ComputeSystemControllerException.exceptions.unableToRollbackBootVolume(hostString, e);
WorkflowStepCompleter.stepFailed(stepId, serviceCoded);
}
}
use of com.emc.storageos.volumecontroller.ControllerException in project coprhd-controller by CoprHD.
the class ComputeSystemControllerImpl method mountDir.
public void mountDir(URI resId, URI hostId, String mountPath, String subDir, String security, String fsType, String stepId) {
try {
HostMountAdapter adapter = getMountAdapters().get(_dbClient.queryObject(Host.class, hostId).getType());
WorkflowStepCompleter.stepExecuting(stepId);
List<String> lockKeys = new ArrayList<String>();
lockKeys.add(ControllerLockingUtil.getMountHostKey(_dbClient, hostId));
_workflowService.acquireWorkflowStepLocks(stepId, lockKeys, LockTimeoutValue.get(LockType.FILE_MOUNT_OPERATIONS));
adapter.mountDevice(hostId, mountPath);
WorkflowStepCompleter.stepSucceded(stepId);
} catch (ControllerException e) {
WorkflowStepCompleter.stepFailed(stepId, e);
throw e;
} catch (Exception ex) {
WorkflowStepCompleter.stepFailed(stepId, APIException.badRequests.commandFailedToComplete(ex.getMessage()));
throw ex;
}
}
use of com.emc.storageos.volumecontroller.ControllerException in project coprhd-controller by CoprHD.
the class ComputeSystemControllerImpl method removeFromFSTab.
public void removeFromFSTab(URI hostId, String mountPath, String stepId) {
try {
HostMountAdapter adapter = getMountAdapters().get(_dbClient.queryObject(Host.class, hostId).getType());
WorkflowStepCompleter.stepExecuting(stepId);
List<String> lockKeys = new ArrayList<String>();
lockKeys.add(ControllerLockingUtil.getMountHostKey(_dbClient, hostId));
_workflowService.acquireWorkflowStepLocks(stepId, lockKeys, LockTimeoutValue.get(LockType.FILE_MOUNT_OPERATIONS));
adapter.removeFromFSTab(hostId, mountPath);
WorkflowStepCompleter.stepSucceded(stepId);
} catch (ControllerException e) {
WorkflowStepCompleter.stepFailed(stepId, e);
throw e;
} catch (Exception ex) {
WorkflowStepCompleter.stepFailed(stepId, APIException.badRequests.commandFailedToComplete(ex.getMessage()));
throw ex;
}
}
use of com.emc.storageos.volumecontroller.ControllerException in project coprhd-controller by CoprHD.
the class ComputeSystemControllerImpl method removeFromFSTabRollBack.
public void removeFromFSTabRollBack(URI hostId, String mountPath, URI resId, String stepId) {
try {
HostMountAdapter adapter = getMountAdapters().get(_dbClient.queryObject(Host.class, hostId).getType());
WorkflowStepCompleter.stepExecuting(stepId);
FileMountInfo fsMount = getMountInfo(hostId, mountPath, resId);
List<String> lockKeys = new ArrayList<String>();
lockKeys.add(ControllerLockingUtil.getMountHostKey(_dbClient, hostId));
_workflowService.acquireWorkflowStepLocks(stepId, lockKeys, LockTimeoutValue.get(LockType.FILE_MOUNT_OPERATIONS));
adapter.addToFSTab(hostId, mountPath, resId, fsMount.getSubDirectory(), fsMount.getSecurityType(), "auto");
WorkflowStepCompleter.stepSucceded(stepId);
} catch (ControllerException e) {
WorkflowStepCompleter.stepFailed(stepId, e);
throw e;
} catch (Exception ex) {
WorkflowStepCompleter.stepFailed(stepId, APIException.badRequests.commandFailedToComplete(ex.getMessage()));
throw ex;
}
}
use of com.emc.storageos.volumecontroller.ControllerException in project coprhd-controller by CoprHD.
the class ComputeSystemControllerImpl method removeHostsFromExport.
@Override
public void removeHostsFromExport(URI eventId, List<URI> hostIds, URI clusterId, boolean isVcenter, URI vCenterDataCenterId, String taskId) throws ControllerException {
HostCompleter completer = null;
try {
completer = new HostCompleter(eventId, hostIds, false, taskId);
Workflow workflow = _workflowService.getNewWorkflow(this, REMOVE_HOST_STORAGE_WF_NAME, true, taskId);
String waitFor = null;
waitFor = addStepsForRemoveHost(workflow, waitFor, hostIds, clusterId, vCenterDataCenterId, isVcenter);
// Pass a null completer so if an error occurs we do not change the host/initiator cluster value or host
// vcenterdatacenter value.
waitFor = addStepForUpdatingHostAndInitiatorClusterReferences(workflow, waitFor, hostIds, NullColumnValueGetter.getNullURI(), vCenterDataCenterId, null);
workflow.executePlan(completer, "Success", null, null, null, null);
} catch (Exception ex) {
String message = "removeHostFromExport caught an exception.";
_log.error(message, ex);
ServiceError serviceError = DeviceControllerException.errors.jobFailed(ex);
completer.error(_dbClient, serviceError);
}
}
Aggregations