migrate to Titan 0.3.0
diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
index 1a9a9c5..0d49c03 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
@@ -2215,9 +2215,11 @@
this.roleChanger = new RoleChanger();
String conf = configParams.get("dbconf");
- if (conf == null) {
+ if (conf == null || conf.isEmpty()) {
conf = "/tmp/cassandra.titan";
+ log.debug("did not get DB config setting using default {}", conf);
}
+ log.debug("setting DB config {}", conf);
this.swStore = new SwitchStorageImpl();
this.swStore.init(conf);
diff --git a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
index a068586..17ab274 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
@@ -6,6 +6,7 @@
import net.floodlightcontroller.core.INetMapTopologyObjects.ISwitchObject;
import net.floodlightcontroller.core.ISwitchStorage;
import net.onrc.onos.util.GraphDBConnection;
+import net.onrc.onos.util.GraphDBConnection.GenerateEvent;
import net.onrc.onos.util.GraphDBConnection.Transaction;
import org.openflow.protocol.OFPhysicalPort;
@@ -15,7 +16,7 @@
import org.slf4j.LoggerFactory;
public class SwitchStorageImpl implements ISwitchStorage {
- public GraphDBConnection conn;
+ protected GraphDBConnection conn;
protected static Logger log = LoggerFactory.getLogger(SwitchStorageImpl.class);
@Override
@@ -177,11 +178,12 @@
log.info("SwitchStorage:deletePort dpid:{} port:{} found and deleted", dpid, port);
sw.removePort(p);
conn.utils().removePort(conn, p);
- conn.endTx(Transaction.COMMIT);
+ conn.endTx(Transaction.COMMIT,GenerateEvent.TRUE);
}
}
} catch (Exception e) {
// TODO: handle exceptions
+ e.printStackTrace();
conn.endTx(Transaction.ROLLBACK);
log.info("SwitchStorage:deletePort dpid:{} port:{} failed", dpid, port);
}
diff --git a/src/main/java/net/floodlightcontroller/core/internal/TopoSwitchServiceImpl.java b/src/main/java/net/floodlightcontroller/core/internal/TopoSwitchServiceImpl.java
index b3c31ec..9f63fd7 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/TopoSwitchServiceImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/TopoSwitchServiceImpl.java
@@ -28,21 +28,21 @@
@Override
public Iterable<ISwitchObject> getActiveSwitches() {
// TODO Auto-generated method stub
- conn = GraphDBConnection.getInstance("");
+ conn = GraphDBConnection.getInstance("/tmp/cassandra.titan");
return conn.utils().getActiveSwitches(conn);
}
@Override
public Iterable<ISwitchObject> getAllSwitches() {
// TODO Auto-generated method stub
- conn = GraphDBConnection.getInstance("");
+ conn = GraphDBConnection.getInstance("/tmp/cassandra.titan");
return conn.utils().getAllSwitches(conn);
}
@Override
public Iterable<ISwitchObject> getInactiveSwitches() {
// TODO Auto-generated method stub
- conn = GraphDBConnection.getInstance("");
+ conn = GraphDBConnection.getInstance("/tmp/cassandra.titan");
return conn.utils().getInactiveSwitches(conn);
}
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
index 176a1a0..33ae22a 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
@@ -5,12 +5,16 @@
import java.util.List;
import java.util.Set;
+import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
import net.floodlightcontroller.core.INetMapTopologyObjects.ISwitchObject;
import net.floodlightcontroller.core.INetMapTopologyService.ITopoSwitchService;
import net.floodlightcontroller.core.internal.TopoSwitchServiceImpl;
import net.floodlightcontroller.linkdiscovery.ILinkStorage;
import net.floodlightcontroller.linkdiscovery.LinkInfo;
import net.floodlightcontroller.routing.Link;
+import net.onrc.onos.util.GraphDBConnection;
+import net.onrc.onos.util.GraphDBConnection.GenerateEvent;
+import net.onrc.onos.util.GraphDBConnection.Transaction;
import org.openflow.util.HexString;
import org.slf4j.Logger;
@@ -23,6 +27,8 @@
import com.tinkerpop.blueprints.TransactionalGraph.Conclusion;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.Edge;
+import com.tinkerpop.blueprints.util.wrappers.event.EventGraph;
+import com.tinkerpop.blueprints.util.wrappers.event.EventTransactionalGraph;
import com.tinkerpop.gremlin.java.GremlinPipeline;
import com.tinkerpop.pipes.PipeFunction;
import com.tinkerpop.pipes.transform.PathPipe;
@@ -128,7 +134,8 @@
@Override
public void deleteLink(Link lt) {
- Vertex vportSrc = null, vportDst = null;
+ GraphDBConnection conn = GraphDBConnection.getInstance("");
+ IPortObject vportSrc = null, vportDst = null;
int count = 0;
log.debug("deleteLink(): {}", lt);
@@ -137,29 +144,33 @@
// get source port vertex
String dpid = HexString.toHexString(lt.getSrc());
short port = lt.getSrcPort();
- vportSrc = getPortVertex(dpid, port);
+ vportSrc = conn.utils().searchPort(conn, dpid, port);
// get dst port vertex
dpid = HexString.toHexString(lt.getDst());
port = lt.getDstPort();
- vportDst = getPortVertex(dpid, port);
+ vportDst = conn.utils().searchPort(conn, dpid, port);
+ // FIXME: This needs to remove all edges
+ // FIXME: Events will only be generated on singleton graph object (GraphDBConnection)
if (vportSrc != null && vportDst != null) {
- for (Edge e : vportSrc.getEdges(Direction.OUT)) {
+
+ /* for (Edge e : vportSrc.asVertex().getEdges(Direction.OUT)) {
log.debug("deleteLink(): {} in {} out {}",
new Object[]{e.getLabel(), e.getVertex(Direction.IN), e.getVertex(Direction.OUT)});
if (e.getLabel().equals("link") && e.getVertex(Direction.IN).equals(vportDst)) {
graph.removeEdge(e);
count++;
}
- }
- graph.stopTransaction(Conclusion.SUCCESS);
- log.debug("deleteLink(): deleted {} edges {} src {} dst {}", new Object[]{
- count, lt, vportSrc, vportDst});
+ }*/
+ vportSrc.removeLink(vportDst);
+ conn.endTx(Transaction.COMMIT, GenerateEvent.TRUE);
+ log.debug("deleteLink(): deleted edges src {} dst {}", new Object[]{
+ lt, vportSrc, vportDst});
} else {
log.error("deleteLink(): failed invalid vertices {} src {} dst {}", new Object[]{lt, vportSrc, vportDst});
- graph.stopTransaction(Conclusion.FAILURE);
+ conn.endTx(Transaction.ROLLBACK);
}
} catch (TitanException e) {