summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2014-05-17 11:01:17 -0500
committerSol Jerome <sol.jerome@gmail.com>2014-05-17 11:01:17 -0500
commita03eb5cc5699e44de5fdb6ba6f5e69f3e5cee09a (patch)
treed5ad54cbfb772c65ea1eada8477bfe0896f68472 /src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
parentc552826ef8d1f8e81678104975a6e7de469ec42e (diff)
parent7997ae385a997c3c73bc018a6193fb77362ce4b5 (diff)
downloadbcfg2-a03eb5cc5699e44de5fdb6ba6f5e69f3e5cee09a.tar.gz
bcfg2-a03eb5cc5699e44de5fdb6ba6f5e69f3e5cee09a.tar.bz2
bcfg2-a03eb5cc5699e44de5fdb6ba6f5e69f3e5cee09a.zip
Merge branch 'recommended-per-package' of https://github.com/AlexanderS/bcfg2
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/Collection.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Collection.py13
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 8b20df58a..9bd384167 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
@@ -289,7 +289,7 @@ class Collection(list, 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
@@ -299,9 +299,14 @@ class Collection(list, 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):
@@ -465,7 +470,7 @@ class Collection(list, Debuggable):
return list(complete.difference(initial))
@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
@@ -529,7 +534,7 @@ class Collection(list, 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"