From cf3c861a275ace8b6002e0cf3753552393a9ebc4 Mon Sep 17 00:00:00 2001 From: Anders Ingemann Date: Sun, 27 Oct 2013 18:37:43 +0100 Subject: [PATCH] Added the dry-run option --- base/main.py | 6 ++++-- base/tasklist.py | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/base/main.py b/base/main.py index 398adc2..32b9aba 100644 --- a/base/main.py +++ b/base/main.py @@ -17,6 +17,8 @@ def get_args(): help='Print debugging information') parser.add_argument('--pause-on-error', action='store_true', help='Pause on error, before rollback') + parser.add_argument('--dry-run', action='store_true', + help='Dont\'t actually run the tasks') parser.add_argument('manifest', help='Manifest file to use for bootstrapping', metavar='MANIFEST') return parser.parse_args() @@ -35,7 +37,7 @@ def run(args): bootstrap_info = BootstrapInformation(manifest=manifest, debug=args.debug) try: - tasklist.run(bootstrap_info) + tasklist.run(info=bootstrap_info, dry_run=args.dry_run) log.info('Successfully completed bootstrapping') except (Exception, KeyboardInterrupt) as e: log.exception(e) @@ -48,5 +50,5 @@ def run(args): rollback_tasks = getattr(plugin, 'rollback_tasks', None) if callable(rollback_tasks): plugin.rollback_tasks(rollback_tasklist, tasklist.tasks_completed, manifest) - rollback_tasklist.run(bootstrap_info) + rollback_tasklist.run(info=bootstrap_info, dry_run=args.dry_run) log.info('Successfully completed rollback') diff --git a/base/tasklist.py b/base/tasklist.py index ec530ef..fe07755 100644 --- a/base/tasklist.py +++ b/base/tasklist.py @@ -16,7 +16,7 @@ class TaskList(object): for task in args: self.tasks.discard(task) - def run(self, bootstrap_info): + def run(self, info={}, dry_run=False): task_list = self.create_list(self.tasks) log.debug('Tasklist:\n\t{list}'.format(list='\n\t'.join(repr(task) for task in task_list))) @@ -26,7 +26,8 @@ class TaskList(object): log.info(task.description) else: log.info('Running {task}'.format(task=task)) - task.run(bootstrap_info) + if not dry_run: + task.run(info) self.tasks_completed.append(task) def create_list(self, tasks):