mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-24 03:11:24 -07:00
* fixed issue with default callback inheritance - callbacks need to document same options as callbacks they inherit from to get them configured - since default is also used by many 3rd party callbacks for inheritance, making the code 'tolerate' the missing docs and fallback to using the direct constant to configure it's options.
54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
# (c) 2017 Ansible Project
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
__metaclass__ = type
|
|
|
|
DOCUMENTATION = '''
|
|
callback: debug
|
|
type: stdout
|
|
short_description: formated stdout/stderr display
|
|
description:
|
|
- Use this callback to sort though extensive debug output
|
|
version_added: "2.4"
|
|
extends_documentation_fragment:
|
|
- default_callback
|
|
requirements:
|
|
- set as stdout in configuration
|
|
'''
|
|
|
|
from ansible.plugins.callback.default import CallbackModule as CallbackModule_default
|
|
|
|
|
|
class CallbackModule(CallbackModule_default): # pylint: disable=too-few-public-methods,no-init
|
|
'''
|
|
Override for the default callback module.
|
|
|
|
Render std err/out outside of the rest of the result which it prints with
|
|
indentation.
|
|
'''
|
|
CALLBACK_VERSION = 2.0
|
|
CALLBACK_TYPE = 'stdout'
|
|
CALLBACK_NAME = 'debug'
|
|
|
|
def _dump_results(self, result):
|
|
'''Return the text to output for a result.'''
|
|
|
|
# Enable JSON identation
|
|
result['_ansible_verbose_always'] = True
|
|
|
|
save = {}
|
|
for key in ['stdout', 'stdout_lines', 'stderr', 'stderr_lines', 'msg']:
|
|
if key in result:
|
|
save[key] = result.pop(key)
|
|
|
|
output = CallbackModule_default._dump_results(self, result)
|
|
|
|
for key in ['stdout', 'stderr', 'msg']:
|
|
if key in save and save[key]:
|
|
output += '\n\n%s:\n\n%s\n' % (key.upper(), save[key])
|
|
|
|
for key, value in save.items():
|
|
result[key] = value
|
|
|
|
return output
|