[yum-commits] Branch 'yum-3_2_X' - 4 commits - cli.py output.py test/yum-leak-test.py yum/__init__.py yum/plugins.py yum/repos.py
James Antill
james at osuosl.org
Wed Feb 4 18:22:03 UTC 2009
cli.py | 11 +++++++----
output.py | 2 ++
test/yum-leak-test.py | 11 +++++++++++
yum/__init__.py | 8 +++++---
yum/plugins.py | 11 +++++++----
yum/repos.py | 9 ++++++++-
6 files changed, 40 insertions(+), 12 deletions(-)
New commits:
commit bf276cc6369a5d97113950ba7a10df1ea3e47032
Author: James Antill <james at and.org>
Date: Wed Feb 4 13:20:54 2009 -0500
Fix circular reference due to bound YumBase instance method
diff --git a/yum/repos.py b/yum/repos.py
index c4c2449..694fd93 100644
--- a/yum/repos.py
+++ b/yum/repos.py
@@ -43,9 +43,16 @@ class RepoStorage:
# callbacks for handling gpg key imports for repomd.xml sig checks
# need to be set from outside of the repos object to do anything
# even quasi-useful
- self.gpg_import_func = self.ayum.getKeyForRepo # defaults to what is probably sane-ish
+ # defaults to what is probably sane-ish
+ self.gpg_import_func = self._wrap_ayum_getKeyForRepo
self.confirm_func = None
+ def _wrap_ayum_getKeyForRepo(repo, callback=None):
+ """ This is a wrapper for calling self.ayum.getKeyForRepo() because
+ otherwise we take a real reference through the bound method and
+ that is d00m. """
+ return self.ayum.getKeyForRepo(repo, callback)
+
def doSetup(self, thisrepo = None):
self.ayum.plugins.run('prereposetup')
commit a59c4d9aee210f52b83760687bcef53a7c61a680
Author: James Antill <james at and.org>
Date: Wed Feb 4 13:20:10 2009 -0500
Add test for leaking YumBase objects
diff --git a/test/yum-leak-test.py b/test/yum-leak-test.py
new file mode 100755
index 0000000..f3d6de3
--- /dev/null
+++ b/test/yum-leak-test.py
@@ -0,0 +1,11 @@
+#! /usr/bin/python -tt
+
+import yum, os, sys, time, gc
+
+while True:
+ yb = yum.YumBase()
+ yb.repos.setCacheDir(yum.misc.getCacheDir())
+ yb.rpmdb.returnPackages()
+ yb.pkgSack.returnPackages()
+ time.sleep(4)
+ # print "DBG:", gc.get_referrers(yb)
commit 7f82b5e2f1b2a59538b165756e0f5497a7ddfebd
Author: James Antill <james at and.org>
Date: Wed Feb 4 10:30:02 2009 -0500
Move some output out of -v, -d 6 to -d 7
diff --git a/cli.py b/cli.py
index 99aaafd..ca0ca34 100644
--- a/cli.py
+++ b/cli.py
@@ -253,8 +253,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
base command + argument makes any sense at all"""
self.verbose_logger.debug('Yum Version: %s', yum.__version__)
- self.verbose_logger.debug('COMMAND: %s', self.cmdstring)
- self.verbose_logger.debug('Installroot: %s', self.conf.installroot)
+ self.verbose_logger.log(yum.logginglevels.DEBUG_4,
+ 'COMMAND: %s', self.cmdstring)
+ self.verbose_logger.log(yum.logginglevels.DEBUG_4,
+ 'Installroot: %s', self.conf.installroot)
if len(self.conf.commands) == 0 and len(self.cmds) < 1:
self.cmds = self.conf.commands
else:
@@ -268,9 +270,10 @@ class YumBaseCli(yum.YumBase, output.YumOutput):
self.extcmds = self.cmds[1:] # out extended arguments/commands
if len(self.extcmds) > 0:
- self.verbose_logger.debug('Ext Commands:\n')
+ self.verbose_logger.log(yum.logginglevels.DEBUG_4,
+ 'Ext Commands:\n')
for arg in self.extcmds:
- self.verbose_logger.debug(' %s', arg)
+ self.verbose_logger.log(yum.logginglevels.DEBUG_4, ' %s', arg)
if not self.yum_cli_commands.has_key(self.basecmd):
self.usage()
diff --git a/yum/__init__.py b/yum/__init__.py
index 5de0ba2..9334f98 100644
--- a/yum/__init__.py
+++ b/yum/__init__.py
@@ -402,7 +402,8 @@ class YumBase(depsolve.Depsolve):
if self._rpmdb is None:
rpmdb_st = time.time()
- self.verbose_logger.debug(_('Reading Local RPMDB'))
+ self.verbose_logger.log(logginglevels.DEBUG_4,
+ _('Reading Local RPMDB'))
self._rpmdb = rpmsack.RPMDBPackageSack(root=self.conf.installroot)
self.verbose_logger.debug('rpmdb time: %0.3f' % (time.time() - rpmdb_st))
return self._rpmdb
@@ -573,7 +574,8 @@ class YumBase(depsolve.Depsolve):
return self._comps
group_st = time.time()
- self.verbose_logger.debug(_('Getting group metadata'))
+ self.verbose_logger.log(logginglevels.DEBUG_4,
+ _('Getting group metadata'))
reposWithGroups = []
self.repos.doSetup()
for repo in self.repos.listGroupsEnabled():
@@ -598,7 +600,7 @@ class YumBase(depsolve.Depsolve):
if repo.groups_added: # already added the groups from this repo
continue
- self.verbose_logger.log(logginglevels.DEBUG_1,
+ self.verbose_logger.log(logginglevels.DEBUG_4,
_('Adding group file from repository: %s'), repo)
groupfile = repo.getGroups()
# open it up as a file object so iterparse can cope with our gz file
diff --git a/yum/plugins.py b/yum/plugins.py
index 6d7c529..cfc8bd6 100644
--- a/yum/plugins.py
+++ b/yum/plugins.py
@@ -171,8 +171,9 @@ class YumPlugins:
conduitcls = eval(conduitcls) # Convert name to class object
for modname, func in self._pluginfuncs[slotname]:
- self.verbose_logger.debug('Running "%s" handler for "%s" plugin', slotname,
- modname)
+ self.verbose_logger.log(logginglevels.DEBUG_4,
+ 'Running "%s" handler for "%s" plugin',
+ slotname, modname)
_, conf = self._plugins[modname]
func(conduitcls(self, self.base, conf, **kwargs))
@@ -196,7 +197,9 @@ class YumPlugins:
for modulefile in sorted(glob.glob('%s/*.py' % dir)):
self._loadplugin(modulefile, types)
- if self._plugins:
+ # If we are in verbose mode we get the full 'Loading "blah" plugin' lines
+ if (self._plugins and
+ not self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)):
# Mostly copied from YumOutput._outKeyValFill()
key = _("Loaded plugins: ")
val = ", ".join(sorted(self._plugins))
@@ -248,7 +251,7 @@ class YumPlugins:
config.BoolOption(False)) and
not self._plugin_cmdline_match(modname, self.enabledPlugins,
self._used_enable_plugin))):
- self.verbose_logger.debug(_('"%s" plugin is disabled'), modname)
+ self.verbose_logger.debug(_('Not loading "%s" plugin, as it is disabled'), modname)
return
try:
commit 2febff6fc8ae1ac76634082d4e93bd29925f16fb
Author: James Antill <james at and.org>
Date: Wed Feb 4 10:14:55 2009 -0500
Show groupid in verbose mode of groupinfo
diff --git a/output.py b/output.py
index 7a2c6a1..a582fd1 100755
--- a/output.py
+++ b/output.py
@@ -700,6 +700,8 @@ class YumOutput:
print _('\nGroup: %s') % group.ui_name
verb = self.verbose_logger.isEnabledFor(logginglevels.DEBUG_3)
+ if verb:
+ print _(' Group-Id: %s') % to_unicode(group.groupid)
pkg_names2pkgs = None
if verb:
pkg_names2pkgs = self._group_names2aipkgs(group.packages)
More information about the Yum-commits
mailing list