Correctly check for failed status from an async task. Use runner_on_async_failed callback (instead of runner_on_failed) when an async task times out. Add runner_on_async_ok callback when a task is started in fire and forget mode.
parent
5f18a53530
commit
6ba4331161
|
@ -277,7 +277,7 @@ class PlayBook(object):
|
||||||
# since these likely got killed by async_wrapper
|
# since these likely got killed by async_wrapper
|
||||||
for host in poller.hosts_to_poll:
|
for host in poller.hosts_to_poll:
|
||||||
reason = { 'failed' : 1, 'rc' : None, 'msg' : 'timed out' }
|
reason = { 'failed' : 1, 'rc' : None, 'msg' : 'timed out' }
|
||||||
self.runner_callbacks.on_failed(host, reason)
|
self.runner_callbacks.on_async_failed(host, reason, poller.jid)
|
||||||
results['contacted'][host] = reason
|
results['contacted'][host] = reason
|
||||||
|
|
||||||
return results
|
return results
|
||||||
|
@ -319,6 +319,9 @@ class PlayBook(object):
|
||||||
if task.async_poll_interval > 0:
|
if task.async_poll_interval > 0:
|
||||||
# if not polling, playbook requested fire and forget, so don't poll
|
# if not polling, playbook requested fire and forget, so don't poll
|
||||||
results = self._async_poll(poller, task.async_seconds, task.async_poll_interval)
|
results = self._async_poll(poller, task.async_seconds, task.async_poll_interval)
|
||||||
|
else:
|
||||||
|
for (host, res) in results.get('contacted', {}).iteritems():
|
||||||
|
self.runner_callbacks.on_async_ok(host, res, poller.jid)
|
||||||
|
|
||||||
contacted = results.get('contacted',{})
|
contacted = results.get('contacted',{})
|
||||||
dark = results.get('dark', {})
|
dark = results.get('dark', {})
|
||||||
|
|
|
@ -73,7 +73,7 @@ class AsyncPoller(object):
|
||||||
else:
|
else:
|
||||||
self.results['contacted'][host] = res
|
self.results['contacted'][host] = res
|
||||||
poll_results['contacted'][host] = res
|
poll_results['contacted'][host] = res
|
||||||
if 'failed' in res:
|
if res.get('failed', False) or res.get('rc', 0) != 0:
|
||||||
self.runner.callbacks.on_async_failed(host, res, self.jid)
|
self.runner.callbacks.on_async_failed(host, res, self.jid)
|
||||||
else:
|
else:
|
||||||
self.runner.callbacks.on_async_ok(host, res, self.jid)
|
self.runner.callbacks.on_async_ok(host, res, self.jid)
|
||||||
|
|
Loading…
Reference in New Issue