mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-13 04:11:00 +00:00
Cleaning up some task failure detection problems
* fixed a bug in which failures from a with_* loop were not being caught correctly, leading to tasks continuing when they should stop * when ignore_errors is enabled, the failure will no longer count towards the number of failed tasks
This commit is contained in:
@@ -43,7 +43,7 @@ class TaskResult:
|
|||||||
return self._check_key('skipped')
|
return self._check_key('skipped')
|
||||||
|
|
||||||
def is_failed(self):
|
def is_failed(self):
|
||||||
if 'failed_when_result' in self._result:
|
if 'results' in self._result and True in [True for x in self._result['results'] if 'failed_when_result' in x]:
|
||||||
return self._check_key('failed_when_result')
|
return self._check_key('failed_when_result')
|
||||||
else:
|
else:
|
||||||
return self._check_key('failed') or self._result.get('rc', 0) != 0
|
return self._check_key('failed') or self._result.get('rc', 0) != 0
|
||||||
@@ -57,5 +57,6 @@ class TaskResult:
|
|||||||
for res in self._result.get('results', []):
|
for res in self._result.get('results', []):
|
||||||
if isinstance(res, dict):
|
if isinstance(res, dict):
|
||||||
flag |= res.get(key, False)
|
flag |= res.get(key, False)
|
||||||
|
return flag
|
||||||
else:
|
else:
|
||||||
return self._result.get(key, False)
|
return self._result.get(key, False)
|
||||||
|
|||||||
@@ -154,7 +154,9 @@ class StrategyBase:
|
|||||||
debug("marking %s as failed" % host.name)
|
debug("marking %s as failed" % host.name)
|
||||||
iterator.mark_host_failed(host)
|
iterator.mark_host_failed(host)
|
||||||
self._tqm._failed_hosts[host.name] = True
|
self._tqm._failed_hosts[host.name] = True
|
||||||
self._tqm._stats.increment('failures', host.name)
|
self._tqm._stats.increment('failures', host.name)
|
||||||
|
else:
|
||||||
|
self._tqm._stats.increment('ok', host.name)
|
||||||
self._tqm.send_callback('v2_runner_on_failed', task_result)
|
self._tqm.send_callback('v2_runner_on_failed', task_result)
|
||||||
elif result[0] == 'host_unreachable':
|
elif result[0] == 'host_unreachable':
|
||||||
self._tqm._unreachable_hosts[host.name] = True
|
self._tqm._unreachable_hosts[host.name] = True
|
||||||
|
|||||||
Reference in New Issue
Block a user