"""\r
-son-emu network CLI\r
+son-emu monitor CLI\r
(c) 2016 by Manuel Peuster <manuel.peuster@upb.de>\r
"""\r
\r
import pprint\r
from tabulate import tabulate\r
import zerorpc\r
+import time\r
\r
\r
pp = pprint.PrettyPrinter(indent=4)\r
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 stop_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
"command",\r
- help="Action to be executed: get_rate")\r
+ help="Action to be executed")\r
parser.add_argument(\r
"--vnf_name", "-vnf", dest="vnf_name",\r
- help="vnf name to be monitored")\r
+ help="vnf name:interface 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