From f9b5b9aa91a00a5c6586b3b9edcaa5f7b42b1e6f Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Wed, 22 Mar 2017 11:14:48 -0400 Subject: [PATCH] property filter `no_log` for item event loops see: #5691 --- awx/lib/tests/test_display_callback.py | 2 +- awx/lib/tower_display_callback/module.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/awx/lib/tests/test_display_callback.py b/awx/lib/tests/test_display_callback.py index d0c53f4fc0..f84ab0df4f 100644 --- a/awx/lib/tests/test_display_callback.py +++ b/awx/lib/tests/test_display_callback.py @@ -60,7 +60,7 @@ def executor(tmpdir_factory, request): cli = PlaybookCLI(['', 'playbook.yml']) cli.parse() - options = cli.parser.parse_args([])[0] + options = cli.parser.parse_args(['-v'])[0] loader = DataLoader() variable_manager = VariableManager() inventory = Inventory(loader=loader, variable_manager=variable_manager, diff --git a/awx/lib/tower_display_callback/module.py b/awx/lib/tower_display_callback/module.py index 59575d7989..76dcb5be7f 100644 --- a/awx/lib/tower_display_callback/module.py +++ b/awx/lib/tower_display_callback/module.py @@ -30,6 +30,8 @@ from ansible.plugins.callback.default import CallbackModule as DefaultCallbackMo from .events import event_context from .minimal import CallbackModule as MinimalCallbackModule +CENSORED = "the output has been hidden due to the fact that 'no_log: true' was specified for this result" # noqa + class BaseCallbackModule(CallbackBase): ''' @@ -69,8 +71,12 @@ class BaseCallbackModule(CallbackBase): else: task = None - if event_data.get('res') and event_data['res'].get('_ansible_no_log', False): - event_data['res'] = {'censored': "the output has been hidden due to the fact that 'no_log: true' was specified for this result"} # noqa + if event_data.get('res'): + if event_data['res'].get('_ansible_no_log', False): + event_data['res'] = {'censored': CENSORED} + for i, item in enumerate(event_data['res'].get('results', [])): + if event_data['res']['results'][i].get('_ansible_no_log', False): + event_data['res']['results'][i] = {'censored': CENSORED} with event_context.display_lock: try: