author | david.comay@oracle.com |
Thu, 30 Apr 2015 09:54:11 -0700 | |
branch | s11u2-sru |
changeset 4225 | 4d2c2cc972d9 |
permissions | -rw-r--r-- |
4225
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
1 |
This patch is to work-around the fact that Python 2.7.9 and beyond have |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
2 |
implemented PEP 476 which enabled certificate verification by default |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
3 |
and ZFSSAs may not be deployed with a valid, CA-signed certificate. |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
4 |
|
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
5 |
This patch may be suitable for pushing upsteam. |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
6 |
|
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
7 |
--- cinder-2014.2.2/cinder/volume/drivers/zfssa/restclient.py.~1~ 2015-02-05 08:03:26.000000000 -0800 |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
8 |
+++ cinder-2014.2.2/cinder/volume/drivers/zfssa/restclient.py 2015-04-23 17:32:01.898738656 -0700 |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
9 |
@@ -17,6 +17,7 @@ ZFS Storage Appliance REST API Client Pr |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
10 |
|
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
11 |
import httplib |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
12 |
import json |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
13 |
+import ssl |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
14 |
import StringIO |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
15 |
import time |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
16 |
import urllib2 |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
17 |
@@ -272,9 +273,18 @@ class RestClientURL(object): |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
18 |
if body and body != '': |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
19 |
LOG.debug('Body: %s' % body) |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
20 |
|
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
21 |
+ if hasattr(ssl, '_create_unverified_context'): |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
22 |
+ context = ssl._create_unverified_context() |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
23 |
+ else: |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
24 |
+ context = None |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
25 |
+ |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
26 |
while retry < maxreqretries: |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
27 |
try: |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
28 |
- response = urllib2.urlopen(req, timeout=self.timeout) |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
29 |
+ if context: |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
30 |
+ response = urllib2.urlopen(req, timeout=self.timeout, |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
31 |
+ context=context) |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
32 |
+ else: |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
33 |
+ response = urllib2.urlopen(req, timeout=self.timeout) |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
34 |
except urllib2.HTTPError as err: |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
35 |
if err.code == httplib.NOT_FOUND: |
4d2c2cc972d9
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
36 |
LOG.debug('REST Not Found: %s' % err.code) |