From eb17debb9c8f27b781209fa53f075295d883b79c Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Mon, 17 Sep 2012 15:43:38 -0400 Subject: Packages: fixed handling of poorly-specified BoundPackage entries --- src/lib/Bcfg2/Server/Plugins/Packages/Yum.py | 10 ++++++---- src/sbin/bcfg2-yum-helper | 3 +++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py index b5fbfd8fe..8d398e038 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py @@ -363,11 +363,11 @@ class YumCollection(Collection): def get_provides(self, required, all=False, silent=False): if not self.use_yum: - return Collection.get_provides(self, package) + return Collection.get_provides(self, required) else: # this should really never get called; it's just provided # for API completeness - return self.call_helper("get_provides", package) + return self.call_helper("get_provides", required) def get_groups(self, grouplist): if not self.use_yum: @@ -404,8 +404,10 @@ class YumCollection(Collection): name = entry.get("name") def _tag_to_pkg(tag): - rv = (name, tag.get("arch"), tag.get("epoch"), - tag.get("version"), tag.get("release")) + rv = [name, tag.get("arch"), tag.get("epoch"), + tag.get("version"), tag.get("release")] + if rv[3] in ['any', 'auto']: + rv = (rv[0], rv[1], rv[2], None, None) # if a package requires no specific version, we just use # the name, not the tuple. this limits the amount of JSON # encoding/decoding that has to be done to pass the diff --git a/src/sbin/bcfg2-yum-helper b/src/sbin/bcfg2-yum-helper index a0698cc90..3649b9794 100755 --- a/src/sbin/bcfg2-yum-helper +++ b/src/sbin/bcfg2-yum-helper @@ -46,6 +46,9 @@ def pkg_to_tuple(package): return package def pkgtup_to_string(package): + if package[3] in ['auto', 'any']: + return package[0] + rv = [package[0], "-"] if package[2]: rv.extend([package[2], ':']) -- cgit v1.2.3-1-g7c22