[Yum-devel] [PATCH 1/2] Add a pkg_warn to install, for groupinstall.

James Antill james at and.org
Fri Jul 29 16:40:34 UTC 2011


---
 yum/__init__.py |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/yum/__init__.py b/yum/__init__.py
index f97378c..d93fe8f 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -3447,6 +3447,18 @@ class YumBase(depsolve.Depsolve):
            
            """
         
+
+        #  This is kind of hacky, we really need a better way to do errors than
+        # doing them directly from .install/etc. ... but this is easy. *sigh*.
+        pkg_warn = kwargs.get('pkg_warning_level', 'flibble')
+        def _dbg2(*args, **kwargs):
+            self.verbose_logger.log(logginglevels.DEBUG_2, *args, **kwargs)
+        level2func = {'debug2' : _dbg2,
+                      'warning' : self.verbose_logger.warning}
+        if pkg_warn not in level2func:
+            pkg_warn = 'warning'
+        pkg_warn = level2func[pkg_warn]
+
         pkgs = []
         was_pattern = False
         if po:
@@ -3602,23 +3614,23 @@ class YumBase(depsolve.Depsolve):
                     already_obs = pkgs[0]
 
                 if already_obs:
-                    self.verbose_logger.warning(_('Package %s is obsoleted by %s which is already installed'), 
-                                                po, already_obs)
+                    pkg_warn(_('Package %s is obsoleted by %s which is already installed'), 
+                             po, already_obs)
                 else:
                     if 'provides_for' in kwargs:
                         if not obsoleting_pkg.provides_for(kwargs['provides_for']):
-                            self.verbose_logger.warning(_('Package %s is obsoleted by %s, but obsoleting package does not provide for requirements'),
-                                                  po.name, obsoleting_pkg.name)
+                            pkg_warn(_('Package %s is obsoleted by %s, but obsoleting package does not provide for requirements'),
+                                     po.name, obsoleting_pkg.name)
                             continue
-                    self.verbose_logger.warning(_('Package %s is obsoleted by %s, trying to install %s instead'),
-                        po.name, obsoleting_pkg.name, obsoleting_pkg)
+                    pkg_warn(_('Package %s is obsoleted by %s, trying to install %s instead'),
+                             po.name, obsoleting_pkg.name, obsoleting_pkg)
                     tx_return.extend(self.install(po=obsoleting_pkg))
                 continue
             
             # make sure it's not already installed
             if self.rpmdb.contains(po=po):
                 if not self.tsInfo.getMembersWithState(po.pkgtup, TS_REMOVE_STATES):
-                    self.verbose_logger.warning(_('Package %s already installed and latest version'), po)
+                    pkg_warn(_('Package %s already installed and latest version'), po)
                     continue
 
             # make sure we don't have a name.arch of this already installed
@@ -3632,7 +3644,7 @@ class YumBase(depsolve.Depsolve):
                         found = True
                         break
                 if not found:
-                    self.verbose_logger.warning(_('Package matching %s already installed. Checking for update.'), po)            
+                    pkg_warn(_('Package matching %s already installed. Checking for update.'), po)            
                     txmbrs = self.update(po=po)
                     tx_return.extend(txmbrs)
                     continue
-- 
1.7.6



More information about the Yum-devel mailing list