diff --git a/lib/ansible/plugins/callback/__init__.py b/lib/ansible/plugins/callback/__init__.py index 982c07377a7..6417b48f464 100644 --- a/lib/ansible/plugins/callback/__init__.py +++ b/lib/ansible/plugins/callback/__init__.py @@ -38,6 +38,11 @@ except ImportError: __all__ = ["CallbackBase"] +try: + from __main__ import cli +except ImportError: + # using API w/o cli + cli = False class CallbackBase: @@ -53,6 +58,11 @@ class CallbackBase: else: self._display = global_display + if cli: + self._options = cli.options + else: + self._options = None + if self._display.verbosity >= 4: name = getattr(self, 'CALLBACK_NAME', 'unnamed') ctype = getattr(self, 'CALLBACK_TYPE', 'old') diff --git a/lib/ansible/plugins/callback/default.py b/lib/ansible/plugins/callback/default.py index b9ec33a67a0..1ce1d0c701f 100644 --- a/lib/ansible/plugins/callback/default.py +++ b/lib/ansible/plugins/callback/default.py @@ -230,3 +230,16 @@ class CallbackModule(CallbackBase): self._display.display("", screen_only=True) + def v2_playbook_on_start(self, playbook): + if self._display.verbosity > 1: + from os.path import basename + self._display.banner("PLAYBOOK: %s" % basename(playbook._file_name)) + + if self._display.verbosity > 3: + if self._options is not None: + for option in dir(self._options): + if option.startswith('_') or option in ['read_file', 'ensure_value', 'read_module']: + continue + val = getattr(self._options,option) + if val: + self._display.vvvv('%s: %s' % (option,val))