Wrap ssh connection validation with more logging
this is how it was done in barbican tempest plugin's own copy of
get_remote_client method, and seems to be useful for everyone.
Change-Id: I389efee2a6547fd32bf5c461ef8b9dbbcfd4e945
Related-Issue: PRODX-31324
(cherry picked from commit 1b6ca2769699cb055e92a8806197de3fa73c533c)
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index 5f30909..8b13dd5 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -777,7 +777,20 @@
linux_client = remote_client.RemoteClient(
ip_address, username, pkey=private_key, password=password,
server=server, servers_client=self.servers_client)
- linux_client.validate_authentication()
+ try:
+ linux_client.validate_authentication()
+ except Exception as e:
+ message = ('Initializing SSH connection to %(ip)s failed. '
+ 'Error: %(error)s' % {'ip': ip_address,
+ 'error': e})
+ caller = test_utils.find_test_caller()
+ if caller:
+ message = '(%s) %s' % (caller, message)
+ LOG.exception(message)
+ servers = (server,) if server else None
+ self.log_console_output(servers=servers)
+ raise
+
return linux_client
def image_create(self, name='scenario-img', **kwargs):