diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-06-11 10:10:41 +0200 |
---|---|---|
committer | Alexander Sulfrian <asulfrian@zedat.fu-berlin.de> | 2022-01-23 19:57:46 +0100 |
commit | 4e1a98aec6afa273bda82e3f840d3ed27e42b3be (patch) | |
tree | 2e1f4d4975e5d1dfa80d329808db9037a6c5b617 /src/lib/Bcfg2/Server/Plugins/Packages/__init__.py | |
parent | c22cd2a2fc8b909c08b1d8df8d5cc3909e8aeccc (diff) | |
download | bcfg2-4e1a98aec6afa273bda82e3f840d3ed27e42b3be.tar.gz bcfg2-4e1a98aec6afa273bda82e3f840d3ed27e42b3be.tar.bz2 bcfg2-4e1a98aec6afa273bda82e3f840d3ed27e42b3be.zip |
PkgVars: Add new plugin to set vars for packages
This plugins allows the setting of varius flags per package. It should
be used f.e. to specify pinnings for debian packages.
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 fd9131db4..d888af965 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py @@ -328,6 +328,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"): @@ -369,11 +373,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)) |