[Yum-devel] [PATCH] Add total removal size, when just doing removes. BZ 495595
James Antill
james at and.org
Thu Apr 29 15:55:54 UTC 2010
---
cli.py | 12 ++++++++++--
output.py | 20 ++++++++++++++++++++
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/cli.py b/cli.py
index 2977ca8..2355240 100644
--- a/cli.py
+++ b/cli.py
@@ -416,12 +416,18 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# Check which packages have to be downloaded
downloadpkgs = []
+ rmpkgs = []
stuff_to_download = False
install_only = True
+ remove_only = True
for txmbr in self.tsInfo.getMembers():
if txmbr.ts_state not in ('i', 'u'):
install_only = False
+ po = txmbr.po
+ if po:
+ rmpkgs.append(po)
else:
+ remove_only = False
stuff_to_download = True
po = txmbr.po
if po:
@@ -434,8 +440,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
# Report the total download size to the user, so he/she can base
# the answer on this info
- if stuff_to_download:
- self.reportDownloadSize(downloadpkgs, install_only)
+ if not stuff_to_download:
+ self.reportRemoveSize(rmpkgs)
+ else:
+ self.reportDownloadSize(downloadpkgs, install_only, remove_only)
# confirm with user
if self._promptWanted():
diff --git a/output.py b/output.py
index 452f8a2..95564e1 100755
--- a/output.py
+++ b/output.py
@@ -927,6 +927,26 @@ class YumOutput:
self.verbose_logger.log(logginglevels.INFO_1,
_("Installed size: %s"),
self.format_number(insize))
+
+ def reportRemoveSize(self, packages):
+ """Report the total size of packages being removed. """
+ totsize = 0
+ error = False
+ for pkg in packages:
+ # Just to be on the safe side, if for some reason getting
+ # the package size fails, log the error and don't report download
+ # size
+ try:
+ size = int(pkg.size)
+ totsize += size
+ except:
+ error = True
+ self.logger.error(_('There was an error calculating installed size'))
+ break
+ if (not error):
+ self.verbose_logger.log(logginglevels.INFO_1,
+ _("Installed size: %s"),
+ self.format_number(totsize))
def listTransaction(self):
"""returns a string rep of the transaction in an easy-to-read way."""
--
1.7.0.1
More information about the Yum-devel
mailing list