Merge pull request #199 from stevenvanrossem/master
[osm/vim-emu.git] / src / emuvim / api / rest / rest_api_endpoint.py
index 38e63cb..fc48a33 100755 (executable)
@@ -32,14 +32,14 @@ from flask_restful import Api
 
 # need to import total module to set its global variable dcs
 import compute
-from compute import dcs, ComputeList, Compute, DatacenterList, DatacenterStatus
+from compute import dcs, ComputeList, Compute, ComputeResources, DatacenterList, DatacenterStatus
 
 # need to import total module to set its global variable net
 import network
 from network import NetworkAction
 
 import monitor
-from monitor import MonitorInterfaceAction, MonitorFlowAction, MonitorLinkAction
+from monitor import MonitorInterfaceAction, MonitorFlowAction, MonitorLinkAction, MonitorSkewAction
 
 logging.basicConfig(level=logging.INFO)
 
@@ -62,12 +62,11 @@ class RestApiEndpoint(object):
         # setup endpoints
 
         # compute related actions (start/stop VNFs, get info)
-        self.api.add_resource(Compute,
-                              "/restapi/compute/<dc_label>/<compute_name>",
-                              "/restapi/compute/<dc_label>/<compute_name>/<resource>/<value>")
+        self.api.add_resource(Compute, "/restapi/compute/<dc_label>/<compute_name>")
         self.api.add_resource(ComputeList,
                       "/restapi/compute",
                       "/restapi/compute/<dc_label>")
+        self.api.add_resource(ComputeResources, "/restapi/compute/resources/<dc_label>/<compute_name>")
 
         self.api.add_resource(DatacenterStatus, "/restapi/datacenter/<dc_label>")
         self.api.add_resource(DatacenterList, "/restapi/datacenter")
@@ -75,23 +74,24 @@ class RestApiEndpoint(object):
 
         # network related actions (setup chaining between VNFs)
         self.api.add_resource(NetworkAction,
-                              "/restapi/network/<vnf_src_name>/<vnf_dst_name>")
+                              "/restapi/network")
 
 
         # monitoring related actions
         # export a network interface traffic rate counter
         self.api.add_resource(MonitorInterfaceAction,
-                              "/restapi/monitor/interface/<vnf_name>/<metric>",
-                              "/restapi/monitor/interface/<vnf_name>/<vnf_interface>/<metric>",
-                              "/restapi/monitor/interface/<vnf_name>/<vnf_interface>/<metric>/<cookie>")
+                              "/restapi/monitor/interface")
         # export flow traffic counter, of a manually pre-installed flow entry, specified by its cookie
         self.api.add_resource(MonitorFlowAction,
-                              "/restapi/monitor/flow/<vnf_name>/<metric>/<cookie>",
-                              "/restapi/monitor/flow/<vnf_name>/<vnf_interface>/<metric>/<cookie>")
+                              "/restapi/monitor/flow")
         # install monitoring of a specific flow on a pre-existing link in the service.
         # the traffic counters of the newly installed monitor flow are exported
         self.api.add_resource(MonitorLinkAction,
-                              "/restapi/monitor/link/<vnf_src_name>/<vnf_dst_name>")
+                              "/restapi/monitor/link")
+        # install skewness monitor of resource usage disribution
+        # the skewness metric is exported
+        self.api.add_resource(MonitorSkewAction,
+                              "/restapi/monitor/skewness")
 
         logging.debug("Created API endpoint %s(%s:%d)" % (self.__class__.__name__, self.ip, self.port))