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 7ecc2ac4a08..3d3aa1b7df0 100644 --- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java +++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java @@ -1585,7 +1585,13 @@ public class VmwareStorageProcessor implements StorageProcessor { // let vmMo.destroy to delete volume for us // vmMo.tearDownDevices(new Class[] { VirtualDisk.class, VirtualEthernetCard.class }); - vmMo.destroy(); + + if (isManaged) { + vmMo.unregisterVm(); + } + else { + vmMo.destroy(); + } // this.hostService.handleDatastoreAndVmdkDetach(iScsiName, storageHost, storagePort); if (managedIqns != null && !managedIqns.isEmpty()) { diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/BaseMO.java b/vmware-base/src/com/cloud/hypervisor/vmware/mo/BaseMO.java index e21591af42c..430eb6deffa 100644 --- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/BaseMO.java +++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/BaseMO.java @@ -70,6 +70,10 @@ public class BaseMO { return _name; } + public void unregisterVm() throws Exception { + _context.getService().unregisterVM(_mor); + } + public boolean destroy() throws Exception { ManagedObjectReference morTask = _context.getService().destroyTask(_mor);