diff options
Diffstat (limited to 'lib/ansible/modules/utilities/logic/wait_for.py')
-rw-r--r-- | lib/ansible/modules/utilities/logic/wait_for.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/ansible/modules/utilities/logic/wait_for.py b/lib/ansible/modules/utilities/logic/wait_for.py index c226c0b6bc..0b93f31091 100644 --- a/lib/ansible/modules/utilities/logic/wait_for.py +++ b/lib/ansible/modules/utilities/logic/wait_for.py @@ -160,6 +160,7 @@ EXAMPLES = ''' import binascii import datetime +import errno import math import os import re @@ -549,15 +550,27 @@ def main(): break # Shutdown the client socket - s.shutdown(socket.SHUT_RDWR) - s.close() + try: + s.shutdown(socket.SHUT_RDWR) + except socket.error as e: + if e.errno != errno.ENOTCONN: + raise + # else, the server broke the connection on its end, assume it's not ready + else: + s.close() if matched: # Found our string, success! break else: # Connection established, success! - s.shutdown(socket.SHUT_RDWR) - s.close() + try: + s.shutdown(socket.SHUT_RDWR) + except socket.error as e: + if e.errno != errno.ENOTCONN: + raise + # else, the server broke the connection on its end, assume it's not ready + else: + s.close() break # Conditions not yet met, wait and try again |