Merge "BUG:5888 - Changing FRM from clustered DCN to clustered DTCN"
[openflowplugin.git] / applications / forwardingrules-manager / src / main / java / org / opendaylight / openflowplugin / applications / frm / ForwardingRulesManager.java
index f6255d9b941692e3d62704474a6f5503b8eedd32..d6916d18e004c9fb080a6fd43f7e994b843a5abc 100644 (file)
@@ -8,10 +8,8 @@
 
 package org.opendaylight.openflowplugin.applications.frm;
 
-import org.opendaylight.openflowplugin.applications.frm.impl.ForwardingRulesManagerConfig;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;
-
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
+import org.opendaylight.openflowplugin.applications.frm.impl.FlowNodeConnectorInventoryTranslatorImpl;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.meters.Meter;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
@@ -19,7 +17,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalF
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.SalGroupService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.SalMeterService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.SalTableService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**
@@ -48,6 +48,15 @@ public interface ForwardingRulesManager extends AutoCloseable {
      */
     public boolean isNodeActive(InstanceIdentifier<FlowCapableNode> ident);
 
+    /**
+     * Method returns information :
+     * "is Node with send InstanceIdentifier present in operational data store"?
+     *
+     * @param ident - the key of the node
+     * @return boolean - true if device is present in operational data store
+     */
+    public boolean checkNodeInOperationalDataStore(InstanceIdentifier<FlowCapableNode> ident);
+
     /**
      * Method add new {@link FlowCapableNode} to active Node Holder.
      * ActiveNodeHolder prevent unnecessary Operational/DS read for identify
@@ -145,5 +154,18 @@ public interface ForwardingRulesManager extends AutoCloseable {
      */
     public ForwardingRulesManagerConfig getConfiguration();
 
+    /**
+     * Method checks if *this* instance of openflowplugin is owner of
+     * the given openflow node.
+     * @return True if owner, else false
+     */
+    public boolean isNodeOwner(InstanceIdentifier<FlowCapableNode> ident);
+
+    /**
+     * Content definition method and prevent code duplicity
+     * @return FlowNodeConnectorInventoryTranslatorImpl
+     */
+    public FlowNodeConnectorInventoryTranslatorImpl getFlowNodeConnectorInventoryTranslatorImpl();
+
 }