Rest API and Services for TopoSwitch
diff --git a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
index be33659..dbb985e 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
@@ -19,6 +19,7 @@
import com.tinkerpop.blueprints.TransactionalGraph.Conclusion;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Vertex;
+import com.tinkerpop.frames.FramedGraph;
import net.floodlightcontroller.core.ISwitchStorage;
public class SwitchStorageImpl implements ISwitchStorage {
@@ -198,15 +199,19 @@
}
@Override
- public List<String> getActiveSwitches() {
+ public Iterable<ISwitchObject> getActiveSwitches() {
// TODO Add unit test
- List<String> switches = new ArrayList<String>();
- for (Vertex V : graph.getVertices("type","switch")) {
- if (V.getProperty("state").equals(SwitchState.ACTIVE.toString())) {
- switches.add((String) V.getProperty("dpid"));
- }
- }
- return switches;
+ FramedGraph<TitanGraph> fg = new FramedGraph<TitanGraph>(graph);
+ Iterable<ISwitchObject> switches = fg.getVertices("type","switch",ISwitchObject.class);
+ List<ISwitchObject> activeSwitches = new ArrayList<ISwitchObject>();
+
+ for (ISwitchObject sw: switches) {
+ if(sw.getState().equals(SwitchState.ACTIVE.toString())) {
+ activeSwitches.add(sw);
+ }
+ }
+
+ return activeSwitches;
}
@Override
@@ -227,25 +232,32 @@
}
@Override
- public List<String> getAllSwitches() {
+ public Iterable<ISwitchObject> getAllSwitches() {
// TODO Auto-generated method stub
- List<String> switches = new ArrayList<String>();
- for (Vertex V : graph.getVertices("type","switch")) {
- switches.add((String) V.getProperty("dpid"));
- }
+ FramedGraph<TitanGraph> fg = new FramedGraph<TitanGraph>(graph);
+ Iterable<ISwitchObject> switches = fg.getVertices("type","switch",ISwitchObject.class);
+
+ for (ISwitchObject sw: switches) {
+ log.debug("switch: {}", sw.getDPID());
+ }
+
return switches;
}
@Override
- public List<String> getInactiveSwitches() {
+ public Iterable<ISwitchObject> getInactiveSwitches() {
// TODO Auto-generated method stub
- List<String> switches = new ArrayList<String>();
- for (Vertex V : graph.getVertices("type","switch")) {
- if (V.getProperty("state").equals(SwitchState.INACTIVE.toString())) {
- switches.add((String) V.getProperty("dpid"));
- }
- }
- return switches;
+ FramedGraph<TitanGraph> fg = new FramedGraph<TitanGraph>(graph);
+ Iterable<ISwitchObject> switches = fg.getVertices("type","switch",ISwitchObject.class);
+
+ List<ISwitchObject> inActiveSwitches = new ArrayList<ISwitchObject>();
+
+ for (ISwitchObject sw: switches) {
+ if(sw.getState().equals(SwitchState.INACTIVE.toString())) {
+ inActiveSwitches.add(sw);
+ }
+ }
+ return inActiveSwitches;
}