private Long getPhysicalNetworkId(Long zoneId) { Long guestPhysicalNetworkId = 0L; List<PhysicalNetworkVO> physicalNetworkList = _physicalNetworkDao.listByZone(zoneId); for (PhysicalNetworkVO phyNtwk : physicalNetworkList) { if (phyNtwk.getIsolationMethods().contains("VSP")) { guestPhysicalNetworkId = phyNtwk.getId(); break; } } return guestPhysicalNetworkId; }
/** * Returns the PhysicalNetworkId based on a zoneId * @param zoneId != null, the zone id for which we need to retrieve the PhysicalNetworkId * @return the physical network id if it's found otherwise null */ private Long getPhysicalNetworkBasedOnZone(Long zoneId){ Long physicalNetworkId = null; List<PhysicalNetworkVO> physicalNetworkVOs = _physicalNetworkDao.listByZoneAndTrafficType(zoneId, Networks.TrafficType.Guest); for (PhysicalNetworkVO physicalNetwok : physicalNetworkVOs) { if (physicalNetwok.getIsolationMethods().contains(NUAGE_VSP_ISOLATION)) { physicalNetworkId = physicalNetwok.getId(); break; } } return physicalNetworkId; }
@Override public Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, Account owner) { // Check if the isolation type of the physical network is BCF_SEGMENT, then delegate GuestNetworkGuru to design PhysicalNetworkVO physnet = _physicalNetworkDao.findById(plan.getPhysicalNetworkId()); if (physnet == null || physnet.getIsolationMethods() == null || !physnet.getIsolationMethods().contains("BCF_SEGMENT")) { s_logger.debug("Refusing to design this network, the physical isolation type is not BCF_SEGMENT"); return null; } List<BigSwitchBcfDeviceVO> devices = _bigswitchBcfDao.listByPhysicalNetwork(physnet.getId()); if (devices.isEmpty()) { s_logger.error("No BigSwitch Controller on physical network " + physnet.getName()); return null; } for (BigSwitchBcfDeviceVO d: devices){ s_logger.debug("BigSwitch Controller " + d.getUuid() + " found on physical network " + physnet.getId()); } s_logger.debug("Physical isolation type is BCF_SEGMENT, asking GuestNetworkGuru to design this network"); NetworkVO networkObject = (NetworkVO)super.design(offering, plan, userSpecified, owner); if (networkObject == null) { return null; } // Override the broadcast domain type networkObject.setBroadcastDomainType(BroadcastDomainType.Vlan); return networkObject; }
s_logger.debug("ISOLATION METHODS:" + network.getIsolationMethods()); if (network.getIsolationMethods().contains("GRE")) { minVnet = MIN_GRE_KEY; maxVnet = MAX_GRE_KEY; } else if (network.getIsolationMethods().contains("VXLAN")) { minVnet = MIN_VXLAN_VNI; maxVnet = MAX_VXLAN_VNI;
@Override public HostVO getNuageVspHost(long physicalNetworkId) { HostVO nuageVspHost; List<NuageVspDeviceVO> nuageVspDevices = _nuageVspDao.listByPhysicalNetwork(physicalNetworkId); if (CollectionUtils.isEmpty(nuageVspDevices)) { // Perhaps another physical network is passed from within the same zone, find the VSP physical network in that case PhysicalNetwork physicalNetwork = _physicalNetworkDao.findById(physicalNetworkId); List<PhysicalNetworkVO> physicalNetworksInZone = _physicalNetworkDao.listByZone(physicalNetwork.getDataCenterId()); for (PhysicalNetworkVO physicalNetworkInZone : physicalNetworksInZone) { if (physicalNetworkInZone.getIsolationMethods().contains(NUAGE_VSP_ISOLATION)) { nuageVspDevices = _nuageVspDao.listByPhysicalNetwork(physicalNetworkInZone.getId()); break; } } } if (CollectionUtils.isNotEmpty(nuageVspDevices)) { NuageVspDeviceVO config = nuageVspDevices.iterator().next(); nuageVspHost = _hostDao.findById(config.getHostId()); _hostDao.loadDetails(nuageVspHost); } else { throw new CloudRuntimeException("There is no Nuage VSP device configured on physical network " + physicalNetworkId); } return nuageVspHost; }
List<String> isolationMethods = network.getIsolationMethods(); if ((isolationMethods.size() == 1 && isolationMethods.get(0).toLowerCase().equals("vxlan")) || (isolationMethod != null && isolationMethods.contains(isolationMethod) && isolationMethod.toLowerCase().equals("vxlan"))) {
if (physicalNetwork == null) { throw new InvalidParameterValueException("Unable to find physical network by id " + physicalNetworkId); } else if (!physicalNetwork.getIsolationMethods().isEmpty() && !physicalNetwork.getIsolationMethods().contains("VLAN")) { throw new InvalidParameterValueException("Cannot dedicate guest vlan range. " + "Physical isolation type of network " + physicalNetworkId + " is not VLAN");
params.put("transportzoneuuid", cmd.getTransportzoneUuid()); params.put("transportzoneisotype", physicalNetwork.getIsolationMethods().get(0).toLowerCase()); if (cmd.getL3GatewayServiceUuid() != null) { params.put("l3gatewayserviceuuid", cmd.getL3GatewayServiceUuid());
params.put("transportzoneisotype", physicalNetwork.getIsolationMethods().get(0).toLowerCase()); Map<String, Object> hostdetails = new HashMap<String, Object>(); hostdetails.putAll(params);
@Override public PhysicalNetworkVO doInTransaction(TransactionStatus status) { // Create the new physical network in the database long id = _physicalNetworkDao.getNextInSequence(Long.class, "id"); PhysicalNetworkVO pNetwork = new PhysicalNetworkVO(id, zoneId, vnetRange, networkSpeed, domainId, broadcastDomainRangeFinal, name); pNetwork.setTags(tags); pNetwork.setIsolationMethods(isolationMethods); pNetwork = _physicalNetworkDao.persist(pNetwork); // Add vnet entries for the new zone if zone type is Advanced if (vnetRange != null) { addOrRemoveVnets(vnetRange.split(","), pNetwork); } // add VirtualRouter as the default network service provider addDefaultVirtualRouterToPhysicalNetwork(pNetwork.getId()); if (pNetwork.getIsolationMethods().contains("GRE")) { addDefaultOvsToPhysicalNetwork(pNetwork.getId()); } // add security group provider to the physical network addDefaultSecurityGroupProviderToPhysicalNetwork(pNetwork.getId()); // add VPCVirtualRouter as the defualt network service provider addDefaultVpcVirtualRouterToPhysicalNetwork(pNetwork.getId()); // add baremetal as the defualt network service provider addDefaultBaremetalProvidersToPhysicalNetwork(pNetwork.getId()); //Add Internal Load Balancer element as a default network service provider addDefaultInternalLbProviderToPhysicalNetwork(pNetwork.getId()); // Add the config drive provider addConfigDriveToPhysicalNetwork(pNetwork.getId()); return pNetwork; } });