Convert to mdsal EntityOwnershipService APIs 79/70779/1
authorTom Pantelis <tompantelis@gmail.com>
Wed, 11 Apr 2018 13:18:55 +0000 (09:18 -0400)
committerTom Pantelis <tompantelis@gmail.com>
Wed, 11 Apr 2018 13:18:55 +0000 (09:18 -0400)
The controller APIs are deprecated and being removed.

Change-Id: Ibf4c55cff0dc2e84b3a7ff0e85b5f1a505d74b84
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
14 files changed:
hwvtepsouthbound/hwvtepsouthbound-impl/pom.xml
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionInstance.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepConnectionManager.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/HwvtepSouthboundProvider.java
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/resources/org/opendaylight/blueprint/hwvtepsouthbound.xml
hwvtepsouthbound/hwvtepsouthbound-impl/src/test/java/org/opendaylight/ovsdb/hwvtepsouthbound/DataChangeListenerTestBase.java
southbound/southbound-impl/pom.xml
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionInstance.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManager.java
southbound/southbound-impl/src/main/java/org/opendaylight/ovsdb/southbound/SouthboundProvider.java
southbound/southbound-impl/src/main/resources/org/opendaylight/blueprint/southbound.xml
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbConnectionManagerTest.java
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/OvsdbDataTreeChangeListenerTest.java
southbound/southbound-impl/src/test/java/org/opendaylight/ovsdb/southbound/SouthboundProviderTest.java

index 2e49ddb2be728e3e34d19e09ddef959c72956542..79df07c224427a8024d0e6ee91cdec93704fa2a4 100644 (file)
@@ -33,6 +33,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-dom-codec</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-eos-binding-api</artifactId>
+    </dependency>
     <!-- project specific dependencies -->
     <dependency>
       <groupId>${project.groupId}</groupId>
index f879613ea79c1e8f2ed2ae234bb1c571ba28ba09..8fcc727f01261d4459cd5f55fb357bea84932738 100644 (file)
@@ -26,8 +26,8 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import javax.annotation.Nonnull;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactCommand;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactInvoker;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactInvokerImpl;
index bb1adfd01b571f973cb312f3a836a2ffa5fc26a8..c6a52d9a2749493120c98561602018d37c81a32f 100644 (file)
@@ -29,16 +29,16 @@ import java.util.concurrent.TimeoutException;
 import javax.annotation.Nonnull;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.clustering.CandidateAlreadyRegisteredException;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListenerRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipState;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
+import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
+import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.ovsdb.hwvtepsouthbound.events.ClientConnected;
 import org.opendaylight.ovsdb.hwvtepsouthbound.reconciliation.ReconciliationManager;
 import org.opendaylight.ovsdb.hwvtepsouthbound.reconciliation.ReconciliationTask;
