summaryrefslogtreecommitdiffstats
path: root/src/sbin/bcfg2-yum-helper
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/sbin/bcfg2-yum-helper
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/sbin/bcfg2-yum-helper')
-rwxr-xr-xsrc/sbin/bcfg2-yum-helper13
1 files changed, 12 insertions, 1 deletions
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))