X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fcli%2Fnetwork.py;h=5fa9993243c5e0ad6cfe14d67d1ec7fed4547918;hb=a1e59c710ed694b97cb4aed76af6e8ee34a7bfbe;hp=8d4219b662275b6972b4bd66a9c781b17f8de624;hpb=3eef9fde234a4379d80e0435bac9ce650407a895;p=osm%2Fvim-emu.git diff --git a/src/emuvim/cli/network.py b/src/emuvim/cli/network.py index 8d4219b..5fa9993 100755 --- a/src/emuvim/cli/network.py +++ b/src/emuvim/cli/network.py @@ -28,19 +28,54 @@ class ZeroRpcClient(object): print "Command not implemented." def add(self, args): + vnf_src_name = self._parse_vnf_name(args.get("source")) + vnf_dst_name = self._parse_vnf_name(args.get("destination")) + + 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")) + + # note zerorpc does not support named arguments r = self.c.network_action_start( #args.get("datacenter"), - args.get("source"), - args.get("destination")) + vnf_src_name, + vnf_dst_name, + 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") + match = args.get("match") 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, + weight, + match) 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 + + def _create_dict(self, **kwargs): + return kwargs parser = argparse.ArgumentParser(description='son-emu network') parser.add_argument( @@ -55,6 +90,12 @@ parser.add_argument( parser.add_argument( "--destination", "-dst", dest="destination", help="vnf name of the destination of the chain") +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") def main(argv): args = vars(parser.parse_args(argv))