diff --git a/engine/schema/src/main/java/com/cloud/host/dao/HostDao.java b/engine/schema/src/main/java/com/cloud/host/dao/HostDao.java index 5a0af88fb8f..d9a3fb8f18f 100644 --- a/engine/schema/src/main/java/com/cloud/host/dao/HostDao.java +++ b/engine/schema/src/main/java/com/cloud/host/dao/HostDao.java @@ -175,7 +175,7 @@ public interface HostDao extends GenericDao, StateDao listAllIds(); - List findDistinctHypervisorTypesForZone(final long zoneId); + List listDistinctHypervisorTypes(final Long zoneId); List listAllHostIdsInCluster(final long clusterId); } diff --git a/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java b/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java index c7a0b72e936..1bd51d333f4 100644 --- a/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/host/dao/HostDaoImpl.java @@ -1562,14 +1562,16 @@ public class HostDaoImpl extends GenericDaoBase implements HostDao } @Override - public List findDistinctHypervisorTypesForZone(long zoneId) { + public List listDistinctHypervisorTypes(final Long zoneId) { GenericSearchBuilder sb = createSearchBuilder(HypervisorType.class); sb.and("zoneId", sb.entity().getDataCenterId(), SearchCriteria.Op.EQ); sb.and("type", sb.entity().getType(), SearchCriteria.Op.EQ); sb.select(null, Func.DISTINCT, sb.entity().getHypervisorType()); sb.done(); SearchCriteria sc = sb.create(); - sc.setParameters("zoneId", zoneId); + if (zoneId != null) { + sc.setParameters("zoneId", zoneId); + } sc.setParameters("type", Type.Routing); return customSearch(sc, null); } diff --git a/engine/schema/src/main/java/com/cloud/storage/dao/VMTemplateDaoImpl.java b/engine/schema/src/main/java/com/cloud/storage/dao/VMTemplateDaoImpl.java index 7e82b96462d..dd5bc19df5c 100644 --- a/engine/schema/src/main/java/com/cloud/storage/dao/VMTemplateDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/storage/dao/VMTemplateDaoImpl.java @@ -546,19 +546,14 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem @Override public List listAllReadySystemVMTemplates(Long zoneId) { - List availableHypervisors = null; - if (zoneId != null) { - availableHypervisors = _hostDao.findDistinctHypervisorTypesForZone(zoneId); - if (CollectionUtils.isEmpty(availableHypervisors)) { - return Collections.emptyList(); - } + List availableHypervisors = _hostDao.listDistinctHypervisorTypes(zoneId); + if (CollectionUtils.isEmpty(availableHypervisors)) { + return Collections.emptyList(); } SearchCriteria sc = readySystemTemplateSearch.create(); sc.setParameters("templateType", Storage.TemplateType.SYSTEM); sc.setParameters("state", VirtualMachineTemplate.State.Active); - if (CollectionUtils.isNotEmpty(availableHypervisors)) { - sc.setParameters("hypervisorType", availableHypervisors.toArray()); - } + sc.setParameters("hypervisorType", availableHypervisors.toArray()); sc.setJoinParameters("vmTemplateJoinTemplateStoreRef", "downloadState", List.of(VMTemplateStorageResourceAssoc.Status.DOWNLOADED, VMTemplateStorageResourceAssoc.Status.BYPASSED).toArray());