@Override protected boolean canHandle(NetworkOffering offering, NetworkType networkType, PhysicalNetwork physicalNetwork) { if (networkType == NetworkType.Advanced && isMyTrafficType(offering.getTrafficType()) && offering.getGuestType() == Network.GuestType.Isolated && isMyIsolationMethod(physicalNetwork) && ntwkOfferingSrvcDao.areServicesSupportedByNetworkOffering(offering.getId(), Service.Connectivity) && ntwkOfferingSrvcDao.isProviderForNetworkOffering(offering.getId(), Provider.Opendaylight)) { return true; } else { s_logger.trace("We only take care of Guest networks of type " + GuestType.Isolated + " in zone of type " + NetworkType.Advanced); return false; } }
public Long getPhysicalNetworkId() { NetworkOffering offering = _entityMgr.findById(NetworkOffering.class, networkOfferingId); if (offering == null) { throw new InvalidParameterValueException("Unable to find network offering by ID " + networkOfferingId); } if (physicalNetworkId != null) { if (offering.getGuestType() == GuestType.Shared) { return physicalNetworkId; } else { throw new InvalidParameterValueException("Physical network OD can be specified for networks of guest IP type " + GuestType.Shared + " only."); } } else { if (zoneId == null) { throw new InvalidParameterValueException("ZoneId is required as physicalNetworkId is null"); } return _networkService.findPhysicalNetworkId(zoneId, offering.getTags(), offering.getTrafficType()); } }
@Override public Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, Account owner) { TrafficType type = offering.getTrafficType(); if (!isMyTrafficType(type)) { return null; } NetworkVO config = new NetworkVO(type, Mode.Static, BroadcastDomainType.Native, offering.getId(), Network.State.Setup, plan.getDataCenterId(), plan.getPhysicalNetworkId(), offering.isRedundantRouter()); return config; }
@Override public boolean resourceCountNeedsUpdate(final NetworkOffering ntwkOff, final ACLType aclType) { //Update resource count only for Isolated account specific non-system networks final boolean updateResourceCount = ntwkOff.getGuestType() == GuestType.Isolated && !ntwkOff.isSystemOnly() && aclType == ACLType.Account; return updateResourceCount; }
protected boolean canHandle(NetworkOffering offering) { if (isMyTrafficType(offering.getTrafficType()) && offering.isSystemOnly()) { return true; } else { s_logger.trace("It's not storage network offering, skip it."); return false; } }
@Override protected boolean canHandle(NetworkOffering offering, final NetworkType networkType, final PhysicalNetwork physicalNetwork) { // This guru handles only Guest Isolated network that supports Source // nat service if (networkType == NetworkType.Advanced && isMyTrafficType(offering.getTrafficType()) && (offering.getGuestType() == Network.GuestType.Isolated || offering.getGuestType() == GuestType.L2) && isMyIsolationMethod(physicalNetwork) && !offering.isSystemOnly()) { return true; } else { s_logger.trace("We only take care of Guest networks of type " + GuestType.Isolated + " in zone of type " + NetworkType.Advanced); return false; } }
@Override public NetworkOfferingResponse createNetworkOfferingResponse(NetworkOffering offering) { NetworkOfferingResponse response = new NetworkOfferingResponse(); response.setId(offering.getUuid()); response.setName(offering.getName()); response.setDisplayText(offering.getDisplayText()); response.setTags(offering.getTags()); response.setTrafficType(offering.getTrafficType().toString()); response.setIsDefault(offering.isDefault()); response.setSpecifyVlan(offering.isSpecifyVlan()); response.setConserveMode(offering.isConserveMode()); response.setSpecifyIpRanges(offering.isSpecifyIpRanges()); response.setAvailability(offering.getAvailability().toString()); response.setIsPersistent(offering.isPersistent()); response.setNetworkRate(ApiDBUtils.getNetworkRate(offering.getId())); response.setEgressDefaultPolicy(offering.isEgressDefaultPolicy()); response.setConcurrentConnections(offering.getConcurrentConnections()); response.setSupportsStrechedL2Subnet(offering.isSupportingStrechedL2()); response.setSupportsPublicAccess(offering.isSupportingPublicAccess()); Long so = null; if (offering.getServiceOfferingId() != null) { so = offering.getServiceOfferingId(); } else { so = ApiDBUtils.findDefaultRouterServiceOffering(); if (offering.getGuestType() != null) { response.setGuestIpType(offering.getGuestType().toString()); response.setState(offering.getState().name());
@Override public List<Long> getOfferingIdsToUpgradeFrom(NetworkOffering originalOffering) { SearchCriteria<Long> sc = UpgradeSearch.create(); // exclude original offering sc.addAnd("id", SearchCriteria.Op.NEQ, originalOffering.getId()); // list only non-system offerings sc.addAnd("systemOnly", SearchCriteria.Op.EQ, false); // Type of the network should be the same sc.addAnd("guestType", SearchCriteria.Op.EQ, originalOffering.getGuestType()); // Traffic types should be the same sc.addAnd("trafficType", SearchCriteria.Op.EQ, originalOffering.getTrafficType()); sc.addAnd("state", SearchCriteria.Op.EQ, NetworkOffering.State.Enabled); //specify Vlan should be the same sc.addAnd("specifyVlan", SearchCriteria.Op.EQ, originalOffering.isSpecifyVlan()); return customSearch(sc, null); }
physicalNetworkId = networkModel.findPhysicalNetworkId(dcId, offering.getTags(), offering.getTrafficType()); State.Allocated, network.getDataCenterId(), physicalNetworkId, offering.isRedundantRouter()); final String transportzoneisotype = niciraNvpHost.getDetail("transportzoneisotype"); if (offering.getGuestType().equals(GuestType.Shared)) { try { checkL2GatewayServiceSharedNetwork(niciraNvpHost);
@Override public Long getPhysicalNetworkId(Network network) { if (network.getTrafficType() != TrafficType.Guest) { return getNonGuestNetworkPhysicalNetworkId(network); } Long physicalNetworkId = network.getPhysicalNetworkId(); NetworkOffering offering = _entityMgr.findById(NetworkOffering.class, network.getNetworkOfferingId()); if (physicalNetworkId == null) { physicalNetworkId = findPhysicalNetworkId(network.getDataCenterId(), offering.getTags(), offering.getTrafficType()); } return physicalNetworkId; }
@Override public Network implement(final Network network, final NetworkOffering offering, final DeployDestination dest, final ReservationContext context) throws InsufficientVirtualNetworkCapacityException { assert network.getState() == State.Implementing : "Why are we implementing " + network; final long dcId = dest.getDataCenter().getId(); //get physical network id Long physicalNetworkId = network.getPhysicalNetworkId(); // physical network id can be null in Guest Network in Basic zone, so locate the physical network if (physicalNetworkId == null) { physicalNetworkId = _networkModel.findPhysicalNetworkId(dcId, offering.getTags(), offering.getTrafficType()); } final NetworkVO implemented = new NetworkVO(network.getTrafficType(), network.getMode(), network.getBroadcastDomainType(), network.getNetworkOfferingId(), State.Allocated, network.getDataCenterId(), physicalNetworkId, offering.isRedundantRouter()); allocateVnet(network, implemented, dcId, physicalNetworkId, context.getReservationId()); if (network.getGateway() != null) { implemented.setGateway(network.getGateway()); } if (network.getCidr() != null) { implemented.setCidr(network.getCidr()); } return implemented; }
@Override protected boolean canHandle(NetworkOffering offering, final NetworkType networkType, final PhysicalNetwork physicalNetwork) { if (networkType == NetworkType.Advanced && isMyTrafficType(offering.getTrafficType()) && isMyIsolationMethod(physicalNetwork) && (offering.getGuestType() == GuestType.Isolated || offering.getGuestType() == GuestType.Shared) && hasRequiredServices(offering)) { if (_configMgr.isOfferingForVpc(offering) && !offering.isPersistent()) { if (s_logger.isDebugEnabled()) { s_logger.debug("NuageVsp can't handle VPC tiers which use a network offering which are not persistent"); } return false; } else if (offering.getGuestType() == GuestType.Shared) { List<String> supportedSharedNetworkServices = Lists.newArrayList(Network.Service.Connectivity.getName(), Network.Service.Dhcp.getName(), Network.Service.UserData.getName()); List<String> offeringServices = _ntwkOfferingSrvcDao.listServicesForNetworkOffering(offering.getId()); if (!supportedSharedNetworkServices.containsAll(offeringServices)) { if (s_logger.isDebugEnabled()) { s_logger.debug("We only support " + Iterables.toString(supportedSharedNetworkServices) + " services for shared networks"); } return false; } } return true; } else { if (s_logger.isTraceEnabled()) { s_logger.trace("We only take care of networks in zone of type " + NetworkType.Advanced + " without VLAN"); } return false; } }
@Override public boolean isReady(PhysicalNetworkServiceProvider provider) { Map<String, String> serviceMap = ((ConfigurationServerImpl)_configServer).getServicesAndProvidersForNetwork( _manager.getRouterOffering().getId()); List<TrafficType> types = new ArrayList<TrafficType>(); types.add(TrafficType.Control); types.add(TrafficType.Management); types.add(TrafficType.Storage); List<NetworkVO> systemNets = _manager.findSystemNetworks(types); if (systemNets != null && !systemNets.isEmpty()) { for (NetworkVO net: systemNets) { s_logger.debug("update system network service: " + net.getName() + "; service provider: " + serviceMap); _networksDao.update(net.getId(), net, serviceMap); } } else { s_logger.debug("no system networks created yet"); } serviceMap = ((ConfigurationServerImpl)_configServer).getServicesAndProvidersForNetwork( _manager.getPublicRouterOffering().getId()); types = new ArrayList<TrafficType>(); types.add(TrafficType.Public); systemNets = _manager.findSystemNetworks(types); if (systemNets != null && !systemNets.isEmpty()) { for (NetworkVO net: systemNets) { s_logger.debug("update system network service: " + net.getName() + "; service provider: " + serviceMap); _networksDao.update(net.getId(), net, serviceMap); } } else { s_logger.debug("no system networks created yet"); } return true; }
@Override protected boolean canHandle(NetworkOffering offering, final NetworkType networkType, final PhysicalNetwork physicalNetwork) { // This guru handles only Guest Isolated network that supports Source nat service if (networkType == NetworkType.Advanced && isMyTrafficType(offering.getTrafficType()) && (offering.getGuestType() == Network.GuestType.Isolated || offering.getGuestType() == Network.GuestType.L2) && isMyIsolationMethod(physicalNetwork)) { return true; } else { s_logger.trace("We only take care of Guest networks of type " + GuestType.Isolated + " or " + GuestType.L2 + " in zone of type " + NetworkType.Advanced); return false; } }
@Override public boolean areServicesEnabledInZone(long zoneId, NetworkOffering offering, List<Service> services) { long physicalNtwkId = findPhysicalNetworkId(zoneId, offering.getTags(), offering.getTrafficType()); boolean result = true; List<String> checkedProvider = new ArrayList<String>(); for (Service service : services) { // get all the providers, and check if each provider is enabled List<String> providerNames = _ntwkOfferingSrvcDao.listProvidersForServiceForNetworkOffering(offering.getId(), service); for (String providerName : providerNames) { if (!checkedProvider.contains(providerName)) { result = result && isProviderEnabledInPhysicalNetwork(physicalNtwkId, providerName); } } } return result; }
if (oldNetworkOffering.getGuestType() != GuestType.Isolated) { throw new InvalidParameterValueException("NetworkOfferingId can be upgraded only for the network of type " + GuestType.Isolated); if (oldNetworkOffering.getGuestType() != newNetworkOffering.getGuestType()) { s_logger.debug("Network offerings " + newNetworkOfferingId + " and " + oldNetworkOfferingId + " are of different types, can't upgrade"); return false; if (oldNetworkOffering.getTrafficType() != newNetworkOffering.getTrafficType()) { s_logger.debug("Network offerings " + newNetworkOfferingId + " and " + oldNetworkOfferingId + " have different traffic types, can't upgrade"); return false; if (oldNetworkOffering.isSpecifyIpRanges() != newNetworkOffering.isSpecifyIpRanges()) { s_logger.debug("Network offerings " + newNetworkOfferingId + " and " + oldNetworkOfferingId + " have different values for specifyIpRangess, can't upgrade"); return false; if (oldNetworkOffering.isConserveMode() && !newNetworkOffering.isConserveMode()) { if (!canIpsUsedForNonConserve(publicIps)) { return false; if (oldNetworkOffering.isPublicLb() != newNetworkOffering.isPublicLb() || oldNetworkOffering.isInternalLb() != newNetworkOffering.isInternalLb()) { throw new InvalidParameterValueException("Original and new offerings support different types of LB - Internal vs Public," + " can't upgrade");
@Override public void doInTransactionWithoutResult(final TransactionStatus status) { final NetworkVO vo = new NetworkVO(id, network, offering.getId(), guru.getName(), owner.getDomainId(), owner.getId(), relatedFile, name, displayText, predefined .getNetworkDomain(), offering.getGuestType(), plan.getDataCenterId(), plan.getPhysicalNetworkId(), aclType, offering.isSpecifyIpRanges(), vpcId, offering.isRedundantRouter(), predefined.getExternalId()); vo.setDisplayNetwork(isDisplayNetworkEnabled == null ? true : isDisplayNetworkEnabled); vo.setStrechedL2Network(offering.isSupportingStrechedL2()); final NetworkVO networkPersisted = _networksDao.persist(vo, vo.getGuestType() == Network.GuestType.Isolated, finalizeServicesAndProvidersForNetwork(offering, plan.getPhysicalNetworkId())); networks.add(networkPersisted); if (predefined instanceof NetworkVO && guru instanceof NetworkGuruAdditionalFunctions){ final NetworkGuruAdditionalFunctions functions = (NetworkGuruAdditionalFunctions) guru; functions.finalizeNetworkDesign(networkPersisted.getId(), ((NetworkVO)predefined).getVlanIdAsUUID()); } if (domainId != null && aclType == ACLType.Domain) { _networksDao.addDomainToNetwork(id, domainId, subdomainAccess == null ? true : subdomainAccess); } } });
@Override public boolean implement(Network network, NetworkOffering offering, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException { if (offering.isSystemOnly() || !canHandle(dest, offering.getTrafficType(), network.getGuestType())) { s_logger.debug("BaremetalDhcpElement can not handle networkoffering: " + offering.getName()); return false; } return true; }
|| offering.getTrafficType() != TrafficType.Guest && predefined.getCidr() == null && predefined.getBroadcastUri() == null && !(predefined .getBroadcastDomainType() == BroadcastDomainType.Vlan || predefined.getBroadcastDomainType() == BroadcastDomainType.Lswitch || predefined .getBroadcastDomainType() == BroadcastDomainType.Vxlan)) { final List<NetworkVO> configs = _networksDao.listBy(owner.getId(), offering.getId(), plan.getDataCenterId()); if (configs.size() > 0) { if (s_logger.isDebugEnabled()) { final InvalidParameterValueException ex = new InvalidParameterValueException( "Found existing network configuration (with specified id) for offering (with specified id)"); ex.addProxyObject(offering.getUuid(), "offeringId"); ex.addProxyObject(configs.get(0).getUuid(), "networkConfigId"); throw ex; ex.addProxyObject(offering.getUuid(), "offeringId"); throw ex;
@Override public boolean implement(Network network, NetworkOffering offering, DeployDestination dest, ReservationContext context) throws ResourceUnavailableException, ConcurrentOperationException, InsufficientCapacityException { if (!canHandle(dest, offering.getTrafficType())) { return false; } return true; }