From de7be08856db9e5e7b454df127e08dfa119f08a2 Mon Sep 17 00:00:00 2001 From: Akita Noek Date: Wed, 20 Jan 2016 15:11:49 -0500 Subject: [PATCH] Obey no_log with ansible 2.0 Fixes #645 --- awx/plugins/callback/job_event_callback.py | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/awx/plugins/callback/job_event_callback.py b/awx/plugins/callback/job_event_callback.py index 838b3fde1d..b4eaae083d 100644 --- a/awx/plugins/callback/job_event_callback.py +++ b/awx/plugins/callback/job_event_callback.py @@ -37,6 +37,7 @@ import logging import os import pwd import urlparse +import re # Requests import requests @@ -126,6 +127,31 @@ class BaseCallbackModule(object): self._init_connection() if self.context is None: self._start_connection() + if 'res' in event_data \ + and event_data['res'].get('_ansible_no_log', False): + res = event_data['res'] + if 'stdout' in res and res['stdout']: + res['stdout'] = '' + if 'stdout_lines' in res and res['stdout_lines']: + res['stdout_lines'] = [''] + if 'stderr' in res and res['stderr']: + res['stderr'] = '' + if 'stderr_lines' in res and res['stderr_lines']: + res['stderr_lines'] = [''] + if res.get('cmd', None) and re.search(r'\s', res['cmd']): + res['cmd'] = re.sub(r'^(([^\s\\]|\\\s)+).*$', + r'\1 ', + res['cmd']) + if 'invocation' in res \ + and 'module_args' in res['invocation'] \ + and '_raw_params' in res['invocation']['module_args'] \ + and re.search(r'\s', + res['invocation']['module_args']['_raw_params']): + res['invocation']['module_args']['_raw_params'] = \ + re.sub(r'^(([^\s\\]|\\\s)+).*$', + r'\1 ', + res['invocation']['module_args']['_raw_params']) + msg['event_data']['res'] = res self.socket.send_json(msg) self.socket.recv()