@Override public String toString() { return "AddL2GwDevicesToTransportZoneJob [transportZone=" + transportZone.getZoneName() + "]"; } }
/** * Gets the job key. * * @return the job key */ public String getJobKey() { return "L2GW" + this.transportZone.getZoneName(); }
/** * Instantiates a new adds the l2 gw devices to transport zone job. * * @param dataBroker the data broker * @param itmRpcService the itm rpc service * @param transportZone the transport zone */ public AddL2GwDevicesToTransportZoneJob(DataBroker dataBroker, ItmRpcService itmRpcService, TransportZone transportZone) { this.dataBroker = dataBroker; this.itmRpcService = itmRpcService; this.transportZone = transportZone; LOG.debug("created AddL2GwDevicesToTransportZone Job for tZone {}", transportZone.getZoneName()); }
@Override protected void remove(InstanceIdentifier<TransportZone> key, TransportZone tzOld) { LOG.debug("Received Transport Zone Remove Event: {}, {}", key, tzOld); List<DPNTEPsInfo> opDpnList = createDPNTepInfo(tzOld); List<HwVtep> hwVtepList = createhWVteps(tzOld); LOG.trace("Delete: Invoking deleteTunnels in ItmManager with DpnList {}", opDpnList); if(opDpnList.size()>0 || hwVtepList.size()>0) { LOG.trace("Delete: Invoking ItmManager"); LOG.trace("Delete: Invoking ItmManager with hwVtep List {} " , hwVtepList); // itmManager.deleteTunnels(opDpnList); DataStoreJobCoordinator coordinator = DataStoreJobCoordinator.getInstance(); ItmTepRemoveWorker removeWorker = new ItmTepRemoveWorker(opDpnList, hwVtepList, tzOld, dataBroker, idManagerService, mdsalManager); coordinator.enqueueJob(tzOld.getZoneName(), removeWorker); } }
@Override protected void add(InstanceIdentifier<TransportZone> key, TransportZone tzNew) { LOG.debug("Received Transport Zone Add Event: {}, {}", key, tzNew); List<DPNTEPsInfo> opDpnList = createDPNTepInfo(tzNew); List<HwVtep> hwVtepList = createhWVteps(tzNew); LOG.trace("Add: Operational dpnTepInfo - Before invoking ItmManager {}", opDpnList); if(opDpnList.size()>0 || hwVtepList.size()>0) { LOG.trace("Add: Invoking ItmManager with DPN List {} " , opDpnList); LOG.trace("Add: Invoking ItmManager with hwVtep List {} " , hwVtepList); //itmManager.build_all_tunnels(opDpnList); DataStoreJobCoordinator coordinator = DataStoreJobCoordinator.getInstance(); ItmTepAddWorker addWorker = new ItmTepAddWorker(opDpnList, hwVtepList, dataBroker, idManagerService, mdsalManager); coordinator.enqueueJob(tzNew.getZoneName(), addWorker); } }
/** * Gets all transport zones as map. * * @return all transport zones as map */ private Map<String, TransportZone> getAllTransportZonesAsMap() { TransportZones tZones = getAllTransportZones(); Map<String, TransportZone> tZoneMap = new HashMap<>(); if( null != tZones) { for (TransportZone tzone : ItmUtils.emptyIfNull(tZones.getTransportZone())) { tZoneMap.put(tzone.getZoneName(), tzone); } } return tZoneMap; }
@Override public List<ListenableFuture<Void>> call() throws Exception { LOG.debug("Running AddL2GwDevicesToTransportZone job for {}", this.transportZone.getZoneName()); try { // When vxlan transport zone is added, add all l2gw devices to that // transport zone. Doesn't matter if tz already has data or not. ConcurrentMap<String, L2GatewayDevice> l2GwDevices = L2GatewayCacheUtils.getCache(); for (L2GatewayDevice l2gwDevice : l2GwDevices.values()) { if (!l2gwDevice.getL2GatewayIds().isEmpty()) { LOG.debug("Adding l2gw device [{}] to transport zone [{}]", l2gwDevice.getDeviceName(), this.transportZone.getZoneName()); L2GatewayUtils.createItmTunnels(itmRpcService, l2gwDevice.getHwvtepNodeId(), l2gwDevice.getDeviceName(), l2gwDevice.getTunnelIp()); } } } catch (Exception e) { LOG.error("Failed during AddL2GwDevicesToTransportZone job ", e); } return Collections.emptyList(); }
public TransportZoneBuilder(TransportZone base) { if (base.getKey() == null) { this._key = new TransportZoneKey( base.getZoneName() ); this._zoneName = base.getZoneName(); } else { this._key = base.getKey(); this._zoneName = _key.getZoneName(); } this._subnets = base.getSubnets(); this._tunnelType = base.getTunnelType(); if (base instanceof TransportZoneImpl) { TransportZoneImpl impl = (TransportZoneImpl) base; if (!impl.augmentation.isEmpty()) { this.augmentation = new HashMap<>(impl.augmentation); } } else if (base instanceof AugmentationHolder) { @SuppressWarnings("unchecked") AugmentationHolder<org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone> casted =(AugmentationHolder<org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone>) base; if (!casted.augmentations().isEmpty()) { this.augmentation = new HashMap<>(casted.augmentations()); } } }
return false; if (!Objects.equals(_zoneName, other.getZoneName())) { return false;
private void addTransportZone(TransportZone zone, String interName) { InstanceIdentifier<TransportZones> path = InstanceIdentifier.builder(TransportZones.class).build(); TransportZones zones = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, path); if (zones == null) { List<TransportZone> zoneList = new ArrayList<>(); zoneList.add(zone); zones = new TransportZonesBuilder().setTransportZone(zoneList).build(); } else { zones.getTransportZone().add(zone); } MDSALUtil.syncWrite(dataBroker, LogicalDatastoreType.CONFIGURATION, path, zones); LOG.info("updating transport zone {} due to {} handling", zone.getZoneName(), interName); }
LOG.debug("Remove:Calling TunnelMonitorIntervalWorker with tzone = {} and {}",tzone.getZoneName(),dataObjectModification.getInterval()); ItmMonitorIntervalWorker toggleWorker = new ItmMonitorIntervalWorker(hwVteps, tzone.getZoneName(), dataObjectModification.getInterval(), broker, hwVtepsExist); coordinator.enqueueJob(tzone.getZoneName(), toggleWorker);
LOG.debug("Add:Calling TunnelMonitorIntervalWorker with tzone = {} and {}",tzone.getZoneName(),dataObjectModification.getInterval()); ItmMonitorIntervalWorker intervalWorker = new ItmMonitorIntervalWorker(hwVteps, tzone.getZoneName(), dataObjectModification.getInterval(), broker, hwVtepsExist); coordinator.enqueueJob(tzone.getZoneName(), intervalWorker);
LOG.debug("Update:Calling TunnelMonitorIntervalWorker with tzone = {} and {}",tzone.getZoneName(),dataObjectModificationAfter.getInterval()); ItmMonitorIntervalWorker intervalWorker = new ItmMonitorIntervalWorker(hwVteps, tzone.getZoneName(), dataObjectModificationAfter.getInterval(), broker, hwVtepsExist); coordinator.enqueueJob(tzone.getZoneName(), intervalWorker);
String zone_name = transportZone.getZoneName(); Class<? extends TunnelTypeBase> tunnel_type = transportZone.getTunnelType(); LOG.trace("Transport Zone_name: {}", zone_name);
for (TransportZone tZ : tZones.getTransportZone()) { if (tZ.getSubnets() == null || tZ.getSubnets().isEmpty()) { LOG.error("Transport Zone " + tZ.getZoneName() + "has no subnets"); continue; LOG.error("Transport Zone " + tZ.getZoneName() + "subnet " + sub.getPrefix() + "has no vteps"); continue; else strTunnelType = ITMConstants.TUNNEL_TYPE_VXLAN ; result.add(String.format("%-16s %-16s %-16s %-12s %-12s %-12s %-16s %-12s", tZ.getZoneName(), strTunnelType, sub .getPrefix().getIpv4Prefix().getValue(), sub.getGatewayIp().getIpv4Address() .getValue(), sub.getVlanId().toString(), vtep.getDpnId().toString(), vtep
String zone_name = transportZone.getZoneName(); Class<? extends TunnelTypeBase> tunnel_type = transportZone.getTunnelType(); LOG.trace("Transport Zone_name: {}", zone_name);
if (sub.getDeviceVteps() != null && !sub.getDeviceVteps().isEmpty()) { hwVtepsExist = true;//gets set to true only if this particular tzone has LOG.debug("Update:Calling TunnelMonitorToggleWorker with tzone = {} and hwtepExist",tzone.getZoneName()); for (DeviceVteps deviceVtep : sub.getDeviceVteps()) { HwVtep hwVtep = ItmUtils.createHwVtepObject(deviceVtep.getTopologyId(), deviceVtep.getNodeId(), LOG.debug("Update:Calling TunnelMonitorToggleWorker with tzone = {} and {}",tzone.getZoneName(),dataObjectModificationAfter.isEnabled()); LOG.debug("Update:Calling TunnelMonitorToggleWorker with monitor protocol = {} ",monitorProtocol); ItmMonitorToggleWorker toggleWorker = new ItmMonitorToggleWorker(hwVteps, tzone.getZoneName(), dataObjectModificationAfter.isEnabled(), monitorProtocol, broker, hwVtepsExist); coordinator.enqueueJob(tzone.getZoneName(), toggleWorker);
LOG.debug("Remove:Calling TunnelMonitorToggleWorker with tzone = {} and {}",tzone.getZoneName(),dataObjectModification.isEnabled()); LOG.debug("Update:Calling TunnelMonitorToggleWorker with monitor protocol = {} ",monitorProtocol); ItmMonitorToggleWorker toggleWorker = new ItmMonitorToggleWorker(hwVteps, tzone.getZoneName(), false,monitorProtocol, broker, hwVtepsExist); coordinator.enqueueJob(tzone.getZoneName(), toggleWorker);
LOG.debug("Add:Calling TunnelMonitorToggleWorker with tzone = {} monitoringEnabled {} and monitoringProtocol {}",tzone.getZoneName(),dataObjectModification.isEnabled(), dataObjectModification.getMonitorProtocol()); if(monitorProtocol==null) monitorProtocol = ITMConstants.DEFAULT_MONITOR_PROTOCOL; LOG.debug("Add:Calling TunnelMonitorToggleWorker with monitor protocol = {} ",monitorProtocol); ItmMonitorToggleWorker toggleWorker = new ItmMonitorToggleWorker(hwVteps, tzone.getZoneName(), dataObjectModification.isEnabled(), monitorProtocol, broker, hwVtepsExist); coordinator.enqueueJob(tzone.getZoneName(), toggleWorker);
public static HwVtep createHwVtepObject(String topo_id, String node_id, IpAddress ipAddress, IpPrefix ipPrefix, IpAddress gatewayIP, int vlanID, Class<? extends TunnelTypeBase> tunnel_type, TransportZone transportZone) { HwVtep hwVtep = new HwVtep(); hwVtep.setGatewayIP(gatewayIP); hwVtep.setHwIp(ipAddress); hwVtep.setIpPrefix(ipPrefix); hwVtep.setNode_id(node_id); hwVtep.setTopo_id(topo_id); hwVtep.setTransportZone(transportZone.getZoneName()); hwVtep.setTunnel_type(tunnel_type); hwVtep.setVlanID(vlanID); return hwVtep; }