Turn on dup listing so duplicates can be checked.

Change-Id: I5fe680eda8cb41c8d113bc73e752230b78df4941
This commit is contained in:
Joshua Harlow 2013-06-30 19:12:24 -07:00
parent a276cc8e3a
commit b3fa0ba30f
3 changed files with 12 additions and 8 deletions

View File

@ -64,7 +64,7 @@ class Helper(object):
def get_available(self):
base = Helper._get_yum_base()
pkgs = base.doPackageLists()
pkgs = base.doPackageLists(showdups=True)
avail = list(pkgs.available)
avail.extend(pkgs.installed)
return avail

View File

@ -267,13 +267,12 @@ class YumDependencyHandler(base.DependencyHandler):
LOG.info("Copying to %s", system_repo_filename)
self.tracewriter.file_touched(system_repo_filename)
def _get_yum_available(self):
yum_map = {}
def _get_yum_available():
yum_map = collections.defaultdict(list)
for pkg in self.helper.get_available():
for provides in pkg.provides:
pkg_info = (pkg.version, pkg.repo)
yum_map.setdefault(provides[0], set()).add(pkg_info)
return yum_map
yum_map[provides[0]].append((pkg.version, pkg.repo))
return dict(yum_map)
@staticmethod
def _find_yum_match(yum_map, req, rpm_name):

View File

@ -3,7 +3,7 @@
import warnings
warnings.filterwarnings("ignore")
import logging
import os
import pkg_resources
import sys
@ -11,13 +11,18 @@ from yum import YumBase
if __name__ == '__main__':
if len(sys.argv) != 3:
print("%s package-name python-name" % (os.path.basename(sys.argv[0])))
sys.exit(1)
pkg_name = sys.argv[1]
py_name = sys.argv[2]
req = pkg_resources.Requirement.parse(py_name)
base = YumBase()
base.doConfigSetup(debuglevel=-1, errorlevel=-1)
pkgs = base.doPackageLists(patterns=[pkg_name], ignore_case=True)
pkgs = base.doPackageLists(patterns=[pkg_name], ignore_case=True,
showdups=True)
all_pkgs = list(pkgs.available)
all_pkgs.extend(pkgs.installed)