From e790059a343e24d31c125683a7045298c88ddda6 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Tue, 15 Nov 2011 19:04:54 -0800 Subject: [PATCH] bug 12039, 12041: detach all disks before destroy worker VM to avoid accidentally delete the underlying disk along with the worker VM. Reviewed-by: Kelven --- .../vmware/manager/VmwareStorageManagerImpl.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java b/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java index 7e77f6995fa..de41431470f 100644 --- a/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java +++ b/core/src/com/cloud/hypervisor/vmware/manager/VmwareStorageManagerImpl.java @@ -569,8 +569,10 @@ public class VmwareStorageManagerImpl implements VmwareStorageManager { return new Ternary(installPath + "/" + templateName + ".ova", size, size); } finally { - if(clonedVm != null) - clonedVm.destroy(); + if(clonedVm != null) { + clonedVm.detachAllDisks(); + clonedVm.destroy(); + } vmMo.removeSnapshot(tmpSnapshotName, false); } @@ -718,8 +720,10 @@ public class VmwareStorageManagerImpl implements VmwareStorageManager { clonedVm.moveAllVmDiskFiles(primaryDsMo, "", false); clonedVm.detachAllDisks(); } finally { - if(clonedVm != null) - clonedVm.destroy(); + if(clonedVm != null) { + clonedVm.detachAllDisks(); + clonedVm.destroy(); + } } }