From 92ce8a0517c11a4185f5f13b824c518b3c15d8d6 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Wed, 24 Oct 2012 07:46:24 -0400 Subject: [PATCH] Refine new keyboard interrupt handling. Output still a bit gross. --- lib/ansible/runner/__init__.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index e3eaf51f37..e0a1791474 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -566,7 +566,7 @@ class Runner(object): try: return p.map(_executor_hook, hosts) except KeyboardInterrupt: - pool.terminate() + p.terminate() raise errors.AnsibleError("Interrupted") # ***************************************************** @@ -627,7 +627,14 @@ class Runner(object): for h in hosts ] del self.host_set elif self.forks > 1: - results = self._parallel_exec(hosts) + try: + results = self._parallel_exec(hosts) + except IOError, ie: + print ie.errno + if ie.errno == 32: + # broken pipe from Ctrl+C + raise errors.AnsibleError("interupted") + raise else: results = [ self._executor(h) for h in hosts ] return self._partition_results(results)