@@ -65,7 +65,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hw
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.global.attributes.ConnectionInfo;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -374,9 +373,9 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo
         if (ownershipStateOpt.isPresent()) {
             EntityOwnershipState ownershipState = ownershipStateOpt.get();
             putConnectionInstance(hwvtepConnectionInstance.getMDConnectionInfo(), hwvtepConnectionInstance);
-            if (ownershipState.hasOwner()) {
-                hwvtepConnectionInstance.setHasDeviceOwnership(ownershipState.isOwner());
-                if (!ownershipState.isOwner()) {
+            if (ownershipState != EntityOwnershipState.NO_OWNER) {
+                hwvtepConnectionInstance.setHasDeviceOwnership(ownershipState == EntityOwnershipState.IS_OWNER);
+                if (ownershipState != EntityOwnershipState.IS_OWNER) {
                     LOG.info("HWVTEP entity {} is already owned by other southbound plugin "
                                     + "instance, so *this* instance is NOT an OWNER of the device",
                             hwvtepConnectionInstance.getConnectionInfo());
@@ -454,9 +453,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo
             hwvtepConnectionInstance.setControllerTxHistory(controllerLog);
             hwvtepConnectionInstance.setDeviceUpdateHistory(deviceLog);
         }
-        YangInstanceIdentifier entityId =
-                HwvtepSouthboundUtil.getInstanceIdentifierCodec().getYangInstanceIdentifier(iid);
-        Entity deviceEntity = new Entity(ENTITY_TYPE, entityId);
+        Entity deviceEntity = new Entity(ENTITY_TYPE, iid);
         LOG.debug("Entity {} created for device connection {}",
                 deviceEntity, hwvtepConnectionInstance.getConnectionInfo());
         return deviceEntity;
@@ -543,7 +540,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo
                         : "THAT'S NOT REGISTERED BY THIS SOUTHBOUND PLUGIN INSTANCE");
 
         if (hwvtepConnectionInstance == null) {
-            if (ownershipChange.isOwner()) {
+            if (ownershipChange.getState().isOwner()) {
                 LOG.warn("handleOwnershipChanged: found no connection instance for {}", ownershipChange.getEntity());
             } else {
                 // EntityOwnershipService sends notification to all the nodes, irrespective of whether
@@ -556,7 +553,7 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo
 
             // If entity has no owner, clean up the operational data store (it's possible because owner controller
             // might went down abruptly and didn't get a chance to clean up the operational data store.
-            if (!ownershipChange.hasOwner()) {
+            if (!ownershipChange.getState().hasOwner()) {
                 LOG.debug("{} has no owner, cleaning up the operational data store", ownershipChange.getEntity());
                 // If first cleanEntityOperationalData() was called, this call will be no-op.
                 cleanEntityOperationalData(ownershipChange.getEntity());
@@ -566,15 +563,15 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo
         //Connection detail need to be cached, irrespective of ownership result.
         putConnectionInstance(hwvtepConnectionInstance.getMDConnectionInfo(), hwvtepConnectionInstance);
 
-        if (ownershipChange.isOwner() == hwvtepConnectionInstance.getHasDeviceOwnership()) {
+        if (ownershipChange.getState().isOwner() == hwvtepConnectionInstance.getHasDeviceOwnership()) {
             LOG.debug("handleOwnershipChanged: no change in ownership for {}. Ownership status is : {}",
                     hwvtepConnectionInstance.getConnectionInfo(), hwvtepConnectionInstance.getHasDeviceOwnership());
             return;
         }
 
-        hwvtepConnectionInstance.setHasDeviceOwnership(ownershipChange.isOwner());
+        hwvtepConnectionInstance.setHasDeviceOwnership(ownershipChange.getState().isOwner());
         // You were not an owner, but now you are
-        if (ownershipChange.isOwner()) {
+        if (ownershipChange.getState().isOwner()) {
             LOG.info("handleOwnershipChanged: *this* southbound plugin instance is owner of device {}",
                     hwvtepConnectionInstance.getConnectionInfo());
 
@@ -596,9 +593,8 @@ public class HwvtepConnectionManager implements OvsdbConnectionListener, AutoClo
     }
 
     private void cleanEntityOperationalData(Entity entity) {
-        @SuppressWarnings("unchecked") final InstanceIdentifier<Node> nodeIid =
-                (InstanceIdentifier<Node>) HwvtepSouthboundUtil
-                        .getInstanceIdentifierCodec().bindingDeserializer(entity.getId());
+        @SuppressWarnings("unchecked")
+        final InstanceIdentifier<Node> nodeIid = (InstanceIdentifier<Node>) entity.getIdentifier();
         txInvoker.invoke(new HwvtepGlobalRemoveCommand(nodeIid));
     }
 
index 1ff225a2e591e8c9469d6dfcefd31e271102931c..76b742a95cae787973bce876ed306cb853da246c 100644 (file)
@@ -17,17 +17,17 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.clustering.CandidateAlreadyRegisteredException;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListenerRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
+import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.ovsdb.hwvtepsouthbound.reconciliation.configuration.HwvtepReconciliationManager;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvoker;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvokerImpl;
@@ -159,7 +159,7 @@ public class HwvtepSouthboundProvider implements ClusteredDataTreeChangeListener
     }
 
     public void handleOwnershipChange(EntityOwnershipChange ownershipChange) {
-        if (ownershipChange.isOwner()) {
+        if (ownershipChange.getState().isOwner()) {
             LOG.info("*This* instance of HWVTEP southbound provider is set as a MASTER instance");
             LOG.info("Initialize HWVTEP topology {} in operational and config data store if not already present",
                     HwvtepSouthboundConstants.HWVTEP_TOPOLOGY_ID);
index 6e1a60420bc351059d205fa7a6eca7990b401fb2..af0e676dd01322be425583f23fa7e547ba2bdea8 100644 (file)
@@ -7,7 +7,7 @@
     interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
     odl:type="default" />
   <reference id="eos"
-    interface="org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService" />
+    interface="org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService" />
   <reference id="ovsdbConnection" interface="org.opendaylight.ovsdb.lib.OvsdbConnection" />
   <reference id="schemaService"
     interface="org.opendaylight.mdsal.dom.api.DOMSchemaService" />
index dc5a7a402ade9c7c94d367f62b6a94963ccd2c3b..cfc6b0627b7c5f0f6fb13273e5511d2ddb1fa582 100644 (file)
@@ -38,8 +38,8 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvoker;
 import org.opendaylight.ovsdb.hwvtepsouthbound.transactions.md.TransactionInvokerImpl;
 import org.opendaylight.ovsdb.lib.OvsdbClient;
index 868d55ce2eec77e02d8e41f194c7ce875afc69ee..cea789fbb85f3af401c919766f6dbcf9f1f1a53e 100644 (file)
@@ -36,6 +36,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-dom-codec</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-eos-binding-api</artifactId>
+    </dependency>
     <!-- project specific dependencies -->
     <dependency>
       <groupId>${project.groupId}</groupId>
index b6bae02f9da3c8e122e007f5c0d82c9a7d68d3ca..336a8f01af2d2d08abd54d99a355eed580a852a4 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.ovsdb.southbound;
 import static org.opendaylight.ovsdb.lib.operations.Operations.op;
 
 import com.google.common.util.concurrent.ListenableFuture;
-
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -20,13 +19,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
-
 import javax.annotation.Nonnull;
-
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
 import org.opendaylight.ovsdb.lib.LockAquisitionCallback;
 import org.opendaylight.ovsdb.lib.LockStolenCallback;
 import org.opendaylight.ovsdb.lib.MonitorCallBack;
index c92894de3e34a8111e7f48085e994bd6d223aa8c..bc27a7eed3b10c7ac892d4c16ece29f6fbff345f 100644 (file)
@@ -28,16 +28,16 @@ import java.util.concurrent.TimeoutException;
 import javax.annotation.Nonnull;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.clustering.CandidateAlreadyRegisteredException;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListenerRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipState;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
+import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
+import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.ovsdb.lib.OvsdbClient;
 import org.opendaylight.ovsdb.lib.OvsdbConnection;
 import org.opendaylight.ovsdb.lib.OvsdbConnectionListener;
@@ -61,7 +61,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ManagedNodeEntry;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -378,7 +377,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
                         : "that's currently NOT registered by *this* southbound plugin instance");
 
         if (ovsdbConnectionInstance == null) {
-            if (ownershipChange.isOwner()) {
+            if (ownershipChange.getState().isOwner()) {
                 LOG.warn("handleOwnershipChanged: *this* instance is elected as an owner of the device {} but it "
                         + "is NOT registered for ownership", ownershipChange.getEntity());
             } else {
@@ -392,7 +391,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
 
             // If entity has no owner, clean up the operational data store (it's possible because owner controller
             // might went down abruptly and didn't get a chance to clean up the operational data store.
-            if (!ownershipChange.hasOwner()) {
+            if (!ownershipChange.getState().hasOwner()) {
                 LOG.info("{} has no owner, cleaning up the operational data store", ownershipChange.getEntity());
                 cleanEntityOperationalData(ownershipChange.getEntity());
             }
@@ -401,7 +400,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
         //Connection detail need to be cached, irrespective of ownership result.
         putConnectionInstance(ovsdbConnectionInstance.getMDConnectionInfo(),ovsdbConnectionInstance);
 
-        if (ownershipChange.isOwner() == ovsdbConnectionInstance.getHasDeviceOwnership()) {
+        if (ownershipChange.getState().isOwner() == ovsdbConnectionInstance.getHasDeviceOwnership()) {
             LOG.info("handleOwnershipChanged: no change in ownership for {}. Ownership status is : {}",
                     ovsdbConnectionInstance.getConnectionInfo(), ovsdbConnectionInstance.getHasDeviceOwnership()
                             ? SouthboundConstants.OwnershipStates.OWNER.getState()
@@ -409,9 +408,9 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
             return;
         }
 
-        ovsdbConnectionInstance.setHasDeviceOwnership(ownershipChange.isOwner());
+        ovsdbConnectionInstance.setHasDeviceOwnership(ownershipChange.getState().isOwner());
         // You were not an owner, but now you are
-        if (ownershipChange.isOwner()) {
+        if (ownershipChange.getState().isOwner()) {
             LOG.info("handleOwnershipChanged: *this* southbound plugin instance is an OWNER of the device {}",
                     ovsdbConnectionInstance.getConnectionInfo());
 
@@ -440,8 +439,8 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
         // are chances that other controller instance went down abruptly and it does
         // not clear manager entry, which OvsdbNodeRemoveCommand look for before cleanup.
 
-        @SuppressWarnings("unchecked") final InstanceIdentifier<Node> nodeIid =
-                (InstanceIdentifier<Node>) instanceIdentifierCodec.bindingDeserializer(entity.getId());
+        @SuppressWarnings("unchecked")
+        final InstanceIdentifier<Node> nodeIid = (InstanceIdentifier<Node>) entity.getIdentifier();
 
         txInvoker.invoke(transaction -> {
             Optional<Node> ovsdbNodeOpt = SouthboundUtil.readNode(transaction, nodeIid);
@@ -513,8 +512,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
                     + "connection {}",iid,ovsdbConnectionInstance.getConnectionInfo());
             ovsdbConnectionInstance.setInstanceIdentifier(iid);
         }
-        YangInstanceIdentifier entityId = instanceIdentifierCodec.getYangInstanceIdentifier(iid);
-        Entity deviceEntity = new Entity(ENTITY_TYPE, entityId);
+        Entity deviceEntity = new Entity(ENTITY_TYPE, iid);
         LOG.debug("Entity {} created for device connection {}",
                 deviceEntity, ovsdbConnectionInstance.getConnectionInfo());
         return deviceEntity;
@@ -541,7 +539,7 @@ public class OvsdbConnectionManager implements OvsdbConnectionListener, AutoClos
                     entityOwnershipService.getOwnershipState(candidateEntity);
             if (ownershipStateOpt.isPresent()) {
                 EntityOwnershipState ownershipState = ownershipStateOpt.get();
-                if (ownershipState.hasOwner() && !ownershipState.isOwner()) {
+                if (ownershipState == EntityOwnershipState.OWNED_BY_OTHER) {
                     LOG.info("OVSDB entity {} is already owned by other southbound plugin "
                                     + "instance, so *this* instance is NOT an OWNER of the device",
                             ovsdbConnectionInstance.getConnectionInfo());
index e1dc95bfa6d4ce8c3e03ad31007ccc5dad2f4276..154c881f0d99d7d1ef0f7949691e0218fcbd65c9 100644 (file)
@@ -19,17 +19,17 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.clustering.CandidateAlreadyRegisteredException;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListenerRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
+import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
 import org.opendaylight.ovsdb.lib.OvsdbConnection;
 import org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvoker;
 import org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvokerImpl;
@@ -87,7 +87,8 @@ public class SouthboundProvider implements ClusteredDataTreeChangeListener<Topol
     public void init() {
         LOG.info("SouthboundProvider Session Initiated");
         this.txInvoker = new TransactionInvokerImpl(db);
-        cm = new OvsdbConnectionManager(db,txInvoker,entityOwnershipService, ovsdbConnection, instanceIdentifierCodec);
+        cm = new OvsdbConnectionManager(db, txInvoker, entityOwnershipService, ovsdbConnection,
+                instanceIdentifierCodec);
         ovsdbDataTreeChangeListener = new OvsdbDataTreeChangeListener(db, cm, instanceIdentifierCodec);
 
         //Register listener for entityOnwership changes
@@ -151,7 +152,7 @@ public class SouthboundProvider implements ClusteredDataTreeChangeListener<Topol
     }
 
     public void handleOwnershipChange(EntityOwnershipChange ownershipChange) {
-        if (ownershipChange.isOwner()) {
+        if (ownershipChange.getState().isOwner()) {
             LOG.info("*This* instance of OVSDB southbound provider is set as a MASTER instance");
             LOG.info("Initialize OVSDB topology {} in operational and config data store if not already present",
                     SouthboundConstants.OVSDB_TOPOLOGY_ID);
index c1a510a9f1bd2f68020d42f4d329d19f424aa73a..a674ab20c77b0b8f4c95ccf8ad50211601c25fc9 100644 (file)
@@ -8,7 +8,7 @@
     interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
     odl:type="default" />
   <reference id="eos"
-    interface="org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService" />
+    interface="org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService" />
   <reference id="ovsdbConnection" interface="org.opendaylight.ovsdb.lib.OvsdbConnection" />
   <reference id="schemaService"
     interface="org.opendaylight.mdsal.dom.api.DOMSchemaService" />
index 63c7b4d322df70778d93e8a3a206b0a80b3780ed..e90daca48499c0cb3a1abbe2434536a74b37a781 100644 (file)
@@ -35,10 +35,11 @@ import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
+import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
 import org.opendaylight.ovsdb.lib.OvsdbClient;
 import org.opendaylight.ovsdb.lib.OvsdbConnection;
 import org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService;
@@ -369,8 +370,9 @@ public class OvsdbConnectionManagerTest {
         field(OvsdbConnectionManager.class, "entityConnectionMap").set(ovsdbConnManager, entityConnectionMap);
         suppress(MemberMatcher.method(OvsdbConnectionManager.class, "putConnectionInstance", ConnectionInfo.class,
                 OvsdbConnectionInstance.class));
-        EntityOwnershipChange ownershipChange = new EntityOwnershipChange(entity, true, false, false);
+        EntityOwnershipChange ownershipChange = new EntityOwnershipChange(entity,
+                EntityOwnershipChangeState.from(true, false, false));
         Whitebox.invokeMethod(ovsdbConnManager, "handleOwnershipChanged", ownershipChange);
         PowerMockito.verifyPrivate(ovsdbConnManager, times(1)).invoke("putConnectionInstance", key, ovsdbConnInstance);
     }
-}
\ No newline at end of file
+}
index 09df071b462e0a4c9626818c927a7520618af9c3..906e703c3fb0504ce583bdc21735c5f88823e7be 100644 (file)
@@ -18,8 +18,8 @@ import org.mockito.Mockito;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
 import org.opendaylight.ovsdb.lib.OvsdbConnection;
 import org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvokerImpl;
 import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils;
@@ -72,4 +72,4 @@ public class OvsdbDataTreeChangeListenerTest extends AbstractDataBrokerTest {
         // Then the listener tries to open a connection
         Mockito.verify(ovsdbConnection).connect(inetAddress, port);
     }
-}
\ No newline at end of file
+}
index 227ceee5d2e7f5327c1df2c15796671df31fbdef..7da291c494e8dadfeecb6e922fd81ed0cc90f73e 100644 (file)
@@ -23,18 +23,19 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 import org.opendaylight.controller.md.sal.binding.test.AbstractDataBrokerTest;
-import org.opendaylight.controller.md.sal.common.api.clustering.CandidateAlreadyRegisteredException;
-import org.opendaylight.controller.md.sal.common.api.clustering.Entity;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipCandidateRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipChange;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListener;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipListenerRegistration;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipService;
-import org.opendaylight.controller.md.sal.common.api.clustering.EntityOwnershipState;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
+import org.opendaylight.mdsal.eos.binding.api.Entity;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipCandidateRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipChange;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListener;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipListenerRegistration;
+import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
+import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
+import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
+import org.opendaylight.mdsal.eos.common.api.EntityOwnershipState;
 import org.opendaylight.ovsdb.lib.OvsdbConnection;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
@@ -59,7 +60,7 @@ public class SouthboundProviderTest extends AbstractDataBrokerTest {
     public void testInit() throws CandidateAlreadyRegisteredException {
         // Indicate that this is the owner
         when(entityOwnershipService.getOwnershipState(any(Entity.class))).thenReturn(
-                Optional.of(new EntityOwnershipState(true, true)));
+                Optional.of(EntityOwnershipState.from(true, true)));
 
         try (SouthboundProvider southboundProvider = new SouthboundProvider(
                 getDataBroker(),
@@ -84,7 +85,7 @@ public class SouthboundProviderTest extends AbstractDataBrokerTest {
     public void testInitWithClose() throws CandidateAlreadyRegisteredException {
         // Indicate that this is the owner
         when(entityOwnershipService.getOwnershipState(any(Entity.class))).thenReturn(
-                Optional.of(new EntityOwnershipState(true, true)));
+                Optional.of(EntityOwnershipState.from(true, true)));
 
         try (SouthboundProvider southboundProvider = new SouthboundProvider(
                 getDataBroker(),
@@ -111,7 +112,7 @@ public class SouthboundProviderTest extends AbstractDataBrokerTest {
     @Test
     public void testGetDb() {
         when(entityOwnershipService.getOwnershipState(any(Entity.class))).thenReturn(
-                Optional.of(new EntityOwnershipState(true, true)));
+                Optional.of(EntityOwnershipState.from(true, true)));
 
         try (SouthboundProvider southboundProvider = new SouthboundProvider(
                 getDataBroker(),
@@ -129,7 +130,7 @@ public class SouthboundProviderTest extends AbstractDataBrokerTest {
     @Test
     public void testHandleOwnershipChange() throws ReadFailedException {
         when(entityOwnershipService.getOwnershipState(any(Entity.class))).thenReturn(
-                Optional.of(new EntityOwnershipState(false, true)));
+                Optional.of(EntityOwnershipState.from(false, true)));
         Entity entity = new Entity("ovsdb-southbound-provider", "ovsdb-southbound-provider");
         KeyedInstanceIdentifier<Topology, TopologyKey> topologyIid = InstanceIdentifier
                 .create(NetworkTopology.class)
@@ -151,7 +152,8 @@ public class SouthboundProviderTest extends AbstractDataBrokerTest {
                     topologyIid).checkedGet().isPresent());
 
             // Become owner
-            southboundProvider.handleOwnershipChange(new EntityOwnershipChange(entity, false, true, true));
+            southboundProvider.handleOwnershipChange(new EntityOwnershipChange(entity,
+                    EntityOwnershipChangeState.from(false, true, true)));
 
             // Now the OVSDB topology must be present in both trees
             assertTrue(getDataBroker().newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION,
@@ -160,7 +162,8 @@ public class SouthboundProviderTest extends AbstractDataBrokerTest {
                     topologyIid).checkedGet().isPresent());
 
             // Verify idempotency
-            southboundProvider.handleOwnershipChange(new EntityOwnershipChange(entity, false, true, true));
+            southboundProvider.handleOwnershipChange(new EntityOwnershipChange(entity,
+                    EntityOwnershipChangeState.from(false, true, true)));
 
             // The OVSDB topology must be present in both trees
             assertTrue(getDataBroker().newReadOnlyTransaction().read(LogicalDatastoreType.CONFIGURATION,