Fix https stack trace on python 3.4 client

When using the client with python 3.4 and no ssl compression the following
stack trace ocurrs:

 TypeError: startswith first arg must be bytes or a tuple of bytes, not str

Closes-bug: 1442883
Related-bug: 1357430
Change-Id: I8e28f0bb1f3e866f11851247ce31470ca8c2af4f
This commit is contained in:
Stuart McLaren 2015-04-11 10:28:20 +00:00
parent c698b4e322
commit bd0aa0672e
2 changed files with 3 additions and 8 deletions

View File

@ -158,7 +158,9 @@ class HTTPSAdapter(adapters.HTTPAdapter):
# NOTE(flaper87): Make sure the url is encoded, otherwise
# python's standard httplib will fail with a TypeError.
url = super(HTTPSAdapter, self).request_url(request, proxies)
return encodeutils.safe_encode(url)
if six.PY2:
url = encodeutils.safe_encode(url)
return url
def _create_glance_httpsconnectionpool(self, url):
kw = self.poolmanager.connection_kw

View File

@ -84,11 +84,6 @@ class TestHTTPSVerifyCert(testtools.TestCase):
server_thread.daemon = True
server_thread.start()
def _skip_python3(self):
if six.PY3:
msg = ("Skipping: python3 for now. Requires bugfix.")
self.skipTest(msg)
def test_v1_requests_cert_verification(self):
"""v1 regression test for bug 115260."""
port = self.port
@ -108,7 +103,6 @@ class TestHTTPSVerifyCert(testtools.TestCase):
def test_v1_requests_cert_verification_no_compression(self):
"""v1 regression test for bug 115260."""
self._skip_python3()
port = self.port
url = 'https://0.0.0.0:%d' % port
@ -143,7 +137,6 @@ class TestHTTPSVerifyCert(testtools.TestCase):
def test_v2_requests_cert_verification_no_compression(self):
"""v2 regression test for bug 115260."""
self._skip_python3()
port = self.port
url = 'https://0.0.0.0:%d' % port