From 1bab8239805f00de2922d30a4755eda8054235cf Mon Sep 17 00:00:00 2001 From: Narayan Desai Date: Fri, 5 Jun 2009 02:42:08 +0000 Subject: 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 --- src/lib/Client/Tools/YUMng.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/lib/Client') 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 -- cgit v1.2.3-1-g7c22