From a128b27aabc246c74fc407c93fc8b696f8f1bd92 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Thu, 1 Nov 2012 02:25:57 +0100 Subject: Packages: ability to overwrite recommended flag per package --- src/lib/Server/Plugins/Packages/Collection.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/lib/Server/Plugins/Packages/Collection.py') diff --git a/src/lib/Server/Plugins/Packages/Collection.py b/src/lib/Server/Plugins/Packages/Collection.py index e0c7e338f..d2d8a015d 100644 --- a/src/lib/Server/Plugins/Packages/Collection.py +++ b/src/lib/Server/Plugins/Packages/Collection.py @@ -91,20 +91,24 @@ class Collection(Bcfg2.Server.Plugin.Debuggable): return True return False - def get_deps(self, package, pinnings=None): + def get_deps(self, package, pinnings=None, recs=None): pin_found = False pin_source = None if pinnings and package in pinnings: pin_source = pinnings[package] + recommended = None + if recs and package in recs: + recommended = recs[package] + for source in self.sources: if pin_source and pin_source != source.name: continue pin_found = True if source.is_package(self.metadata, package): - return source.get_deps(self.metadata, package) + return source.get_deps(self.metadata, package, recommended) if not pin_found: self.logger.error("Packages: Source '%s' for package '%s' not found" % @@ -152,7 +156,7 @@ class Collection(Bcfg2.Server.Plugin.Debuggable): """ do any collection-level data setup tasks """ pass - def complete(self, packagelist, pinnings=None): + def complete(self, packagelist, pinnings=None, recommended=None): '''Build the transitive closure of all package dependencies Arguments: @@ -213,7 +217,7 @@ class Collection(Bcfg2.Server.Plugin.Debuggable): self.debug_log("Packages: handling package requirement %s" % current) packages.add(current) - deps = self.get_deps(current, pinnings) + deps = self.get_deps(current, pinnings, recommended) newdeps = set(deps).difference(examined) if newdeps: self.debug_log("Packages: Package %s added requirements %s" -- cgit v1.2.3-1-g7c22