summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <asulfrian@zedat.fu-berlin.de>2022-01-16 21:24:24 +0100
committerAlexander Sulfrian <asulfrian@zedat.fu-berlin.de>2022-01-23 19:57:46 +0100
commitc22cd2a2fc8b909c08b1d8df8d5cc3909e8aeccc (patch)
tree9f0d7c9cee15be6ed04f4fa14dd4c16c34c961cb
parent9cef2774875594d91d73a4cbc3cd6935bc992cec (diff)
downloadbcfg2-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.
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Source.py7
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 []