@Override public List<NetworkVO> listByZoneAndUriAndGuestType(long zoneId, String broadcastUri, GuestType guestType) { final URI searchUri = BroadcastDomainType.fromString(broadcastUri); final String searchRange = BroadcastDomainType.getValue(searchUri); final List<Integer> searchVlans = UriUtils.expandVlanUri(searchRange); final List<NetworkVO> overlappingNetworks = new ArrayList<>(); final SearchCriteria<NetworkVO> sc = ZoneBroadcastUriSearch.create(); sc.setParameters("dataCenterId", zoneId); if (guestType != null) { sc.setParameters("guestType", guestType); } for (final NetworkVO network : listBy(sc)) { if (network.getBroadcastUri() == null || !network.getBroadcastUri().getScheme().equalsIgnoreCase(searchUri.getScheme())) { continue; } final String networkVlanRange = BroadcastDomainType.getValue(network.getBroadcastUri()); if (networkVlanRange == null || networkVlanRange.isEmpty()) { continue; } for (final Integer networkVlan : UriUtils.expandVlanUri(networkVlanRange)) { if (searchVlans.contains(networkVlan)) { overlappingNetworks.add(network); break; } } } return overlappingNetworks; }
@Override public Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, Account owner) { NetworkVO network = (NetworkVO)super.design(offering, plan, userSpecified, owner); if (network == null) { return null; } if (offering.getGuestType() == GuestType.L2 && network.getBroadcastUri() != null) { String vxlan = BroadcastDomainType.getValue(network.getBroadcastUri()); network.setBroadcastUri(BroadcastDomainType.Vxlan.toUri(vxlan)); } network.setBroadcastDomainType(BroadcastDomainType.Vxlan); return network; }
@Override public void shutdown(NetworkProfile profile, NetworkOffering offering) { NetworkVO networkObject = _networkDao.findById(profile.getId()); if (networkObject.getBroadcastDomainType() != BroadcastDomainType.Vxlan || networkObject.getBroadcastUri() == null) { s_logger.warn("BroadcastUri is empty or incorrect for guestnetwork " + networkObject.getDisplayText()); return; } super.shutdown(profile, offering); }
@Override public void shutdown(NetworkProfile profile, NetworkOffering offering) { NetworkVO networkObject = networkDao.findById(profile.getId()); if (networkObject.getBroadcastDomainType() != BroadcastDomainType.OpenDaylight || networkObject.getBroadcastUri() == null) { s_logger.warn("BroadcastUri is empty or incorrect for guestnetwork " + networkObject.getDisplayText()); return; } List<OpenDaylightControllerVO> devices = openDaylightControllerMappingDao.listByPhysicalNetwork(networkObject.getPhysicalNetworkId()); if (devices.isEmpty()) { s_logger.error("No Controller on physical network " + networkObject.getPhysicalNetworkId()); return; } OpenDaylightControllerVO controller = devices.get(0); DestroyNetworkCommand cmd = new DestroyNetworkCommand(BroadcastDomainType.getValue(networkObject.getBroadcastUri())); DestroyNetworkAnswer answer = (DestroyNetworkAnswer)agentManager.easySend(controller.getHostId(), cmd); if (answer == null || !answer.getResult()) { s_logger.error("DestroyNetworkCommand failed"); } super.shutdown(profile, offering); }
@Override public void shutdown(final NetworkProfile profile, final NetworkOffering offering) { final NetworkVO networkObject = networkDao.findById(profile.getId()); if (networkObject.getBroadcastDomainType() != BroadcastDomainType.Lswitch || networkObject.getBroadcastUri() == null) { s_logger.warn("BroadcastUri is empty or incorrect for guestnetwork " + networkObject.getDisplayText()); return; } final List<NiciraNvpDeviceVO> devices = niciraNvpDao.listByPhysicalNetwork(networkObject.getPhysicalNetworkId()); if (devices.isEmpty()) { s_logger.error("No NiciraNvp Controller on physical network " + networkObject.getPhysicalNetworkId()); return; } final NiciraNvpDeviceVO niciraNvpDevice = devices.get(0); final HostVO niciraNvpHost = hostDao.findById(niciraNvpDevice.getHostId()); String logicalSwitchUuid = BroadcastDomainType.getValue(networkObject.getBroadcastUri()); if (offering.getGuestType().equals(GuestType.Shared)){ sharedNetworksCleanup(networkObject, logicalSwitchUuid, niciraNvpHost); } final DeleteLogicalSwitchCommand cmd = new DeleteLogicalSwitchCommand(logicalSwitchUuid); final DeleteLogicalSwitchAnswer answer = (DeleteLogicalSwitchAnswer) agentMgr.easySend(niciraNvpHost.getId(), cmd); if (answer == null || !answer.getResult()) { s_logger.error("DeleteLogicalSwitchCommand failed"); } super.shutdown(profile, offering); }
@Override public void shutdown(NetworkProfile profile, NetworkOffering offering) { NetworkVO networkObject = _networkDao.findById(profile.getId()); if (networkObject.getBroadcastDomainType() != BroadcastDomainType.Vlan || networkObject.getBroadcastUri() == null) { s_logger.warn("BroadcastUri is empty or incorrect for guestnetwork " + networkObject.getDisplayText()); return; } bcfUtilsInit(); // tenantId stored in network domain field at creation String tenantId = networkObject.getNetworkDomain(); String networkId = networkObject.getUuid(); DeleteBcfSegmentCommand cmd = new DeleteBcfSegmentCommand(tenantId, networkId); _bcfUtils.sendBcfCommandWithNetworkSyncCheck(cmd, networkObject); super.shutdown(profile, offering); }
URI broadcastURI = network.getBroadcastUri(); if (broadcastURI == null) { s_logger.debug("Not updating stats for guest network with ID " + network.getId() + " because the network is not implemented.");
@Override public void shutdown(NetworkProfile profile, NetworkOffering offering) { NetworkVO networkObject = _networkDao.findById(profile.getId()); if (networkObject.getBroadcastDomainType() != BroadcastDomainType.Vswitch || networkObject.getBroadcastUri() == null) { s_logger.warn("BroadcastUri is empty or incorrect for guestnetwork " + networkObject.getDisplayText()); return; } if (profile.getBroadcastDomainType() == BroadcastDomainType.Vswitch ) { s_logger.debug("Releasing vnet for the network id=" + profile.getId()); _dcDao.releaseVnet(BroadcastDomainType.getValue(profile.getBroadcastUri()), profile.getDataCenterId(), profile.getPhysicalNetworkId(), profile.getAccountId(), profile.getReservationId()); } profile.setBroadcastUri(null); }
implemented.setBroadcastUri(new URI("lswitch", answer.getLogicalSwitchUuid(), null)); implemented.setBroadcastDomainType(BroadcastDomainType.Lswitch); s_logger.info("Implemented OK, network linked to = " + implemented.getBroadcastUri().toString()); } catch (final URISyntaxException e) { s_logger.error("Unable to store logical switch id in broadcast uri, uuid = " + implemented.getUuid(), e);
s_logger.info("Implemented OK, network linked to = " + implemented.getBroadcastUri().toString());
_networkDao.update(network.getId(), networkToUpdate); if (network instanceof NetworkVO) { ((NetworkVO) network).setBroadcastUri(networkToUpdate.getBroadcastUri());
String keyStr = BroadcastDomainType.getValue(implemented.getBroadcastUri()); Long vpcid= network.getVpcId(); implemented.setBroadcastUri(BroadcastDomainType.Vswitch.toUri(vpcid.toString() + "." + keyStr));
if (netVO.getBroadcastUri() != null) { String vlanStr = BroadcastDomainType.getValue(netVO.getBroadcastUri()); if(StringUtils.isNumeric(vlanStr)){ vlan = Integer.valueOf(vlanStr);
if (vlan != null) { final SearchBuilder<NetworkVO> ntwkSearch = _ntwkDao.createSearchBuilder(); ntwkSearch.and("vlan", ntwkSearch.entity().getBroadcastUri(), SearchCriteria.Op.EQ); sb.join("networkSearch", ntwkSearch, sb.entity().getNetworkId(), ntwkSearch.entity().getId(), JoinBuilder.JoinType.INNER);
String vlanStr = BroadcastDomainType.getValue(implemented.getBroadcastUri());
s_logger.info("Implemented OK, network " + implemented.getUuid() + " in tenant " + tenantId + " linked to " + implemented.getBroadcastUri()); } finally { _networkDao.releaseFromLockTable(network.getId());
AllFieldsSearch.and("guestType", AllFieldsSearch.entity().getGuestType(), Op.EQ); AllFieldsSearch.and("physicalNetwork", AllFieldsSearch.entity().getPhysicalNetworkId(), Op.EQ); AllFieldsSearch.and("broadcastUri", AllFieldsSearch.entity().getBroadcastUri(), Op.EQ); AllFieldsSearch.and("vpcId", AllFieldsSearch.entity().getVpcId(), Op.EQ); AllFieldsSearch.and("aclId", AllFieldsSearch.entity().getNetworkACLId(), Op.EQ); ZoneBroadcastUriSearch.and("broadcastUri", ZoneBroadcastUriSearch.entity().getBroadcastUri(), Op.EQ); ZoneBroadcastUriSearch.and("guestType", ZoneBroadcastUriSearch.entity().getGuestType(), Op.EQ); ZoneBroadcastUriSearch.done();