From d47d0b1d7fa9fa329a8da8addf1a42d62aa20274 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Thu, 6 Aug 2015 22:16:30 -0400 Subject: [PATCH] now continue/abort mode allows ignoring other input --- lib/ansible/plugins/action/pause.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/ansible/plugins/action/pause.py b/lib/ansible/plugins/action/pause.py index d4ebf802b6b..4eeaa6657e2 100644 --- a/lib/ansible/plugins/action/pause.py +++ b/lib/ansible/plugins/action/pause.py @@ -135,11 +135,10 @@ class ActionModule(ActionBase): if seconds is not None: signal.alarm(0) self._display.display("Press 'C' to continue the play or 'A' to abort \r"), - key_pressed = self._connection._new_stdin.read(1) - if key_pressed.lower() == 'a': - raise AnsibleError('user requested abort!') - elif key_pressed.lower() == 'c': + if self._c_or_a(): break + else: + raise AnsibleError('user requested abort!') except AnsibleTimeoutExceeded: # this is the exception we expect when the alarm signal @@ -163,3 +162,10 @@ class ActionModule(ActionBase): return result + def _c_or_a(self): + while True: + key_pressed = self._connection._new_stdin.read(1) + if key_pressed.lower() == 'a': + return False + elif key_pressed.lower() == 'c': + return True