author | Matt Keenan <matt.keenan@oracle.com> |
Fri, 19 Jun 2015 09:35:02 +0100 | |
branch | s11-update |
changeset 4508 | d8924d870370 |
permissions | -rw-r--r-- |
4508
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
1 |
# |
d8924d870370
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 |
d8924d870370
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 |
d8924d870370
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 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
5 |
# should not. |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
6 |
# |
d8924d870370
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: |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
8 |
# |
d8924d870370
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 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
10 |
# |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
11 |
|
d8924d870370
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 |
d8924d870370
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 |
d8924d870370
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 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
15 |
self.sock = sock |
d8924d870370
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 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
17 |
try: |
d8924d870370
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 |
d8924d870370
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 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
20 |
- # propagated. |
d8924d870370
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) |
d8924d870370
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: |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
23 |
+ timeout = self.sock.gettimeout() |
d8924d870370
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: |
d8924d870370
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 |
d8924d870370
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 |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
27 |
+ # propagated. |
d8924d870370
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) |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
29 |
except AttributeError: |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
30 |
pass |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
31 |
|
d8924d870370
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 |
d8924d870370
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 |
d8924d870370
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): |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
35 |
def settimeout(self, n): |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
36 |
self.__timeout = n |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
37 |
|
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
38 |
+ def gettimeout(self): |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
39 |
+ return self.__timeout |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
40 |
+ |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
41 |
def link(self, other): |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
42 |
self.__mate = other |
d8924d870370
PSARC 2015/172 OpenStack Ironic (OpenStack Bare Metal Provisioning Service)
Matt Keenan <matt.keenan@oracle.com>
parents:
diff
changeset
|
43 |
self.__mate.__mate = self |