From 79c86bd033fc96b18f2833fc810601c335b323c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rajmund=20Hru=C5=A1ka?= <rajmund.hruska@cesnet.cz> Date: Mon, 24 Aug 2020 14:35:34 +0200 Subject: [PATCH] Add support for Python3 --- warden_ra/ejbcaws.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/warden_ra/ejbcaws.py b/warden_ra/ejbcaws.py index af63d99..ded68e2 100755 --- a/warden_ra/ejbcaws.py +++ b/warden_ra/ejbcaws.py @@ -13,12 +13,19 @@ import M2Crypto if sys.version_info[0] >= 3: - import urllib.request as urllib2 - import http.client as httplib + import urllib.request, urllib.error, urllib.parse + import http.client + + def get_https_handler(): + return urllib.request.HTTPSHandler else: import urllib2 import httplib + def get_https_handler(): + return urllib2.HTTPSHandler + + STATUS_FAILED = 11 STATUS_GENERATED = 40 STATUS_HISTORICAL = 60 @@ -145,10 +152,10 @@ REVOKATION_REASON_PRIVILEGESWITHDRAWN = 9 REVOKATION_REASON_AACOMPROMISE = 10 -class HTTPSClientAuthHandler(urllib2.HTTPSHandler): +class HTTPSClientAuthHandler(get_https_handler()): def __init__(self, key, cert): - urllib2.HTTPSHandler.__init__(self) + get_https_handler().__init__(self) self.key = key self.cert = cert @@ -156,7 +163,10 @@ class HTTPSClientAuthHandler(urllib2.HTTPSHandler): return self.do_open(self.get_connection, req) def get_connection(self, host, timeout=5): - return httplib.HTTPSConnection(host, key_file=self.key, cert_file=self.cert, timeout=timeout) + if sys.version_info[0] >= 3: + return http.client.HTTPSConnection(host, key_file=self.key, cert_file=self.cert, timeout=timeout) + else: + return httplib.HTTPSConnection(host, key_file=self.key, cert_file=self.cert, timeout=timeout) class HTTPSClientCertTransport(suds.transport.http.HttpTransport): @@ -168,7 +178,10 @@ class HTTPSClientCertTransport(suds.transport.http.HttpTransport): def u2open(self, u2request): tm = self.options.timeout - url = urllib2.build_opener(HTTPSClientAuthHandler(self.key, self.cert)) + if sys.version_info[0] >= 3: + url = urllib.request.build_opener(HTTPSClientAuthHandler(self.key, self.cert)) + else: + url = urllib2.build_opener(HTTPSClientAuthHandler(self.key, self.cert)) if self.u2ver() < 2.6: socket.setdefaulttimeout(tm) return url.open(u2request) -- GitLab