diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-06-13 00:50:46 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2014-02-26 13:38:15 +0100 |
commit | aaaad67f8eb441d599a16703d3a59c3e381c74c4 (patch) | |
tree | 2cf8b437aa74c835a72de256d77222a992d6a39e /src/lib/Bcfg2/Server/Plugins/Packages/Collection.py | |
parent | 12edf6186b236006963b83ac8ffe174665e097b9 (diff) | |
download | bcfg2-aaaad67f8eb441d599a16703d3a59c3e381c74c4.tar.gz bcfg2-aaaad67f8eb441d599a16703d3a59c3e381c74c4.tar.bz2 bcfg2-aaaad67f8eb441d599a16703d3a59c3e381c74c4.zip |
Plugins/Packages: ability to overwrite recommended flag per package
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/Collection.py')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/Collection.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py b/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py index 39c51f351..c884b303e 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py @@ -308,7 +308,7 @@ class Collection(list, Bcfg2.Server.Plugin.Debuggable): return any(source.is_virtual_package(self.metadata, package) for source in self) - def get_deps(self, package): + def get_deps(self, package, recs=None): """ Get a list of the dependencies of the given package. The base implementation simply aggregates the results of @@ -318,9 +318,14 @@ class Collection(list, Bcfg2.Server.Plugin.Debuggable): :type package: string :returns: list of strings, but see :ref:`pkg-objects` """ + recommended = None + if recs and package in recs: + recommended = recs[package] + for source in self: if source.is_package(self.metadata, package): - return source.get_deps(self.metadata, package) + return source.get_deps(self.metadata, package, recommended) + return [] def get_essential(self): @@ -500,7 +505,7 @@ class Collection(list, Bcfg2.Server.Plugin.Debuggable): return list(complete.difference(initial)) @Bcfg2.Server.Plugin.track_statistics() - def complete(self, packagelist): # pylint: disable=R0912,R0914 + def complete(self, packagelist, recommended=None): # pylint: disable=R0912,R0914 """ Build a complete list of all packages and their dependencies. :param packagelist: Set of initial packages computed from the @@ -564,7 +569,7 @@ class Collection(list, Bcfg2.Server.Plugin.Debuggable): self.debug_log("Packages: handling package requirement %s" % (current,)) packages.add(current) - deps = self.get_deps(current) + deps = self.get_deps(current, recommended) newdeps = set(deps).difference(examined) if newdeps: self.debug_log("Packages: Package %s added requirements %s" |