summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-01 14:41:12 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-08-01 14:41:12 -0400
commit4b5ce3bd4a71dfcc26983dfdbd00923f1d5d0d6c (patch)
tree8fb0d4637e06efcb02d432ee6467778c3da3d0da /src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
parenta1510cf749295fe10760dabd0a5ecc4e2fc8a725 (diff)
downloadbcfg2-4b5ce3bd4a71dfcc26983dfdbd00923f1d5d0d6c.tar.gz
bcfg2-4b5ce3bd4a71dfcc26983dfdbd00923f1d5d0d6c.tar.bz2
bcfg2-4b5ce3bd4a71dfcc26983dfdbd00923f1d5d0d6c.zip
batch up get_group calls in Packages to improve performance (#1101)
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/Collection.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Collection.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py b/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
index 9cea9da48..1e269167b 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
@@ -104,6 +104,14 @@ class Collection(Bcfg2.Server.Plugin.Debuggable):
cachefiles.add(source.cachefile)
return list(cachefiles)
+ def get_groups(self, grouplist):
+ """ provided since some backends may be able to query multiple
+ groups at once faster than serially """
+ rv = dict()
+ for group, ptype in grouplist:
+ rv[group] = self.get_group(group, ptype)
+ return rv
+
def get_group(self, group, ptype=None):
for source in self.sources:
pkgs = source.get_group(self.metadata, group, ptype=ptype)