author | david.comay@oracle.com |
Fri, 24 Apr 2015 10:53:56 -0700 | |
changeset 4189 | 599f274b9bcc |
permissions | -rw-r--r-- |
4189
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
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. |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
4 |
|
599f274b9bcc
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. |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
6 |
|
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
10 |
|
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
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 |
599f274b9bcc
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): |
599f274b9bcc
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 != '': |
599f274b9bcc
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) |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
20 |
|
599f274b9bcc
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'): |
599f274b9bcc
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() |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
23 |
+ else: |
599f274b9bcc
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 |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
25 |
+ |
599f274b9bcc
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: |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
27 |
try: |
599f274b9bcc
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) |
599f274b9bcc
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: |
599f274b9bcc
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, |
599f274b9bcc
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) |
599f274b9bcc
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
32 |
+ else: |
599f274b9bcc
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) |
599f274b9bcc
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: |
599f274b9bcc
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: |
599f274b9bcc
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) |