summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/Packages/Collection.py
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2013-03-12 03:47:56 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2013-03-12 03:47:56 +0100
commitf2c410e72b7bc54be0dcb3f88ae9f06a9934ceaf (patch)
tree508bb88438d97ee6369199a842c56b5138514a60 /src/lib/Server/Plugins/Packages/Collection.py
parentaf94542b8d938dd931c07d439e9eb6437aab38bf (diff)
downloadbcfg2-f2c410e72b7bc54be0dcb3f88ae9f06a9934ceaf.tar.gz
bcfg2-f2c410e72b7bc54be0dcb3f88ae9f06a9934ceaf.tar.bz2
bcfg2-f2c410e72b7bc54be0dcb3f88ae9f06a9934ceaf.zip
Plugins/Packages: backported get_new_packages
1.3.0 uses get_new_packages to calculate the differencies between the configured packages and all packages with deps. This could be overwritten if some plugin for Packages needs to do something special (e.g. if the names of the packages are specialized during dependency calculation).
Diffstat (limited to 'src/lib/Server/Plugins/Packages/Collection.py')
-rw-r--r--src/lib/Server/Plugins/Packages/Collection.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/Server/Plugins/Packages/Collection.py b/src/lib/Server/Plugins/Packages/Collection.py
index f5e5bbe02..269ce90f5 100644
--- a/src/lib/Server/Plugins/Packages/Collection.py
+++ b/src/lib/Server/Plugins/Packages/Collection.py
@@ -191,6 +191,24 @@ class Collection(Bcfg2.Server.Plugin.Debuggable):
default="auto"),
type=self.ptype, origin='Packages')
+ def get_new_packages(self, initial, complete):
+ """ Compute the difference between the complete package list
+ (as returned by :func:`complete`) and the initial package list
+ computed from the specification. This is necessary because
+ the format may be different between the two lists due to
+ :func:`packages_to_entry` and :func:`packages_from_entry`. See
+ :ref:`pkg-objects` for more details.
+
+ :param initial: The initial package list
+ :type initial: set of strings, but see :ref:`pkg-objects`
+ :param complete: The final package list
+ :type complete: set of strings, but see :ref:`pkg-objects`
+ :return: set of strings, but see :ref:`pkg-objects` - the set
+ of packages that are in ``complete`` but not in
+ ``initial``
+ """
+ return list(complete.difference(initial))
+
def complete(self, packagelist, pinnings=None, recommended=None):
'''Build the transitive closure of all package dependencies