commit b23bbf4282a279e223901df194b9ca1d295380db
Author: Ondrej Lichtner <olichtne(a)redhat.com>
Date: Mon Mar 3 16:00:39 2014 +0100
lnst-ctl: add -r, --reduce-sync option
This option disables the full resource synchronization for python tasks.
Instead it relies on the user to use the sync_resources HostAPI method
to manually synchronize required modules and tools.
The option doesn't have any effect on recipes that use xml tasks, these
will always be automatically synchronized in reduced mode when only
required resources are copied to slaves.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
Signed-off-by: Jiri Pirko <jiri(a)resnulli.us>
lnst-ctl | 29 +++++++++++++++++++----------
lnst/Controller/NetTestController.py | 11 ++++++++---
2 files changed, 27 insertions(+), 13 deletions(-)
---
diff --git a/lnst-ctl b/lnst-ctl
index 4ce280e..2dad6aa 100755
--- a/lnst-ctl
+++ b/lnst-ctl
@@ -48,6 +48,8 @@ def usage(retval=0):
print " -p, --packet-capture capture and log all ongoing " \
"network communication during the test"
print " -x, --result=FILE file to write xml_result"
+ print " -r, --reduce-sync reduces resource synchronization
"\
+ "for python tasks, see documentation"
sys.exit(retval)
def store_alias(alias_def, aliases_dict):
@@ -66,12 +68,13 @@ def store_alias(alias_def, aliases_dict):
def process_recipe(action, file_path, res_serializer,
packet_capture, log_ctl, pool_checks,
- defined_aliases, overriden_aliases):
+ defined_aliases, overriden_aliases, reduce_sync):
nettestctl = NetTestController(file_path, log_ctl,
res_serializer=res_serializer,
pool_checks=pool_checks,
defined_aliases=defined_aliases,
- overriden_aliases=overriden_aliases)
+ overriden_aliases=overriden_aliases,
+ reduce_sync=reduce_sync)
if action == "run":
return nettestctl.run_recipe(packet_capture)
elif action == "config_only":
@@ -79,8 +82,9 @@ def process_recipe(action, file_path, res_serializer,
elif action == "match_setup":
return nettestctl.match_setup()
-def get_recipe_result(args, file_path, res_serializer, packet_capture,
- log_ctl, pool_checks, defined_aliases, overriden_aliases):
+def get_recipe_result(args, file_path, res_serializer, packet_capture, log_ctl,
+ pool_checks, defined_aliases, overriden_aliases,
+ reduce_sync):
res_serializer.add_recipe(file_path)
log_ctl.set_recipe(file_path)
@@ -90,7 +94,7 @@ def get_recipe_result(args, file_path, res_serializer, packet_capture,
try:
res = process_recipe(args, file_path, res_serializer,
packet_capture, log_ctl, pool_checks,
- defined_aliases, overriden_aliases)
+ defined_aliases, overriden_aliases, reduce_sync)
except Exception as err:
log_exc_traceback()
logging.error(err)
@@ -119,10 +123,10 @@ def main():
try:
opts, args = getopt.getopt(
sys.argv[1:],
- "dhr:c:x:poma:A:",
- ["debug", "help", "recipe=",
"config", "result=",
+ "dhrc:x:poma:A:",
+ ["debug", "help", "config",
"result=",
"packet-capture", "disable-pool-checks",
"no-colours",
- "define_alias", "override_alias"]
+ "define_alias", "override_alias",
"reduce-sync"]
)
except getopt.GetoptError as err:
print str(err)
@@ -156,6 +160,7 @@ def main():
coloured_output = True
defined_aliases = {}
overriden_aliases = {}
+ reduce_sync = False
for opt, arg in opts:
if opt in ("-d", "--debug"):
debug += 1
@@ -175,6 +180,8 @@ def main():
store_alias(arg, defined_aliases)
elif opt in ("-A", "--override-alias"):
store_alias(arg, overriden_aliases)
+ elif opt in ("-r", "--reduce-sync"):
+ reduce_sync = True
if config_path is not None:
if not os.path.isfile(config_path):
@@ -228,14 +235,16 @@ def main():
packet_capture,
log_ctl, pool_checks,
defined_aliases,
- overriden_aliases)
+ overriden_aliases,
+ reduce_sync)
else:
recipe_head_log_entry(recipe_path)
fp, res, rv = get_recipe_result(action, recipe_path,
res_serializer,
packet_capture,
log_ctl, pool_checks,
- defined_aliases, overriden_aliases)
+ defined_aliases, overriden_aliases,
+ reduce_sync)
summary.append((fp, res))
if rv > retval:
diff --git a/lnst/Controller/NetTestController.py b/lnst/Controller/NetTestController.py
index d931a47..5adc8e9 100644
--- a/lnst/Controller/NetTestController.py
+++ b/lnst/Controller/NetTestController.py
@@ -49,12 +49,14 @@ def ignore_event(**kwarg):
class NetTestController:
def __init__(self, recipe_path, log_ctl,
res_serializer=None, pool_checks=True,
- defined_aliases=None, overriden_aliases=None):
+ defined_aliases=None, overriden_aliases=None,
+ reduce_sync=False):
self._res_serializer = res_serializer
self._remote_capture_files = {}
self._log_ctl = log_ctl
self._recipe_path = recipe_path
self._msg_dispatcher = MessageDispatcher(log_ctl)
+ self._reduce_sync = reduce_sync
self.remove_saved_machine_config()
@@ -220,8 +222,11 @@ class NetTestController:
if resource_sync:
for task in self._recipe['tasks']:
if 'commands' not in task:
- sync_table = res_table
- break
+ if not self._reduce_sync:
+ sync_table = res_table
+ break
+ else:
+ continue
for cmd in task['commands']:
if 'machine' not in cmd or cmd['machine'] != m_id:
continue