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(a)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
--
2.4.11