[yum-git] yum/packages.py yum/sqlitesack.py

Seth Vidal skvidal at linux.duke.edu
Fri Apr 18 19:14:03 UTC 2008


 yum/packages.py   |    2 ++
 yum/sqlitesack.py |   12 +++++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

New commits:
commit e30cbf8ca5a63801639671f480346a2cb83715c3
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Fri Apr 18 15:12:44 2008 -0400

    make errors raised for available and installed packages having incorrect attributes be the same
    mark as a FIXME to make this an attribute error after we break the api in
    the next major version change

diff --git a/yum/packages.py b/yum/packages.py
index 8a84ffa..49630f6 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -772,6 +772,8 @@ class YumHeaderPackage(YumAvailablePackage):
             raise Errors.MiscError, "Unknown header tag %s" % tag
 
     def __getattr__(self, thing):
+        #FIXME - if an error - return AttributeError, not KeyError 
+        # ONLY FIX THIS AFTER THE API BREAK
         return self.hdr[thing]
 
     def doepoch(self):
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index dfc5932..25bf162 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -37,8 +37,8 @@ def catchSqliteException(func):
     def newFunc(*args, **kwargs):
         try:
             return func(*args, **kwargs)
-        except sqlutils.sqlite.Error:
-            raise Errors.RepoError
+        except sqlutils.sqlite.Error, e:
+            raise Errors.RepoError, str(e.message)
 
     newFunc.__name__ = func.__name__
     newFunc.__doc__ = func.__doc__
@@ -129,9 +129,15 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
         dbname = varname
         if db2simplemap.has_key(varname):
             dbname = db2simplemap[varname]
-        r = self._sql_MD('primary',
+        try:
+            r = self._sql_MD('primary',
                          "SELECT %s FROM packages WHERE pkgId = ?" % dbname,
                          (self.pkgId,)).fetchone()
+        except Errors.RepoError, e:
+            if str(e).startswith('no such column'):
+                #FIXME - after API break make this an AttributeError Raise
+                raise KeyError, str(e)
+            raise                         
         value = r[0]
         if varname in {'vendor' : 1, 'packager' : 1, 'buildhost' : 1,
                        'license' : 1, 'group' : 1,



More information about the Yum-cvs-commits mailing list