summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2013-06-11 10:10:41 +0200
committerAlexander Sulfrian <asulfrian@zedat.fu-berlin.de>2022-01-23 19:57:46 +0100
commit4e1a98aec6afa273bda82e3f840d3ed27e42b3be (patch)
tree2e1f4d4975e5d1dfa80d329808db9037a6c5b617 /src/lib/Bcfg2/Server/Plugins/Packages/__init__.py
parentc22cd2a2fc8b909c08b1d8df8d5cc3909e8aeccc (diff)
downloadbcfg2-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__.py8
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))