Modified DBOperation
diff --git a/src/main/java/net/onrc/onos/graph/DBOperation.java b/src/main/java/net/onrc/onos/graph/DBOperation.java
index b58198a..d965ad5 100644
--- a/src/main/java/net/onrc/onos/graph/DBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/DBOperation.java
@@ -20,6 +20,7 @@
import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IPortObject;
import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.ISwitchObject;
import net.onrc.onos.ofcontroller.core.ISwitchStorage;
+import net.onrc.onos.ofcontroller.util.FlowEntryId;
import net.onrc.onos.ofcontroller.util.FlowId;
/**
@@ -252,17 +253,19 @@
* Search and get a flow path object with specified flow ID.
* @param flowId flow ID to search
*/
- protected IFlowPath searchFlowPath(final FlowId flowId, final FramedGraph fg) {
- return fg.getVertices("flow_id", flowId.toString()).iterator().hasNext()
- ? (IFlowPath) fg.getVertices("flow_id", flowId.toString(),
+ @Override
+ public IFlowPath searchFlowPath(final FlowId flowId) {
+ return conn.getFramedGraph().getVertices("flow_id", flowId.toString()).iterator().hasNext()
+ ? (IFlowPath) conn.getFramedGraph().getVertices("flow_id", flowId.toString(),
IFlowPath.class).iterator().next() : null;
}
/**
* Get all flow path objects.
*/
- protected Iterable<IFlowPath> getAllFlowPaths(final FramedGraph fg) {
- Iterable<IFlowPath> flowPaths = fg.getVertices("type", "flow", IFlowPath.class);
+ @Override
+ public Iterable<IFlowPath> getAllFlowPaths() {
+ Iterable<IFlowPath> flowPaths = conn.getFramedGraph().getVertices("type", "flow", IFlowPath.class);
List<IFlowPath> nonNullFlows = new ArrayList<IFlowPath>();
@@ -275,6 +278,43 @@
}
/**
+ * Remove the specified flow path.
+ * @param flowPath flow path object to remove
+ */
+ @Override
+ public void removeFlowPath(IFlowPath flowPath) {
+ conn.getFramedGraph().removeVertex(flowPath.asVertex());
+ }
+
+ /**
+ * Search and get a flow entry object with flow entry ID.
+ * @param flowEntryId flow entry ID to search
+ */
+ @Override
+ public IFlowEntry searchFlowEntry(FlowEntryId flowEntryId) {
+ return conn.getFramedGraph().getVertices("flow_entry_id", flowEntryId.toString()).iterator().hasNext()
+ ? (IFlowEntry)conn.getFramedGraph().getVertices("flow_entry_id", flowEntryId.toString(),
+ IFlowEntry.class).iterator().next() : null;
+ }
+
+ /**
+ * Get all flow entry objects.
+ */
+ @Override
+ public Iterable<IFlowEntry> getAllFlowEntries() {
+ return conn.getFramedGraph().getVertices("type", "flow_entry", IFlowEntry.class);
+ }
+
+ /**
+ * Remove the specified flow entry.
+ * @param flowEntry flow entry object to remove
+ */
+ @Override
+ public void removeFlowEntry(IFlowEntry flowEntry) {
+ conn.getFramedGraph().removeVertex(flowEntry.asVertex());
+ }
+
+ /**
* Create and return a flow entry object.
*/
@Override
@@ -328,9 +368,26 @@
conn.getFramedGraph().removeVertex(ipv4Address.asVertex());
}
-
+ /**
+ * Get the instance of GraphDBConnection assigned to this class.
+ */
@Override
public IDBConnection getDBConnection() {
return conn;
}
+
+ @Override
+ public void commit() {
+ conn.commit();
+ }
+
+ @Override
+ public void rollback() {
+ conn.rollback();
+ }
+
+ @Override
+ public void close() {
+ conn.close();
+ }
}
diff --git a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
index 657c521..1487be7 100644
--- a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
@@ -24,59 +24,4 @@
public RamCloudDBOperation() {
}
-
- @Override
- public IFlowPath searchFlowPath(FlowId flowId) {
- FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
- return searchFlowPath(flowId, fg);
- }
-
- @Override
- public Iterable<IFlowPath> getAllFlowPaths() {
- FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
- return getAllFlowPaths(fg);
- }
-
- @Override
- public void removeFlowPath(IFlowPath flowPath) {
- FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
- fg.removeVertex(flowPath.asVertex());
- }
-
- @Override
- public IFlowEntry searchFlowEntry(FlowEntryId flowEntryId) {
- FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-
- return fg.getVertices("flow_entry_id", flowEntryId.toString()).iterator().hasNext()
- ? fg.getVertices("flow_entry_id", flowEntryId.toString(),
- IFlowEntry.class).iterator().next() : null;
- }
-
- @Override
- public Iterable<IFlowEntry> getAllFlowEntries() {
- FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-
- return fg.getVertices("type", "flow_entry", IFlowEntry.class);
- }
-
- @Override
- public void removeFlowEntry(IFlowEntry flowEntry) {
- FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
- fg.removeVertex(flowEntry.asVertex());
- }
-
- @Override
- public void commit() {
- conn.commit();
- }
-
- @Override
- public void rollback() {
- conn.rollback();
- }
-
- @Override
- public void close() {
- conn.close();
- }
}
diff --git a/src/main/java/net/onrc/onos/graph/TitanDBOperation.java b/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
index 3a6f13d..1b211d6 100644
--- a/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
@@ -22,59 +22,5 @@
* @author nickkaranatsios
*/
public class TitanDBOperation extends DBOperation {
-
- @Override
- public IFlowPath searchFlowPath(FlowId flowId) {
- FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- return searchFlowPath(flowId, fg);
- }
- @Override
- public Iterable<IFlowPath> getAllFlowPaths() {
- FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- return getAllFlowPaths(fg);
- }
-
- @Override
- public void removeFlowPath(IFlowPath flowPath) {
- FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- fg.removeVertex(flowPath.asVertex());
- }
-
- @Override
- public IFlowEntry searchFlowEntry(FlowEntryId flowEntryId) {
- FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-
- return fg.getVertices("flow_entry_id", flowEntryId.toString()).iterator().hasNext()
- ? fg.getVertices("flow_entry_id", flowEntryId.toString(),
- IFlowEntry.class).iterator().next() : null;
- }
-
- @Override
- public Iterable<IFlowEntry> getAllFlowEntries() {
- FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-
- return fg.getVertices("type", "flow_entry", IFlowEntry.class);
- }
-
- @Override
- public void removeFlowEntry(IFlowEntry flowEntry) {
- FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- fg.removeVertex(flowEntry.asVertex());
- }
-
- @Override
- public void commit() {
- conn.commit();
- }
-
- @Override
- public void rollback() {
- conn.rollback();
- }
-
- @Override
- public void close() {
- conn.close();
- }
}
\ No newline at end of file
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
index 4e67bf5..7b3904b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
@@ -41,12 +41,15 @@
static boolean addFlow(FlowManager flowManager,
DBOperation dbHandler,
FlowPath flowPath, FlowId flowId) {
+ System.out.println("addFlow");
IFlowPath flowObj = null;
boolean found = false;
try {
if ((flowObj = dbHandler.searchFlowPath(flowPath.flowId())) != null) {
+ System.out.println("found = true");
found = true;
} else {
+ System.out.println("found = false");
flowObj = dbHandler.newFlowPath();
}
} catch (Exception e) {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
index 2a55ae1..20fe5d2 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
@@ -694,6 +694,7 @@
// NOTE: The Flow Path might not be found if the Flow was
// just removed by some other controller instance.
//
+ System.out.println("writeModifiedFlowEntriesToDatabase");
IFlowPath flowObj =
dbHandlerInner.searchFlowPath(flowEntry.flowId());
if (flowObj == null) {