Policy exclusions & parallel netconf transactions
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / listener / VppNodeListener.java
index 7eeb356530e7d5c6015c793669b322c1ed83c469..ae809eae1e839634a116401adab697ef923737b5 100644 (file)
@@ -12,9 +12,9 @@ import java.util.Collection;
 
 import javax.annotation.Nonnull;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 import com.google.common.base.Preconditions;
 import com.google.common.eventbus.EventBus;
 
-public class VppNodeListener implements DataTreeChangeListener<Node>, AutoCloseable {
+public class VppNodeListener implements ClusteredDataTreeChangeListener<Node>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(VppNodeListener.class);
     private static final TopologyId TOPOLOGY_NETCONF = new TopologyId("topology-netconf");
@@ -53,19 +53,18 @@ public class VppNodeListener implements DataTreeChangeListener<Node>, AutoClosea
                     .build());
         listenerRegistration =
                 Preconditions.checkNotNull(dataBroker.registerDataTreeChangeListener(networkTopologyPath, this));
-        LOG.info("Network-Topology VppNodelistener registered");
+        LOG.info("Network-Topology VppNodeListener registered");
     }
 
     @Override
     public void onDataTreeChanged(@Nonnull Collection<DataTreeModification<Node>> changes) {
-        LOG.debug("Topology Node changed. Changes {}", changes);
-
         for (DataTreeModification<Node> modification : changes) {
+            InstanceIdentifier<Node> iid = modification.getRootPath().getRootIdentifier();
+            LOG.debug("Change detected for network topology node {}.", iid.firstKeyOf(Node.class));
             DataObjectModification<Node> rootNode = modification.getRootNode();
             Node dataAfter = rootNode.getDataAfter();
             Node dataBefore = rootNode.getDataBefore();
-            NodeOperEvent event =
-                    new NodeOperEvent(modification.getRootPath().getRootIdentifier(), dataBefore, dataAfter);
+            NodeOperEvent event = new NodeOperEvent(iid, dataBefore, dataAfter);
             eventBus.post(event);
             nodeManager.syncNodes(dataAfter, dataBefore);
         }