Puppet: System Administration Automated

Support

Ticket #1038: yumhelper.py

File yumhelper.py, 0.9 kB (added by lutter, 1 year ago)

yumhelper that is a little more paranoid about closing the rpmdb

Line 
1 # Python helper script to query for the packages that have
2 # pending updates. Called by the yum package provider
3 #
4 # (C) 2007 Red Hat Inc.
5 # David Lutterkort <dlutter @redhat.com>
6
7 import yum
8 import sys
9
10 OVERRIDE_OPTS = {
11     'debuglevel': 0,
12     'errorlevel': 0,
13     'logfile': '/dev/null'
14 }
15
16 def pkg_lists(my):
17     my.doConfigSetup()
18
19     for k in OVERRIDE_OPTS.keys():
20         if hasattr(my.conf, k):
21             setattr(my.conf, k, OVERRIDE_OPTS[k])
22         else:
23             my.conf.setConfigOption(k, OVERRIDE_OPTS[k])
24
25     my.doTsSetup()
26     my.doRpmDBSetup()
27     return my.doPackageLists('updates')
28
29 try:
30     try:
31         my = yum.YumBase()
32         ypl = pkg_lists(my)
33         for pkg in ypl.updates:
34             print "_pkg %s %s %s %s %s" % (pkg.name, pkg.epoch, pkg.version, pkg.release, pkg.arch)
35     finally:
36         my.closeRpmDB()
37 except IOError, e:
38     print "_err IOError %d %s" % (e.errno, e)
39     sys.exit(1)
40