This patch adds several methods which will be used in upcoming PyRecipes
implementation (I'll describe only those which are not self-explanatory):
breakpoint(): new functionality which will work as debugging
breakpoints - it stops execution of the test and wait for user's signal
to continue the test.
add_host(): prepares HostAPI object which will be initialized later
(after the match).
match(): runs matching algorithm and returns True when the following
code should be executed (first run of the test and/or multi match
runs). It also calls the method for provisioning of the machines.
Signed-off-by: Jiri Prochazka <jprochaz(a)redhat.com>
---
lnst/Controller/Task.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/lnst/Controller/Task.py b/lnst/Controller/Task.py
index f1d26c5..e8a2538 100644
--- a/lnst/Controller/Task.py
+++ b/lnst/Controller/Task.py
@@ -32,6 +32,57 @@ except:
# The handle to be imported from each task
ctl = None
+def get_alias(alias, default=None):
+ return ctl.get_alias(alias, default)
+
+def get_mreq():
+ return ctl.get_mreq()
+
+def wait(seconds):
+ return ctl.wait(seconds)
+
+def get_module(name, options={}):
+ return ctl.get_module(name, options)
+
+def breakpoint():
+ if ctl.run_mode != "config_only":
+ return
+ raw_input("Breakpoint reached. Press enter to continue.")
+
+def add_host(params=None):
+ m_id = ctl.gen_m_id()
+ ctl.mreq[m_id] = {'interfaces' : {}, 'params' : {}}
+ handle = HostAPI(ctl, m_id)
+ ctl.add_host(m_id, handle)
+ return handle
+
+def match():
+ ctl.cleanup_slaves()
+
+ if ctl.first_run:
+ ctl.first_run = False
+ ctl.set_machine_requirements()
+
+ if ctl.prepare_test_env():
+ if ctl.run_mode == "match_setup":
+ return False
+ if ctl.packet_capture():
+ ctl.start_packet_capture()
+ return True
+ else:
+ if ctl._ctl._multi_match:
+ if ctl.prepare_test_env():
+ if ctl.run_mode == "match_setup":
+ return False
+ if ctl.packet_capture():
+ ctl.start_packet_capture()
+ return True
+ else:
+ return False
+ else:
+ return False
+
+
class TaskError(Exception): pass
class ControllerAPI(object):
--
2.4.11