[yum-commits] Branch 'yum-3_2_X' - yum/Errors.py yum/__init__.py

James Antill james at osuosl.org
Fri Jul 16 19:11:55 UTC 2010


 yum/Errors.py   |   17 +++++++++++++++++
 yum/__init__.py |    3 ++-
 2 files changed, 19 insertions(+), 1 deletion(-)

New commits:
commit 0074ae11f40b7262eeade7727c4b4f64cc7fdf61
Author: James Antill <james at and.org>
Date:   Thu Jul 15 16:28:15 2010 -0400

    Fix API for anaconda catching rpm transaction failures, BZ 613817

diff --git a/yum/Errors.py b/yum/Errors.py
index 211625b..143c9a4 100644
--- a/yum/Errors.py
+++ b/yum/Errors.py
@@ -46,6 +46,23 @@ class YumTestTransactionError(YumBaseError):
 class YumRPMCheckError(YumBaseError):
     pass
         
+class YumRPMTransError(YumBaseError):
+    """ This class means rpm's .ts.run() returned known errors. We are compat.
+        with YumBaseError in that we print nicely, and compat. with traditional
+        usage of this error from runTransaction(). """
+    def __init__(self, msg, errors):
+        self.msg    = msg
+        self.errors = errors
+        # old YumBaseError raises from runTransaction used to raise just this
+        self.value  = self.errors
+
+    def __str__(self):
+        return "%s" %(self.msg,)
+
+    def __unicode__(self):
+        return '%s' % to_unicode(self.msg)
+
+
 class LockError(YumBaseError):
     def __init__(self, errno, msg, pid=0):
         YumBaseError.__init__(self)
diff --git a/yum/__init__.py b/yum/__init__.py
index c7d3a42..0b3f627 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -1367,7 +1367,8 @@ class YumBase(depsolve.Depsolve):
             self.logger.critical(_("Transaction couldn't start:"))
             for e in errors:
                 self.logger.critical(e[0]) # should this be 'to_unicoded'?
-            raise Errors.YumBaseError, _("Could not run transaction.")
+            raise Errors.YumRPMTransError(msg=_("Could not run transaction."),
+                                          errors=errors)
 
                           
         if not self.conf.keepcache:


More information about the Yum-commits mailing list