Map<Provider, Set<Service>> getProviderServicesMap(long networkId) { Map<Provider, Set<Service>> map = new HashMap<Provider, Set<Service>>(); List<NetworkServiceMapVO> nsms = _ntwkSrvcDao.getServicesInNetwork(networkId); for (NetworkServiceMapVO nsm : nsms) { Set<Service> services = map.get(Provider.getProvider(nsm.getProvider())); if (services == null) { services = new HashSet<Service>(); } services.add(Service.getService(nsm.getService())); map.put(Provider.getProvider(nsm.getProvider()), services); } return map; }
protected NetworkServiceMapDaoImpl() { super(); AllFieldsSearch = createSearchBuilder(); AllFieldsSearch.and("networkId", AllFieldsSearch.entity().getNetworkId(), SearchCriteria.Op.EQ); AllFieldsSearch.and("service", AllFieldsSearch.entity().getService(), SearchCriteria.Op.EQ); AllFieldsSearch.and("provider", AllFieldsSearch.entity().getProvider(), SearchCriteria.Op.EQ); AllFieldsSearch.done(); MultipleServicesSearch = createSearchBuilder(); MultipleServicesSearch.and("networkId", MultipleServicesSearch.entity().getNetworkId(), SearchCriteria.Op.EQ); MultipleServicesSearch.and("service", MultipleServicesSearch.entity().getService(), SearchCriteria.Op.IN); MultipleServicesSearch.and("provider", MultipleServicesSearch.entity().getProvider(), SearchCriteria.Op.EQ); MultipleServicesSearch.done(); DistinctProvidersSearch = createSearchBuilder(String.class); DistinctProvidersSearch.and("networkId", DistinctProvidersSearch.entity().getNetworkId(), SearchCriteria.Op.EQ); DistinctProvidersSearch.and("provider", DistinctProvidersSearch.entity().getProvider(), SearchCriteria.Op.EQ); DistinctProvidersSearch.and("service", DistinctProvidersSearch.entity().getService(), SearchCriteria.Op.EQ); DistinctProvidersSearch.selectFields(DistinctProvidersSearch.entity().getProvider()); DistinctProvidersSearch.done(); }
@Override public List<NetworkVO> listByPhysicalNetworkAndProvider(final long physicalNetworkId, final String providerName) { final SearchBuilder<NetworkServiceMapVO> svcProviderMapSearch = _ntwkSvcMap.createSearchBuilder(); final NetworkServiceMapVO svcProviderEntry = svcProviderMapSearch.entity(); svcProviderMapSearch.and("Provider", svcProviderMapSearch.entity().getProvider(), SearchCriteria.Op.EQ); final SearchBuilder<NetworkVO> networksSearch = createSearchBuilder(); networksSearch.and("physicalNetworkId", networksSearch.entity().getPhysicalNetworkId(), Op.EQ); networksSearch.join("svcProviderMapSearch", svcProviderMapSearch, networksSearch.entity().getId(), svcProviderEntry.getNetworkId(), JoinBuilder.JoinType.INNER); final SearchCriteria<NetworkVO> sc = networksSearch.create(); sc.setJoinParameters("svcProviderMapSearch", "Provider", providerName); sc.setParameters("physicalNetworkId", physicalNetworkId); return listBy(sc); }
@Override public List<String> getServicesNotSupportedInNewOffering(Network network,long newNetworkOfferingId){ NetworkOffering offering =_networkOfferingDao.findById(newNetworkOfferingId); List<String> services=_ntwkOfferingSrvcDao.listServicesForNetworkOffering(offering.getId()); List<NetworkServiceMapVO> serviceMap= _ntwkSrvcDao.getServicesInNetwork(network.getId()); List<String> servicesNotInNewOffering=new ArrayList<>(); for(NetworkServiceMapVO serviceVO :serviceMap){ boolean inlist=false; for(String service: services){ if(serviceVO.getService().equalsIgnoreCase(service)){ inlist=true; break; } } if(!inlist){ //ignore Gateway service as this has no effect on the //behaviour of network. if(!serviceVO.getService().equalsIgnoreCase(Service.Gateway.getName())) servicesNotInNewOffering.add(serviceVO.getService()); } } return servicesNotInNewOffering; }
ZoneSecurityGroupSearch.and("dataCenterId", ZoneSecurityGroupSearch.entity().getDataCenterId(), Op.EQ); final SearchBuilder<NetworkServiceMapVO> offJoin = _ntwkSvcMap.createSearchBuilder(); offJoin.and("service", offJoin.entity().getService(), Op.EQ); ZoneSecurityGroupSearch.join("services", offJoin, ZoneSecurityGroupSearch.entity().getId(), offJoin.entity().getNetworkId(), JoinBuilder.JoinType.INNER); ZoneSecurityGroupSearch.done(); join3.and("service", join3.entity().getService(), Op.EQ); SecurityGroupSearch.join("services", join3, SecurityGroupSearch.entity().getId(), join3.entity().getNetworkId(), JoinBuilder.JoinType.INNER); SecurityGroupSearch.done(); SourceNATSearch.and("guestType", SourceNATSearch.entity().getGuestType(), Op.EQ); final SearchBuilder<NetworkServiceMapVO> join6 = _ntwkSvcMap.createSearchBuilder(); join6.and("service", join6.entity().getService(), Op.EQ); SourceNATSearch.join("services", join6, SourceNATSearch.entity().getId(), join6.entity().getNetworkId(), JoinBuilder.JoinType.INNER); SourceNATSearch.done();
@Override public String getProviderForServiceInNetwork(long networkId, Service service) { SearchCriteria<NetworkServiceMapVO> sc = AllFieldsSearch.create(); sc.setParameters("networkId", networkId); sc.setParameters("service", service.getName()); NetworkServiceMapVO ntwkSvc = findOneBy(sc); if (ntwkSvc == null) { throw new UnsupportedServiceException("Service " + service.getName() + " is not supported in the network id=" + networkId); } return ntwkSvc.getProvider(); }
@Override @DB public void persistNetworkServiceProviders(final long networkId, final Map<String, String> serviceProviderMap) { final TransactionLegacy txn = TransactionLegacy.currentTxn(); txn.start(); for (final String service : serviceProviderMap.keySet()) { final NetworkServiceMapVO serviceMap = new NetworkServiceMapVO(networkId, Service.getService(service), Provider.getProvider(serviceProviderMap.get(service))); _ntwkSvcMap.persist(serviceMap); } txn.commit(); }
protected List<String> getServicesForProviderInNetwork(long networkId, Provider provider) { List<String> services = new ArrayList<String>(); SearchCriteria<NetworkServiceMapVO> sc = AllFieldsSearch.create(); sc.setParameters("networkId", networkId); sc.setParameters("provider", provider.getName()); List<NetworkServiceMapVO> map = listBy(sc); for (NetworkServiceMapVO instance : map) { services.add(instance.getService()); } return services; }
Map<Service, Set<Provider>> getServiceProvidersMap(long networkId) { Map<Service, Set<Provider>> map = new HashMap<Service, Set<Provider>>(); List<NetworkServiceMapVO> nsms = _ntwkSrvcDao.getServicesInNetwork(networkId); for (NetworkServiceMapVO nsm : nsms) { Set<Provider> providers = map.get(Service.getService(nsm.getService())); if (providers == null) { providers = new HashSet<Provider>(); } providers.add(Provider.getProvider(nsm.getProvider())); map.put(Service.getService(nsm.getService()), providers); } return map; }
private Map<Service, Set<Provider>> getServiceProvidersMap(final long networkId) { final Map<Service, Set<Provider>> map = new HashMap<Service, Set<Provider>>(); final List<NetworkServiceMapVO> nsms = _ntwkSrvcDao.getServicesInNetwork(networkId); for (final NetworkServiceMapVO nsm : nsms) { Set<Provider> providers = map.get(Service.getService(nsm.getService())); if (providers == null) { providers = new HashSet<Provider>(); } providers.add(Provider.getProvider(nsm.getProvider())); map.put(Service.getService(nsm.getService()), providers); } return map; }
@Override public Map<Service, Map<Capability, String>> getNetworkCapabilities(long networkId) { Map<Service, Map<Capability, String>> networkCapabilities = new HashMap<Service, Map<Capability, String>>(); // list all services of this networkOffering List<NetworkServiceMapVO> servicesMap = _ntwkSrvcDao.getServicesInNetwork(networkId); for (NetworkServiceMapVO instance : servicesMap) { Service service = Service.getService(instance.getService()); NetworkElement element = getElementImplementingProvider(instance.getProvider()); if (element != null) { Map<Service, Map<Capability, String>> elementCapabilities = element.getCapabilities(); if (elementCapabilities != null) { networkCapabilities.put(service, elementCapabilities.get(service)); } } } return networkCapabilities; }