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:
parent
5bbbec9b61
commit
c3c398cffe
2 changed files with 5 additions and 2 deletions
|
@ -43,7 +43,7 @@ class TaskResult:
|
|||
return self._check_key('skipped')
|
||||
|
||||
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')
|
||||
else:
|
||||
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', []):
|
||||
if isinstance(res, dict):
|
||||
flag |= res.get(key, False)
|
||||
return flag
|
||||
else:
|
||||
return self._result.get(key, False)
|
||||
|
|
|
@ -155,6 +155,8 @@ class StrategyBase:
|
|||
iterator.mark_host_failed(host)
|
||||
self._tqm._failed_hosts[host.name] = True
|
||||
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)
|
||||
elif result[0] == 'host_unreachable':
|
||||
self._tqm._unreachable_hosts[host.name] = True
|
||||
|
|
Loading…
Reference in a new issue