mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-26 20:31:27 -07:00
* Using docstrings conflicts with the standard use of docstrings * PYTHON_OPTIMIZE=2 will omit docstrings. Using docstrings makes future changes to the plugin and module code subject to the requirement that we ensure it won't be run with optimization.
52 lines
1.6 KiB
Python
52 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"
|
|
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
|