summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/Packages/Collection.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Server/Plugins/Packages/Collection.py')
-rw-r--r--src/lib/Server/Plugins/Packages/Collection.py12
1 files changed, 8 insertions, 4 deletions
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"