Merge remote-tracking branch 'upstream/master'
[osm/vim-emu.git] / src / emuvim / cli / rest / monitor.py
index 88db8b2..7af1fbb 100755 (executable)
@@ -25,11 +25,10 @@ the Horizon 2020 and 5G-PPP programmes. The authors would like to
 acknowledge the contributions of their colleagues of the SONATA
 partner consortium (www.sonata-nfv.eu).
 """
+
 from requests import get, put, delete
-from tabulate import tabulate
 import pprint
 import argparse
-import json
 from emuvim.cli import prometheus
 
 pp = pprint.PrettyPrinter(indent=4)
@@ -50,7 +49,7 @@ class RestApiClient():
         vnf_name = self._parse_vnf_name(args.get("vnf_name"))
         vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))
 
-        response = put("%s/restapi/monitor/%s/%s/%s" %
+        response = put("%s/restapi/monitor/interface/%s/%s/%s" %
                        (args.get("endpoint"),
                         vnf_name,
                         vnf_interface,
@@ -61,7 +60,7 @@ class RestApiClient():
         vnf_name = self._parse_vnf_name(args.get("vnf_name"))
         vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))
 
-        response = delete("%s/restapi/monitor/%s/%s/%s" %
+        response = delete("%s/restapi/monitor/interface/%s/%s/%s" %
                        (args.get("endpoint"),
                         vnf_name,
                         vnf_interface,
@@ -72,7 +71,7 @@ class RestApiClient():
         vnf_name = self._parse_vnf_name(args.get("vnf_name"))
         vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))
 
-        response = put("%s/restapi/monitor/%s/%s/%s/%s" %
+        response = put("%s/restapi/monitor/flow/%s/%s/%s/%s" %
                        (args.get("endpoint"),
                         vnf_name,
                         vnf_interface,
@@ -85,7 +84,7 @@ class RestApiClient():
         vnf_name = self._parse_vnf_name(args.get("vnf_name"))
         vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))
 
-        response = delete("%s/restapi/monitor/%s/%s/%s/%s" %
+        response = delete("%s/restapi/monitor/flow/%s/%s/%s/%s" %
                        (args.get("endpoint"),
                         vnf_name,
                         vnf_interface,
@@ -94,6 +93,23 @@ class RestApiClient():
 
         pp.pprint(response.json())
 
+    def prometheus(self, args):
+        # This functions makes it more user-friendly to create the correct prometheus query
+        # <uuid> is replaced by the correct uuid of the deployed vnf container
+        vnf_name = self._parse_vnf_name(args.get("vnf_name"))
+        vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))
+        dc_label = args.get("datacenter")
+        query = args.get("query")
+        vnf_status = get("%s/restapi/compute/%s/%s" %
+            (args.get("endpoint"),
+             args.get("datacenter"),
+             vnf_name)).json()
+        uuid = vnf_status['id']
+        query = query.replace('<uuid>', uuid)
+
+        response = prometheus.query_Prometheus(query)
+        pp.pprint(response)
+
     def _parse_vnf_name(self, vnf_name_str):
         vnf_name = vnf_name_str.split(':')[0]
         return vnf_name