From: Avishay Traeger Date: Wed, 6 Feb 2013 21:04:15 +0000 (+0200) Subject: Allow disabling of long-lived SSH connections. X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=b8d7170711770684b44c5d37088a29c6b0c3e3a3;p=openstack-build%2Fcinder-build.git 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 --- 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