Merge pull request #133 from mpeuster/master
[osm/vim-emu.git] / src / emuvim / cli / network.py
index bf107e8..960e387 100755 (executable)
@@ -1,6 +1,29 @@
 """\r
-son-emu network CLI\r
-(c) 2016 by Manuel Peuster <manuel.peuster@upb.de>\r
+Copyright (c) 2015 SONATA-NFV\r
+ALL RIGHTS RESERVED.\r
+\r
+Licensed under the Apache License, Version 2.0 (the "License");\r
+you may not use this file except in compliance with the License.\r
+You may obtain a copy of the License at\r
+\r
+    http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+Unless required by applicable law or agreed to in writing, software\r
+distributed under the License is distributed on an "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+See the License for the specific language governing permissions and\r
+limitations under the License.\r
+\r
+Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION]\r
+nor the names of its contributors may be used to endorse or promote\r
+products derived from this software without specific prior written\r
+permission.\r
+\r
+This work has been performed in the framework of the SONATA project,\r
+funded by the European Commission under Grant number 671517 through\r
+the Horizon 2020 and 5G-PPP programmes. The authors would like to\r
+acknowledge the contributions of their colleagues of the SONATA\r
+partner consortium (www.sonata-nfv.eu).\r
 """\r
 \r
 import argparse\r
@@ -25,7 +48,7 @@ class ZeroRpcClient(object):
             # call the local method with the same name as the command arg\r
             getattr(self, args["command"])(args)\r
         else:\r
-            print "Command not implemented."\r
+            print("Command not implemented.")\r
 \r
     def add(self, args):\r
         vnf_src_name = self._parse_vnf_name(args.get("source"))\r
@@ -35,7 +58,9 @@ class ZeroRpcClient(object):
             vnf_src_interface=self._parse_vnf_interface(args.get("source")),\r
             vnf_dst_interface=self._parse_vnf_interface(args.get("destination")),\r
             weight=args.get("weight"),\r
-            match=args.get("match"))\r
+            match=args.get("match"),\r
+            bidirectional=args.get("bidirectional"),\r
+            cookie=args.get("cookie"))\r
 \r
         # note zerorpc does not support named arguments\r
         r = self.c.network_action_start(\r
@@ -53,7 +78,9 @@ class ZeroRpcClient(object):
             vnf_src_interface=self._parse_vnf_interface(args.get("source")),\r
             vnf_dst_interface=self._parse_vnf_interface(args.get("destination")),\r
             weight=args.get("weight"),\r
-            match=args.get("match"))\r
+            match=args.get("match"),\r
+            bidirectional=args.get("bidirectional"),\r
+            cookie=args.get("cookie"))\r
 \r
         r = self.c.network_action_stop(\r
             #args.get("datacenter"),\r
@@ -80,7 +107,8 @@ class ZeroRpcClient(object):
 parser = argparse.ArgumentParser(description='son-emu network')\r
 parser.add_argument(\r
     "command",\r
-    help="Action to be executed: add|remove")\r
+    choices=['add', 'remove'],\r
+    help="Action to be executed.")\r
 parser.add_argument(\r
     "--datacenter", "-d", dest="datacenter",\r
     help="Data center to in which the network action should be initiated")\r
@@ -96,6 +124,13 @@ parser.add_argument(
 parser.add_argument(\r
     "--match", "-m", dest="match",\r
     help="string holding extra matches for the flow entries")\r
+parser.add_argument(\r
+    "--bidirectional", "-b", dest="bidirectional",\r
+    action='store_true',\r
+    help="add/remove the flow entries from src to dst and back")\r
+parser.add_argument(\r
+    "--cookie", "-c", dest="cookie",\r
+    help="cookie for this flow, as easy to use identifier (eg. per tenant/service)")\r
 \r
 def main(argv):\r
     args = vars(parser.parse_args(argv))\r