Add RamCloudDB method
diff --git a/src/main/java/net/onrc/onos/graph/RamCloudDBConnection.java b/src/main/java/net/onrc/onos/graph/RamCloudDBConnection.java
index a4fc6de..7841d3e 100644
--- a/src/main/java/net/onrc/onos/graph/RamCloudDBConnection.java
+++ b/src/main/java/net/onrc/onos/graph/RamCloudDBConnection.java
@@ -10,6 +10,8 @@
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
*
@@ -17,6 +19,7 @@
*/
public class RamCloudDBConnection extends DBConnection {
private RamCloudGraph graph;
+ private static Logger log = LoggerFactory.getLogger(RamCloudDBConnection.class);
public RamCloudDBConnection(final String dbConfigFile) {
System.out.println("dbconfigfile is + "+ dbConfigFile);
@@ -27,32 +30,46 @@
@Override
public FramedGraph getFramedGraph() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ if (isValid()) {
+ FramedGraph<RamCloudGraph> fg = new FramedGraph<RamCloudGraph>(graph);
+ return fg;
+ } else {
+ log.error("new FramedGraph failed");
+ return null;
+ }
}
@Override
public void addEventListener(LocalGraphChangedListener listener) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ //TO-DO
}
@Override
public Boolean isValid() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ return (graph != null);
}
@Override
public void commit() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ try {
+ graph.commit();
+ } catch (Exception e) {
+ log.error("{}", e.toString());
+ }
}
@Override
public void rollback() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ try {
+ graph.rollback();
+ } catch (Exception e) {
+ log.error("{}", e.toString());
+ }
}
@Override
public void close() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ commit();
}
private static final Configuration getConfiguration(final File dirOrFile) {
diff --git a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
index 69248a2..80c3109 100644
--- a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
@@ -4,15 +4,14 @@
*/
package net.onrc.onos.graph;
-import com.thinkaurelius.titan.core.TitanGraph;
import com.tinkerpop.blueprints.impls.ramcloud.RamCloudGraph;
import com.tinkerpop.frames.FramedGraph;
-import java.io.File;
import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects;
import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IDeviceObject;
import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IFlowEntry;
import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IFlowPath;
import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IPortObject;
+import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.ISwitchObject;
import net.onrc.onos.ofcontroller.util.FlowEntryId;
import net.onrc.onos.ofcontroller.util.FlowId;
import org.apache.commons.configuration.Configuration;
@@ -24,49 +23,29 @@
public class RamCloudDBOperation extends DBOperation {
public RamCloudDBOperation() {
- //Configuration configuration= getConfiguration(new File(dbConfigFile));
- //final String coordinatorURL = configuration.getProperty("connect.coordinator");
}
@Override
- public INetMapTopologyObjects.ISwitchObject searchSwitch(String dpid) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ public ISwitchObject searchSwitch(String dpid) {
+ final FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
+
+ return searchSwitch(dpid, fg);
}
@Override
- public INetMapTopologyObjects.ISwitchObject searchActiveSwitch(String dpid) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
- @Override
- public Iterable<INetMapTopologyObjects.ISwitchObject> getActiveSwitches() {
+ public Iterable<ISwitchObject> getActiveSwitches() {
final FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
return getActiveSwitches(fg);
}
@Override
- public Iterable<INetMapTopologyObjects.ISwitchObject> getAllSwitches() {
+ public Iterable<ISwitchObject> getAllSwitches() {
return getAllSwitches(conn.getFramedGraph());
}
@Override
- public Iterable<INetMapTopologyObjects.ISwitchObject> getInactiveSwitches() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
- @Override
- public Iterable<INetMapTopologyObjects.IFlowEntry> getAllSwitchNotUpdatedFlowEntries() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
- @Override
- public void removeSwitch(INetMapTopologyObjects.ISwitchObject sw) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- }
-
- @Override
- public INetMapTopologyObjects.IPortObject newPort(Short portNumber) {
+ public IPortObject newPort(Short portNumber) {
final FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
IPortObject obj = fg.addVertex(null, IPortObject.class);
if (obj != null) {
@@ -77,7 +56,7 @@
}
@Override
- public INetMapTopologyObjects.IPortObject newPort(String dpid, Short portNum) {
+ public IPortObject newPort(String dpid, Short portNum) {
return super.newPort(dpid, portNum);
}
@@ -95,7 +74,6 @@
}
}
-
@Override
public IDeviceObject searchDevice(String macAddr) {
FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
@@ -118,7 +96,7 @@
@Override
- public INetMapTopologyObjects.IFlowPath searchFlowPath(FlowId flowId) {
+ public IFlowPath searchFlowPath(FlowId flowId) {
FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
return searchFlowPath(flowId, fg);
}
@@ -130,7 +108,7 @@
}
@Override
- public void removeFlowPath(INetMapTopologyObjects.IFlowPath flowPath) {
+ public void removeFlowPath(IFlowPath flowPath) {
FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
fg.removeVertex(flowPath.asVertex());
}
@@ -142,18 +120,25 @@
}
@Override
- public INetMapTopologyObjects.IFlowEntry searchFlowEntry(FlowEntryId flowEntryId) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ 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<INetMapTopologyObjects.IFlowEntry> getAllFlowEntries() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ public Iterable<IFlowEntry> getAllFlowEntries() {
+ FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
+
+ return fg.getVertices("type", "flow_entry", IFlowEntry.class);
}
@Override
- public void removeFlowEntry(INetMapTopologyObjects.IFlowEntry flowEntry) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ public void removeFlowEntry(IFlowEntry flowEntry) {
+ FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
+ fg.removeVertex(flowEntry.asVertex());
}
@Override
@@ -163,16 +148,16 @@
@Override
public void commit() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ conn.commit();
}
@Override
public void rollback() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ conn.rollback();
}
@Override
public void close() {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ conn.close();
}
}