Skip to content

Commit ebf01da

Browse files
Added VMs existance check
1 parent 4a78277 commit ebf01da

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

server/src/main/java/com/cloud/template/HypervisorTemplateAdapter.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
import javax.inject.Inject;
3030

3131
import com.cloud.domain.Domain;
32+
import com.cloud.vm.VMInstanceVO;
33+
import com.cloud.vm.dao.VMInstanceDao;
3234
import org.apache.cloudstack.agent.directdownload.CheckUrlAnswer;
3335
import org.apache.cloudstack.agent.directdownload.CheckUrlCommand;
3436
import org.apache.cloudstack.annotation.AnnotationService;
@@ -142,6 +144,8 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase {
142144
private TemplateDeployAsIsDetailsDao templateDeployAsIsDetailsDao;
143145
@Inject
144146
private AnnotationDao annotationDao;
147+
@Inject
148+
VMInstanceDao _vmInstanceDao;
145149

146150
@Override
147151
public String getName() {
@@ -665,6 +669,14 @@ public boolean delete(TemplateProfile profile) {
665669
// Remove template details
666670
templateDetailsDao.removeDetails(template.getId());
667671

672+
// Remove deploy-as-is details (if any and if there are no VMs using it)
673+
if (template.isDeployAsIs()) {
674+
List<VMInstanceVO> vmInstanceVOList = _vmInstanceDao.listNonExpungedByTemplate(template.getId());
675+
if (CollectionUtils.isEmpty(vmInstanceVOList)) {
676+
templateDeployAsIsDetailsDao.removeDetails(template.getId());
677+
}
678+
}
679+
668680
// Remove comments (if any)
669681
AnnotationService.EntityType entityType = template.getFormat().equals(ImageFormat.ISO) ?
670682
AnnotationService.EntityType.ISO : AnnotationService.EntityType.TEMPLATE;

0 commit comments

Comments
 (0)