components/openstack/cinder/patches/07-zfssa-pep-476.patch
author david.comay@oracle.com
Fri, 24 Apr 2015 10:53:56 -0700
changeset 4189 599f274b9bcc
permissions -rw-r--r--
20938347 ZFSSA Cinder driver needs to account for PEP 476 in Python 2.7.9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)