mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
corrected no_log for items and skipped tasks
corrected output from default callback added new tests for no_log loops updated makefile test to check for both positive and negative occurrences of no_log
This commit is contained in:
parent
86ef20c73b
commit
e2ae3215f6
5 changed files with 16 additions and 13 deletions
|
@ -277,7 +277,7 @@ class TaskExecutor:
|
||||||
# variable not being present which would otherwise cause validation to fail
|
# variable not being present which would otherwise cause validation to fail
|
||||||
if not self._task.evaluate_conditional(templar, variables):
|
if not self._task.evaluate_conditional(templar, variables):
|
||||||
self._display.debug("when evaulation failed, skipping this task")
|
self._display.debug("when evaulation failed, skipping this task")
|
||||||
return dict(changed=False, skipped=True, skip_reason='Conditional check failed')
|
return dict(changed=False, skipped=True, skip_reason='Conditional check failed', _ansible_no_log=self._play_context.no_log)
|
||||||
|
|
||||||
# Now we do final validation on the task, which sets all fields to their final values.
|
# Now we do final validation on the task, which sets all fields to their final values.
|
||||||
# In the case of debug tasks, we save any 'var' params and restore them after validating
|
# In the case of debug tasks, we save any 'var' params and restore them after validating
|
||||||
|
|
|
@ -108,15 +108,14 @@ class CallbackBase:
|
||||||
ret.append(">> the files are different, but the diff library cannot compare unicode strings\n\n")
|
ret.append(">> the files are different, but the diff library cannot compare unicode strings\n\n")
|
||||||
|
|
||||||
def _get_item(self, result):
|
def _get_item(self, result):
|
||||||
if '_ansible_no_log' in result:
|
if '_ansible_no_log' in result and result['_ansible_no_log']:
|
||||||
item = "(censored due to no_log)"
|
item = "(censored due to no_log)"
|
||||||
else:
|
else:
|
||||||
item = getattr(result, 'item', "(censored due to no_log)")
|
item = result['item']
|
||||||
|
|
||||||
return item
|
return item
|
||||||
|
|
||||||
def _process_items(self, result):
|
def _process_items(self, result):
|
||||||
|
|
||||||
for res in result._result['results']:
|
for res in result._result['results']:
|
||||||
newres = deepcopy(result)
|
newres = deepcopy(result)
|
||||||
res['item'] = self._get_item(res)
|
res['item'] = self._get_item(res)
|
||||||
|
|
|
@ -88,13 +88,13 @@ class CallbackModule(CallbackBase):
|
||||||
|
|
||||||
def v2_runner_on_skipped(self, result):
|
def v2_runner_on_skipped(self, result):
|
||||||
if C.DISPLAY_SKIPPED_HOSTS:
|
if C.DISPLAY_SKIPPED_HOSTS:
|
||||||
msg = "skipping: [%s]" % result._host.get_name()
|
|
||||||
if result._task.loop and 'results' in result._result:
|
if result._task.loop and 'results' in result._result:
|
||||||
self._process_items(result)
|
self._process_items(result)
|
||||||
else:
|
else:
|
||||||
|
msg = "skipping: [%s]" % result._host.get_name()
|
||||||
if (self._display.verbosity > 0 or '_ansible_verbose_always' in result._result) and not '_ansible_verbose_override' in result._result:
|
if (self._display.verbosity > 0 or '_ansible_verbose_always' in result._result) and not '_ansible_verbose_override' in result._result:
|
||||||
msg += " => %s" % self._dump_results(result._result)
|
msg += " => %s" % self._dump_results(result._result)
|
||||||
self._display.display(msg, color='cyan')
|
self._display.display(msg, color='cyan')
|
||||||
|
|
||||||
def v2_runner_on_unreachable(self, result):
|
def v2_runner_on_unreachable(self, result):
|
||||||
if result._task.delegate_to:
|
if result._task.delegate_to:
|
||||||
|
|
|
@ -192,5 +192,6 @@ test_lookup_paths:
|
||||||
ansible-playbook lookup_paths/play.yml -i $(INVENTORY) -v $(TEST_FLAGS)
|
ansible-playbook lookup_paths/play.yml -i $(INVENTORY) -v $(TEST_FLAGS)
|
||||||
|
|
||||||
no_log:
|
no_log:
|
||||||
[ "$$(ansible-playbook no_log_local.yml -i $(INVENTORY) -vvvvv | grep DO_NOT_LOG)" = "" ]
|
# This test expects 7 loggable vars and 0 non loggable ones, if either mismatches it fails, run the ansible-playbook command to debug
|
||||||
|
[ "$$(ansible-playbook no_log_local.yml -i $(INVENTORY) -vvvvv | awk -e 'BEGIN { logme = 0; nolog = 0; } /LOG_ME/ { logme += 1;} /DO_NOT_LOG/ { nolog += 1;} END { printf "%d/%d", logme, nolog; }')" = "7/0" ]
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,11 @@
|
||||||
failed_when: true
|
failed_when: true
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: failed item args should be logged in the absence of no_log
|
- name: item args should be logged in the absence of no_log
|
||||||
shell: echo {{ item }}
|
shell: echo {{ item }}
|
||||||
with_items: [ "LOG_ME_ITEM_FAILED" ]
|
with_items: [ "LOG_ME_ITEM", "LOG_ME_SKIPPED", "LOG_ME_ITEM_FAILED" ]
|
||||||
failed_when: true
|
when: item != "LOG_ME_SKIPPED"
|
||||||
|
failed_when: item == "LOG_ME_ITEM_FAILED"
|
||||||
ignore_errors: true
|
ignore_errors: true
|
||||||
|
|
||||||
- name: args should not be logged when task-level no_log set
|
- name: args should not be logged when task-level no_log set
|
||||||
|
@ -49,11 +50,13 @@
|
||||||
no_log: true
|
no_log: true
|
||||||
when: false
|
when: false
|
||||||
|
|
||||||
- name: skipped item args should be suppressed with no_log
|
- name: items args should be suppressed with no_log in every state
|
||||||
shell: echo {{ item }}
|
shell: echo {{ item }}
|
||||||
no_log: true
|
no_log: true
|
||||||
with_items: [ "DO_NOT_LOG_ITEM_SKIPPED", "DO_NOT_LOG_ITEM_SKIPPED_2" ]
|
with_items: [ "DO_NOT_LOG_ITEM", "DO_NOT_LOG_ITEM_SKIPPED", "DO_NOT_LOG_ITEM_FAILED" ]
|
||||||
when: item == False
|
when: item != "DO_NOT_LOG_ITEM_SKIPPED"
|
||||||
|
failed_when: item == "DO_NOT_LOG_ITEM_FAILED"
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
- name: async task args should suppressed with no_log
|
- name: async task args should suppressed with no_log
|
||||||
async: 10
|
async: 10
|
||||||
|
|
Loading…
Reference in a new issue