""" Get performance data from server """ import sys import Bcfg2.Options import Bcfg2.Proxy import Bcfg2.Server.Admin class Perf(Bcfg2.Server.Admin.Mode): """ Get performance data from server """ def __call__(self, args): output = [('Name', 'Min', 'Max', 'Mean', 'Count')] setup = Bcfg2.Options.get_option_parser() setup.add_options(dict(ca=Bcfg2.Options.CLIENT_CA, certificate=Bcfg2.Options.CLIENT_CERT, key=Bcfg2.Options.SERVER_KEY, password=Bcfg2.Options.SERVER_PASSWORD, server=Bcfg2.Options.SERVER_LOCATION, user=Bcfg2.Options.CLIENT_USER, timeout=Bcfg2.Options.CLIENT_TIMEOUT)) opts = sys.argv[1:] opts.remove(self.__class__.__name__.lower()) setup.reparse(argv=opts) proxy = Bcfg2.Proxy.ComponentProxy(setup['server'], setup['user'], setup['password'], key=setup['key'], cert=setup['certificate'], ca=setup['ca'], timeout=setup['timeout']) data = proxy.get_statistics() for key in sorted(data.keys()): output.append((key, ) + tuple(["%.06f" % item for item in data[key][:-1]] + \ [data[key][-1]])) self.print_table(output)