When downloading, it can be useful to distinguish between an error due
to no more mirrors being available and other errors. Attached patch
adds a new error type so that if you care, you can catch it instead and
then uses it in yumRepo._getFile().
Sound reasonable? Better ideas?
Jeremy
Index: yum/Errors.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/Errors.py,v
retrieving revision 1.15
diff -u -u -w -r1.15 Errors.py
--- yum/Errors.py 3 Feb 2007 21:30:08 -0000 1.15
+++ yum/Errors.py 27 Jun 2007 17:37:07 -0000
@@ -48,6 +48,11 @@
RepoError.__init__(self)
self.value = value
+class NoMoreMirrorsRepoError(RepoError):
+ def __init__(self, value=None):
+ RepoError.__init__(self)
+ self.value = value
+
class ConfigError(YumBaseError):
def __init__(self, value=None):
YumBaseError.__init__(self)
Index: yum/yumRepo.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/yumRepo.py,v
retrieving revision 1.49
diff -u -u -w -r1.49 yumRepo.py
--- yum/yumRepo.py 21 Jun 2007 18:01:20 -0000 1.49
+++ yum/yumRepo.py 27 Jun 2007 17:37:08 -0000
@@ -553,8 +553,12 @@
range=(start, end),
)
except URLGrabError, e:
- raise Errors.RepoError, \
- "failed to retrieve %s from %s\nerror was %s" % (relative, self.id, e)
+ errstr = "failed to retrieve %s from %s\nerror was %s" % (relative, self.id, e)
+ if e.errno == 256:
+ raise Errors.NoMoreMirrorsRepoError, errstr
+ else:
+ raise Errors.RepoError, errstr
+
else:
try:
@@ -567,7 +571,11 @@
http_headers=headers,
)
except URLGrabError, e:
- raise Errors.RepoError, "failure: %s from %s: %s" % (relative, self.id, e)
+ errstr = "failure: %s from %s: %s" % (relative, self.id, e)
+ if e.errno == 256:
+ raise Errors.NoMoreMirrorsRepoError, errstr
+ else:
+ raise Errors.RepoError, errstr
return result
__get = _getFile
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel