Bug 3746 added check if node is also in oper DS 03/22903/1
authorMartin Sunal <msunal@cisco.com>
Thu, 18 Jun 2015 16:18:40 +0000 (18:18 +0200)
committerMartin Sunal <msunal@cisco.com>
Thu, 18 Jun 2015 16:25:35 +0000 (16:25 +0000)
Based on info from OF plugin team:
if a node exists in OPER DS then routed RPC implementation is already registered

Change-Id: I6a7a9f6b5cde60d7b47dcbb3761c921163d35415
Signed-off-by: Martin Sunal <msunal@cisco.com>
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/arp/ArpTasker.java

index 96db98ba8f9adb5ae7633a57c3d0388c9d614fda..2689fa9dce98e5a4d9f47e45cde043599b4b37da 100644 (file)
@@ -320,6 +320,12 @@ public class ArpTasker implements PacketProcessingListener {
         List<Node> nodes = potentialNodes.get().getNode();
         SetMultimap<Node, NodeConnectorId> extIfacesByNode = HashMultimap.create();
         for (Node node : nodes) {
+            Optional<Node> potentialNodeFromOper = DataStoreHelper.readFromDs(LogicalDatastoreType.OPERATIONAL,
+                    InstanceIdentifier.builder(Nodes.class).child(Node.class, node.getKey()).build(), rTx);
+            if (!potentialNodeFromOper.isPresent()) {
+                LOG.debug("Node exists in CONF DS but not in OPER DS. Node from CONF: {}", node);
+                continue;
+            }
             OfOverlayNodeConfig ofOverlayNode = node.getAugmentation(OfOverlayNodeConfig.class);
             if (ofOverlayNode != null) {
                 List<ExternalInterfaces> externalIfaces = ofOverlayNode.getExternalInterfaces();