From a9c1622339e1a2b6911c01705a492e5d4574561e Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Sun, 10 Mar 2013 23:07:22 +0100 Subject: Plugins/PkgVars: support multiple values per package If multiple values specified for one package all values are joined together in a set. --- debian/changelog | 3 ++- src/lib/Server/Plugins/Packages/Collection.py | 4 ++-- src/lib/Server/Plugins/PkgVars.py | 10 ++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/debian/changelog b/debian/changelog index 44c4a7eb2..fff49f123 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ bcfg2 (1.2.3-11) UNRELEASED; urgency=low + * Plugins/PkgVars: support multiple values per package * Plugins/Packages/Portage: add Packages Plugin for Portage * Plugins/Packages/Collection: add cclass marker for Sources * Plugins/Packages/Collection: add missing format string parameter @@ -8,7 +9,7 @@ bcfg2 (1.2.3-11) UNRELEASED; urgency=low * Plugins/Packages: backported packages_form_entry/_to_entry * Plugins/PkgVars: new plugin to set various vars per package - -- Alexander Sulfrian Mon, 04 Feb 2013 21:32:13 +0100 + -- Alexander Sulfrian Sun, 10 Mar 2013 23:07:22 +0100 bcfg2 (1.2.3-9) unstable; urgency=low diff --git a/src/lib/Server/Plugins/Packages/Collection.py b/src/lib/Server/Plugins/Packages/Collection.py index 2e5ff450b..6c34aa884 100644 --- a/src/lib/Server/Plugins/Packages/Collection.py +++ b/src/lib/Server/Plugins/Packages/Collection.py @@ -104,7 +104,7 @@ class Collection(Bcfg2.Server.Plugin.Debuggable): recommended = recs[package] for source in self.sources: - if pin_source and pin_source != source.name: + if pin_source and source.name not in pin_source: continue pin_found = True @@ -113,7 +113,7 @@ class Collection(Bcfg2.Server.Plugin.Debuggable): if not pin_found: self.logger.error("Packages: Source '%s' for package '%s' not found" % - (pin_source, package)) + (' or '.join(pin_source), package)) return [] def get_provides(self, package): diff --git a/src/lib/Server/Plugins/PkgVars.py b/src/lib/Server/Plugins/PkgVars.py index 2bf1b158a..40582bcb3 100644 --- a/src/lib/Server/Plugins/PkgVars.py +++ b/src/lib/Server/Plugins/PkgVars.py @@ -19,7 +19,12 @@ class PkgVarsFile(Bcfg2.Server.Plugin.StructFile): for v in vars: value = d.get(v, None) if value: - results[v][name] = value + if v not in results: + results[v] = {} + if name not in results[v]: + results[v][name] = set() + + results[v][name].add(value) return results @@ -35,7 +40,8 @@ class PkgVarsDirectoryBacked(Bcfg2.Server.Plugin.DirectoryBacked): for files in self.entries: new = self.entries[files].get_additional_data(meta) for x in vars: - results[x].update(new[x]) + if x in new: + results[x].update(new[x]) return results -- cgit v1.2.3-1-g7c22