author | Devjani Ray <devjani.ray@oracle.com> |
Fri, 20 May 2016 17:42:29 -0400 | |
branch | s11u3-sru |
changeset 6035 | c9748fcc32de |
parent 4223 | components/openstack/cinder/patches/07-zfssa-pep-476.patch@d3541a291d5e |
permissions | -rw-r--r-- |
4223
d3541a291d5e
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 |
d3541a291d5e
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 |
d3541a291d5e
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. |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
4 |
|
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
5 |
commit 814cbb8a937e2a01f2c8814dd032c0f12baa6fd4 |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
6 |
Author: Diem Tran <[email protected]> |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
7 |
Date: Wed Jul 1 21:12:48 2015 +0000 |
4223
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
8 |
|
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
9 |
Fix PEP476 & format message of Oracle ZFSSA drivers |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
10 |
|
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
11 |
* Handles the PEP 476 by opting out certificate verification. |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
12 |
* Fix debug format messages in restclient.py |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
13 |
|
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
14 |
Change-Id: Iaf9e546f0aed6b57fe9c2bf43aa2ce003a05ddf8 |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
15 |
Closes-Bug: #1460156 |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
16 |
|
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
17 |
--- cinder-2015.1.2/cinder/volume/drivers/zfssa/restclient.py.~1~ 2015-10-13 09:27:35.000000000 -0700 |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
18 |
+++ cinder-2015.1.2/cinder/volume/drivers/zfssa/restclient.py 2016-01-31 00:56:12.410126083 -0800 |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
19 |
@@ -1,4 +1,4 @@ |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
20 |
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
21 |
+# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
22 |
# |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
23 |
# Licensed under the Apache License, Version 2.0 (the "License"); you may |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
24 |
# not use this file except in compliance with the License. You may obtain |
4223
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
25 |
@@ -17,6 +17,7 @@ ZFS Storage Appliance REST API Client Pr |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
26 |
|
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
27 |
import httplib |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
28 |
import json |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
29 |
+import ssl |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
30 |
import StringIO |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
31 |
import time |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
32 |
import urllib2 |
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
33 |
@@ -268,14 +269,27 @@ class RestClientURL(object): |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
34 |
retry = 0 |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
35 |
response = None |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
36 |
|
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
37 |
- LOG.debug('Request: %s %s' % (request, zfssaurl)) |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
38 |
+ LOG.debug('Request: %(request)s %(url)s', |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
39 |
+ {'request': request, 'url': zfssaurl}) |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
40 |
LOG.debug('Out headers: %s' % out_hdrs) |
4223
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
41 |
if body and body != '': |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
42 |
LOG.debug('Body: %s' % body) |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
43 |
|
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
44 |
+ context = None |
4223
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
45 |
+ if hasattr(ssl, '_create_unverified_context'): |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
46 |
+ context = ssl._create_unverified_context() |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
47 |
+ else: |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
48 |
+ context = None |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
49 |
+ |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
50 |
while retry < maxreqretries: |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
51 |
try: |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
52 |
- response = urllib2.urlopen(req, timeout=self.timeout) |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
53 |
+ if context: |
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
54 |
+ response = urllib2.urlopen(req, |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
55 |
+ timeout=self.timeout, |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
56 |
+ context=context) |
4223
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
57 |
+ else: |
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
58 |
+ response = urllib2.urlopen(req, |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
59 |
+ timeout=self.timeout) |
4223
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
60 |
except urllib2.HTTPError as err: |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
61 |
if err.code == httplib.NOT_FOUND: |
d3541a291d5e
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
david.comay@oracle.com
parents:
diff
changeset
|
62 |
LOG.debug('REST Not Found: %s' % err.code) |
6035
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
63 |
@@ -315,8 +329,9 @@ class RestClientURL(object): |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
64 |
|
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
65 |
break |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
66 |
|
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
67 |
- if response and response.getcode() == httplib.SERVICE_UNAVAILABLE and \ |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
68 |
- retry >= maxreqretries: |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
69 |
+ if (response and |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
70 |
+ (response.getcode() == httplib.SERVICE_UNAVAILABLE and |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
71 |
+ retry >= maxreqretries)): |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
72 |
raise RestClientError(response.getcode(), name="ERR_HTTPError", |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
73 |
message="REST Not Available: Disabled") |
c9748fcc32de
PSARC 2015/535 OpenStack service updates for Kilo
Devjani Ray <devjani.ray@oracle.com>
parents:
4223
diff
changeset
|
74 |