components/python/paramiko/patches/02-socket-timeout.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Thu, 20 Oct 2016 23:00:49 -0700
changeset 7144 75dd46f584db
parent 4460 e5811789e2fb
permissions -rw-r--r--
Added tag s12-111 for changeset bc980fed463e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4460
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     1
#
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     2
# This patch addresses an issue when creating a paramiko client
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     3
# connection and a timeout is specified. When a Transport object is being
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     4
# instantiated, it overrides this timeout value all the time and it
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     5
# should not.
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     6
#
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     7
# This patch is suitable for the upstream and a bug has been filed:
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     8
#
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
     9
#	https://github.com/paramiko/paramiko/issues/476
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    10
#
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    11
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    12
--- paramiko-1.15.2/paramiko/transport.py.~2~	2015-04-12 18:39:08.295798093 -0700
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    13
+++ paramiko-1.15.2/paramiko/transport.py	2015-04-12 18:39:49.250225381 -0700
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    14
@@ -270,10 +270,13 @@ class Transport (threading.Thread, Closi
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    15
         self.sock = sock
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    16
         # Python < 2.3 doesn't have the settimeout method - RogerB
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    17
         try:
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    18
-            # we set the timeout so we can check self.active periodically to
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    19
-            # see if we should bail.  socket.timeout exception is never
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    20
-            # propagated.
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    21
-            self.sock.settimeout(0.1)
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    22
+            # Only settimeout if not already set:
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    23
+            timeout = self.sock.gettimeout()
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    24
+            if timeout is None or timeout <= 0:
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    25
+                # we set the timeout so we can check self.active periodically
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    26
+                # to see if we should bail.  socket.timeout exception is never
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    27
+                # propagated.
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    28
+                self.sock.settimeout(0.1)
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    29
         except AttributeError:
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    30
             pass
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    31
 
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    32
--- paramiko-1.15.2/tests/loop.py.~1~	2014-09-06 16:07:24.000000000 -0700
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    33
+++ paramiko-1.15.2/tests/loop.py	2015-04-12 17:36:15.218573915 -0700
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    34
@@ -73,6 +73,9 @@ class LoopSocket (object):
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    35
     def settimeout(self, n):
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    36
         self.__timeout = n
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    37
 
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    38
+    def gettimeout(self):
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    39
+        return self.__timeout
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    40
+
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    41
     def link(self, other):
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    42
         self.__mate = other
e5811789e2fb PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff changeset
    43
         self.__mate.__mate = self