summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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