diff --git a/v2/ansible/executor/playbook_executor.py b/v2/ansible/executor/playbook_executor.py index 64f3f676210..97232cefe8f 100644 --- a/v2/ansible/executor/playbook_executor.py +++ b/v2/ansible/executor/playbook_executor.py @@ -36,17 +36,18 @@ class PlaybookExecutor: basis for bin/ansible-playbook operation. ''' - def __init__(self, playbooks, inventory, variable_manager, loader, options): + def __init__(self, playbooks, inventory, variable_manager, loader, display, options): self._playbooks = playbooks self._inventory = inventory self._variable_manager = variable_manager self._loader = loader + self._display = display self._options = options if options.listhosts or options.listtasks or options.listtags: self._tqm = None else: - self._tqm = TaskQueueManager(inventory=inventory, callback='default', variable_manager=variable_manager, loader=loader, options=options) + self._tqm = TaskQueueManager(inventory=inventory, callback='default', variable_manager=variable_manager, loader=loader, display=display, options=options) def run(self): @@ -94,13 +95,13 @@ class PlaybookExecutor: #TODO: move to callback # FIXME: this stat summary stuff should be cleaned up and moved # to a new method, if it even belongs here... - self._tqm._display.banner("PLAY RECAP") + self._display.banner("PLAY RECAP") hosts = sorted(self._tqm._stats.processed.keys()) for h in hosts: t = self._tqm._stats.summarize(h) - self._tqm._display.display("%s : %s %s %s %s" % ( + self._display.display("%s : %s %s %s %s" % ( hostcolor(h, t), colorize('ok', t['ok'], 'green'), colorize('changed', t['changed'], 'yellow'), @@ -109,7 +110,7 @@ class PlaybookExecutor: screen_only=True ) - self._tqm._display.display("%s : %s %s %s %s" % ( + self._display.display("%s : %s %s %s %s" % ( hostcolor(h, t, False), colorize('ok', t['ok'], None), colorize('changed', t['changed'], None), @@ -118,7 +119,7 @@ class PlaybookExecutor: log_only=True ) - self._tqm._display.display("", screen_only=True) + self._display.display("", screen_only=True) # END STATS STUFF return result diff --git a/v2/ansible/executor/task_queue_manager.py b/v2/ansible/executor/task_queue_manager.py index 0693e9dc56c..28904676eb2 100644 --- a/v2/ansible/executor/task_queue_manager.py +++ b/v2/ansible/executor/task_queue_manager.py @@ -33,7 +33,6 @@ from ansible.executor.stats import AggregateStats from ansible.plugins import callback_loader, strategy_loader from ansible.utils.debug import debug -from ansible.utils.display import Display __all__ = ['TaskQueueManager'] @@ -49,16 +48,15 @@ class TaskQueueManager: which dispatches the Play's tasks to hosts. ''' - def __init__(self, inventory, callback, variable_manager, loader, options): + def __init__(self, inventory, callback, variable_manager, loader, display, options): self._inventory = inventory self._variable_manager = variable_manager self._loader = loader + self._display = display self._options = options self._stats = AggregateStats() - self._display = Display() - # a special flag to help us exit cleanly self._terminated = False diff --git a/v2/ansible/playbook/helpers.py b/v2/ansible/playbook/helpers.py index dd346c636f0..7242322b88f 100644 --- a/v2/ansible/playbook/helpers.py +++ b/v2/ansible/playbook/helpers.py @@ -34,7 +34,7 @@ def load_list_of_blocks(ds, parent_block=None, role=None, task_include=None, use # we import here to prevent a circular dependency with imports from ansible.playbook.block import Block - assert ds is None or isinstance(ds, AnsibleSequence), 'block has bad type: %s' % type(ds) + assert ds is None or isinstance(ds, list), 'block has bad type: %s' % type(ds) block_list = [] if ds: diff --git a/v2/bin/ansible b/v2/bin/ansible index 2b2df3df8f2..79d5f0a28b3 100755 --- a/v2/bin/ansible +++ b/v2/bin/ansible @@ -31,6 +31,7 @@ from ansible.parsing.splitter import parse_kv from ansible.playbook.play import Play from ansible.utils.display import Display from ansible.utils.cli import base_parser, validate_conflicts, normalize_become_options, ask_passwords +from ansible.utils.display import Display from ansible.utils.vault import read_vault_file from ansible.vars import VariableManager @@ -131,7 +132,8 @@ class Cli(object): # now create a task queue manager to execute the play try: - tqm = TaskQueueManager(inventory=inventory, callback='minimal', variable_manager=variable_manager, loader=loader, options=options) + display = Display() + tqm = TaskQueueManager(inventory=inventory, callback='minimal', variable_manager=variable_manager, loader=loader, display=display, options=options) result = tqm.run(play) tqm.cleanup() except AnsibleError: diff --git a/v2/bin/ansible-playbook b/v2/bin/ansible-playbook index 57380590c47..c1ee70d059c 100755 --- a/v2/bin/ansible-playbook +++ b/v2/bin/ansible-playbook @@ -15,6 +15,7 @@ from ansible.parsing.splitter import parse_kv from ansible.playbook import Playbook from ansible.playbook.task import Task from ansible.utils.cli import base_parser, validate_conflicts, normalize_become_options, ask_passwords +from ansible.utils.display import Display from ansible.utils.unicode import to_unicode from ansible.utils.vars import combine_vars from ansible.utils.vault import read_vault_file @@ -130,7 +131,8 @@ def main(args): # create the playbook executor, which manages running the plays # via a task queue manager - pbex = PlaybookExecutor(playbooks=args, inventory=inventory, variable_manager=variable_manager, loader=loader, options=options) + display = Display() + pbex = PlaybookExecutor(playbooks=args, inventory=inventory, variable_manager=variable_manager, loader=loader, display=display, options=options) if options.listhosts: i = 1