updated SDN chaining commands
diff --git a/src/emuvim/cli/monitor.py b/src/emuvim/cli/monitor.py
index 2caca2c..0c3c515 100755
--- a/src/emuvim/cli/monitor.py
+++ b/src/emuvim/cli/monitor.py
@@ -29,13 +29,33 @@
print "Command not implemented."
def get_rate(self, args):
+ vnf_name = self._parse_vnf_name(args.get("vnf_name"))
+ vnf_interface = self._parse_vnf_interface(args.get("vnf_name"))
+ self.c.monitor_setup_rate_measurement(
+ vnf_name,
+ vnf_interface,
+ args.get("direction"),
+ args.get("metric"))
while True:
r = self.c.monitor_get_rate(
- args.get("vnf_name"),
- args.get("direction"))
+ vnf_name,
+ vnf_interface,
+ args.get("direction"),
+ args.get("metric"))
pp.pprint(r)
time.sleep(1)
+ def _parse_vnf_name(self, vnf_name_str):
+ vnf_name = vnf_name_str.split(':')[0]
+ return vnf_name
+
+ def _parse_vnf_interface(self, vnf_name_str):
+ try:
+ vnf_interface = vnf_name_str.split(':')[1]
+ except:
+ vnf_interface = None
+
+ return vnf_interface
parser = argparse.ArgumentParser(description='son-emu network')
parser.add_argument(
@@ -46,7 +66,10 @@
help="vnf name to be monitored")
parser.add_argument(
"--direction", "-d", dest="direction",
- help="in (ingress rate) or out (egress rate)")
+ help="rx (ingress rate) or tx (egress rate)")
+parser.add_argument(
+ "--metric", "-m", dest="metric",
+ help="bytes (byte rate), packets (packet rate)")
def main(argv):
print "This is the son-emu monitor CLI."
diff --git a/src/emuvim/cli/network.py b/src/emuvim/cli/network.py
index 8d4219b..c27da59 100755
--- a/src/emuvim/cli/network.py
+++ b/src/emuvim/cli/network.py
@@ -28,19 +28,43 @@
print "Command not implemented."
def add(self, args):
+ vnf_src_name = self._parse_vnf_name(args.get("source"))
+ vnf_src_interface = self._parse_vnf_interface(args.get("source"))
+ vnf_dst_name = self._parse_vnf_name(args.get("destination"))
+ vnf_dst_interface = self._parse_vnf_interface(args.get("destination"))
r = self.c.network_action_start(
#args.get("datacenter"),
- args.get("source"),
- args.get("destination"))
+ vnf_src_name,
+ vnf_dst_name,
+ vnf_src_interface,
+ vnf_dst_interface)
pp.pprint(r)
def remove(self, args):
+ vnf_src_name = self._parse_vnf_name(args.get("source"))
+ vnf_src_interface = self._parse_vnf_interface(args.get("source"))
+ vnf_dst_name = self._parse_vnf_name(args.get("destination"))
+ vnf_dst_interface = self._parse_vnf_interface(args.get("destination"))
r = self.c.network_action_stop(
#args.get("datacenter"),
- args.get("source"),
- args.get("destination"))
+ vnf_src_name,
+ vnf_dst_name,
+ vnf_src_interface,
+ vnf_dst_interface)
pp.pprint(r)
+ def _parse_vnf_name(self, vnf_name_str):
+ vnf_name = vnf_name_str.split(':')[0]
+ return vnf_name
+
+ def _parse_vnf_interface(self, vnf_name_str):
+ try:
+ vnf_interface = vnf_name_str.split(':')[1]
+ except:
+ vnf_interface = None
+
+ return vnf_interface
+
parser = argparse.ArgumentParser(description='son-emu network')
parser.add_argument(