diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-08-01 14:41:12 -0400 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2012-08-01 14:41:12 -0400 |
commit | 4b5ce3bd4a71dfcc26983dfdbd00923f1d5d0d6c (patch) | |
tree | 8fb0d4637e06efcb02d432ee6467778c3da3d0da /src/lib/Bcfg2/Server/Plugins/Packages/Yum.py | |
parent | a1510cf749295fe10760dabd0a5ecc4e2fc8a725 (diff) | |
download | bcfg2-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/Yum.py')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/Yum.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py index 779614dbb..a1499e263 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/Yum.py @@ -367,6 +367,22 @@ class YumCollection(Collection): # for API completeness return self.call_helper("get_provides", package) + def get_groups(self, grouplist): + if not self.use_yum: + self.logger.warning("Packages: Package groups are not supported by " + "Bcfg2's internal Yum dependency generator") + return [] + + gdicts = [] + for group, ptype in grouplist: + if group.startswith("@"): + group = group[1:] + if not ptype: + ptype = "default" + gdicts.append(dict(group=group, type=ptype)) + + return self.call_helper("get_groups", gdicts) + def get_group(self, group, ptype="default"): if not self.use_yum: self.logger.warning("Packages: Package groups are not supported by " @@ -376,8 +392,7 @@ class YumCollection(Collection): if group.startswith("@"): group = group[1:] - pkgs = self.call_helper("get_group", dict(group=group, type=ptype)) - return pkgs + return self.call_helper("get_group", dict(group=group, type=ptype)) def complete(self, packagelist): if not self.use_yum: |