From 1c0bf321707b55e1502dd3d102ec192b00a83c19 Mon Sep 17 00:00:00 2001 From: Likitha Shetty Date: Fri, 5 Dec 2014 18:47:38 +0530 Subject: [PATCH] CLOUDSTACK-8123. VM re-install fails. While moving root disk into VM folder during restore, look for folder based on vCenter name. --- .../cloud/storage/resource/VmwareStorageProcessor.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java index ba2255b0578..247c2204bd1 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java +++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java @@ -487,9 +487,12 @@ public class VmwareStorageProcessor implements StorageProcessor { dsMo.deleteFile(srcFile, dcMo.getMor(), true); } // restoreVM - move the new ROOT disk into corresponding VM folder - String vmInternalCSName = volume.getVmName(); - if (dsMo.folderExists(String.format("[%s]", dsMo.getName()), vmInternalCSName)) { - VmwareStorageLayoutHelper.syncVolumeToVmDefaultFolder(dcMo, vmInternalCSName, dsMo, vmdkFileBaseName); + VirtualMachineMO restoreVmMo = dcMo.findVm(volume.getVmName()); + if (restoreVmMo != null) { + String vmNameInVcenter = restoreVmMo.getName(); // VM folder name in datastore will be VM's name in vCenter. + if (dsMo.folderExists(String.format("[%s]", dsMo.getName()), vmNameInVcenter)) { + VmwareStorageLayoutHelper.syncVolumeToVmDefaultFolder(dcMo, vmNameInVcenter, dsMo, vmdkFileBaseName); + } } VolumeObjectTO newVol = new VolumeObjectTO();