TSC-181: ITM Yang Models Cleanup
[genius.git] / itm / itm-impl / src / main / java / org / opendaylight / genius / itm / listeners / TransportZoneListener.java
index 8b2cac7fcf84531f800175488edbb29b79741df3..e00fcd60f701e1bd7cd7623b81fe3c623b785dab 100644 (file)
@@ -54,9 +54,6 @@ import org.opendaylight.serviceutils.srm.RecoverableListener;
 import org.opendaylight.serviceutils.srm.ServiceRecoveryRegistry;
 import org.opendaylight.serviceutils.tools.mdsal.listener.AbstractSyncDataTreeChangeListener;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.ItmConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.DPNTEPsInfo;
@@ -71,11 +68,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.ho
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVtepsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVtepsKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Subnets;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.DeviceVteps;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.Vteps;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.VtepsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.VtepsKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.DeviceVteps;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -116,7 +112,7 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
                                  final ServiceRecoveryRegistry serviceRecoveryRegistry,
                                  final DataTreeEventCallbackRegistrar eventCallbacks) {
         super(dataBroker, LogicalDatastoreType.CONFIGURATION,
-              InstanceIdentifier.create(TransportZones.class).child(TransportZone.class));
+                InstanceIdentifier.create(TransportZones.class).child(TransportZone.class));
         this.dataBroker = dataBroker;
         this.jobCoordinator = jobCoordinator;
         this.mdsalManager = mdsalManager;
@@ -194,21 +190,16 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
             if (!opDpnList.isEmpty() || !hwVtepList.isEmpty()) {
                 LOG.trace("Delete: Invoking ItmManager with hwVtep List {} ", hwVtepList);
                 jobCoordinator.enqueueJob(transportZone.getZoneName(),
-                    new ItmTepRemoveWorker(opDpnList, hwVtepList, transportZone, mdsalManager,
-                        itmInternalTunnelDeleteWorker, dpnTEPsInfoCache, txRunner));
-
-                //When tz delete event arrives for a particular Transport zone,
-                // teps under TZ will be moved to tepsInNotHostedTransportZone Oper DS.
-                // So that if the same name tz gets re-added from NBI, then these tep's will go back to re-added tz.
-                for (Subnets sub : transportZone.getSubnets()) {
-                    if (sub.getVteps() != null && !sub.getVteps().isEmpty()) {
-                        List<UnknownVteps> unknownVteps = convertVtepListToUnknownVtepList(sub.getVteps());
-                        LOG.trace("Moving Transport Zone {} to tepsInNotHostedTransportZone Oper Ds.",
-                                transportZone.getZoneName());
-                        jobCoordinator.enqueueJob(transportZone.getZoneName(),
-                                    new ItmTepsNotHostedAddWorker(unknownVteps, transportZone.getZoneName(),
-                                            dataBroker, txRunner));
-                    }
+                        new ItmTepRemoveWorker(opDpnList, hwVtepList, transportZone, mdsalManager,
+                                itmInternalTunnelDeleteWorker, dpnTEPsInfoCache, txRunner, itmConfig));
+
+                if (transportZone.getVteps() != null && !transportZone.getVteps().isEmpty()) {
+                    List<UnknownVteps> unknownVteps = convertVtepListToUnknownVtepList(transportZone.getVteps());
+                    LOG.trace("Moving Transport Zone {} to tepsInNotHostedTransportZone Oper Ds.",
+                            transportZone.getZoneName());
+                    jobCoordinator.enqueueJob(transportZone.getZoneName(),
+                            new ItmTepsNotHostedAddWorker(unknownVteps, transportZone.getZoneName(),
+                                    dataBroker, txRunner));
                 }
             }
         }
@@ -218,7 +209,7 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
     public void update(@NonNull InstanceIdentifier<TransportZone> instanceIdentifier,
                        @NonNull TransportZone originalTransportZone, @NonNull TransportZone updatedTransportZone) {
         LOG.debug("Received Transport Zone Update Event: Old - {}, Updated - {}", originalTransportZone,
-                  updatedTransportZone);
+                updatedTransportZone);
         List<DPNTEPsInfo> oldDpnTepsList = createDPNTepInfo(originalTransportZone);
         List<DPNTEPsInfo> newDpnTepsList = createDPNTepInfo(updatedTransportZone);
         List<DPNTEPsInfo> oldDpnTepsListcopy = new ArrayList<>();
