Merge "Cleaned up OvsdbBridgeUpdateCommand"
[ovsdb.git] / southbound / southbound-impl / src / main / java / org / opendaylight / ovsdb / southbound / SouthboundProvider.java
index c6a55798f26d76cf6654a065f17dad855336fe3f..9512a6cc034215761115d8c2b611bbe0e49b3b8e 100644 (file)
@@ -15,6 +15,8 @@ import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderCo
 import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
 import org.opendaylight.ovsdb.lib.OvsdbConnection;
 import org.opendaylight.ovsdb.lib.impl.OvsdbConnectionService;
+import org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvoker;
+import org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvokerImpl;
 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.NetworkTopologyBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
@@ -30,18 +32,31 @@ import com.google.common.util.concurrent.CheckedFuture;
 public class SouthboundProvider implements BindingAwareProvider, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(SouthboundProvider.class);
-    private DataBroker db;
-    private OvsdbConnectionManager cm;
-    private OvsdbNodeDataChangeListener ovsdbNodeListener;
 
+    public static DataBroker getDb() {
+        return db;
+    }
+
+    //private DataBroker db;
+    private static DataBroker db;
+    private OvsdbConnectionManager cm;
+//    private OvsdbNodeDataChangeListener ovsdbNodeListener;
+//    private OvsdbManagedNodeDataChangeListener ovsdbManagedNodeListener;
+//    private OvsdbTerminationPointDataChangeListener ovsdbTerminationPointListener;
+    private TransactionInvoker txInvoker;
+    private OvsdbDataChangeListener ovsdbDataChangeListener;
 
 
     @Override
     public void onSessionInitiated(ProviderContext session) {
         LOG.info("SouthboundProvider Session Initiated");
         db = session.getSALService(DataBroker.class);
-        cm = new OvsdbConnectionManager(db);
-        ovsdbNodeListener = new OvsdbNodeDataChangeListener(db, cm);
+        this.txInvoker = new TransactionInvokerImpl(db);
+        cm = new OvsdbConnectionManager(db,txInvoker);
+        ovsdbDataChangeListener = new OvsdbDataChangeListener(db,cm);
+//        ovsdbNodeListener = new OvsdbNodeDataChangeListener(db, cm);
+//        ovsdbManagedNodeListener = new OvsdbManagedNodeDataChangeListener(db, cm);
+//        ovsdbTerminationPointListener = new OvsdbTerminationPointDataChangeListener(db, cm);
         initializeOvsdbTopology(LogicalDatastoreType.OPERATIONAL);
         initializeOvsdbTopology(LogicalDatastoreType.CONFIGURATION);
         OvsdbConnection ovsdbConnection = new OvsdbConnectionService();
@@ -53,7 +68,10 @@ public class SouthboundProvider implements BindingAwareProvider, AutoCloseable {
     public void close() throws Exception {
         LOG.info("SouthboundProvider Closed");
         cm.close();
-        ovsdbNodeListener.close();
+        ovsdbDataChangeListener.close();
+//        ovsdbNodeListener.close();
+//        ovsdbManagedNodeListener.close();
+//        ovsdbTerminationPointListener.close();
     }
 
     private void initializeOvsdbTopology(LogicalDatastoreType type) {
@@ -64,7 +82,7 @@ public class SouthboundProvider implements BindingAwareProvider, AutoCloseable {
         initializeTopology(transaction,type);
         CheckedFuture<Optional<Topology>, ReadFailedException> ovsdbTp = transaction.read(type, path);
         try {
-            if(!ovsdbTp.get().isPresent()) {
+            if (!ovsdbTp.get().isPresent()) {
                 TopologyBuilder tpb = new TopologyBuilder();
                 tpb.setTopologyId(SouthboundConstants.OVSDB_TOPOLOGY_ID);
                 transaction.put(type, path, tpb.build());
@@ -77,17 +95,16 @@ public class SouthboundProvider implements BindingAwareProvider, AutoCloseable {
         }
     }
 
-    private void initializeTopology(ReadWriteTransaction t, LogicalDatastoreType type) {
-        InstanceIdentifier<NetworkTopology> path = InstanceIdentifier
-                .create(NetworkTopology.class);
-       CheckedFuture<Optional<NetworkTopology>, ReadFailedException> tp = t.read(type,path);
-       try {
-           if(!tp.get().isPresent()) {
-               NetworkTopologyBuilder ntb = new NetworkTopologyBuilder();
-               t.put(type,path,ntb.build());
-           }
-       } catch (Exception e) {
-           LOG.error("Error initializing ovsdb topology {}",e);
-       }
+    private void initializeTopology(ReadWriteTransaction transaction, LogicalDatastoreType type) {
+        InstanceIdentifier<NetworkTopology> path = InstanceIdentifier.create(NetworkTopology.class);
+        CheckedFuture<Optional<NetworkTopology>, ReadFailedException> topology = transaction.read(type,path);
+        try {
+            if (!topology.get().isPresent()) {
+                NetworkTopologyBuilder ntb = new NetworkTopologyBuilder();
+                transaction.put(type,path,ntb.build());
+            }
+        } catch (Exception e) {
+            LOG.error("Error initializing ovsdb topology {}",e);
+        }
     }
 }