Devices REST API
diff --git a/src/main/java/net/floodlightcontroller/core/INetMapTopologyObjects.java b/src/main/java/net/floodlightcontroller/core/INetMapTopologyObjects.java
index 1cf6f7b..4af1deb 100644
--- a/src/main/java/net/floodlightcontroller/core/INetMapTopologyObjects.java
+++ b/src/main/java/net/floodlightcontroller/core/INetMapTopologyObjects.java
@@ -74,7 +74,8 @@
@Incidence(label="on",direction = Direction.IN)
public ISwitchObject getSwitch();
- @JsonIgnore
+
+ @JsonProperty("devices")
@Adjacency(label="host")
public Iterable<IDeviceObject> getDevices();
@@ -119,8 +120,16 @@
@GremlinGroovy("_().in('host').in('on')")
public Iterable<ISwitchObject> getSwitch();
+/* @JsonProperty("dpid")
+ @GremlinGroovy("_().in('host').in('on').next().getProperty('dpid')")
+ public Iterable<String> getSwitchDPID();
+
+ @JsonProperty("number")
+ @GremlinGroovy("_().in('host').transform{it.number}")
+ public Iterable<Short> getPortNumber();
+
@JsonProperty("AttachmentPoint")
@GremlinGroovy("_().in('host').in('on').path(){it.number}{it.dpid}")
- public List<SwitchPort> getAttachmentPoints();
+ public Iterable<SwitchPort> getAttachmentPoints();*/
}
}
diff --git a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
index a3c5c01..c110651 100644
--- a/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
+++ b/src/main/java/net/floodlightcontroller/core/web/CoreWebRoutable.java
@@ -19,6 +19,7 @@
import net.floodlightcontroller.core.module.ModuleLoaderResource;
import net.floodlightcontroller.linkdiscovery.web.TopoLinksResource;
+import net.floodlightcontroller.devicemanager.web.TopoDevicesResource;
import net.floodlightcontroller.restserver.RestletRoutable;
import org.restlet.Context;
@@ -63,6 +64,7 @@
router.attach("/system/uptime/json", SystemUptimeResource.class);
router.attach("/topology/switches/{filter}/json", TopoSwitchesResource.class);
router.attach("/topology/links/json", TopoLinksResource.class);
+ router.attach("/topology/devices/json", TopoDevicesResource.class);
return router;
}
}
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceStorageImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceStorageImpl.java
index cfbbb41..64c12dc 100644
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceStorageImpl.java
@@ -9,7 +9,6 @@
import com.thinkaurelius.titan.core.TitanException;
import net.floodlightcontroller.core.INetMapTopologyObjects.IDeviceObject;
import net.floodlightcontroller.core.INetMapTopologyObjects.IPortObject;
-import net.floodlightcontroller.core.INetMapTopologyService.ITopoSwitchService;
import net.floodlightcontroller.core.internal.SwitchStorageImpl;
import net.floodlightcontroller.devicemanager.IDevice;
import net.floodlightcontroller.devicemanager.IDeviceStorage;
@@ -19,10 +18,8 @@
public class DeviceStorageImpl implements IDeviceStorage {
-// public TitanGraph graph;
public GraphDBConnection conn;
protected static Logger log = LoggerFactory.getLogger(SwitchStorageImpl.class);
- public ITopoSwitchService svc;
@Override
public void init(String conf) {
@@ -91,8 +88,7 @@
@Override
public IDeviceObject getDeviceByMac(String mac) {
-
- return null;
+ return conn.utils().searchDevice(conn, mac);
}
@Override
diff --git a/src/main/java/net/floodlightcontroller/devicemanager/web/TopoDevicesResource.java b/src/main/java/net/floodlightcontroller/devicemanager/web/TopoDevicesResource.java
new file mode 100644
index 0000000..db7059f
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/devicemanager/web/TopoDevicesResource.java
@@ -0,0 +1,22 @@
+package net.floodlightcontroller.devicemanager.web;
+
+import java.util.Iterator;
+
+import net.floodlightcontroller.core.INetMapTopologyObjects.IDeviceObject;
+import net.onrc.onos.util.GraphDBConnection;
+
+import org.restlet.resource.Get;
+import org.restlet.resource.ServerResource;
+
+public class TopoDevicesResource extends ServerResource {
+
+ @Get("json")
+ public Iterator<IDeviceObject> retrieve() {
+
+ GraphDBConnection conn = GraphDBConnection.getInstance("");
+
+ return conn.utils().getDevices(conn).iterator();
+
+ }
+
+}