Merge "Bug 4957 RoleContext updated with initialization"
[openflowplugin.git] / applications / inventory-manager / src / main / java / org / opendaylight / openflowplugin / applications / inventory / manager / NodeChangeCommiter.java
index fffb2e3c79ae76b4145e26254d1d492e71251458..35b6b3d717dc345e93926e33198820587f74607d 100644 (file)
@@ -24,13 +24,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Fl
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRemoved;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRemoved;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdated;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.OpendaylightInventoryListener;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.*;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
@@ -69,6 +63,8 @@ class NodeChangeCommiter implements OpendaylightInventoryListener {
             return;
         }
 
+        if(!manager.deviceDataDeleteAllowed(getNodeId(connector.getNodeConnectorRef().getValue()))) { return; }
+
         LOG.debug("Node connector removed notification received, {}", connector.getNodeConnectorRef().getValue());
         manager.enqueue(new InventoryOperation() {
             @Override
@@ -121,6 +117,8 @@ class NodeChangeCommiter implements OpendaylightInventoryListener {
             return;
         }
 
+        if(!manager.deviceDataDeleteAllowed(getNodeId(node.getNodeRef().getValue()))) { return; }
+
         LOG.debug("Node removed notification received, {}", node.getNodeRef().getValue());
         manager.enqueue(new InventoryOperation() {
             @Override
@@ -197,4 +195,8 @@ class NodeChangeCommiter implements OpendaylightInventoryListener {
             }
         });
     }
+
+    private NodeId getNodeId(InstanceIdentifier<?> iid) {
+        return iid.firstKeyOf(Node.class).getId();
+    }
 }