[yum-commits] urlgrabber/grabber.py

zpavlas at osuosl.org zpavlas at osuosl.org
Mon Sep 24 06:35:44 UTC 2012


 urlgrabber/grabber.py |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

New commits:
commit 2096880f53840abe82cb7b19b43dfc347fa4a6e3
Author: Zdeněk Pavlas <zpavlas at redhat.com>
Date:   Thu Sep 20 17:19:12 2012 +0200

    Ignore private mirror flag if there were failures.  BZ 859035
    
    Prefer private mirrors, but only if they didn't fail recently.

diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
index 09ef978..a33e017 100644
--- a/urlgrabber/grabber.py
+++ b/urlgrabber/grabber.py
@@ -2270,11 +2270,12 @@ def parallel_wait(meter=None):
                     if key in removed: continue
 
                     # estimate mirror speed
-                    speed = _TH.estimate(key)
+                    speed, fail = _TH.estimate(key)
                     speed /= 1 + host_con.get(key, 0)
 
                     # order by: least failures, private flag, best speed
-                    private = mirror.get('kwargs', {}).get('private', False)
+                    # ignore 'private' flag if there were failures
+                    private = not fail and mirror.get('kwargs', {}).get('private', False)
                     speed = -failed.get(key, 0), private, speed
                     if best is None or speed > best_speed:
                         best = mirror
@@ -2391,12 +2392,12 @@ class _TH:
 
         default_speed = default_grabber.opts.default_speed
         try: speed, fail, ts = _TH.hosts[host]
-        except KeyError: return default_speed
+        except KeyError: return default_speed, 0
 
         speed *= 2**-fail
         k = 2**((ts - time.time()) / default_grabber.opts.half_life)
         speed = k * speed + (1 - k) * default_speed
-        return speed
+        return speed, fail
 
 #####################################################################
 #  TESTING


More information about the Yum-commits mailing list