start cadvisor and prometheus docker container at startup
[osm/vim-emu.git] / src / emuvim / cli / monitor.py
index 6885a3c..bae0c07 100755 (executable)
@@ -7,6 +7,7 @@ import argparse
 import pprint\r
 from tabulate import tabulate\r
 import zerorpc\r
+import time\r
 \r
 \r
 pp = pprint.PrettyPrinter(indent=4)\r
@@ -27,12 +28,35 @@ class ZeroRpcClient(object):
         else:\r
             print "Command not implemented."\r
 \r
-    def get_rate(self, args):\r
-        r = self.c.monitor_get_rate(\r
-            args.get("vnf_name"),\r
-            args.get("direction"))\r
+    def setup_metric(self, args):\r
+        vnf_name = self._parse_vnf_name(args.get("vnf_name"))\r
+        vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))\r
+        r = self.c.setup_metric(\r
+            vnf_name,\r
+            vnf_interface,\r
+            args.get("metric"))\r
         pp.pprint(r)\r
 \r
+    def remove_metric(self, args):\r
+        vnf_name = self._parse_vnf_name(args.get("vnf_name"))\r
+        vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))\r
+        r = self.c.remove_metric(\r
+            vnf_name,\r
+            vnf_interface,\r
+            args.get("metric"))\r
+        pp.pprint(r)\r
+\r
+    def _parse_vnf_name(self, vnf_name_str):\r
+        vnf_name = vnf_name_str.split(':')[0]\r
+        return vnf_name\r
+\r
+    def _parse_vnf_interface(self, vnf_name_str):\r
+        try:\r
+            vnf_interface = vnf_name_str.split(':')[1]\r
+        except:\r
+            vnf_interface = None\r
+\r
+        return vnf_interface\r
 \r
 parser = argparse.ArgumentParser(description='son-emu network')\r
 parser.add_argument(\r
@@ -42,12 +66,12 @@ parser.add_argument(
     "--vnf_name", "-vnf", dest="vnf_name",\r
     help="vnf name to be monitored")\r
 parser.add_argument(\r
-    "--direction", "-d", dest="direction",\r
-    help="in (ingress rate) or out (egress rate)")\r
+    "--metric", "-m", dest="metric",\r
+    help="tx_bytes, rx_bytes, tx_packets, rx_packets")\r
 \r
 def main(argv):\r
-    print "This is the son-emu monitor CLI."\r
-    print "Arguments: %s" % str(argv)\r
+    #print "This is the son-emu monitor CLI."\r
+    #print "Arguments: %s" % str(argv)\r
     args = vars(parser.parse_args(argv))\r
     c = ZeroRpcClient()\r
     c.execute_command(args)\r