Single Graph handle across all controller
diff --git a/src/main/java/net/onrc/onos/util/GraphDBConnection.java b/src/main/java/net/onrc/onos/util/GraphDBConnection.java
index 84a0501..4d23b0d 100644
--- a/src/main/java/net/onrc/onos/util/GraphDBConnection.java
+++ b/src/main/java/net/onrc/onos/util/GraphDBConnection.java
@@ -87,6 +87,7 @@
FramedGraph<TitanGraph> fg = new FramedGraph<TitanGraph>(graph);
return fg;
} else {
+ log.error("new FramedGraph failed");
return null;
}
}
@@ -118,16 +119,16 @@
public void endTx(Transaction tx) {
try {
- switch (tx) {
+ switch (tx) {
case COMMIT:
graph.stopTransaction(Conclusion.SUCCESS);
case ROLLBACK:
graph.stopTransaction(Conclusion.FAILURE);
}
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ log.error("{}",e.toString());
+ }
}
public void endTx(TransactionHandle tr, Transaction tx) {
@@ -167,6 +168,7 @@
}
public void close() {
+ endTx(Transaction.COMMIT);
// graph.shutdown();
}
diff --git a/src/main/java/net/onrc/onos/util/GraphDBUtils.java b/src/main/java/net/onrc/onos/util/GraphDBUtils.java
index eea57fd..3409f59 100644
--- a/src/main/java/net/onrc/onos/util/GraphDBUtils.java
+++ b/src/main/java/net/onrc/onos/util/GraphDBUtils.java
@@ -38,7 +38,7 @@
// TODO Auto-generated method stub
FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- return fg.getVertices("dpid",dpid).iterator().hasNext() ?
+ return (fg != null && fg.getVertices("dpid",dpid).iterator().hasNext()) ?
fg.getVertices("dpid",dpid,ISwitchObject.class).iterator().next() : null;
}
@@ -47,7 +47,7 @@
public IDeviceObject searchDevice(GraphDBConnection conn, String macAddr) {
// TODO Auto-generated method stub
FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- return fg.getVertices("dl_address",macAddr).iterator().hasNext() ? fg.getVertices("dl_address",macAddr,
+ return (fg != null && fg.getVertices("dl_address",macAddr).iterator().hasNext()) ? fg.getVertices("dl_address",macAddr,
IDeviceObject.class).iterator().next() : null;
}
@@ -58,6 +58,9 @@
// if (sw != null) {
//
// IPortObject port = null;
+//
+ // Requires Frames 2.3.0
+//
// try {
// port = sw.getPort(number);
// } catch (Exception e) {
@@ -67,12 +70,15 @@
//
// return port;
// }
-// return null;
- GremlinPipeline<Vertex, IPortObject> pipe = new GremlinPipeline<Vertex, IPortObject>();
- pipe.start(sw.asVertex());
- pipe.out("on").has("number", number);
- FramedVertexIterable<IPortObject> r = new FramedVertexIterable<IPortObject>(conn.getFramedGraph(), (Iterable) pipe, IPortObject.class);
- return r.iterator().hasNext() ? r.iterator().next() : null;
+
+ if (sw != null) {
+ GremlinPipeline<Vertex, IPortObject> pipe = new GremlinPipeline<Vertex, IPortObject>();
+ pipe.start(sw.asVertex());
+ pipe.out("on").has("number", number);
+ FramedVertexIterable<IPortObject> r = new FramedVertexIterable<IPortObject>(conn.getFramedGraph(), (Iterable) pipe, IPortObject.class);
+ return r != null && r.iterator().hasNext() ? r.iterator().next() : null;
+ }
+ return null;
}
@Override
@@ -93,19 +99,19 @@
public void removePort(GraphDBConnection conn, IPortObject port) {
FramedGraph<TitanGraph> fg = conn.getFramedGraph();
// EventGraph<TitanGraph> eg = conn.getEventGraph();
- fg.removeVertex(port.asVertex());
+ if (fg != null) fg.removeVertex(port.asVertex());
}
@Override
public void removeDevice(GraphDBConnection conn, IDeviceObject dev) {
FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- fg.removeVertex(dev.asVertex());
+ if (fg != null) fg.removeVertex(dev.asVertex());
}
@Override
public Iterable<IDeviceObject> getDevices(GraphDBConnection conn) {
FramedGraph<TitanGraph> fg = conn.getFramedGraph();
- return fg.getVertices("type","device",IDeviceObject.class);
+ return fg != null ? fg.getVertices("type","device",IDeviceObject.class) : null;
}
@Override