diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-06-11 10:10:41 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2014-11-10 19:56:35 +0100 |
commit | a2f7ff5f21726eeeee876124022003e0c8579707 (patch) | |
tree | c64ae12c32656b62c773cf509e4dca86a4d32856 /src/lib/Bcfg2/Server/Plugins/Packages/__init__.py | |
parent | 851ece19b416a40c5955b3768511dccb26ff1959 (diff) | |
download | bcfg2-a2f7ff5f21726eeeee876124022003e0c8579707.tar.gz bcfg2-a2f7ff5f21726eeeee876124022003e0c8579707.tar.bz2 bcfg2-a2f7ff5f21726eeeee876124022003e0c8579707.zip |
Plugins/PkgVars: new plugin to set various vars per package
This plugins allows the setting of varius flags per package. It should
be used f.e. to specify pinnings for debian packages or use flags and
keywords for gentoo packages (needs to be implemented by future Portage
plugin).
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/__init__.py')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/__init__.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py index cb533f4f1..1ad6897b8 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py @@ -361,6 +361,10 @@ class Packages(Bcfg2.Server.Plugin.Plugin, groups = [] recommended = dict() + pinned_src = dict() + if hasattr(metadata, 'PkgVars'): + pinned_src = metadata.PkgVars['pin'] + for struct in structures: for pkg in struct.xpath('//Package | //BoundPackage'): if pkg.get("name"): @@ -402,11 +406,11 @@ class Packages(Bcfg2.Server.Plugin.Plugin, base.update(collection.get_essential()) # check for this set of packages in the package cache - pkey = hash(tuple(base)) + pkey = hash((tuple(base), tuple(recommended), tuple(pinned_src))) pcache = Bcfg2.Server.Cache.Cache("Packages", "pkg_sets", collection.cachekey) if pkey not in pcache: - pcache[pkey] = collection.complete(base, recommended) + pcache[pkey] = collection.complete(base, recommended, pinned_src) packages, unknown = pcache[pkey] if unknown: self.logger.info("Packages: Got %d unknown entries" % len(unknown)) |