summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2009-06-05 02:42:08 +0000
committerNarayan Desai <desai@mcs.anl.gov>2009-06-05 02:42:08 +0000
commit1bab8239805f00de2922d30a4755eda8054235cf (patch)
tree375402bcd4eab03d90621de8535125f87d453699 /src
parent06d2bc6536156c2663115319501922e5f6aab0d4 (diff)
downloadbcfg2-1bab8239805f00de2922d30a4755eda8054235cf.tar.gz
bcfg2-1bab8239805f00de2922d30a4755eda8054235cf.tar.bz2
bcfg2-1bab8239805f00de2922d30a4755eda8054235cf.zip
Fix yum api use for centos 4 compatibility (Resolves Ticket #670)
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@5268 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r--src/lib/Client/Tools/YUMng.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/lib/Client/Tools/YUMng.py b/src/lib/Client/Tools/YUMng.py
index 5020d2301..4cc78c413 100644
--- a/src/lib/Client/Tools/YUMng.py
+++ b/src/lib/Client/Tools/YUMng.py
@@ -61,16 +61,30 @@ class YUMng(Bcfg2.Client.Tools.RPMng.RPMng):
self.yum_avail = dict()
self.yum_installed = dict()
self.yb = yum.YumBase()
- self.yb.doGenericSetup()
+ if hasattr(self.yb, 'doGenericSetup'):
+ self.yb.doGenericSetup()
+ else:
+ self.yb.doConfigSetup()
+ self.yb.doTsSetup()
+ self.yb.doRpmDBSetup()
yup = self.yb.doPackageLists(pkgnarrow='updates')
+ if hasattr(self.yb.rpmdb, 'pkglist'):
+ yinst = self.yb.rpmdb.pkglist
+ else:
+ yinst = self.yb.rpmdb.getPkgList()
for dest, source in [(self.yum_avail, yup.updates),
- (self.yum_installed, self.yb.rpmdb)]:
+ (self.yum_installed, yinst)]:
for pkg in source:
- data = [(pkg.arch, (pkg.epoch, pkg.version, pkg.release))]
- if pkg.name in dest:
- dest[pkg.name].update(data)
+ if dest is self.yum_avail:
+ pname = pkg.name
+ data = [(pkg.arch, (pkg.epoch, pkg.version, pkg.release))]
+ else:
+ pname = pkg[0]
+ data = [(pkg[1], (pkg[2], pkg[3], pkg[4]))]
+ if pname in dest:
+ dest[pname].update(data)
else:
- dest[pkg.name] = dict(data)
+ dest[pname] = dict(data)
def VerifyPackage(self, entry, modlist):
pinned_version = None