diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2009-06-05 02:42:08 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2009-06-05 02:42:08 +0000 |
commit | 1bab8239805f00de2922d30a4755eda8054235cf (patch) | |
tree | 375402bcd4eab03d90621de8535125f87d453699 /src/lib | |
parent | 06d2bc6536156c2663115319501922e5f6aab0d4 (diff) | |
download | bcfg2-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/lib')
-rw-r--r-- | src/lib/Client/Tools/YUMng.py | 26 |
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 |