- add .errors attribute to NoMoreMirrorsRepoError.
- include URLs and error messages in unicode(e).
- exception2msg: prefer unicode(e) to e.value.
Also updated/fixed:
- We may never get URLGrabError(256) without MirrorGroup.
- When MG's failure_callback signals fail=1, the LAST error
is re-raised. We turn this into NoMoreMirrorsRepoError, too.
(NoMoreMirrors should actually read AllMirrorsFailed, but..)
---
yum/Errors.py | 9 ++++++++-
yum/i18n.py | 4 ++--
yum/yumRepo.py | 11 +++--------
3 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/yum/Errors.py b/yum/Errors.py
index c1af4ad..ca23c24 100644
--- a/yum/Errors.py
+++ b/yum/Errors.py
@@ -80,7 +80,14 @@ class DuplicateRepoError(RepoError):
pass
class NoMoreMirrorsRepoError(RepoError):
- pass
+ def __init__(self, value=None, errors=None):
+ RepoError.__init__(self, value)
+ self.errors = errors
+ def __unicode__(self):
+ ret = self.value
+ for url, msg in self.errors or []:
+ ret += '\n%s: %s' % (url, msg)
+ return ret
class ConfigError(YumBaseError):
pass
diff --git a/yum/i18n.py b/yum/i18n.py
index 76a258d..c4f72eb 100755
--- a/yum/i18n.py
+++ b/yum/i18n.py
@@ -474,12 +474,12 @@ def exception2msg(e):
# to_unicode(e.value); unicode(e); str(e);
# Call this so you don't have to care.
try:
- return to_unicode(e.value)
+ return unicode(e)
except:
pass
try:
- return unicode(e)
+ return to_unicode(e.value)
except:
pass
diff --git a/yum/yumRepo.py b/yum/yumRepo.py
index b7b4357..e60fc20 100644
--- a/yum/yumRepo.py
+++ b/yum/yumRepo.py
@@ -891,10 +891,7 @@ Insufficient space in download directory %s
if self.mirrorurls:
errstr +="\n You could try running: yum clean
expire-cache"
errstr +="\n To get a new set of mirrors."
- if e.errno == 256:
- raise Errors.NoMoreMirrorsRepoError, errstr
- else:
- raise Errors.RepoError, errstr
+ raise Errors.RepoError, errstr
else:
@@ -912,10 +909,8 @@ Insufficient space in download directory %s
)
except URLGrabError, e:
errstr = "failure: %s from %s: %s" % (relative, self.id, e)
- if e.errno == 256:
- raise Errors.NoMoreMirrorsRepoError, errstr
- else:
- raise Errors.RepoError, errstr
+ errors = getattr(e, 'errors', None)
+ raise Errors.NoMoreMirrorsRepoError(errstr, errors)
return result
__get = _getFile
--
1.7.4.4
_______________________________________________
Yum-devel mailing list
[email protected]
http://lists.baseurl.org/mailman/listinfo/yum-devel