From 36632c95297365888488df6503b7380412288468 Mon Sep 17 00:00:00 2001 From: Henry Finucane Date: Sat, 31 May 2014 20:18:21 -0700 Subject: [PATCH 1/3] Ensure ansible_job_id exists even for not-started jobs --- lib/ansible/runner/poller.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ansible/runner/poller.py b/lib/ansible/runner/poller.py index 5fd3537480..0218481415 100644 --- a/lib/ansible/runner/poller.py +++ b/lib/ansible/runner/poller.py @@ -43,6 +43,7 @@ class AsyncPoller(object): self.active = True else: skipped = skipped and res.get('skipped', False) + self.runner.vars_cache[host]['ansible_job_id'] = '' self.results['contacted'][host] = res for (host, res) in results['dark'].iteritems(): self.runner.vars_cache[host]['ansible_job_id'] = '' From 9638ab973f13770b92477db581765b21ad196ece Mon Sep 17 00:00:00 2001 From: Henry Finucane Date: Sat, 12 Jul 2014 10:30:05 -0700 Subject: [PATCH 2/3] Add integration test --- test/integration/roles/test_async/tasks/main.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/integration/roles/test_async/tasks/main.yml b/test/integration/roles/test_async/tasks/main.yml index b83227791b..556284770a 100644 --- a/test/integration/roles/test_async/tasks/main.yml +++ b/test/integration/roles/test_async/tasks/main.yml @@ -56,3 +56,9 @@ - "'ansible_job_id' in async_result" - "'started' in async_result" - "'finished' not in async_result" + +- name: test skipped task handling + command: /bin/true + async: 15 + poll: 0 + when: False From 61c76245dad53e4a27e5a317de15e20f371952fb Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Thu, 11 Sep 2014 12:50:21 -0500 Subject: [PATCH 3/3] Don't printout async callbacks when the task is skipped --- lib/ansible/callbacks.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/ansible/callbacks.py b/lib/ansible/callbacks.py index 95269bd145..2042dbc93a 100644 --- a/lib/ansible/callbacks.py +++ b/lib/ansible/callbacks.py @@ -415,7 +415,8 @@ class CliRunnerCallbacks(DefaultRunnerCallbacks): super(CliRunnerCallbacks, self).on_async_poll(host, res, jid, clock) def on_async_ok(self, host, res, jid): - display(" finished on %s => %s"%(jid, host, utils.jsonify(res,format=True)), runner=self.runner) + if jid: + display(" finished on %s => %s"%(jid, host, utils.jsonify(res,format=True)), runner=self.runner) super(CliRunnerCallbacks, self).on_async_ok(host, res, jid) def on_async_failed(self, host, res, jid): @@ -568,8 +569,9 @@ class PlaybookRunnerCallbacks(DefaultRunnerCallbacks): super(PlaybookRunnerCallbacks, self).on_async_poll(host,res,jid,clock) def on_async_ok(self, host, res, jid): - msg = " finished on %s"%(jid, host) - display(msg, color='cyan', runner=self.runner) + if jid: + msg = " finished on %s"%(jid, host) + display(msg, color='cyan', runner=self.runner) super(PlaybookRunnerCallbacks, self).on_async_ok(host, res, jid) def on_async_failed(self, host, res, jid):