X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fcli%2Fnetwork.py;h=a4b0233efd813b2ebf2074a9b6fc8db09e22d410;hb=23c480906da46931b6f4350f3fb434a89f49227a;hp=6b196a37a456c1215fbf5af22ff21814bb68ed5d;hpb=d31e5d2016a61817381d109301086cb94a783ec4;p=osm%2Fvim-emu.git diff --git a/src/emuvim/cli/network.py b/src/emuvim/cli/network.py index 6b196a3..a4b0233 100755 --- a/src/emuvim/cli/network.py +++ b/src/emuvim/cli/network.py @@ -29,32 +29,38 @@ class ZeroRpcClient(object): 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")) - weight = args.get("weight") + + params = self._create_dict( + vnf_src_interface=self._parse_vnf_interface(args.get("source")), + vnf_dst_interface=self._parse_vnf_interface(args.get("destination")), + weight=args.get("weight"), + match=args.get("match"), + bidirectional=args.get("bidirectional")) + + # note zerorpc does not support named arguments r = self.c.network_action_start( #args.get("datacenter"), vnf_src_name, vnf_dst_name, - vnf_src_interface=vnf_src_interface, - vnf_dst_interface=vnf_dst_interface, - weight=weight) + params) 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")) - weight = args.get("weight") + + params = self._create_dict( + vnf_src_interface=self._parse_vnf_interface(args.get("source")), + vnf_dst_interface=self._parse_vnf_interface(args.get("destination")), + weight=args.get("weight"), + match=args.get("match")) + r = self.c.network_action_stop( #args.get("datacenter"), vnf_src_name, vnf_dst_name, - vnf_src_interface=vnf_src_interface, - vnf_dst_interface=vnf_dst_interface, - weight=weight) + params) pp.pprint(r) def _parse_vnf_name(self, vnf_name_str): @@ -69,6 +75,8 @@ class ZeroRpcClient(object): return vnf_interface + def _create_dict(self, **kwargs): + return kwargs parser = argparse.ArgumentParser(description='son-emu network') parser.add_argument( @@ -86,6 +94,14 @@ parser.add_argument( parser.add_argument( "--weight", "-w", dest="weight", help="weight metric to calculate the path") +parser.add_argument( + "--match", "-m", dest="match", + help="string holding extra matches for the flow entries") +parser.add_argument( + "--bidirectional", "-b", dest="bidirectional", + action='store_true', + help="add/remove the flow entries in 2 directions") + def main(argv): args = vars(parser.parse_args(argv))