From 4b5ce3bd4a71dfcc26983dfdbd00923f1d5d0d6c Mon Sep 17 00:00:00 2001 From: "Chris St. Pierre" Date: Wed, 1 Aug 2012 14:41:12 -0400 Subject: batch up get_group calls in Packages to improve performance (#1101) --- src/sbin/bcfg2-yum-helper | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/sbin/bcfg2-yum-helper') diff --git a/src/sbin/bcfg2-yum-helper b/src/sbin/bcfg2-yum-helper index 2da7c6336..186eefe7a 100755 --- a/src/sbin/bcfg2-yum-helper +++ b/src/sbin/bcfg2-yum-helper @@ -134,7 +134,7 @@ class DepSolver(object): if self.yumbase.comps.has_group(group): group = self.yumbase.comps.return_group(group) else: - self.logger.warning("%s is not a valid group" % group) + self.logger.error("%s is not a valid group" % group) return [] except yum.Errors.GroupsError: err = sys.exc_info()[1] @@ -365,6 +365,17 @@ def main(): else: packages = depsolver.get_group(data['group']) print json.dumps(list(packages)) + elif cmd == "get_groups": + data = json.loads(sys.stdin.read()) + rv = dict() + for gdata in data: + if "type" in gdata: + packages = depsolver.get_group(gdata['group'], + ptype=gdata['type']) + else: + packages = depsolver.get_group(gdata['group']) + rv[gdata['group']] = list(packages) + print json.dumps(rv) elif cmd == "is_package": package = json.loads(sys.stdin.read()) print json.dumps(getattr(depsolver, cmd)(package)) -- cgit v1.2.3-1-g7c22