]> git.ipfire.org Git - pakfire.git/commitdiff
Try harder to download repository metadata.
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 29 Mar 2012 22:32:23 +0000 (00:32 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 29 Mar 2012 22:32:23 +0000 (00:32 +0200)
python/pakfire/repository/remote.py

index f9c5c71b882fa2e068d861750e9de07ee1c5af4c..3d8c1ca005a088e92193602b4672be4012a7e402 100644 (file)
@@ -20,6 +20,7 @@
 ###############################################################################
 
 import os
+import urlgrabber
 
 import logging
 log = logging.getLogger("pakfire")
@@ -164,7 +165,14 @@ class RepositoryRemote(base.RepositoryFactory):
                grabber = self.mirrors.group(grabber)
 
                while True:
-                       data = grabber.urlread(filename, limit=METADATA_DOWNLOAD_LIMIT)
+                       try:
+                               data = grabber.urlread(filename, limit=METADATA_DOWNLOAD_LIMIT)
+                       except urlgrabber.grabber.URLGrabError, e:
+                               if e.errno == 256:
+                                       raise DownloadError, _("Could not update metadata for %s from any mirror server") % self.name
+
+                               grabber.increment_mirror(grabber)
+                               continue
 
                        # Parse new metadata for comparison.
                        md = metadata.Metadata(self.pakfire, metadata=data)