[yum-commits] Branch 'yum-3_2_X' - cli.py yum/Errors.py yum/__init__.py
James Antill
james at osuosl.org
Wed Jul 7 16:13:50 UTC 2010
cli.py | 18 +++++++++---------
yum/Errors.py | 4 +++-
yum/__init__.py | 4 +++-
3 files changed, 15 insertions(+), 11 deletions(-)
New commits:
commit 1ae51a5937a8e41d6037105bb2c5a3cb178109e6
Author: James Antill <james at and.org>
Date: Wed Jul 7 11:49:42 2010 -0400
Pass the packages that failed to reinstall, fixes provides/files. BZ 612201.
diff --git a/cli.py b/cli.py
index fc4ee1c..9542b7a 100644
--- a/cli.py
+++ b/cli.py
@@ -833,15 +833,15 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
except yum.Errors.ReinstallRemoveError:
self._checkMaybeYouMeant(arg, always_output=False)
except yum.Errors.ReinstallInstallError, e:
- ipkg = self.rpmdb.returnPackages(patterns=[arg])[0]
- xmsg = ''
- if 'from_repo' in ipkg.yumdb_info:
- xmsg = ipkg.yumdb_info.from_repo
- xmsg = _(' (from %s)') % xmsg
- self.verbose_logger.log(yum.logginglevels.INFO_2,
- _('Installed package %s%s%s%s not available.'),
- self.term.MODE['bold'], ipkg,
- self.term.MODE['normal'], xmsg)
+ for ipkg in e.failed_pkgs:
+ xmsg = ''
+ if 'from_repo' in ipkg.yumdb_info:
+ xmsg = ipkg.yumdb_info.from_repo
+ xmsg = _(' (from %s)') % xmsg
+ msg = _('Installed package %s%s%s%s not available.')
+ self.verbose_logger.log(yum.logginglevels.INFO_2, msg,
+ self.term.MODE['bold'], ipkg,
+ self.term.MODE['normal'], xmsg)
except yum.Errors.ReinstallError, e:
assert False, "Shouldn't happen, but just in case"
self.verbose_logger.log(yum.logginglevels.INFO_2, e)
diff --git a/yum/Errors.py b/yum/Errors.py
index a3a12c5..211625b 100644
--- a/yum/Errors.py
+++ b/yum/Errors.py
@@ -90,7 +90,9 @@ class ReinstallRemoveError(ReinstallError):
pass
class ReinstallInstallError(ReinstallError):
- pass
+ def __init__(self, value=None, failed_pkgs=[]):
+ ReinstallError.__init__(self, value)
+ self.failed_pkgs = failed_pkgs
class DowngradeError(YumBaseError):
pass
diff --git a/yum/__init__.py b/yum/__init__.py
index 5dfea8b..c7d3a42 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -3863,6 +3863,7 @@ class YumBase(depsolve.Depsolve):
# then we really shouldn't go on
new_members = []
failed = []
+ failed_pkgs = []
for item in tx_mbrs[:]:
# Make sure obsoletes processing is off, so we can reinstall()
# pkgs that are obsolete.
@@ -3877,11 +3878,12 @@ class YumBase(depsolve.Depsolve):
self.tsInfo.remove(item.pkgtup)
tx_mbrs.remove(item)
failed.append(str(item.po))
+ failed_pkgs.append(item.po)
continue
new_members.extend(members)
if failed and not tx_mbrs:
- raise Errors.ReinstallInstallError, _("Problem in reinstall: no package %s matched to install") % ", ".join(failed)
+ raise Errors.ReinstallInstallError(_("Problem in reinstall: no package %s matched to install") % ", ".join(failed), failed_pkgs=failed_pkgs)
tx_mbrs.extend(new_members)
return tx_mbrs
More information about the Yum-commits
mailing list