From 1bbb29d03452120b4ebe0452939cc5d01c9939ff Mon Sep 17 00:00:00 2001 From: Spaceman1984 <49917670+Spaceman1984@users.noreply.github.com> Date: Mon, 12 Oct 2020 12:24:12 +0200 Subject: [PATCH] =?UTF-8?q?Fixed=20vm-templates=20not=20being=20removed=20?= =?UTF-8?q?from=20primary=20storage=20with=20storag=E2=80=A6=20(#4389)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed vm-templates not being removed from primary storage with storage garbage collection * Update vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java Co-authored-by: sureshanaparti <12028987+sureshanaparti@users.noreply.github.com> * Var name Co-authored-by: sureshanaparti <12028987+sureshanaparti@users.noreply.github.com> --- .../com/cloud/hypervisor/vmware/resource/VmwareResource.java | 1 + .../com/cloud/storage/resource/VmwareStorageProcessor.java | 2 +- .../java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java index 3ef1fc27f01..93eb1bbb721 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java @@ -6785,6 +6785,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa if (s_logger.isInfoEnabled()) { s_logger.info("Destroy template volume " + vol.getPath()); } + vmMo.markAsVirtualMachine(hyperHost.getHyperHostOwnerResourcePool(), hyperHost.getMor()); vmMo.destroy(); } else { if (s_logger.isInfoEnabled()) { diff --git a/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java b/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java index df780e76216..5c9c91767bd 100644 --- a/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java +++ b/plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java @@ -541,7 +541,7 @@ public class VmwareStorageProcessor implements StorageProcessor { // the same template may be deployed with multiple copies at per-datastore per-host basis, // save the original template name from CloudStack DB as the UUID to associate them. vmMo.setCustomFieldValue(CustomFieldConstants.CLOUD_UUID, templateName); - if (vAppConfig == null) { + if (vAppConfig == null || (vAppConfig.getProperty().size() == 0)) { vmMo.markAsTemplate(); } } else { diff --git a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java index 68bce537ba6..b0507965c83 100644 --- a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java +++ b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMO.java @@ -406,6 +406,10 @@ public class VirtualMachineMO extends BaseMO { _context.getService().markAsTemplate(_mor); } + public void markAsVirtualMachine(ManagedObjectReference resourcePool, ManagedObjectReference host) throws Exception { + _context.getService().markAsVirtualMachine(_mor, resourcePool, host); + } + public boolean isTemplate() throws Exception { VirtualMachineConfigInfo configInfo = getConfigInfo(); return configInfo.isTemplate();