From 1a0601d29794cec1f735a10208364d11958c41ec Mon Sep 17 00:00:00 2001 From: Ondrej Nosek Date: Wed, 26 Jul 2023 01:30:12 +0200 Subject: [PATCH 2/4] Prepare the lookaside cache code for retries These changes should not have an impact on the original functionality. JIRA: RHELCMP-11210 Signed-off-by: Ondrej Nosek --- pyrpkg/lookaside.py | 96 ++++++++++++++++++++++----------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/pyrpkg/lookaside.py b/pyrpkg/lookaside.py index 3efcd88..f94ffdb 100644 --- a/pyrpkg/lookaside.py +++ b/pyrpkg/lookaside.py @@ -163,17 +163,17 @@ class CGILookasideCache(object): url = url.encode('utf-8') self.log.debug("Full url: %s", url) + c = pycurl.Curl() + c.setopt(pycurl.URL, url) + c.setopt(pycurl.HTTPHEADER, ['Pragma:']) + c.setopt(pycurl.NOPROGRESS, False) + c.setopt(pycurl.PROGRESSFUNCTION, self.print_progress) + c.setopt(pycurl.OPT_FILETIME, True) + c.setopt(pycurl.LOW_SPEED_LIMIT, 1000) + c.setopt(pycurl.LOW_SPEED_TIME, 300) + c.setopt(pycurl.FOLLOWLOCATION, 1) with open(outfile, 'wb') as f: - c = pycurl.Curl() - c.setopt(pycurl.URL, url) - c.setopt(pycurl.HTTPHEADER, ['Pragma:']) - c.setopt(pycurl.NOPROGRESS, False) - c.setopt(pycurl.PROGRESSFUNCTION, self.print_progress) - c.setopt(pycurl.OPT_FILETIME, True) c.setopt(pycurl.WRITEDATA, f) - c.setopt(pycurl.LOW_SPEED_LIMIT, 1000) - c.setopt(pycurl.LOW_SPEED_TIME, 300) - c.setopt(pycurl.FOLLOWLOCATION, 1) try: c.perform() tstamp = c.getinfo(pycurl.INFO_FILETIME) @@ -254,29 +254,29 @@ class CGILookasideCache(object): ('%ssum' % self.hashtype, hash), ('filename', filename)] - with io.BytesIO() as buf: - c = pycurl.Curl() - c.setopt(pycurl.URL, self.upload_url) - c.setopt(pycurl.WRITEFUNCTION, buf.write) - c.setopt(pycurl.HTTPPOST, post_data) - c.setopt(pycurl.FOLLOWLOCATION, 1) + c = pycurl.Curl() + c.setopt(pycurl.URL, self.upload_url) + c.setopt(pycurl.HTTPPOST, post_data) + c.setopt(pycurl.FOLLOWLOCATION, 1) - if self.client_cert is not None: - if os.path.exists(self.client_cert): - c.setopt(pycurl.SSLCERT, self.client_cert) - else: - self.log.warning("Missing certificate: %s" - % self.client_cert) + if self.client_cert is not None: + if os.path.exists(self.client_cert): + c.setopt(pycurl.SSLCERT, self.client_cert) + else: + self.log.warning("Missing certificate: %s" + % self.client_cert) - if self.ca_cert is not None: - if os.path.exists(self.ca_cert): - c.setopt(pycurl.CAINFO, self.ca_cert) - else: - self.log.warning("Missing certificate: %s", self.ca_cert) + if self.ca_cert is not None: + if os.path.exists(self.ca_cert): + c.setopt(pycurl.CAINFO, self.ca_cert) + else: + self.log.warning("Missing certificate: %s", self.ca_cert) - c.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_GSSNEGOTIATE) - c.setopt(pycurl.USERPWD, ':') + c.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_GSSNEGOTIATE) + c.setopt(pycurl.USERPWD, ':') + with io.BytesIO() as buf: + c.setopt(pycurl.WRITEFUNCTION, buf.write) try: c.perform() status = c.getinfo(pycurl.RESPONSE_CODE) @@ -341,30 +341,30 @@ class CGILookasideCache(object): ('mtime', str(int(os.stat(filepath).st_mtime))), ] - with io.BytesIO() as buf: - c = pycurl.Curl() - c.setopt(pycurl.URL, self.upload_url) - c.setopt(pycurl.NOPROGRESS, False) - c.setopt(pycurl.PROGRESSFUNCTION, self.print_progress) - c.setopt(pycurl.WRITEFUNCTION, buf.write) - c.setopt(pycurl.HTTPPOST, post_data) - c.setopt(pycurl.FOLLOWLOCATION, 1) + c = pycurl.Curl() + c.setopt(pycurl.URL, self.upload_url) + c.setopt(pycurl.NOPROGRESS, False) + c.setopt(pycurl.PROGRESSFUNCTION, self.print_progress) + c.setopt(pycurl.HTTPPOST, post_data) + c.setopt(pycurl.FOLLOWLOCATION, 1) - if self.client_cert is not None: - if os.path.exists(self.client_cert): - c.setopt(pycurl.SSLCERT, self.client_cert) - else: - self.log.warning("Missing certificate: %s", self.client_cert) + if self.client_cert is not None: + if os.path.exists(self.client_cert): + c.setopt(pycurl.SSLCERT, self.client_cert) + else: + self.log.warning("Missing certificate: %s", self.client_cert) - if self.ca_cert is not None: - if os.path.exists(self.ca_cert): - c.setopt(pycurl.CAINFO, self.ca_cert) - else: - self.log.warning("Missing certificate: %s", self.ca_cert) + if self.ca_cert is not None: + if os.path.exists(self.ca_cert): + c.setopt(pycurl.CAINFO, self.ca_cert) + else: + self.log.warning("Missing certificate: %s", self.ca_cert) - c.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_GSSNEGOTIATE) - c.setopt(pycurl.USERPWD, ':') + c.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_GSSNEGOTIATE) + c.setopt(pycurl.USERPWD, ':') + with io.BytesIO() as buf: + c.setopt(pycurl.WRITEFUNCTION, buf.write) try: c.perform() status = c.getinfo(pycurl.RESPONSE_CODE) -- 2.41.0