diff options
| author | Charles Paul <cpaul@ansible.com> | 2015-12-09 18:08:44 -0500 |
|---|---|---|
| committer | Charles Paul <cpaul@ansible.com> | 2015-12-09 18:08:44 -0500 |
| commit | fdfe1939e8ad55386ce3e1c9cdc172f8cfe260a5 (patch) | |
| tree | 9a84b8e4dc12f647695e4d5b840247cc1719ce5c /lib/ansible/executor/task_queue_manager.py | |
| parent | 7936a4687e9be3752bdbee006d956ed4f2687160 (diff) | |
| download | ansible-adhoc_callback.tar.gz | |
custom callbacks with adhoc cliadhoc_callback
Diffstat (limited to 'lib/ansible/executor/task_queue_manager.py')
| -rw-r--r-- | lib/ansible/executor/task_queue_manager.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/ansible/executor/task_queue_manager.py b/lib/ansible/executor/task_queue_manager.py index 70cefee510..7f65e2253e 100644 --- a/lib/ansible/executor/task_queue_manager.py +++ b/lib/ansible/executor/task_queue_manager.py @@ -32,6 +32,7 @@ from ansible.executor.process.result import ResultProcess from ansible.executor.stats import AggregateStats from ansible.playbook.play_context import PlayContext from ansible.plugins import callback_loader, strategy_loader, module_loader +from ansible.plugins.callback import CallbackBase from ansible.template import Templar from ansible.vars.hostvars import HostVars @@ -145,8 +146,15 @@ class TaskQueueManager: if self._stdout_callback is None: self._stdout_callback = C.DEFAULT_STDOUT_CALLBACK - if self._stdout_callback not in callback_loader: - raise AnsibleError("Invalid callback for stdout specified: %s" % self._stdout_callback) + if isinstance(self._stdout_callback, CallbackBase): + self._callback_plugins.append(self._stdout_callback) + stdout_callback_loaded = True + elif isinstance(self._stdout_callback, basestring): + if self._stdout_callback not in callback_loader: + raise AnsibleError("Invalid callback for stdout specified: %s" % self._stdout_callback) + else: + raise AnsibleError("callback must be an instance of CallbackBase or the name of a callback plugin") + for callback_plugin in callback_loader.all(class_only=True): if hasattr(callback_plugin, 'CALLBACK_VERSION') and callback_plugin.CALLBACK_VERSION >= 2.0: |
