X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Femuvim%2Fcli%2Fnetwork.py;h=960e387fc823a8e7699d783b584c555c97396d1d;hb=e131bf5fefb90aadfe698dd72126cd2fdfe2fb7a;hp=5fa9993243c5e0ad6cfe14d67d1ec7fed4547918;hpb=a1e59c710ed694b97cb4aed76af6e8ee34a7bfbe;p=osm%2Fvim-emu.git diff --git a/src/emuvim/cli/network.py b/src/emuvim/cli/network.py index 5fa9993..960e387 100755 --- a/src/emuvim/cli/network.py +++ b/src/emuvim/cli/network.py @@ -1,6 +1,29 @@ """ -son-emu network CLI -(c) 2016 by Manuel Peuster +Copyright (c) 2015 SONATA-NFV +ALL RIGHTS RESERVED. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION] +nor the names of its contributors may be used to endorse or promote +products derived from this software without specific prior written +permission. + +This work has been performed in the framework of the SONATA project, +funded by the European Commission under Grant number 671517 through +the Horizon 2020 and 5G-PPP programmes. The authors would like to +acknowledge the contributions of their colleagues of the SONATA +partner consortium (www.sonata-nfv.eu). """ import argparse @@ -25,7 +48,7 @@ class ZeroRpcClient(object): # call the local method with the same name as the command arg getattr(self, args["command"])(args) else: - print "Command not implemented." + print("Command not implemented.") def add(self, args): vnf_src_name = self._parse_vnf_name(args.get("source")) @@ -35,7 +58,9 @@ class ZeroRpcClient(object): 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")) + match=args.get("match"), + bidirectional=args.get("bidirectional"), + cookie=args.get("cookie")) # note zerorpc does not support named arguments r = self.c.network_action_start( @@ -47,19 +72,21 @@ class ZeroRpcClient(object): 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") + + 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"), + cookie=args.get("cookie")) + r = self.c.network_action_stop( #args.get("datacenter"), vnf_src_name, vnf_dst_name, - vnf_src_interface, - vnf_dst_interface, - weight, - match) + params) pp.pprint(r) def _parse_vnf_name(self, vnf_name_str): @@ -80,7 +107,8 @@ class ZeroRpcClient(object): parser = argparse.ArgumentParser(description='son-emu network') parser.add_argument( "command", - help="Action to be executed: add|remove") + choices=['add', 'remove'], + help="Action to be executed.") parser.add_argument( "--datacenter", "-d", dest="datacenter", help="Data center to in which the network action should be initiated") @@ -96,6 +124,13 @@ parser.add_argument( 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 from src to dst and back") +parser.add_argument( + "--cookie", "-c", dest="cookie", + help="cookie for this flow, as easy to use identifier (eg. per tenant/service)") def main(argv): args = vars(parser.parse_args(argv))