Rest API and Services for TopoSwitch
diff --git a/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java b/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
index 8060c4d..28e6a5d 100644
--- a/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
+++ b/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
@@ -3,15 +3,67 @@
import java.util.Collection;
import java.util.List;
+import org.codehaus.jackson.annotate.JsonAutoDetect;
+import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
+import org.codehaus.jackson.annotate.JsonIgnore;
+import org.codehaus.jackson.annotate.JsonProperty;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+import org.codehaus.jackson.map.ser.StdSerializers;
import org.openflow.protocol.OFPhysicalPort;
+import com.tinkerpop.blueprints.Direction;
+import com.tinkerpop.frames.Adjacency;
+import com.tinkerpop.frames.Incidence;
+import com.tinkerpop.frames.Property;
+
public interface ISwitchStorage extends INetMapStorage {
public enum SwitchState {
INACTIVE,
ACTIVE
}
+
+ public interface ISwitchObject {
+
+ @JsonProperty("dpid")
+ @Property("dpid")
+ public String getDPID();
+
+ @JsonProperty("state")
+ @Property("state")
+ public String getState();
+
+ @JsonIgnore
+ @Property("type")
+ public String getType();
+
+ @JsonProperty("ports")
+ @Adjacency(label="on")
+ public Iterable<IPortObject> getPorts();
+ }
+ public interface IPortObject {
+
+ @JsonProperty("state")
+ @Property("state")
+ public int getState();
+
+ @JsonIgnore
+ @Property("type")
+ public String getType();
+
+ @JsonProperty("number")
+ @Property("number")
+ public Short getNumber();
+
+ @JsonProperty("desc")
+ @Property("desc")
+ public String getDesc();
+
+ @JsonIgnore
+ @Incidence(label="on",direction = Direction.IN)
+ public ISwitchObject getSwitch();
+ }
/*
* Update the switch details
*/
@@ -49,9 +101,9 @@
*/
public void deletePort(String dpid, String portName);
- public List<String> getActiveSwitches();
- public List<String> getAllSwitches();
- public List<String> getInactiveSwitches();
+ public Iterable<ISwitchObject> getActiveSwitches();
+ public Iterable<ISwitchObject> getAllSwitches();
+ public Iterable<ISwitchObject> getInactiveSwitches();
/*
* Initialize