From ac192a5ab4338a8cf97082bebcb2be96f09151a7 Mon Sep 17 00:00:00 2001 From: Riccardo Murri Date: Fri, 31 Mar 2017 14:41:49 +0200 Subject: [PATCH] SshTransport: ensure that connection port and timeout are numeric types. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Should solve errors like:: gservers: [2017-03-29 21:28:58] DEBUG : Connecting to host ‘BLAHBLAH.something.org' (port 22) as user ‘A_PERSON' via SSH (timeout 30s)... gservers: [2017-03-29 21:28:59] ERROR : Could not create ssh connection to BLAHBLAH.something.org: TypeError: %d format: a number is required, not str Thanks to Kyle Robertson for reporting. --- gc3libs/backends/transport.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gc3libs/backends/transport.py b/gc3libs/backends/transport.py index 5b866027..43ce10ea 100755 --- a/gc3libs/backends/transport.py +++ b/gc3libs/backends/transport.py @@ -478,7 +478,7 @@ def set_connection_params(self, hostname, username=None, keyfile=None, self.username = username if port is None: - self.port = ssh_options.get('port', gc3libs.Default.SSH_PORT) + self.port = int(ssh_options.get('port', gc3libs.Default.SSH_PORT)) else: self.port = int(port) @@ -489,8 +489,8 @@ def set_connection_params(self, hostname, username=None, keyfile=None, self.keyfile = keyfile if timeout is None: - self.timeout = ssh_options.get('connecttimeout', - gc3libs.Default.SSH_CONNECT_TIMEOUT) + self.timeout = float(ssh_options.get('connecttimeout', + gc3libs.Default.SSH_CONNECT_TIMEOUT)) else: self.timeout = float(timeout) @@ -529,8 +529,8 @@ def connect(self): gc3libs.log.warning( "Could not read 'known hosts' SSH keys (%s: %s)." " I'm ignoring the error and continuing anyway," - " but this may mean trouble later on." - % (err.__class__.__name__, err)) + " but this could mean trouble later on.", + err.__class__.__name__, err) pass else: gc3libs.log.info("Ignoring ssh host key file.") @@ -560,7 +560,7 @@ def connect(self): except Exception as ex: gc3libs.log.error( "Could not create ssh connection to %s: %s: %s", - self.remote_frontend, ex.__class__.__name__, str(ex)) + self.remote_frontend, ex.__class__.__name__, ex) self._is_open = False # Try to understand why the ssh connection failed.