@@ -250,8 +241,8 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         if (!oldDpnTepsList.isEmpty() && !equalLists) {
             LOG.trace("Removing TEPs ");
             jobCoordinator.enqueueJob(updatedTransportZone.getZoneName(),
-                new ItmTepRemoveWorker(oldDpnTepsList, Collections.emptyList(), originalTransportZone, mdsalManager,
-                    itmInternalTunnelDeleteWorker, dpnTEPsInfoCache, txRunner));
+                    new ItmTepRemoveWorker(oldDpnTepsList, Collections.emptyList(), originalTransportZone, mdsalManager,
+                            itmInternalTunnelDeleteWorker, dpnTEPsInfoCache, txRunner, itmConfig));
         }
         List<HwVtep> oldHwList = createhWVteps(originalTransportZone);
         List<HwVtep> newHwList = createhWVteps(updatedTransportZone);
@@ -276,8 +267,8 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         if (!oldHwList.isEmpty()) {
             LOG.trace("Removing HW TEPs ");
             jobCoordinator.enqueueJob(updatedTransportZone.getZoneName(),
-                new ItmTepRemoveWorker(Collections.emptyList(), oldHwList, originalTransportZone, mdsalManager,
-                    itmInternalTunnelDeleteWorker, dpnTEPsInfoCache, txRunner));
+                    new ItmTepRemoveWorker(Collections.emptyList(), oldHwList, originalTransportZone, mdsalManager,
+                            itmInternalTunnelDeleteWorker, dpnTEPsInfoCache, txRunner, itmConfig));
         }
     }
 
@@ -306,8 +297,8 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
             LOG.trace("Add: Invoking ItmManager with DPN List {} ", opDpnList);
             LOG.trace("Add: Invoking ItmManager with hwVtep List {} ", hwVtepList);
             jobCoordinator.enqueueJob(transportZone.getZoneName(),
-                new ItmTepAddWorker(opDpnList, hwVtepList, dataBroker, mdsalManager, itmInternalTunnelAddWorker,
-                        externalTunnelAddWorker));
+                    new ItmTepAddWorker(opDpnList, hwVtepList, dataBroker, mdsalManager, itmInternalTunnelAddWorker,
+                            externalTunnelAddWorker));
         }
     }
 
@@ -335,19 +326,17 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         if (unVtepsLst != null && !unVtepsLst.isEmpty()) {
             for (UnknownVteps vteps : unVtepsLst) {
                 BigInteger dpnID = vteps.getDpnId();
-                String port = ITMConstants.DUMMY_PORT;
-                int vlanID = ITMConstants.DUMMY_VLANID;
-                IpPrefix ipPrefix = IpPrefixBuilder.getDefaultInstance(ITMConstants.DUMMY_PREFIX);
-                IpAddress gatewayIP = IpAddressBuilder.getDefaultInstance(ITMConstants.DUMMY_GATEWAY_IP);
                 IpAddress ipAddress = vteps.getIpAddress();
+                String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+                int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
                 boolean useOfTunnel = ItmUtils.falseIfNull(vteps.isOfTunnel());
                 String tos = vteps.getOptionTunnelTos();
                 if (tos == null) {
                     tos = itmConfig.getDefaultTunnelTos();
                 }
                 TunnelEndPoints tunnelEndPoints =
-                        ItmUtils.createTunnelEndPoints(dpnID, ipAddress, port, useOfTunnel,vlanID, ipPrefix,
-                                gatewayIP, zones, tunnelType, tos);
+                        ItmUtils.createTunnelEndPoints(dpnID, ipAddress, portName, useOfTunnel, vlanId, zones,
+                                tunnelType, tos);
                 List<TunnelEndPoints> tunnelEndPointsList = mapNotHostedDPNToTunnelEndpt.get(dpnID);
                 if (tunnelEndPointsList != null) {
                     tunnelEndPointsList.add(tunnelEndPoints);
@@ -356,13 +345,13 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
                     tunnelEndPointsList.add(tunnelEndPoints);
                     mapNotHostedDPNToTunnelEndpt.put(dpnID, tunnelEndPointsList);
                 }
-                Vteps newVtep = createVtepFromUnKnownVteps(dpnID,ipAddress,ITMConstants.DUMMY_PORT);
+                Vteps newVtep = createVtepFromUnKnownVteps(dpnID,ipAddress);
                 vtepsList.add(newVtep);
 
                 // Enqueue 'remove TEP from TepsNotHosted list' operation
                 // into DataStoreJobCoordinator
                 jobCoordinator.enqueueJob(newZoneName,
-                    new ItmTepsNotHostedRemoveWorker(newZoneName, ipAddress, dpnID, dataBroker, txRunner));
+                        new ItmTepsNotHostedRemoveWorker(newZoneName, ipAddress, dpnID, dataBroker, txRunner));
             }
         }
         //avoiding duplicate vteps which are already present in dpn list pushed from NBI
