From 96532de199490fead1470f323dc47b40118a4b3d Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Jun 01 2017 07:39:24 +0000 Subject: no need to port compatrequests or old ssl code --- diff --git a/koji/compatrequests.py b/koji/compatrequests.py index 3422907..d56f0f2 100644 --- a/koji/compatrequests.py +++ b/koji/compatrequests.py @@ -7,14 +7,13 @@ module that is based on the older codepaths in koji. It only provides the bits that koji needs. """ -from __future__ import absolute_import -import six.moves.http_client -import six.moves.urllib +import httplib +import urlparse +import urllib import sys -from .ssl import SSLCommon -import six +import ssl.SSLCommon try: - from .ssl import ssl as pyssl + from ssl import ssl as pyssl except ImportError: # pragma: no cover pass @@ -26,7 +25,7 @@ class Session(object): def post(self, url, data=None, headers=None, stream=None, verify=None, cert=None, timeout=None): - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) if uri[3]: handler = "%s?%s" % (uri[2], uri[3]) else: @@ -45,11 +44,7 @@ class Session(object): def get_connection(self, uri, cert, verify, timeout): scheme = uri[0] - # TODO: unnecessary remerging of values - parsed = six.moves.urllib.parse.urlparse('%s://%s' % (uri[0], uri[1])) - host = parsed.hostname - port = parsed.port - #host, port = six.moves.urllib.splitport(uri[1]) + host, port = urllib.splitport(uri[1]) key = (scheme, host, cert, verify, timeout) #if self.connection and self.opts.get('keepalive'): if self.connection: # XXX honor keepalive @@ -60,13 +55,13 @@ class Session(object): # Otherwise we make a new one default_port = 80 certs = {} - if isinstance(verify, six.string_types): + if isinstance(verify, basestring): certs['peer_ca_cert'] = verify if cert: certs['key_and_cert'] = cert - ctx = SSLCommon.CreateSSLContext(certs) + ctx = ssl.SSLCommon.CreateSSLContext(certs) cnxOpts = {'ssl_context' : ctx} - cnxClass = SSLCommon.PlgHTTPSConnection + cnxClass = ssl.SSLCommon.PlgHTTPSConnection default_port = 443 elif scheme == 'https': cnxOpts = {} @@ -89,11 +84,11 @@ class Session(object): # no verify ctx = pyssl._create_unverified_context() cnxOpts['context'] = ctx - cnxClass = six.moves.http_client.HTTPSConnection + cnxClass = httplib.HTTPSConnection default_port = 443 elif scheme == 'http': cnxOpts = {} - cnxClass = six.moves.http_client.HTTPConnection + cnxClass = httplib.HTTPConnection else: raise IOError("unsupported protocol: %s" % scheme) @@ -128,7 +123,7 @@ class Response(object): def raise_for_status(self): if self.response.status >= 400: - raise six.moves.http_client.HTTPException("HTTP %s: %s" % (self.response.status, + raise httplib.HTTPException("HTTP %s: %s" % (self.response.status, self.response.reason)) diff --git a/koji/ssl/SSLCommon.py b/koji/ssl/SSLCommon.py index 0cff1ee..a1ab2bb 100644 --- a/koji/ssl/SSLCommon.py +++ b/koji/ssl/SSLCommon.py @@ -14,11 +14,10 @@ # # Copyright 2005 Dan Williams and Red Hat, Inc. -from __future__ import absolute_import import os, sys from OpenSSL import SSL -from . import SSLConnection -import six.moves.http_client +import SSLConnection +import httplib import socket def our_verify(connection, x509, errNum, errDepth, preverifyOK): @@ -47,13 +46,13 @@ def CreateSSLContext(certs): return ctx -class PlgHTTPSConnection(six.moves.http_client.HTTPConnection): +class PlgHTTPSConnection(httplib.HTTPConnection): "This class allows communication via SSL." - response_class = six.moves.http_client.HTTPResponse + response_class = httplib.HTTPResponse def __init__(self, host, port=None, ssl_context=None, strict=None, timeout=None): - six.moves.http_client.HTTPConnection.__init__(self, host, port, strict) + httplib.HTTPConnection.__init__(self, host, port, strict) self.ssl_ctx = ssl_context self._timeout = timeout diff --git a/koji/ssl/SSLConnection.py b/koji/ssl/SSLConnection.py index 92de572..d854770 100644 --- a/koji/ssl/SSLConnection.py +++ b/koji/ssl/SSLConnection.py @@ -6,7 +6,6 @@ # Modifications by Dan Williams -from __future__ import absolute_import from OpenSSL import SSL import time, socket, select @@ -107,7 +106,7 @@ class SSLConnection: try: sent = con.send(data, flags) - except SSL.SysCallError as e: + except SSL.SysCallError, e: if e[0] == 32: # Broken Pipe self.close() sent = 0 @@ -143,7 +142,7 @@ class SSLConnection: return None except SSL.WantReadError: time.sleep(0.2) - except SSL.SysCallError as e: + except SSL.SysCallError, e: if e.args == (-1, 'Unexpected EOF'): break raise diff --git a/koji/ssl/__init__.py b/koji/ssl/__init__.py index fb2e3c7..7b4c2b3 100644 --- a/koji/ssl/__init__.py +++ b/koji/ssl/__init__.py @@ -1,7 +1,6 @@ # identify this as the ssl module # our own ssl submodule masks python's in the main lib, so we import this here -from __future__ import absolute_import try: import ssl # python's ssl module except ImportError: # pragma: no cover diff --git a/tests/test_lib/test_compatrequests.py b/tests/test_lib/test_compatrequests.py index dfd9226..c67f585 100644 --- a/tests/test_lib/test_compatrequests.py +++ b/tests/test_lib/test_compatrequests.py @@ -1,8 +1,7 @@ -from __future__ import absolute_import -import six.moves.http_client +import httplib import mock import unittest -import six.moves.urllib +import urlparse import koji.compatrequests @@ -60,7 +59,7 @@ class TestResponse(unittest.TestCase): self.response.response.status = 404 self.response.response.reason = 'Not Found' self.response.response.getheader.return_value = 42 - with self.assertRaises(six.moves.http_client.HTTPException): + with self.assertRaises(httplib.HTTPException): self.response.raise_for_status() @@ -106,7 +105,7 @@ class TestSessionConnection(unittest.TestCase): # no cert, no verify, no timeout session = koji.compatrequests.Session() url = 'http://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) cnx = session.get_connection(uri, None, None, None) HTTPConnection.assert_called_once_with('www.fakedomain234234.org', 80) @@ -124,7 +123,7 @@ class TestSessionConnection(unittest.TestCase): def test_cached(self): session = koji.compatrequests.Session() url = 'http://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) key = ('http', 'www.fakedomain234234.org', None, None, None) cnx = mock.MagicMock() session.connection = (key, cnx) @@ -135,10 +134,10 @@ class TestSessionConnection(unittest.TestCase): def test_badproto(self): session = koji.compatrequests.Session() url = 'nosuchproto://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) with self.assertRaises(IOError): - session.get_connection(uri, None, None, None) + ret = session.get_connection(uri, None, None, None) @mock.patch('httplib.HTTPConnection') @mock.patch('sys.version_info', new=(2, 7, 12, 'final', 0)) @@ -146,12 +145,12 @@ class TestSessionConnection(unittest.TestCase): # no cert, no verify session = koji.compatrequests.Session() url = 'http://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) timeout = 1701 - cnx = session.get_connection(uri, None, None, timeout) - HTTPConnection.assert_called_once_with('www.fakedomain234234.org', 80, timeout=timeout) - key = ('http', 'www.fakedomain234234.org', None, None, timeout) + cnx = session.get_connection(uri, None, None, 1701) + HTTPConnection.assert_called_once_with('www.fakedomain234234.org', 80, timeout=1701) + key = ('http', 'www.fakedomain234234.org', None, None, 1701) self.assertEqual(session.connection, (key, cnx)) @mock.patch('httplib.HTTPConnection') @@ -160,22 +159,22 @@ class TestSessionConnection(unittest.TestCase): # no cert, no verify session = koji.compatrequests.Session() url = 'http://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) timeout = 1701 - cnx = session.get_connection(uri, None, None, timeout) + cnx = session.get_connection(uri, None, None, 1701) HTTPConnection.assert_called_once_with('www.fakedomain234234.org', 80) - key = ('http', 'www.fakedomain234234.org', None, None, timeout) + key = ('http', 'www.fakedomain234234.org', None, None, 1701) self.assertEqual(session.connection, (key, cnx)) cnx.connect.assert_called_once() - cnx.sock.settimeout.assert_called_with(timeout) + cnx.sock.settimeout.assert_called_with(1701) @mock.patch('httplib.HTTPSConnection') def test_https(self, HTTPSConnection): # no cert, no verify, no timeout session = koji.compatrequests.Session() url = 'https://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) cnx = session.get_connection(uri, None, None, None) HTTPSConnection.assert_called_once_with('www.fakedomain234234.org', 443) @@ -188,7 +187,7 @@ class TestSessionConnection(unittest.TestCase): # no verify, no timeout session = koji.compatrequests.Session() url = 'https://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) cert = '/path/to/cert/file' context = mock.MagicMock() CreateSSLContext.return_value = context @@ -205,7 +204,7 @@ class TestSessionConnection(unittest.TestCase): # no cert, verify=False, no timeout session = koji.compatrequests.Session() url = 'https://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) context = mock.MagicMock() create_unverified_context.return_value = context @@ -221,7 +220,7 @@ class TestSessionConnection(unittest.TestCase): # no cert, verify=False, no timeout session = koji.compatrequests.Session() url = 'https://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) cnx = session.get_connection(uri, None, False, None) HTTPSConnection.assert_called_once_with('www.fakedomain234234.org', 443) @@ -236,7 +235,7 @@ class TestSessionConnection(unittest.TestCase): # no cert, no timeout session = koji.compatrequests.Session() url = 'https://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) context = mock.MagicMock() SSLContext.return_value = context verify = '/path/to/verify/cert' @@ -257,7 +256,7 @@ class TestSessionConnection(unittest.TestCase): # no cert, no timeout session = koji.compatrequests.Session() url = 'https://www.fakedomain234234.org/KOJIHUB?a=1&b=2' - uri = six.moves.urllib.parse.urlsplit(url) + uri = urlparse.urlsplit(url) verify = '/path/to/verify/cert' cnx = session.get_connection(uri, None, verify, None)