This patch adds new command line option for enabling breakpoints in the task. Short option is -b, long option --breakpoints.
Also the message informing about reaching the breakpoint has been moved to logging to level INFO.
Signed-off-by: Jiri Prochazka jprochaz@redhat.com --- lnst-ctl | 14 ++++++++++---- lnst/Controller/NetTestController.py | 4 +++- lnst/Controller/Task.py | 6 ++++-- 3 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/lnst-ctl b/lnst-ctl index c8a229f..0a3a870 100755 --- a/lnst-ctl +++ b/lnst-ctl @@ -43,6 +43,7 @@ def usage(retval=0): print " -A, --override-alias name=value define top-level alias that " \ "will override any other definitions in the recipe" print " -a, --define-alias name=value define top-level alias" + print " -b, --breakpoints enable breakpoint feature" print " -c, --config=FILE load additional config file" print " -C, --config-override=FILE reset config defaults and load " \ "the following config file" @@ -142,7 +143,7 @@ def exec_action(action, nettestctl):
def get_recipe_result(action, file_path, log_ctl, res_serializer, pool_checks, packet_capture, - defined_aliases, + defined_aliases, breakpoints, reduce_sync, multi_match, pools): retval = RETVAL_PASS
@@ -163,7 +164,8 @@ def get_recipe_result(action, file_path, log_ctl, res_serializer, defined_aliases=defined_aliases, reduce_sync=reduce_sync, restrict_pools=pools, - multi_match=multi_match) + multi_match=multi_match, + breakpoints=breakpoints) except XmlProcessingError as err: log_exc_traceback() logging.error(err) @@ -244,8 +246,9 @@ def main(): try: opts, args = getopt.getopt( sys.argv[1:], - "A:a:c:C:dhmoprs:t:ux:v", + "A:a:bc:C:dhmoprs:t:ux:v", [ + "breakpoints", "override_alias=", "define_alias=", "config=", @@ -290,6 +293,7 @@ def main(): with open(usr_cfg, 'w') as f: f.write(lnst_config.dump_config())
+ breakpoints = False debug = 0 result_path = None html_result_path = None @@ -309,6 +313,8 @@ def main(): debug += 1 elif opt in ("-h", "--help"): usage(RETVAL_PASS) + elif opt in ("-b", "--breakpoints"): + breakpoints = True elif opt in ("-c", "--config"): if not os.path.isfile(arg): print "File '%s' doesn't exist!" % arg @@ -412,7 +418,7 @@ def main(): for recipe_file in recipe_files: rv = get_recipe_result(action, recipe_file, log_ctl, res_serializer, pool_checks, packet_capture, - defined_aliases, + defined_aliases, breakpoints, reduce_sync, multi_match, pools) if rv > retval: retval = rv diff --git a/lnst/Controller/NetTestController.py b/lnst/Controller/NetTestController.py index 05368c8..4b47d1f 100644 --- a/lnst/Controller/NetTestController.py +++ b/lnst/Controller/NetTestController.py @@ -56,7 +56,8 @@ class NetTestController: res_serializer=None, pool_checks=True, packet_capture=False, defined_aliases=None, reduce_sync=False, - restrict_pools=[], multi_match=False): + restrict_pools=[], multi_match=False, + breakpoints=False): self._res_serializer = res_serializer self._remote_capture_files = {} self._log_ctl = log_ctl @@ -70,6 +71,7 @@ class NetTestController: self.remove_saved_machine_config()
self.run_mode = "run" + self.breakpoints = breakpoints
self._machines = {} self._network_bridges = {} diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py index 878978e..8aceaa0 100644 --- a/lnst/Controller/Task.py +++ b/lnst/Controller/Task.py @@ -45,9 +45,10 @@ def get_module(name, options={}): return ctl.get_module(name, options)
def breakpoint(): - if ctl.run_mode != "config_only": + if not ctl.breakpoints: return - raw_input("Breakpoint reached. Press enter to continue.") + logging.info("Breakpoint reached. Press enter to continue.") + raw_input("")
def add_host(params={}): m_id = ctl.gen_m_id() @@ -91,6 +92,7 @@ class ControllerAPI(object): def __init__(self, ctl): self._ctl = ctl self.run_mode = ctl.run_mode + self.breakpoints = ctl.breakpoints self._result = True self.first_run = True self._m_id_seq = 0