[tor-commits] [doctor/master] Move curling to a helper

atagar at torproject.org atagar at torproject.org
Mon Feb 12 03:22:52 UTC 2018


commit 22080b3f4b08f05c2c6e2fa841c259620ed66d72
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Feb 11 18:23:35 2018 -0800

    Move curling to a helper
    
    No reason to bundle retries and such in the main function.
---
 package_versions.py | 36 +++++++++++++++++++++---------------
 1 file changed, 21 insertions(+), 15 deletions(-)

diff --git a/package_versions.py b/package_versions.py
index 9d56659..6c6e3f6 100755
--- a/package_versions.py
+++ b/package_versions.py
@@ -83,6 +83,17 @@ PACKAGES = [
 log = util.get_logger('package_versions')
 
 
+def fetch_url(url):
+  for i in range(3):
+    try:
+      return urllib2.urlopen(url, timeout = 5).read()
+    except Exception as exc:
+      if i < 2:
+        time.sleep(2 ** i)
+      else:
+        raise IOError(str(exc))
+
+
 def gentoo_version(request):
   # Unlike other platforms gentoo lists all package versions, so we
   # need to figure out what's the latest.
@@ -113,19 +124,9 @@ def email_content():
     lines.append(DIV)
 
     for package in packages:
-      request, request_exc = None, None
-
-      for i in range(3):
-        try:
-          request = urllib2.urlopen(package.url, timeout = 5).read()
-          break
-        except Exception as exc:
-          request_exc = exc  # note exception and retry
+      try:
+        request = fetch_url(package.url)
 
-          if i != 2:
-            time.sleep(2 ** i)
-
-      if request:
         if package.platform == 'gentoo':
           current_version = gentoo_version(request)
         else:
@@ -140,9 +141,14 @@ def email_content():
         else:
           msg = 'current version is %s but wiki has %s' % (current_version, package.version)
           has_issue = True
-      else:
-        msg = 'unable to retrieve current version: %s' % request_exc
-        has_issue = True
+      except IOError as exc:
+        msg = 'unable to retrieve current version: %s' % exc
+
+        # Gentoo's site fails pretty routinely. No need to generate notices for
+        # it.
+
+        if package.platform == 'gentoo':
+          has_issue = True
 
       lines.append(COLUMN % (project, package.platform, package.version, msg))
 





More information about the tor-commits mailing list