@Override @DB public ServiceOfferingVO persistDeafultServiceOffering(ServiceOfferingVO offering) { assert offering.getUniqueName() != null : "unique name should be set for the service offering"; ServiceOfferingVO vo = findByName(offering.getUniqueName()); if (vo != null) { return vo; } try { return persist(offering); } catch (EntityExistsException e) { // Assume it's conflict on unique name return findByName(offering.getUniqueName()); } }
@Override public boolean remove(Long id) { ServiceOfferingVO offering = createForUpdate(); offering.setRemoved(new Date()); return update(id, offering); }
@Override public List<ServiceOfferingVO> findServiceOfferingByDomainId(Long domainId) { SearchCriteria<ServiceOfferingVO> sc = ServiceOfferingsByDomainIdSearch.create(); sc.setParameters("domainId", domainId); return listBy(sc); }
@Override @DB public ServiceOfferingVO persistSystemServiceOffering(ServiceOfferingVO offering) { assert offering.getUniqueName() != null : "how are you going to find this later if you don't set it?"; ServiceOfferingVO vo = findByName(offering.getUniqueName()); if (vo != null) { // check invalid CPU speed in system service offering, set it to default value of 500 Mhz if 0 CPU speed is found if (vo.getSpeed() <= 0) { vo.setSpeed(500); update(vo.getId(), vo); } if (!vo.getUniqueName().endsWith("-Local")) { if (vo.isUseLocalStorage()) { vo.setUniqueName(vo.getUniqueName() + "-Local"); vo.setName(vo.getName() + " - Local Storage"); update(vo.getId(), vo); } } return vo; } try { return persist(offering); } catch (EntityExistsException e) { // Assume it's conflict on unique name return findByName(offering.getUniqueName()); } }
dao.persist(serviceOffering); } catch (Exception e) { s_logger.error("error creating service offering", e);
@Override public ServiceOfferingVO findById(Long vmId, long serviceOfferingId) { ServiceOfferingVO offering = super.findById(serviceOfferingId); if (offering.isDynamic()) { offering.setDynamicFlag(true); if (vmId == null) { throw new CloudRuntimeException("missing argument vmId"); } Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId); return getcomputeOffering(offering, dynamicOffering); } return offering; }
@Override public ServiceOfferingVO findDefaultSystemOffering(String offeringName, Boolean useLocalStorage) { String name = offeringName; if (useLocalStorage != null && useLocalStorage.booleanValue()) { name += "-Local"; } ServiceOfferingVO serviceOffering = findByName(name); if (serviceOffering == null) { String message = "System service offering " + name + " not found"; s_logger.error(message); throw new CloudRuntimeException(message); } return serviceOffering; } }
@Override public ServiceOfferingVO findByName(String name) { SearchCriteria<ServiceOfferingVO> sc = UniqueNameSearch.create(); sc.setParameters("name", name); sc.setParameters("system", true); List<ServiceOfferingVO> vos = search(sc, null, null, false); if (vos.size() == 0) { return null; } return vos.get(0); }
@Override public List<ServiceOfferingVO> createSystemServiceOfferings(String name, String uniqueName, int cpuCount, int ramSize, int cpuSpeed, Integer rateMbps, Integer multicastRateMbps, boolean offerHA, String displayText, ProvisioningType provisioningType, boolean recreatable, String tags, boolean systemUse, VirtualMachine.Type vmType, boolean defaultUse) { List<ServiceOfferingVO> list = new ArrayList<ServiceOfferingVO>(); ServiceOfferingVO offering = new ServiceOfferingVO(name, cpuCount, ramSize, cpuSpeed, rateMbps, multicastRateMbps, offerHA, displayText, provisioningType, false, recreatable, tags, systemUse, vmType, defaultUse); offering.setUniqueName(uniqueName); offering = persistSystemServiceOffering(offering); if (offering != null) { list.add(offering); } boolean useLocal = true; if (offering.isUseLocalStorage()) { // if 1st one is already local then 2nd needs to be shared useLocal = false; } offering = new ServiceOfferingVO(name + (useLocal ? " - Local Storage" : ""), cpuCount, ramSize, cpuSpeed, rateMbps, multicastRateMbps, offerHA, displayText, provisioningType, useLocal, recreatable, tags, systemUse, vmType, defaultUse); offering.setUniqueName(uniqueName + (useLocal ? "-Local" : "")); offering = persistSystemServiceOffering(offering); if (offering != null) { list.add(offering); } return list; }
public ServiceOfferingDaoImpl() { super(); UniqueNameSearch = createSearchBuilder(); UniqueNameSearch.and("name", UniqueNameSearch.entity().getUniqueName(), SearchCriteria.Op.EQ); UniqueNameSearch.and("system", UniqueNameSearch.entity().isSystemUse(), SearchCriteria.Op.EQ); UniqueNameSearch.done(); ServiceOfferingsByDomainIdSearch = createSearchBuilder(); ServiceOfferingsByDomainIdSearch.and("domainId", ServiceOfferingsByDomainIdSearch.entity().getDomainId(), SearchCriteria.Op.EQ); ServiceOfferingsByDomainIdSearch.done(); SystemServiceOffering = createSearchBuilder(); SystemServiceOffering.and("domainId", SystemServiceOffering.entity().getDomainId(), SearchCriteria.Op.EQ); SystemServiceOffering.and("system", SystemServiceOffering.entity().isSystemUse(), SearchCriteria.Op.EQ); SystemServiceOffering.and("vm_type", SystemServiceOffering.entity().getSpeed(), SearchCriteria.Op.EQ); SystemServiceOffering.and("removed", SystemServiceOffering.entity().getRemoved(), SearchCriteria.Op.NULL); SystemServiceOffering.done(); PublicServiceOfferingSearch = createSearchBuilder(); PublicServiceOfferingSearch.and("domainId", PublicServiceOfferingSearch.entity().getDomainId(), SearchCriteria.Op.NULL); PublicServiceOfferingSearch.and("system", PublicServiceOfferingSearch.entity().isSystemUse(), SearchCriteria.Op.EQ); PublicServiceOfferingSearch.and("removed", PublicServiceOfferingSearch.entity().getRemoved(), SearchCriteria.Op.NULL); PublicServiceOfferingSearch.done(); ServiceOfferingsByKeywordSearch = createSearchBuilder(); ServiceOfferingsByKeywordSearch.or("name", ServiceOfferingsByKeywordSearch.entity().getName(), SearchCriteria.Op.EQ); ServiceOfferingsByKeywordSearch.or("displayText", ServiceOfferingsByKeywordSearch.entity().getDisplayText(), SearchCriteria.Op.EQ); ServiceOfferingsByKeywordSearch.done(); }
@Override public ServiceOfferingVO findByIdIncludingRemoved(Long vmId, long serviceOfferingId) { ServiceOfferingVO offering = super.findByIdIncludingRemoved(serviceOfferingId); if (offering.isDynamic()) { offering.setDynamicFlag(true); if (vmId == null) { throw new CloudRuntimeException("missing argument vmId"); } Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId); return getcomputeOffering(offering, dynamicOffering); } return offering; }
@Override public List<ServiceOfferingVO> findPublicServiceOfferings() { SearchCriteria<ServiceOfferingVO> sc = PublicServiceOfferingSearch.create(); sc.setParameters("system", false); return listBy(sc); }
@Override public List<ServiceOfferingVO> findSystemOffering(Long domainId, Boolean isSystem, String vmType) { SearchCriteria<ServiceOfferingVO> sc = SystemServiceOffering.create(); sc.setParameters("domainId", domainId); sc.setParameters("system", isSystem); sc.setParameters("vm_type", vmType); return listBy(sc); }