CLOUDSTACK-659 Fixing migrate volume.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f911424a Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f911424a Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f911424a Branch: refs/heads/vmware-storage-motion Commit: f911424a368a290aad6b3eb44eeaf053c33e225c Parents: 2c8dd18 Author: Sateesh Chodapuneedi <sate...@apache.org> Authored: Thu May 23 16:23:09 2013 +0530 Committer: Sateesh Chodapuneedi <sate...@apache.org> Committed: Tue May 28 16:51:35 2013 +0530 ---------------------------------------------------------------------- .../hypervisor/vmware/resource/VmwareResource.java | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f911424a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 3c9319e..ca2a519 100755 --- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -3608,11 +3608,13 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa String srcDiskName = ""; String srcDsName = ""; + String tgtDsName = ""; try { srcHyperHost = getHyperHost(getServiceContext()); morDc = srcHyperHost.getHyperHostDatacenter(); srcDsName = mgr.getStoragePoolOfVolume(cmd.getVolumeId()); + tgtDsName = poolTo.getUuid().replace("-", ""); // find VM through datacenter (VM is not at the target host yet) vmMo = srcHyperHost.findVmOnPeerHyperHost(vmName); @@ -3621,6 +3623,12 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa s_logger.error(msg); throw new Exception(msg); } + morDs = HypervisorHostHelper.findDatastoreWithBackwardsCompatibility(srcHyperHost, tgtDsName); + if (morDs == null) { + String msg = "Unable to find the mounted datastore with name " + tgtDsName + " to execute MigrateVolumeCommand"; + s_logger.error(msg); + throw new Exception(msg); + } srcDiskName = String.format("[%s] %s.vmdk", srcDsName, volumePath); diskLocator = new VirtualMachineRelocateSpecDiskLocator(); @@ -3634,7 +3642,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa if (!vmMo.changeDatastore(relocateSpec)) { throw new Exception("Change datastore operation failed during volume migration"); } else { - s_logger.debug("Successfully migrated volume " + vmName + " to target datastore"); + s_logger.debug("Successfully migrated volume " + volumePath + " to target datastore " + tgtDsName); } return new MigrateVolumeAnswer(cmd, true, null, volumePath);