Move tepsNotHosted from Config DS to Oper DS 00/70100/3
authorTarun Thakur <tarun.t@altencalsoftlabs.com>
Mon, 26 Mar 2018 09:51:49 +0000 (15:21 +0530)
committerTarun Thakur <tarun.t@altencalsoftlabs.com>
Tue, 3 Apr 2018 09:59:51 +0000 (15:29 +0530)
As tepsNotHosted list was part of transport-zones container in itm.yang
and stored into config DS earlier. Since, it gets populated from
southbound only and will be available again on switch/ODL restart,
even if the switch goes away, we do not want to track these information
unnecessarily in the config DS. So, it is better to keep this data into
OperDS instead of config DS.

Change-Id: I731dfdb64ea3dc589567f4abeac3457ca0cbe395
Signed-off-by: Tarun Thakur <tarun.t@altencalsoftlabs.com>
itm/itm-api/src/main/yang/itm.yang
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveConfigHelper.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TransportZoneListener.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTestUtil.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/xtend/ExpectedTepNotHostedTransportZoneObjects.xtend

index 17b6a84054060b4ce78591f7732042765a85a25b..4e41950941326ace3fecc25bc6bc83467556e024 100644 (file)
@@ -100,37 +100,40 @@ module itm {
 
             }
           }
-          list tepsNotHostedInTransportZone {
-             key zone-name;
-             leaf zone-name {
-                 type string;
-             }
-             list unknown-vteps{
-                 key "dpn-id";
-                 leaf dpn-id {
-                     type uint64;
-                 }
-                 leaf ip-address {
-                     type inet:ip-address;
-                 }
-                 leaf of-tunnel {
-                     description "Use flow based tunnels for remote-ip";
-                     type boolean;
-                     default false;
-                 }
-                 leaf option-tunnel-tos {
-                     description "Value of ToS bits to be set on the encapsulating
-                            packet.  The value of 'inherit' will copy the DSCP value
-                            from inner IPv4 or IPv6 packets.  When ToS is given as
-                            a numberic value, the least significant two bits will
-                            be ignored.";
-                     type string {
-                         length "1..8";
-                     }
-                 }
-             }
-          }
+    }
 
