@Override public List<VMTemplateVO> listByHypervisorType(List<HypervisorType> hyperTypes) { SearchCriteria<VMTemplateVO> sc = createSearchCriteria(); hyperTypes.add(HypervisorType.None); sc.addAnd("hypervisorType", SearchCriteria.Op.IN, hyperTypes.toArray()); return listBy(sc); }
@Override public List<VMTemplateVO> listByState(VirtualMachineTemplate.State... states) { SearchCriteria<VMTemplateVO> sc = ActiveTmpltSearch.create(); sc.setParameters("state", (Object[])states); return listBy(sc); }
@Override public List<VMTemplateVO> listByPublic() { SearchCriteria<VMTemplateVO> sc = PublicSearch.create(); sc.setParameters("public", 1); return listBy(sc); }
@Override public List<VMTemplateVO> listAllActive() { SearchCriteria<VMTemplateVO> sc = ActiveTmpltSearch.create(); sc.setParameters("state", VirtualMachineTemplate.State.Active.toString()); return listBy(sc); }
@Override public List<VMTemplateVO> listDefaultBuiltinTemplates() { SearchCriteria<VMTemplateVO> sc = tmpltTypeSearch.create(); sc.setParameters("templateType", Storage.TemplateType.BUILTIN); sc.setParameters("state", VirtualMachineTemplate.State.Active); return listBy(sc); }
@Override public List<VMTemplateVO> listByParentTemplatetId(long parentTemplatetId) { SearchCriteria<VMTemplateVO> sc = ParentTemplateIdSearch.create(); sc.setParameters("parentTemplateId", parentTemplatetId); sc.setParameters("state", VirtualMachineTemplate.State.Active); return listBy(sc); }
@Override public List<VMTemplateVO> listAllSystemVMTemplates() { SearchCriteria<VMTemplateVO> sc = tmpltTypeSearch.create(); sc.setParameters("templateType", Storage.TemplateType.SYSTEM); Filter filter = new Filter(VMTemplateVO.class, "id", false, null, null); return listBy(sc, filter); }
@Override public List<VMTemplateVO> listByAccountId(long accountId) { SearchCriteria<VMTemplateVO> sc = AccountIdSearch.create(); sc.setParameters("accountId", accountId); sc.setParameters("state", VirtualMachineTemplate.State.Active); return listBy(sc); }
@Override public VMTemplateVO findSystemVMTemplate(long zoneId) { SearchCriteria<VMTemplateVO> sc = tmpltTypeHyperSearch.create(); sc.setParameters("templateType", Storage.TemplateType.SYSTEM); sc.setJoinParameters("tmplHyper", "type", Host.Type.Routing); sc.setJoinParameters("tmplHyper", "zoneId", zoneId); // order by descending order of id and select the first (this is going // to be the latest) List<VMTemplateVO> tmplts = listBy(sc, new Filter(VMTemplateVO.class, "id", false, null, 1l)); if (tmplts.size() > 0) { return tmplts.get(0); } else { return null; } }
@Override public List<VMTemplateVO> userIsoSearch(boolean listRemoved) { SearchBuilder<VMTemplateVO> sb = null; sb = UserIsoSearch; SearchCriteria<VMTemplateVO> sc = sb.create(); sc.setParameters("format", Storage.ImageFormat.ISO); sc.setParameters("type", TemplateType.USER.toString()); if (!listRemoved) { sc.setParameters("state", VirtualMachineTemplate.State.Active); } return listBy(sc); }
@Override public VMTemplateVO findRoutingTemplate(HypervisorType hType, String templateName) { SearchCriteria<VMTemplateVO> sc = tmpltTypeHyperSearch2.create(); sc.setParameters("templateType", TemplateType.ROUTING); sc.setParameters("hypervisorType", hType); if (templateName != null) { sc.setParameters("templateName", templateName); } // order by descending order of id and select the first (this is going // to be the latest) List<VMTemplateVO> tmplts = listBy(sc, new Filter(VMTemplateVO.class, "id", false, null, 1l)); if (tmplts.size() > 0) { return tmplts.get(0); } else { sc = tmpltTypeHyperSearch2.create(); sc.setParameters("templateType", TemplateType.SYSTEM); sc.setParameters("hypervisorType", hType); if (templateName != null) { sc.setParameters("templateName", templateName); } // order by descending order of id and select the first (this is going // to be the latest) tmplts = listBy(sc, new Filter(VMTemplateVO.class, "id", false, null, 1l)); if (tmplts.size() > 0) { return tmplts.get(0); } else { return null; } } }
@Override public List<VMTemplateVO> listInZoneByState(long dataCenterId, VirtualMachineTemplate.State... states) { SearchCriteria<VMTemplateVO> sc = TmpltsInZoneSearch.create(); sc.setParameters("avoidtype", TemplateType.PERHOST.toString()); sc.setParameters("state", (Object[])states); sc.setJoinParameters("tmpltzone", "zoneId", dataCenterId); return listBy(sc); }
@Override @DB public List<VMTemplateVO> listAllInZone(long dataCenterId) { SearchCriteria<VMTemplateVO> sc = TmpltsInZoneSearch.create(); sc.setParameters("avoidtype", TemplateType.PERHOST.toString()); sc.setParameters("state", VirtualMachineTemplate.State.Active); sc.setJoinParameters("tmpltzone", "zoneId", dataCenterId); return listBy(sc); }
@Override public VMTemplateVO findSystemVMReadyTemplate(long zoneId, HypervisorType hypervisorType) { SearchCriteria<VMTemplateVO> sc = readySystemTemplateSearch.create(); sc.setParameters("templateType", Storage.TemplateType.SYSTEM); sc.setParameters("state", VirtualMachineTemplate.State.Active); sc.setJoinParameters("tmplHyper", "type", Host.Type.Routing); sc.setJoinParameters("tmplHyper", "zoneId", zoneId); sc.setJoinParameters("vmTemplateJoinTemplateStoreRef", "downloadState", VMTemplateStorageResourceAssoc.Status.DOWNLOADED); // order by descending order of id List<VMTemplateVO> tmplts = listBy(sc, new Filter(VMTemplateVO.class, "id", false, null, null)); if (tmplts.size() > 0) { if (hypervisorType == HypervisorType.Any) { return tmplts.get(0); } for (VMTemplateVO tmplt : tmplts) { if (tmplt.getHypervisorType() == hypervisorType) { return tmplt; } } } return null; }
return listBy(sc);