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 6e0dc5cbeea..7e82b96462d 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,14 +546,19 @@ public class VMTemplateDaoImpl extends GenericDaoBase implem @Override public List listAllReadySystemVMTemplates(Long zoneId) { - List availableHypervisors = _hostDao.findDistinctHypervisorTypesForZone(zoneId); - if (CollectionUtils.isEmpty(availableHypervisors)) { - return Collections.emptyList(); + List availableHypervisors = null; + if (zoneId != null) { + availableHypervisors = _hostDao.findDistinctHypervisorTypesForZone(zoneId); + if (CollectionUtils.isEmpty(availableHypervisors)) { + return Collections.emptyList(); + } } SearchCriteria sc = readySystemTemplateSearch.create(); sc.setParameters("templateType", Storage.TemplateType.SYSTEM); sc.setParameters("state", VirtualMachineTemplate.State.Active); - sc.setParameters("hypervisorType", availableHypervisors.toArray()); + if (CollectionUtils.isNotEmpty(availableHypervisors)) { + sc.setParameters("hypervisorType", availableHypervisors.toArray()); + } sc.setJoinParameters("vmTemplateJoinTemplateStoreRef", "downloadState", List.of(VMTemplateStorageResourceAssoc.Status.DOWNLOADED, VMTemplateStorageResourceAssoc.Status.BYPASSED).toArray());