From 309aba128cc7cec93c265f883275f701b14bb1d6 Mon Sep 17 00:00:00 2001 From: Peter Sprygada Date: Wed, 4 May 2016 11:12:26 -0400 Subject: [PATCH] handle name resolution errors more gracefully from shell.py This change will catch socket.gaierror exceptions from shell.py and return a more friendly message to the user --- lib/ansible/module_utils/shell.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/ansible/module_utils/shell.py b/lib/ansible/module_utils/shell.py index a01b41b0c5b..3ee770823ed 100644 --- a/lib/ansible/module_utils/shell.py +++ b/lib/ansible/module_utils/shell.py @@ -101,12 +101,15 @@ class Shell(object): if not look_for_keys: look_for_keys = password is None - self.ssh.connect(host, port=port, username=username, password=password, - timeout=timeout, look_for_keys=look_for_keys, pkey=pkey, - key_filename=key_filename, allow_agent=allow_agent) - - self.shell = self.ssh.invoke_shell() - self.shell.settimeout(timeout) + try: + self.ssh.connect(host, port=port, username=username, password=password, + timeout=timeout, look_for_keys=look_for_keys, pkey=pkey, + key_filename=key_filename, allow_agent=allow_agent) + + self.shell = self.ssh.invoke_shell() + self.shell.settimeout(timeout) + except socket.gaierror: + raise ShellError("unable to resolve host name") if self.kickstart: self.shell.sendall("\n")