Remove deploy as-is details when removing templates or vms

This commit is contained in:
nvazquez 2020-09-20 15:56:59 -03:00 committed by Harikrishna Patnala
parent a43d0a6085
commit 0f5a6ee589
2 changed files with 18 additions and 0 deletions

View File

@ -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<Command> finalizeExpungeCommands = hvGuru.finalizeExpunge(vm);
if (finalizeExpungeCommands != null && finalizeExpungeCommands.size() > 0) {

View File

@ -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;