def main(argv = None): import storage import argparse argv = argv if argv is not None else sys.argv parser = argparse.ArgumentParser() parser.add_argument('--action', choices=('create', 'clear')) parser.add_argument('--name', required=False) parser.add_argument('--vms', nargs='+', required=False) opts = parser.parse_args(argv[1:]) conn = sqlite3.connect('///opt/graphite/storage/graphite.db') cr = conn.cursor() if opts.action == 'create': all_names = [] for vm_name_templ in opts.vms: all_names.extend(name for name,_ in storage.get_all_vms(vm_name_templ)) add_cpu_io_graphs(cr, opts.name, all_names) elif opts.action == 'clear': clear_all_graphs(cr) conn.commit() conn.close() return 0
elif opts.set_state: if len(files) == 1: print >> sys.stderr, "vm name template should be given" conn = vconn() all_ips = {} is_alive = {} all_names = [] for templ in files[1:]: if templ == 'ALL': templ = '*' for vm_name, ips in get_all_vms(templ): if len(ips) != 0: ip = ips.values()[0] all_names.append(vm_name) try: vm = conn.lookupByName(vm_name) update_net_from_storage(vm) except libvirt.libvirtError: is_alive[vm_name] = False, None else: all_ips[ip] = vm_name else: print vm_name.center(15), "No ip in database" for _, res_ip, res in tmap(is_host_alive, all_ips.keys()): is_alive[all_ips[res_ip]] = res, res_ip