@@ -392,10 +381,10 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
 
     }
 
-    private Vteps createVtepFromUnKnownVteps(BigInteger dpnID, IpAddress ipAddress, String port) {
-        VtepsKey vtepkey = new VtepsKey(dpnID, port);
+    private Vteps createVtepFromUnKnownVteps(BigInteger dpnID, IpAddress ipAddress) {
+        VtepsKey vtepkey = new VtepsKey(dpnID);
         Vteps vtepObj = new VtepsBuilder().setDpnId(dpnID).setIpAddress(ipAddress).withKey(vtepkey)
-                .setPortname(port).build();
+                .build();
         return vtepObj;
     }
 
@@ -435,38 +424,32 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         List<TzMembership> zones = ItmUtils.createTransportZoneMembership(transportZone.getZoneName());
         Class<? extends TunnelTypeBase> tunnelType = transportZone.getTunnelType();
         LOG.trace("Transport Zone_name: {}", transportZone.getZoneName());
-        List<Subnets> subnetsList = transportZone.getSubnets();
-        if (subnetsList != null) {
-            for (Subnets subnet : subnetsList) {
-                IpPrefix ipPrefix = subnet.getPrefix();
-                IpAddress gatewayIP = subnet.getGatewayIp();
-                int vlanID = subnet.getVlanId();
-                LOG.trace("IpPrefix: {}, gatewayIP: {}, vlanID: {} ", ipPrefix, gatewayIP, vlanID);
-                List<Vteps> vtepsList = subnet.getVteps();
-                if (vtepsList != null && !vtepsList.isEmpty()) {
-                    for (Vteps vteps : vtepsList) {
-                        BigInteger dpnID = vteps.getDpnId();
-                        String port = vteps.getPortname();
-                        IpAddress ipAddress = vteps.getIpAddress();
-                        boolean useOfTunnel = ItmUtils.falseIfNull(vteps.isOptionOfTunnel());
-                        String tos = vteps.getOptionTunnelTos();
-                        if (tos == null) {
-                            tos = itmConfig.getDefaultTunnelTos();
-                        }
-                        LOG.trace("DpnID: {}, port: {}, ipAddress: {}", dpnID, port, ipAddress);
-                        TunnelEndPoints tunnelEndPoints = ItmUtils.createTunnelEndPoints(dpnID, ipAddress, port,
-                            useOfTunnel, vlanID,  ipPrefix, gatewayIP, zones, tunnelType, tos);
-                        List<TunnelEndPoints> tunnelEndPointsList = mapDPNToTunnelEndpt.get(dpnID);
-                        if (tunnelEndPointsList != null) {
-                            LOG.trace("Existing DPN info list in the Map: {} ", dpnID);
-                            tunnelEndPointsList.add(tunnelEndPoints);
-                        } else {
-                            LOG.trace("Adding new DPN info list to the Map: {} ", dpnID);
-                            tunnelEndPointsList = new ArrayList<>();
-                            tunnelEndPointsList.add(tunnelEndPoints);
-                            mapDPNToTunnelEndpt.put(dpnID, tunnelEndPointsList);
-                        }
-                    }
+        List<Vteps> vtepsList = transportZone.getVteps();
+
+        String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+        int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+
+        if (vtepsList != null && !vtepsList.isEmpty()) {
+            for (Vteps vteps : vtepsList) {
+                BigInteger dpnID = vteps.getDpnId();
+                IpAddress ipAddress = vteps.getIpAddress();
+                boolean useOfTunnel = ItmUtils.falseIfNull(vteps.isOptionOfTunnel());
+                String tos = vteps.getOptionTunnelTos();
+                if (tos == null) {
+                    tos = itmConfig.getDefaultTunnelTos();
+                }
+                LOG.trace("DpnID: {}, ipAddress: {}", dpnID, ipAddress);
+                TunnelEndPoints tunnelEndPoints = ItmUtils.createTunnelEndPoints(dpnID, ipAddress, portName,
+                        useOfTunnel, vlanId, zones, tunnelType, tos);
+                List<TunnelEndPoints> tunnelEndPointsList = mapDPNToTunnelEndpt.get(dpnID);
+                if (tunnelEndPointsList != null) {
+                    LOG.trace("Existing DPN info list in the Map: {} ", dpnID);
+                    tunnelEndPointsList.add(tunnelEndPoints);
+                } else {
+                    LOG.trace("Adding new DPN info list to the Map: {} ", dpnID);
+                    tunnelEndPointsList = new ArrayList<>();
+                    tunnelEndPointsList.add(tunnelEndPoints);
+                    mapDPNToTunnelEndpt.put(dpnID, tunnelEndPointsList);
                 }
             }
         }
@@ -487,27 +470,18 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         String zoneName = transportZone.getZoneName();
         Class<? extends TunnelTypeBase> tunnelType = transportZone.getTunnelType();
         LOG.trace("Transport Zone_name: {}", zoneName);
-        List<Subnets> subnetsList = transportZone.getSubnets();
-        if (subnetsList != null) {
-            for (Subnets subnet : subnetsList) {
-                IpPrefix ipPrefix = subnet.getPrefix();
-                IpAddress gatewayIP = subnet.getGatewayIp();
-                int vlanID = subnet.getVlanId();
-                LOG.trace("IpPrefix: {}, gatewayIP: {}, vlanID: {} ", ipPrefix, gatewayIP, vlanID);
-                List<DeviceVteps> deviceVtepsList = subnet.getDeviceVteps();
-                if (deviceVtepsList != null) {
-                    for (DeviceVteps vteps : deviceVtepsList) {
-                        String topologyId = vteps.getTopologyId();
-                        String nodeId = vteps.getNodeId();
-                        IpAddress ipAddress = vteps.getIpAddress();
-                        LOG.trace("topo-id: {}, node-id: {}, ipAddress: {}", topologyId, nodeId, ipAddress);
-                        HwVtep hwVtep = ItmUtils.createHwVtepObject(topologyId, nodeId, ipAddress, ipPrefix, gatewayIP,
-                                vlanID, tunnelType, transportZone);
-
-                        LOG.trace("Adding new HwVtep {} info ", hwVtep.getHwIp());
-                        hwVtepsList.add(hwVtep);
-                    }
-                }
+        List<DeviceVteps> deviceVtepsList = transportZone.getDeviceVteps();
+        if (deviceVtepsList != null) {
+            for (DeviceVteps vteps : deviceVtepsList) {
+                String topologyId = vteps.getTopologyId();
+                String nodeId = vteps.getNodeId();
+                IpAddress ipAddress = vteps.getIpAddress();
+                LOG.trace("topo-id: {}, node-id: {}, ipAddress: {}", topologyId, nodeId, ipAddress);
+                HwVtep hwVtep = ItmUtils.createHwVtepObject(topologyId, nodeId, ipAddress,
+                        tunnelType, transportZone);
+
+                LOG.trace("Adding new HwVtep {} info ", hwVtep.getHwIp());
+                hwVtepsList.add(hwVtep);
             }
         }
         LOG.trace("returning hwvteplist {}", hwVtepsList);