Add optional args to traffic script arg parser 80/880/2
authorMatus Fabian <matfabia@cisco.com>
Tue, 26 Apr 2016 08:58:52 +0000 (10:58 +0200)
committerMatus Fabian <matfabia@cisco.com>
Tue, 26 Apr 2016 09:06:47 +0000 (11:06 +0200)
Change-Id: I92e890e0c42da34e1e72a442f7a3bbe12fe9aef1
Signed-off-by: Matus Fabian <matfabia@cisco.com>
resources/libraries/python/TrafficScriptArg.py

index e05341d..dc655d2 100644 (file)
@@ -21,10 +21,13 @@ class TrafficScriptArg(object):
 
     Parse arguments for traffic script. Default has two arguments '--tx_if'
     and '--rx_if'. You can provide more arguments. All arguments have string
-    representation of the value.
+    representation of the value. You can add also optional arguments. Default
+    value for optional arguments is empty string.
 
     :param more_args: List of additional arguments (optional).
+    :param opt_args: List of optional arguments (optional).
     :type more_args: list
+    :type opt_args: list
 
     :Example:
 
@@ -32,7 +35,7 @@ class TrafficScriptArg(object):
     >>> args = TrafficScriptArg(['src_mac', 'dst_mac', 'src_ip', 'dst_ip'])
     """
 
-    def __init__(self, more_args=None):
+    def __init__(self, more_args=None, opt_args=None):
         parser = argparse.ArgumentParser()
         parser.add_argument("--tx_if", help="interface that sends traffic")
         parser.add_argument("--rx_if", help="interface that receives traffic")
@@ -42,6 +45,11 @@ class TrafficScriptArg(object):
                 arg_name = '--{0}'.format(arg)
                 parser.add_argument(arg_name)
 
+        if opt_args is not None:
+            for arg in opt_args:
+                arg_name = '--{0}'.format(arg)
+                parser.add_argument(arg_name, nargs='?', default='')
+
         self._parser = parser
         self._args = vars(parser.parse_args())
 

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.