From 0f5a6ee589022f513ea494614e775ebc46267ef0 Mon Sep 17 00:00:00 2001 From: nvazquez Date: Sun, 20 Sep 2020 15:56:59 -0300 Subject: [PATCH] Remove deploy as-is details when removing templates or vms --- .../java/com/cloud/vm/VirtualMachineManagerImpl.java | 10 ++++++++++ .../com/cloud/template/HypervisorTemplateAdapter.java | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java index 013eb411ad8..8a31556a221 100755 --- a/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/main/java/com/cloud/vm/VirtualMachineManagerImpl.java @@ -40,6 +40,7 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.naming.ConfigurationException; +import com.cloud.deployasis.dao.UserVmDeployAsIsDetailsDao; import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.command.admin.vm.MigrateVMCmd; @@ -344,6 +345,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac private NetworkDetailsDao networkDetailsDao; @Inject private SecurityGroupManager _securityGroupManager; + @Inject + private UserVmDeployAsIsDetailsDao userVmDeployAsIsDetailsDao; VmWorkJobHandlerProxy _jobHandlerProxy = new VmWorkJobHandlerProxy(this); @@ -594,6 +597,13 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac //remove the overcommit details from the uservm details userVmDetailsDao.removeDetails(vm.getId()); + // Remove details if VM deploy as-is + long templateId = vm.getTemplateId(); + VMTemplateVO template = _templateDao.findById(templateId); + if (template != null && template.isDeployAsIs()) { + userVmDeployAsIsDetailsDao.removeDetails(vm.getId()); + } + // send hypervisor-dependent commands before removing final List finalizeExpungeCommands = hvGuru.finalizeExpunge(vm); if (finalizeExpungeCommands != null && finalizeExpungeCommands.size() > 0) { diff --git a/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java index 95fe38b7189..18d37d0b8ad 100644 --- a/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java +++ b/server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java @@ -26,6 +26,7 @@ import java.util.concurrent.ExecutionException; import javax.inject.Inject; import com.cloud.configuration.Config; +import com.cloud.deployasis.dao.TemplateDeployAsIsDetailsDao; import com.cloud.storage.dao.VMTemplateDetailsDao; import com.cloud.utils.db.Transaction; import com.cloud.utils.db.TransactionCallback; @@ -129,6 +130,8 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase { VMTemplateDao templateDao; @Inject private VMTemplateDetailsDao templateDetailsDao; + @Inject + private TemplateDeployAsIsDetailsDao templateDeployAsIsDetailsDao; @Override public String getName() { @@ -598,6 +601,11 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase { // Remove template details templateDetailsDao.removeDetails(template.getId()); + // Remove deploy-as-is details + if (template.isDeployAsIs()) { + templateDeployAsIsDetailsDao.removeDetails(template.getId()); + } + } return success;