From b8d7170711770684b44c5d37088a29c6b0c3e3a3 Mon Sep 17 00:00:00 2001 From: Avishay Traeger Date: Wed, 6 Feb 2013 23:04:15 +0200 Subject: [PATCH] Allow disabling of long-lived SSH connections. Currently, SSHPool connections are kept alive indefinitely. This can be good for many cases, but sometimes it is not desirable. For example, this causes unit tests which use SSH to not complete because of the open connections. This patch allows users to revert back to paramiko's regular timeout policy. Change-Id: Ifa96508b38d90610390c9ec3d48a7de75d02f08b --- cinder/utils.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cinder/utils.py b/cinder/utils.py index 1d5e89c5c..63786e594 100644 --- a/cinder/utils.py +++ b/cinder/utils.py @@ -277,7 +277,7 @@ class SSHPool(pools.Pool): self.port = port self.login = login self.password = password - self.conn_timeout = conn_timeout + self.conn_timeout = conn_timeout if conn_timeout else None self.privatekey = privatekey super(SSHPool, self).__init__(*args, **kwargs) @@ -310,9 +310,10 @@ class SSHPool(pools.Pool): # the sockettimeout to None and setting a keepalive packet so that, # the server will keep the connection open. All that does is send # a keepalive packet every ssh_conn_timeout seconds. - transport = ssh.get_transport() - transport.sock.settimeout(None) - transport.set_keepalive(self.conn_timeout) + if self.conn_timeout: + transport = ssh.get_transport() + transport.sock.settimeout(None) + transport.set_keepalive(self.conn_timeout) return ssh except Exception as e: msg = _("Error connecting via ssh: %s") % e -- 2.45.2