no_log even when task_result doesn't provide key

- now also checks task property
 - added reproducer to tests for unreachable status on item loop

(cherry picked from commit 336b3762b2)
This commit is contained in:
Brian Coca 2018-06-07 17:38:20 -04:00 committed by Toshio Kuratomi
parent b3a1761365
commit 17830a01ba
2 changed files with 28 additions and 1 deletions

View file

@ -104,7 +104,7 @@ class TaskResult:
else:
ignore = _IGNORE
if self._result.get('_ansible_no_log', False):
if self._task.no_log or self._result.get('_ansible_no_log', False):
x = {"censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result"}
for preserve in _PRESERVE:
if preserve in self._result:

View file

@ -63,3 +63,30 @@
- name: args should be logged when task-level no_log overrides play-level
shell: echo "LOG_ME_OVERRIDE"
no_log: false
- name: Add a fake host for next play
add_host:
hostname: fake
- name: use 'fake' unreachable host to force unreachable error
hosts: fake
gather_facts: no
connection: ssh
tasks:
- name: Fail to run a lineinfile task
vars:
logins:
- machine: foo
login: bar
password: DO_NOT_LOG_UNREACHABLE_ITEM
- machine: two
login: three
password: DO_NOT_LOG_UNREACHABLE_ITEM
lineinfile:
path: /dev/null
mode: 0600
create: true
insertafter: EOF
line: "machine {{ item.machine }} login {{ item.login }} password {{ item.password }}"
loop: "{{ logins }}"
no_log: true