@Override public List<VMTemplateVO> listReadyTemplates() { SearchCriteria<VMTemplateVO> sc = createSearchCriteria(); sc.addAnd("ready", SearchCriteria.Op.EQ, true); sc.addAnd("format", SearchCriteria.Op.NEQ, Storage.ImageFormat.ISO); return listIncludingRemovedBy(sc); }
@Override public List<VMTemplateVO> findTemplatesToSyncToS3() { return executeList(SELECT_S3_CANDIDATE_TEMPLATES, new Object[] {}); }
@Override public VMTemplateVO findByName(String templateName) { SearchCriteria<VMTemplateVO> sc = UniqueNameSearch.create(); sc.setParameters("uniqueName", templateName); return findOneIncludingRemovedBy(sc); }
@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 @DB public boolean remove(Long id) { TransactionLegacy txn = TransactionLegacy.currentTxn(); txn.start(); VMTemplateVO template = createForUpdate(); template.setRemoved(new Date()); VMTemplateVO vo = findById(id); if (vo != null) { if (vo.getFormat() == ImageFormat.ISO) { _tagsDao.removeByIdAndType(id, ResourceObjectType.ISO); } else { _tagsDao.removeByIdAndType(id, ResourceObjectType.Template); } } boolean result = update(id, template); txn.commit(); return result; }
UpdateBuilder builder = getUpdateBuilder(vo); builder.set(vo, "state", nextState); builder.set(vo, "updated", new Date()); int rows = update((VMTemplateVO)vo, sc); if (rows == 0 && s_logger.isDebugEnabled()) { VMTemplateVO dbTemplate = findByIdIncludingRemoved(vo.getId()); if (dbTemplate != null) { StringBuilder str = new StringBuilder("Unable to update ").append(vo.toString());
sb = PublicIsoSearch; } else { sb = createSearchBuilder(); sb.and("public", sb.entity().isPublicTemplate(), SearchCriteria.Op.EQ); sb.and("format", sb.entity().getFormat(), SearchCriteria.Op.EQ); return listBy(sc);
@Override public Long countTemplatesForAccount(long accountId) { SearchCriteria<Long> sc = CountTemplatesByAccount.create(); sc.setParameters("account", accountId); sc.setParameters("state", VirtualMachineTemplate.State.Active.toString()); return customSearch(sc, null).get(0); }
PublicSearch = createSearchBuilder(); PublicSearch.and("public", PublicSearch.entity().isPublicTemplate(), SearchCriteria.Op.EQ); UniqueNameSearch = createSearchBuilder(); UniqueNameSearch.and("uniqueName", UniqueNameSearch.entity().getUniqueName(), SearchCriteria.Op.EQ); NameSearch = createSearchBuilder(); NameSearch.and("name", NameSearch.entity().getName(), SearchCriteria.Op.EQ); NameAccountIdSearch = createSearchBuilder(); NameAccountIdSearch.and("name", NameAccountIdSearch.entity().getName(), SearchCriteria.Op.EQ); NameAccountIdSearch.and("accountId", NameAccountIdSearch.entity().getAccountId(), SearchCriteria.Op.EQ); PublicIsoSearch = createSearchBuilder(); PublicIsoSearch.and("public", PublicIsoSearch.entity().isPublicTemplate(), SearchCriteria.Op.EQ); PublicIsoSearch.and("format", PublicIsoSearch.entity().getFormat(), SearchCriteria.Op.EQ); UserIsoSearch = createSearchBuilder(); UserIsoSearch.and("format", UserIsoSearch.entity().getFormat(), SearchCriteria.Op.EQ); UserIsoSearch.and("type", UserIsoSearch.entity().getTemplateType(), SearchCriteria.Op.EQ); UserIsoSearch.and("state", UserIsoSearch.entity().getState(), SearchCriteria.Op.EQ); tmpltTypeHyperSearch = createSearchBuilder(); tmpltTypeHyperSearch.and("templateType", tmpltTypeHyperSearch.entity().getTemplateType(), SearchCriteria.Op.EQ); SearchBuilder<HostVO> hostHyperSearch = _hostDao.createSearchBuilder(); readySystemTemplateSearch = createSearchBuilder(); readySystemTemplateSearch.and("state", readySystemTemplateSearch.entity().getState(), SearchCriteria.Op.EQ); readySystemTemplateSearch.and("templateType", readySystemTemplateSearch.entity().getTemplateType(), SearchCriteria.Op.EQ);
@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> findIsosByIdAndPath(Long domainId, Long accountId, String path) { SearchCriteria<VMTemplateVO> sc = createSearchCriteria(); sc.addAnd("iso", SearchCriteria.Op.EQ, true); if (domainId != null) { sc.addAnd("domainId", SearchCriteria.Op.EQ, domainId); } if (accountId != null) { sc.addAnd("accountId", SearchCriteria.Op.EQ, accountId); } if (path != null) { sc.addAnd("path", SearchCriteria.Op.EQ, path); } return listIncludingRemovedBy(sc); }
@Override public VMTemplateVO findByTemplateName(String templateName) { SearchCriteria<VMTemplateVO> sc = NameSearch.create(); sc.setParameters("name", templateName); return findOneIncludingRemovedBy(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> listByAccountId(long accountId) { SearchCriteria<VMTemplateVO> sc = AccountIdSearch.create(); sc.setParameters("accountId", accountId); 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 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; } }