update dashboard with graph
diff --git a/src/emuvim/api/rest/network.py b/src/emuvim/api/rest/network.py
index e766e62..65dddc4 100755
--- a/src/emuvim/api/rest/network.py
+++ b/src/emuvim/api/rest/network.py
@@ -121,3 +121,31 @@
except Exception as ex:
logging.exception("API error.")
return ex.message, 500, CORS_HEADER
+
+
+class DrawD3jsgraph(Resource):
+
+ global net
+
+ def get(self):
+ nodes = list()
+ nodes2 = list()
+ links = list()
+ # add all DCs
+ #for dc in net.dcs:
+ for node_name in net.DCNetwork_graph.nodes():
+ nodes2.append(node_name)
+ node_index = nodes2.index(node_name)
+ node_dict = {"name":node_name,"group":node_index}
+ nodes.append(node_dict)
+
+ # add links between other DCs
+ for node1_name in net.DCNetwork_graph.nodes():
+ node1_index = nodes2.index(node1_name)
+ for node2_name in net.DCNetwork_graph.neighbors(node1_name):
+ node2_index = nodes2.index(node2_name)
+ edge_dict = {"source": node1_index, "target": node2_index, "value": 10}
+ links.append(edge_dict)
+
+ json = {"nodes":nodes, "links":links}
+ return json, 200, CORS_HEADER
\ No newline at end of file
diff --git a/src/emuvim/api/rest/rest_api_endpoint.py b/src/emuvim/api/rest/rest_api_endpoint.py
index 71f87b9..f328b8e 100755
--- a/src/emuvim/api/rest/rest_api_endpoint.py
+++ b/src/emuvim/api/rest/rest_api_endpoint.py
@@ -38,7 +38,7 @@
# need to import total module to set its global variable net
import network
-from network import NetworkAction
+from network import NetworkAction, DrawD3jsgraph
import monitor
from monitor import MonitorInterfaceAction, MonitorFlowAction, MonitorLinkAction, MonitorSkewAction
@@ -85,7 +85,8 @@
# network related actions (setup chaining between VNFs)
self.api.add_resource(NetworkAction,
"/restapi/network")
-
+ self.api.add_resource(DrawD3jsgraph,
+ "/restapi/network/d3jsgraph")
# monitoring related actions
# export a network interface traffic rate counter
@@ -103,6 +104,7 @@
self.api.add_resource(MonitorSkewAction,
"/restapi/monitor/skewness")
+
logging.debug("Created API endpoint %s(%s:%d)" % (self.__class__.__name__, self.ip, self.port))