+    container not-hosted-transport-zones {
+        config false;
+        list tepsInNotHostedTransportZone {
+            key zone-name;
+            leaf zone-name {
+                type string;
+            }
+            list unknown-vteps{
+                key "dpn-id";
+                leaf dpn-id {
+                    type uint64;
+                }
+                leaf ip-address {
+                    type inet:ip-address;
+                }
+                leaf of-tunnel {
+                    description "Use flow based tunnels for remote-ip";
+                    type boolean;
+                    default false;
+                }
+                leaf option-tunnel-tos {
+                    description "Value of ToS bits to be set on the encapsulating
+                           packet.  The value of 'inherit' will copy the DSCP value
+                           from inner IPv4 or IPv6 packets.  When ToS is given as
+                           a numberic value, the least significant two bits will
+                           be ignored.";
+                    type string {
+                        length "1..8";
+                    }
+                }
+            }
+        }
     }
 
     container dc-gateway-ip-list{
index 1d54d5d57bb4e1bbe0ae55252c93f93d2a95fc9c..b9c711b6324db2e6159719475829549d5147e200 100644 (file)
@@ -19,16 +19,17 @@ import org.opendaylight.genius.mdsalutil.MDSALUtil;
 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.opendaylight.genius.itm.rev160406.NotHostedTransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZone;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZone;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVteps;
+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.TransportZoneBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVteps;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVtepsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVtepsKey;
 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.SubnetsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsKey;
@@ -46,7 +47,7 @@ public final class OvsdbTepAddConfigHelper {
     private OvsdbTepAddConfigHelper() { }
 
     /**
-     * Adds the TEP into ITM configuration Datastore in one of the following cases.
+     * Adds the TEP into ITM configuration/operational Datastore in one of the following cases.
      * 1) default transport zone
      * 2) Configured transport zone
      * 3) Unhosted transport zone
@@ -55,7 +56,7 @@ public final class OvsdbTepAddConfigHelper {
      * @param strDpnId bridge datapath ID in string
      * @param tzName transport zone name in string
      * @param ofTunnel boolean flag for TEP to enable/disable of-tunnel feature on it
-     * @param dataBroker data broker handle to perform operations on config datastore
+     * @param dataBroker data broker handle to perform operations on config/operational datastore
      * @param wrTx WriteTransaction object
      */
 
@@ -85,8 +86,8 @@ public final class OvsdbTepAddConfigHelper {
             // Case: Add TEP into corresponding TZ created from Northbound.
             tzone = ItmUtils.getTransportZoneFromConfigDS(tzName, dataBroker);
             if (tzone == null) {
-                // Case: TZ is not configured from Northbound, then add TEP into "teps-not-hosted-in-transport-zone"
-                LOG.trace("Adding TEP with unknown TZ into teps-not-hosted-in-transport-zone.");
+                // Case: TZ is not configured from Northbound, then add TEP into "teps-in-not-hosted-transport-zone"
+                LOG.trace("Adding TEP with unknown TZ into teps-in-not-hosted-transport-zone.");
                 addUnknownTzTepIntoTepsNotHosted(tzName, tepIpAddress, dpnId, ofTunnel,
                     dataBroker, wrTx);
                 return;
@@ -198,7 +199,7 @@ public final class OvsdbTepAddConfigHelper {
             // corresponding TZ is configured from northbound.
             for (Vteps vtep: updatedVtepList) {
                 LOG.trace("Moving TEP (TEP IP: {} DPID: {}, of-tunnel: {})"
-                        + "from tepNotHosted list into transport-zone {} in  ITM Config DS.",
+                        + "from not-hosted-transport-zone {} into  ITM Config DS.",
                     vtep.getIpAddress(), vtep.getDpnId(), ofTunnel, tzName);
             }
         }
@@ -227,33 +228,33 @@ public final class OvsdbTepAddConfigHelper {
 
     /**
      * Adds the TEP into Vtep list in the subnet list in the transport zone list
-     * from ITM configuration Datastore by merge operation with write transaction.
+     * from ITM operational Datastore by merge operation with write transaction.
      *
      * @param tzName transport zone name in string
      * @param tepIpAddress TEP IP address in IpAddress object
      * @param dpid bridge datapath ID in BigInteger
      * @param ofTunnel boolean flag for TEP to enable/disable of-tunnel feature on it
-     * @param dataBroker data broker handle to perform operations on config datastore
+     * @param dataBroker data broker handle to perform operations on operational datastore
      * @param wrTx WriteTransaction object
      */
     protected static void addUnknownTzTepIntoTepsNotHosted(String tzName, IpAddress tepIpAddress,
         BigInteger dpid, boolean ofTunnel, DataBroker dataBroker, WriteTransaction wrTx) {
         List<UnknownVteps> vtepList = null;
 
-        TepsNotHostedInTransportZone unknownTz =
-            ItmUtils.getUnknownTransportZoneFromITMConfigDS(tzName, dataBroker);
-        if (unknownTz == null) {
-            LOG.trace("Unhosted TransportZone does not exist.");
+        TepsInNotHostedTransportZone tepsInNotHostedTransportZone =
+            ItmUtils.getUnknownTransportZoneFromITMOperDS(tzName, dataBroker);
+        if (tepsInNotHostedTransportZone == null) {
+            LOG.trace("Unhosted TransportZone ({}) does not exist in OperDS.", tzName);
             vtepList = new ArrayList<>();
             addVtepIntoTepsNotHosted(vtepList, tepIpAddress, tzName, dpid, ofTunnel, wrTx);
         } else {
-            vtepList = unknownTz.getUnknownVteps();
+            vtepList = tepsInNotHostedTransportZone.getUnknownVteps();
             if (vtepList == null || vtepList.isEmpty()) {
                 //  case: vtep list does not exist or it has no elements
                 if (vtepList == null) {
                     vtepList = new ArrayList<>();
                 }
-                LOG.trace("Add TEP in unhosted TZ ({}) when no vtep-list in the TZ.", tzName);
+                LOG.trace("Add TEP into unhosted TZ ({}) when no vtep-list in the TZ.", tzName);
                 addVtepIntoTepsNotHosted(vtepList, tepIpAddress, tzName, dpid, ofTunnel, wrTx);
             } else {
                 //  case: vtep list has elements
@@ -282,7 +283,7 @@ public final class OvsdbTepAddConfigHelper {
 
     /**
      * Adds the TEP into Unknown Vtep list under the transport zone in the TepsNotHosted list
-     * from ITM configuration Datastore by merge operation with write transaction.
+     * from ITM operational Datastore by merge operation with write transaction.
      *
      * @param updatedVtepList updated UnknownVteps list object which will have new TEP for addition
      *                        into TepsNotHosted
@@ -296,10 +297,10 @@ public final class OvsdbTepAddConfigHelper {
         IpAddress tepIpAddress, String tzName, BigInteger dpid, boolean ofTunnel,
         WriteTransaction wrTx) {
         //Create TZ node path
-        InstanceIdentifier<TepsNotHostedInTransportZone> transportZonePath =
-            InstanceIdentifier.builder(TransportZones.class)
-                .child(TepsNotHostedInTransportZone.class,
-                    new TepsNotHostedInTransportZoneKey(tzName)).build();
+        InstanceIdentifier<TepsInNotHostedTransportZone> tepsInNotHostedTransportZoneIid =
+            InstanceIdentifier.builder(NotHostedTransportZones.class)
+                .child(TepsInNotHostedTransportZone.class,
+                    new TepsInNotHostedTransportZoneKey(tzName)).build();
 
         // create vtep
         UnknownVtepsKey vtepkey = new UnknownVtepsKey(dpid);
@@ -311,14 +312,14 @@ public final class OvsdbTepAddConfigHelper {
         updatedVtepList.add(vtepObj);
 
         // create unknown TZ node with updated vtep list
-        TepsNotHostedInTransportZone updatedTzone = new TepsNotHostedInTransportZoneBuilder()
-            .setKey(new TepsNotHostedInTransportZoneKey(tzName)).setZoneName(tzName)
+        TepsInNotHostedTransportZone updatedTzone = new TepsInNotHostedTransportZoneBuilder()
+            .setKey(new TepsInNotHostedTransportZoneKey(tzName)).setZoneName(tzName)
             .setUnknownVteps(updatedVtepList).build();
 
-        LOG.trace("Adding TEP into unhosted (TZ: {}, DPID: {}, TEP IP: {}, of-tunnel: {})"
-                + "in ITM Config DS.", tzName, dpid, tepIpAddress, ofTunnel);
+        LOG.trace("Adding TEP  (DPID: {}, TEP IP: {}, of-tunnel: {}) into unhosted TZ: {}"
+                + "inside ITM Oper DS.", dpid, tepIpAddress, ofTunnel, tzName);
 
-        // Update TZ in Config DS.
-        wrTx.merge(LogicalDatastoreType.CONFIGURATION, transportZonePath, updatedTzone, true);
+        // Update TZ in Oper DS.
+        wrTx.merge(LogicalDatastoreType.OPERATIONAL, tepsInNotHostedTransportZoneIid, updatedTzone, true);
     }
 }
index 5f43f32e0c47a848e396ffc9b5b7e5e61d77d673..749554e3a533d7112a88ed6a5a51c6b8551900bd 100644 (file)
@@ -18,13 +18,14 @@ import org.opendaylight.genius.mdsalutil.MDSALUtil;
 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.opendaylight.genius.itm.rev160406.NotHostedTransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZone;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZone;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVteps;
+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.TransportZoneKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVteps;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVtepsKey;
 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.SubnetsKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.subnets.Vteps;
@@ -40,7 +41,7 @@ public final class OvsdbTepRemoveConfigHelper {
     private OvsdbTepRemoveConfigHelper() { }
 
     /**
-     * Removes the TEP from ITM configuration Datastore in one of the following cases.
+     * Removes the TEP from ITM configuration/operational Datastore in one of the following cases.
      * 1) default transport zone
      * 2) Configured transport zone
      * 3) Unhosted transport zone
@@ -49,7 +50,7 @@ public final class OvsdbTepRemoveConfigHelper {
      * @param tepIp TEP-IP address in string
      * @param strDpnId bridge datapath ID in string
      * @param tzName transport zone name in string
-     * @param dataBroker data broker handle to perform operations on config datastore
+     * @param dataBroker data broker handle to perform operations on config/operational datastore
      * @param wrTx WriteTransaction object
      */
 
@@ -82,8 +83,8 @@ public final class OvsdbTepRemoveConfigHelper {
             transportZone = ItmUtils.getTransportZoneFromConfigDS(tzName, dataBroker);
             if (transportZone == null) {
                 // Case: TZ is not configured from Northbound, then add TEP into
-                // "teps-not-hosted-in-transport-zone"
-                LOG.trace("Removing TEP from unknown TZ into teps-not-hosted-in-transport-zone.");
+                // "teps-in-not-hosted-transport-zone"
+                LOG.trace("Removing TEP from teps-in-not-hosted-transport-zone list.");
                 removeUnknownTzTepFromTepsNotHosted(tzName, tepIpAddress, dpnId, dataBroker, wrTx);
                 return;
             } else {
@@ -161,19 +162,20 @@ public final class OvsdbTepRemoveConfigHelper {
             .child(TransportZone.class, new TransportZoneKey(tzName))
             .child(Subnets.class, subnetsKey).child(Vteps.class, vtepkey).build();
 
-        LOG.trace("Removing TEP (TZ: {} Subnet: {} DPN-ID: {}) in ITM Config DS.", tzName, subnetMaskObj, dpnId);
+        LOG.trace("Removing TEP from (TZ: {} Subnet: {} DPN-ID: {}) inside ITM Config DS.",
+                tzName, subnetMaskObj, dpnId);
         // remove vtep
         wrTx.delete(LogicalDatastoreType.CONFIGURATION, vtepPath);
     }
 
     /**
      * Removes the TEP from the not-hosted transport zone in the TepsNotHosted list
-     * from ITM configuration Datastore.
+     * from ITM Operational Datastore.
      *
      * @param tzName transport zone name in string
      * @param tepIpAddress TEP IP address in IpAddress object
      * @param dpnId bridge datapath ID in BigInteger
-     * @param dataBroker data broker handle to perform operations on config datastore
+     * @param dataBroker data broker handle to perform operations on operational datastore
      * @param wrTx WriteTransaction object
      */
     public static void removeUnknownTzTepFromTepsNotHosted(String tzName, IpAddress tepIpAddress,
@@ -181,18 +183,16 @@ public final class OvsdbTepRemoveConfigHelper {
                                                            WriteTransaction wrTx) {
         List<UnknownVteps> vtepList = null;
 
-        TepsNotHostedInTransportZone unknownTz =
-            ItmUtils.getUnknownTransportZoneFromITMConfigDS(tzName, dataBroker);
-        if (unknownTz == null) {
-            LOG.trace("Unhosted TransportZone does not exist. Nothing to do for TEP removal.");
+        TepsInNotHostedTransportZone tepsInNotHostedTransportZone =
+            ItmUtils.getUnknownTransportZoneFromITMOperDS(tzName, dataBroker);
+        if (tepsInNotHostedTransportZone == null) {
+            LOG.trace("Unhosted TransportZone ({}) does not exist in OperDS. Nothing to do for TEP removal.", tzName);
             return;
         } else {
-            vtepList = unknownTz.getUnknownVteps();
+            vtepList = tepsInNotHostedTransportZone.getUnknownVteps();
             if (vtepList == null || vtepList.isEmpty()) {
                 //  case: vtep list does not exist or it has no elements
-                LOG.trace(
-                    "Remove TEP in unhosted TZ ({}) when no vtep-list in the TZ. Nothing to do.",
-                    tzName);
+                LOG.trace("Remove TEP from unhosted TZ ({}) when no vtep-list in the TZ. Nothing to do.", tzName);
             } else {
                 //  case: vtep list has elements
                 boolean vtepFound = false;
@@ -208,7 +208,7 @@ public final class OvsdbTepRemoveConfigHelper {
                 if (vtepFound) {
                     // vtep is found, update it with tep-ip
                     LOG.trace(
-                        "Remove TEP with IP ({}) from unhosted TZ ({}) in TepsNotHosted list.",
+                        "Remove TEP with IP ({}) from unhosted TZ ({}) inside not-hosted-transport-zones list.",
                         tepIpAddress, tzName);
                     if (vtepList.size() == 1) {
                         removeTzFromTepsNotHosted(tzName, wrTx);
@@ -223,7 +223,7 @@ public final class OvsdbTepRemoveConfigHelper {
 
     /**
      * Removes the TEP from unknown vtep list under the transport zone in the TepsNotHosted list
-     * from ITM configuration Datastore by delete operation with write transaction.
+     * from ITM operational Datastore by delete operation with write transaction.
      *
      * @param tzName transport zone name in string
      * @param dpnId bridge datapath ID in BigInteger
@@ -233,31 +233,31 @@ public final class OvsdbTepRemoveConfigHelper {
                                                       WriteTransaction wrTx) {
 
         UnknownVtepsKey unknownVtepkey = new UnknownVtepsKey(dpnId);
-        InstanceIdentifier<UnknownVteps> vtepPath = InstanceIdentifier.builder(TransportZones.class)
-            .child(TepsNotHostedInTransportZone.class, new TepsNotHostedInTransportZoneKey(tzName))
+        InstanceIdentifier<UnknownVteps> vtepPath = InstanceIdentifier.builder(NotHostedTransportZones.class)
+            .child(TepsInNotHostedTransportZone.class, new TepsInNotHostedTransportZoneKey(tzName))
             .child(UnknownVteps.class, unknownVtepkey).build();
 
-        LOG.trace("Removing TEP from unhosted (TZ: {}, DPID: {}) from ITM Config DS.",
+        LOG.trace("Removing TEP from unhosted (TZ: {}, DPID: {}) inside ITM Oper DS.",
                 tzName, dpnId);
         // remove vtep
-        wrTx.delete(LogicalDatastoreType.CONFIGURATION, vtepPath);
+        wrTx.delete(LogicalDatastoreType.OPERATIONAL, vtepPath);
     }
 
     /**
      * Removes the transport zone in the TepsNotHosted list
-     * from ITM configuration Datastore by delete operation with write transaction.
+     * from ITM operational Datastore by delete operation with write transaction.
      *
      * @param tzName transport zone name in string
      * @param wrTx WriteTransaction object
      */
     private static void removeTzFromTepsNotHosted(String tzName, WriteTransaction wrTx) {
-        InstanceIdentifier<TepsNotHostedInTransportZone> tzTepsNotHostedTepPath =
-                InstanceIdentifier.builder(TransportZones.class)
-                .child(TepsNotHostedInTransportZone.class,
-                    new TepsNotHostedInTransportZoneKey(tzName)).build();
+        InstanceIdentifier<TepsInNotHostedTransportZone> tepsInNotHostedTransportZoneIid =
+                InstanceIdentifier.builder(NotHostedTransportZones.class)
+                .child(TepsInNotHostedTransportZone.class,
+                    new TepsInNotHostedTransportZoneKey(tzName)).build();
 
-        LOG.trace("Removing TZ ({})from TepsNotHosted list  from ITM Config DS.", tzName);
+        LOG.trace("Removing TZ ({})from not-hosted-transport-zones list inside ITM Oper DS.", tzName);
         // remove TZ from TepsNotHosted list
-        wrTx.delete(LogicalDatastoreType.CONFIGURATION, tzTepsNotHostedTepPath);
+        wrTx.delete(LogicalDatastoreType.OPERATIONAL, tepsInNotHostedTransportZoneIid);
     }
 }
index fdbacd65155b8320dc8504d3e6c7714287649a35..14406a5f137768b306cd7a5be0f3cde05d03c8ca 100644 (file)
@@ -123,10 +123,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tun
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.state.tunnel.list.DstInfoBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.state.tunnel.list.SrcInfoBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.DcGatewayIpList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.NotHostedTransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.dc.gateway.ip.list.DcGatewayIp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZone;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZone;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneKey;
 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.TransportZoneKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Subnets;
@@ -1126,22 +1127,22 @@ public final class ItmUtils {
     }
 
     /**
-     * Gets the transport zone in TepsNotHosted list in the Configuration Datastore, based on transport zone name.
+     * Gets the transport zone in TepsNotHosted list in the Operational Datastore, based on transport zone name.
      *
      * @param unknownTz transport zone name
      *
-     * @param dataBroker data broker handle to perform read operations on config datastore
+     * @param dataBroker data broker handle to perform read operations on Oper datastore
      *
-     * @return the TepsNotHostedInTransportZone object in the TepsNotHosted list in Config DS
+     * @return the TepsInNotHostedTransportZone object in the TepsNotHosted list in Oper DS
      */
-    public static TepsNotHostedInTransportZone getUnknownTransportZoneFromITMConfigDS(
+    public static TepsInNotHostedTransportZone getUnknownTransportZoneFromITMOperDS(
         String unknownTz, DataBroker dataBroker) {
-        InstanceIdentifier<TepsNotHostedInTransportZone> unknownTzPath =
-            InstanceIdentifier.builder(TransportZones.class)
-                    .child(TepsNotHostedInTransportZone.class,
-                    new TepsNotHostedInTransportZoneKey(unknownTz)).build();
-        Optional<TepsNotHostedInTransportZone> unknownTzOptional =
-            ItmUtils.read(LogicalDatastoreType.CONFIGURATION, unknownTzPath, dataBroker);
+        InstanceIdentifier<TepsInNotHostedTransportZone> unknownTzPath =
+            InstanceIdentifier.builder(NotHostedTransportZones.class)
+                    .child(TepsInNotHostedTransportZone.class,
+                    new TepsInNotHostedTransportZoneKey(unknownTz)).build();
+        Optional<TepsInNotHostedTransportZone> unknownTzOptional =
+            ItmUtils.read(LogicalDatastoreType.OPERATIONAL, unknownTzPath, dataBroker);
         if (unknownTzOptional.isPresent()) {
             return unknownTzOptional.get();
         }
index a7f8d72e14acb5cea6f5c0e5535ead0ac27b451c..ee1b71a350c3a507cf54f4300251f002958a886b 100644 (file)
@@ -51,12 +51,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.DPNTEPsInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.dpn.teps.info.TunnelEndPoints;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.dpn.teps.info.tunnel.end.points.TzMembership;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.NotHostedTransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZonesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZone;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZone;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.tepsinnothostedtransportzone.UnknownVteps;
 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.tepsnothostedintransportzone.UnknownVteps;
 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;
@@ -273,11 +274,11 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         List<TzMembership> zones = ItmUtils.createTransportZoneMembership(newZoneName);
         Class<? extends TunnelTypeBase> tunnelType  = tzNew.getTunnelType();
 
-        TepsNotHostedInTransportZone tepNotHostedTransportZone = getNotHostedTransportZone(newZoneName).get();
-        if (tepNotHostedTransportZone == null) {
+        TepsInNotHostedTransportZone tepsInNotHostedTransportZone = getNotHostedTransportZone(newZoneName).get();
+        if (tepsInNotHostedTransportZone == null) {
             return notHostedDpnTepInfo;
         }
-        List<UnknownVteps> unVtepsLst = tepNotHostedTransportZone.getUnknownVteps();
+        List<UnknownVteps> unVtepsLst = tepsInNotHostedTransportZone.getUnknownVteps();
         List<Vteps> vtepsList = new ArrayList<>();
         if (unVtepsLst != null && !unVtepsLst.isEmpty()) {
             for (UnknownVteps vteps : unVtepsLst) {
@@ -345,13 +346,13 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         return isPresent;
     }
 
-    public  Optional<TepsNotHostedInTransportZone> getNotHostedTransportZone(String transportZoneName) {
-        InstanceIdentifier<TepsNotHostedInTransportZone> tzonePath = InstanceIdentifier.builder(TransportZones.class)
-                .child(TepsNotHostedInTransportZone.class,
-                        new TepsNotHostedInTransportZoneKey(transportZoneName)).build();
-        Optional<TepsNotHostedInTransportZone> tzNotHostedOptional =
-                ItmUtils.read(LogicalDatastoreType.CONFIGURATION, tzonePath, dataBroker);
-        return tzNotHostedOptional;
+    public  Optional<TepsInNotHostedTransportZone> getNotHostedTransportZone(String transportZoneName) {
+        InstanceIdentifier<TepsInNotHostedTransportZone> notHostedTzPath = InstanceIdentifier
+                .builder(NotHostedTransportZones.class).child(TepsInNotHostedTransportZone.class,
+                        new TepsInNotHostedTransportZoneKey(transportZoneName)).build();
+        Optional<TepsInNotHostedTransportZone> tepsInNotHostedTransportZoneOptional =
+                ItmUtils.read(LogicalDatastoreType.OPERATIONAL, notHostedTzPath, dataBroker);
+        return tepsInNotHostedTransportZoneOptional;
     }
 
     private List<DPNTEPsInfo> createDPNTepInfo(TransportZone transportZone) {
index cc8425b737d57ab794f0bcad485cbc929c686997..1833a00355ca37d8d96d00a3c635b061894d9ae1 100644 (file)
@@ -38,7 +38,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.ItmConfigBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZonesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZone;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZone;
 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.TransportZoneBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneKey;
@@ -441,13 +441,13 @@ public class ItmTepAutoConfigTest {
         // wait for OvsdbNodeListener to perform config DS update through transaction
         Thread.sleep(1000);
 
-        InstanceIdentifier<TepsNotHostedInTransportZone> notHostedtzPath = ItmTepAutoConfigTestUtil
+        InstanceIdentifier<TepsInNotHostedTransportZone> notHostedtzPath = ItmTepAutoConfigTestUtil
             .getTepNotHostedInTZIid(ItmTestConstants.NOT_HOSTED_TZ_NAME);
         Assert.assertNotNull(notHostedtzPath);
 
         // check not hosted
         assertEqualBeans(ExpectedTepNotHostedTransportZoneObjects.newTepNotHostedTransportZone(),
-            dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION,
+            dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.OPERATIONAL,
                 notHostedtzPath).checkedGet().get());
 
         future = OvsdbTestUtil.updateNode(connInfo, ItmTestConstants.NOT_HOSTED_TZ_TEP_IP, null,
@@ -457,7 +457,7 @@ public class ItmTepAutoConfigTest {
         Thread.sleep(1000);
 
         Assert.assertEquals(Optional.absent(),dataBroker.newReadOnlyTransaction()
-            .read(LogicalDatastoreType.CONFIGURATION, notHostedtzPath).get());
+            .read(LogicalDatastoreType.OPERATIONAL, notHostedtzPath).get());
     }
 
     @Test
@@ -591,12 +591,12 @@ public class ItmTepAutoConfigTest {
             ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP,
                 ItmTestConstants.NOT_HOSTED_TZ_TEPDPN_ID, ItmTestConstants.NOT_HOSTED_TZ_NAME, false, dataBroker);
         future.get();
-        InstanceIdentifier<TepsNotHostedInTransportZone> notHostedPath =
+        InstanceIdentifier<TepsInNotHostedTransportZone> notHostedPath =
             ItmTepAutoConfigTestUtil.getTepNotHostedInTZIid(ItmTestConstants.NOT_HOSTED_TZ_NAME);
         Assert.assertNotNull(notHostedPath);
 
         assertEqualBeans(ExpectedTepNotHostedTransportZoneObjects.newTepNotHostedTransportZone(),
-            dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION, notHostedPath)
+            dataBroker.newReadOnlyTransaction().read(LogicalDatastoreType.OPERATIONAL, notHostedPath)
                 .checkedGet().get());
     }
 
@@ -607,13 +607,13 @@ public class ItmTepAutoConfigTest {
             ItmTepAutoConfigTestUtil.addTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP,
                 ItmTestConstants.NOT_HOSTED_TZ_TEPDPN_ID, ItmTestConstants.NOT_HOSTED_TZ_NAME, false, dataBroker);
         future.get();
-        InstanceIdentifier<TepsNotHostedInTransportZone> notHostedPath =
+        InstanceIdentifier<TepsInNotHostedTransportZone> notHostedPath =
             ItmTepAutoConfigTestUtil.getTepNotHostedInTZIid(ItmTestConstants.NOT_HOSTED_TZ_NAME);
         Assert.assertNotNull(notHostedPath);
 
         assertEqualBeans(ExpectedTepNotHostedTransportZoneObjects.newTepNotHostedTransportZone(),
             dataBroker.newReadOnlyTransaction()
-                .read(LogicalDatastoreType.CONFIGURATION, notHostedPath).checkedGet().get());
+                .read(LogicalDatastoreType.OPERATIONAL, notHostedPath).checkedGet().get());
 
         //delete from not hosted list
         future = ItmTepAutoConfigTestUtil.deleteTep(ItmTestConstants.NOT_HOSTED_TZ_TEP_IP,
@@ -622,7 +622,7 @@ public class ItmTepAutoConfigTest {
 
         Assert.assertEquals(Optional.absent(),
             dataBroker.newReadOnlyTransaction()
-                .read(LogicalDatastoreType.CONFIGURATION, notHostedPath).get());
+                .read(LogicalDatastoreType.OPERATIONAL, notHostedPath).get());
     }
 
     @Test
@@ -633,13 +633,13 @@ public class ItmTepAutoConfigTest {
                 ItmTestConstants.NOT_HOSTED_TZ_TEPDPN_ID, ItmTestConstants.NOT_HOSTED_TZ_NAME, false,
                 dataBroker);
         future.get();
-        InstanceIdentifier<TepsNotHostedInTransportZone> notHostedPath =
+        InstanceIdentifier<TepsInNotHostedTransportZone> notHostedPath =
             ItmTepAutoConfigTestUtil.getTepNotHostedInTZIid(ItmTestConstants.NOT_HOSTED_TZ_NAME);
         Assert.assertNotNull(notHostedPath);
 
         assertEqualBeans(ExpectedTepNotHostedTransportZoneObjects.newTepNotHostedTransportZone(),
             dataBroker.newReadOnlyTransaction()
-                .read(LogicalDatastoreType.CONFIGURATION, notHostedPath).checkedGet().get());
+                .read(LogicalDatastoreType.OPERATIONAL, notHostedPath).checkedGet().get());
 
         // create the same TZ
         TransportZone transportZoneNorth = new TransportZoneBuilder().setZoneName(ItmTestConstants.NOT_HOSTED_TZ_NAME)
@@ -675,6 +675,6 @@ public class ItmTepAutoConfigTest {
 
         // check TZ is removed
         Assert.assertEquals(Optional.absent(), dataBroker.newReadOnlyTransaction()
-            .read(LogicalDatastoreType.CONFIGURATION, notHostedPath).get());
+            .read(LogicalDatastoreType.OPERATIONAL, notHostedPath).get());
     }
 }
index a64049550fb82344aa41988bf9afc735c4221537..35bc64ee80dc0c5f9d749a4117165a5f98d6ed6e 100644 (file)
@@ -17,9 +17,10 @@ import org.opendaylight.genius.itm.confighelpers.OvsdbTepAddConfigHelper;
 import org.opendaylight.genius.itm.confighelpers.OvsdbTepRemoveConfigHelper;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.config.rev160406.ItmConfig;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.NotHostedTransportZones;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.TransportZones;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZone;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZone;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.not.hosted.transport.zones.TepsInNotHostedTransportZoneKey;
 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.TransportZoneKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Subnets;
@@ -81,11 +82,11 @@ public final class ItmTepAutoConfigTestUtil {
         return vtepIid;
     }
 
-    public static InstanceIdentifier<TepsNotHostedInTransportZone> getTepNotHostedInTZIid(String tzName) {
-        InstanceIdentifier<TepsNotHostedInTransportZone> tzonePath =
-            InstanceIdentifier.builder(TransportZones.class)
-                .child(TepsNotHostedInTransportZone.class,
-                    new TepsNotHostedInTransportZoneKey(tzName)).build();
+    public static InstanceIdentifier<TepsInNotHostedTransportZone> getTepNotHostedInTZIid(String tzName) {
+        InstanceIdentifier<TepsInNotHostedTransportZone> tzonePath =
+            InstanceIdentifier.builder(NotHostedTransportZones.class)
+                .child(TepsInNotHostedTransportZone.class,
+                    new TepsInNotHostedTransportZoneKey(tzName)).build();
 
         return tzonePath;
     }
index 864474eceaf018cf9ff0bc25ab10fba257ca6bff..83a7f93068344ab61c66d328f4b16e0dd00d8a54 100644 (file)
@@ -8,8 +8,8 @@
 
 package org.opendaylight.genius.itm.tests.xtend;
 
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.tepsnothostedintransportzone.UnknownVtepsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TepsNotHostedInTransportZoneBuilder;
+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.TepsInNotHostedTransportZoneBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
 
 import org.opendaylight.genius.itm.tests.ItmTestConstants;
@@ -19,7 +19,7 @@ import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExt
 class ExpectedTepNotHostedTransportZoneObjects {
 
     static def newTepNotHostedTransportZone() {
-        new TepsNotHostedInTransportZoneBuilder >> [
+        new TepsInNotHostedTransportZoneBuilder >> [
             zoneName = ItmTestConstants.NOT_HOSTED_TZ_NAME
             unknownVteps = #[
                   new UnknownVtepsBuilder >> [