diff --git a/server/src/com/cloud/storage/dao/VMTemplateDao.java b/server/src/com/cloud/storage/dao/VMTemplateDao.java index 4b21a0a8833..b8587ce42da 100644 --- a/server/src/com/cloud/storage/dao/VMTemplateDao.java +++ b/server/src/com/cloud/storage/dao/VMTemplateDao.java @@ -65,7 +65,7 @@ public interface VMTemplateDao extends GenericDao { public List listAllInZone(long dataCenterId); public List listByHypervisorType(HypervisorType hyperType); - public List publicIsoSearch(Boolean bootable); + public List publicIsoSearch(Boolean bootable, boolean listRemoved); VMTemplateVO findSystemVMTemplate(long zoneId); VMTemplateVO findSystemVMTemplate(long zoneId, HypervisorType hType); diff --git a/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java b/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java index 02066fe0fa0..d8fbaf021d1 100755 --- a/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java +++ b/server/src/com/cloud/storage/dao/VMTemplateDaoImpl.java @@ -132,7 +132,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem } @Override - public List publicIsoSearch(Boolean bootable){ + public List publicIsoSearch(Boolean bootable, boolean listRemoved){ SearchCriteria sc = PublicIsoSearch.create(); sc.setParameters("public", 1); sc.setParameters("format", "ISO"); @@ -141,6 +141,10 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem sc.setParameters("bootable", bootable); } + if (!listRemoved) { + sc.setParameters("removed", (Object)null); + } + return listBy(sc); } @@ -251,6 +255,8 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem PublicIsoSearch.and("format", PublicIsoSearch.entity().getFormat(), SearchCriteria.Op.EQ); PublicIsoSearch.and("type", PublicIsoSearch.entity().getTemplateType(), SearchCriteria.Op.EQ); PublicIsoSearch.and("bootable", PublicIsoSearch.entity().isBootable(), SearchCriteria.Op.EQ); + PublicIsoSearch.and("removed", PublicIsoSearch.entity().getRemoved(), SearchCriteria.Op.EQ); + tmpltTypeHyperSearch = createSearchBuilder(); tmpltTypeHyperSearch.and("templateType", tmpltTypeHyperSearch.entity().getTemplateType(), SearchCriteria.Op.EQ); @@ -432,7 +438,7 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem if(isIso && templateZonePairList.size() < (pageSize != null ? pageSize : 500) && templateFilter != TemplateFilter.community && !(templateFilter == TemplateFilter.self && !BaseCmd.isRootAdmin(account.getType())) ){ //evaluates to true If root admin and filter=self - List publicIsos = publicIsoSearch(bootable); + List publicIsos = publicIsoSearch(bootable, false); for( int i=0; i < publicIsos.size(); i++){ if (keyword != null && publicIsos.get(i).getName().contains(keyword)) { templateZonePairList.add(new Pair(publicIsos.get(i).getId(), null));