components/openstack/cinder/patches/07-launchpad-1460156.patch
changeset 6849 f9a2279efa0d
parent 6848 8e252a37ed0d
child 6850 f8d3bc724af7
--- a/components/openstack/cinder/patches/07-launchpad-1460156.patch	Wed Sep 07 14:48:41 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-This patch is to work-around the fact that Python 2.7.9 and beyond have
-implemented PEP 476 which enabled certificate verification by default
-and ZFSSAs may not be deployed with a valid, CA-signed certificate.
-
-commit 814cbb8a937e2a01f2c8814dd032c0f12baa6fd4
-Author: Diem Tran <[email protected]>
-Date:   Wed Jul 1 21:12:48 2015 +0000
-
-    Fix PEP476 & format message of Oracle ZFSSA drivers
-    
-    * Handles the PEP 476 by opting out certificate verification.
-    * Fix debug format messages in restclient.py
-    
-    Change-Id: Iaf9e546f0aed6b57fe9c2bf43aa2ce003a05ddf8
-    Closes-Bug: #1460156
-
---- cinder-2015.1.2/cinder/volume/drivers/zfssa/restclient.py.~1~	2015-10-13 09:27:35.000000000 -0700
-+++ cinder-2015.1.2/cinder/volume/drivers/zfssa/restclient.py	2016-01-31 00:56:12.410126083 -0800
-@@ -1,4 +1,4 @@
--# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
-+# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
- #
- #    Licensed under the Apache License, Version 2.0 (the "License"); you may
- #    not use this file except in compliance with the License. You may obtain
-@@ -17,6 +17,7 @@ ZFS Storage Appliance REST API Client Pr
- 
- import httplib
- import json
-+import ssl
- import StringIO
- import time
- import urllib2
-@@ -268,14 +269,27 @@ class RestClientURL(object):
-         retry = 0
-         response = None
- 
--        LOG.debug('Request: %s %s' % (request, zfssaurl))
-+        LOG.debug('Request: %(request)s %(url)s',
-+                  {'request': request, 'url': zfssaurl})
-         LOG.debug('Out headers: %s' % out_hdrs)
-         if body and body != '':
-             LOG.debug('Body: %s' % body)
- 
-+        context = None
-+        if hasattr(ssl, '_create_unverified_context'):
-+            context = ssl._create_unverified_context()
-+        else:
-+            context = None
-+
-         while retry < maxreqretries:
-             try:
--                response = urllib2.urlopen(req, timeout=self.timeout)
-+                if context:
-+                    response = urllib2.urlopen(req,
-+                                               timeout=self.timeout,
-+                                               context=context)
-+                else:
-+                    response = urllib2.urlopen(req,
-+                                               timeout=self.timeout)
-             except urllib2.HTTPError as err:
-                 if err.code == httplib.NOT_FOUND:
-                     LOG.debug('REST Not Found: %s' % err.code)
-@@ -315,8 +329,9 @@ class RestClientURL(object):
- 
-             break
- 
--        if response and response.getcode() == httplib.SERVICE_UNAVAILABLE and \
--           retry >= maxreqretries:
-+        if (response and
-+            (response.getcode() == httplib.SERVICE_UNAVAILABLE and
-+                retry >= maxreqretries)):
-             raise RestClientError(response.getcode(), name="ERR_HTTPError",
-                                   message="REST Not Available: Disabled")
-