diff options
author | Alexander Sulfrian <asulfrian@zedat.fu-berlin.de> | 2022-01-16 21:24:24 +0100 |
---|---|---|
committer | Alexander Sulfrian <asulfrian@zedat.fu-berlin.de> | 2022-01-23 19:57:46 +0100 |
commit | c22cd2a2fc8b909c08b1d8df8d5cc3909e8aeccc (patch) | |
tree | 9f0d7c9cee15be6ed04f4fa14dd4c16c34c961cb /src/lib | |
parent | 9cef2774875594d91d73a4cbc3cd6935bc992cec (diff) | |
download | bcfg2-c22cd2a2fc8b909c08b1d8df8d5cc3909e8aeccc.tar.gz bcfg2-c22cd2a2fc8b909c08b1d8df8d5cc3909e8aeccc.tar.bz2 bcfg2-c22cd2a2fc8b909c08b1d8df8d5cc3909e8aeccc.zip |
Packages: Allow to filter provided packages
The provides packages of a source should be filtered by the Blacklist or
Whitelist tags for the source.
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/Source.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py index b0c4bf44f..574dbd851 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Source.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Source.py @@ -589,6 +589,9 @@ class Source(Debuggable): # pylint: disable=R0902 self.logger.warning("%s provides no packages for %s" % (self, agrp)) continue + if (agrp in self.blacklist or + (len(self.whitelist) != 0 and agrp not in self.whitelist)): + continue for key, value in list(self.provides[agrp].items()): if key not in vdict: vdict[key] = set(value) @@ -815,7 +818,9 @@ class Source(Debuggable): # pylint: disable=R0902 :returns: list of strings """ for arch in self.get_arches(metadata): - if package in self.provides[arch]: + if (package in self.provides[arch] and + package not in self.blacklist and + (len(self.whitelist) == 0 or package in self.whitelist)): return self.provides[arch][package] return [] |