mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-03 04:12:31 +01:00
CLOUDSTACK-6924. To attach a volume if a volume needs to be moved to another storage
pool, the source and destination pools cannot be local and cluster/zone and vice versa. Cloudstack detects it and throws a exception. However, the end user only sees an unexpected exception and not the reason for failure. Fixed it by making sure the reason for the failure is correctly captured and shown to the end user. (cherry picked from commit cffae8eef0b1f9bf869a5ec99befbe9ae9d9290d) Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com> Conflicts: server/src/com/cloud/storage/VolumeApiServiceImpl.java
This commit is contained in:
parent
f00140243c
commit
0e4d91aa91
@ -28,6 +28,7 @@ import org.apache.cloudstack.framework.jobs.AsyncJobDispatcher;
|
||||
import org.apache.cloudstack.framework.jobs.AsyncJobManager;
|
||||
import org.apache.cloudstack.jobs.JobInfo;
|
||||
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.AdapterBase;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
@ -108,6 +109,9 @@ public class VmWorkJobDispatcher extends AdapterBase implements AsyncJobDispatch
|
||||
if (s_logger.isDebugEnabled())
|
||||
s_logger.debug("Done with run of VM work job: " + cmd + " for VM " + work.getVmId() + ", job origin: " + job.getRelated());
|
||||
}
|
||||
} catch(InvalidParameterValueException e) {
|
||||
s_logger.error("Unable to complete " + job + ", job origin:" + job.getRelated());
|
||||
_asyncJobMgr.completeAsyncJob(job.getId(), JobInfo.Status.FAILED, 0, _asyncJobMgr.marshallResultObject(e));
|
||||
} catch(Throwable e) {
|
||||
s_logger.error("Unable to complete " + job + ", job origin:" + job.getRelated(), e);
|
||||
|
||||
|
||||
@ -2244,7 +2244,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
||||
return false;
|
||||
}
|
||||
}
|
||||
throw new CloudRuntimeException("Can't move volume between scope: " + storeForNewStoreScope.getScopeType() + " and " + storeForExistingStoreScope.getScopeType());
|
||||
throw new InvalidParameterValueException("Can't move volume between scope: " + storeForNewStoreScope.getScopeType() + " and " + storeForExistingStoreScope.getScopeType());
|
||||
}
|
||||
|
||||
return !storeForExistingStoreScope.isSameScope(storeForNewStoreScope);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user