Example #1
0
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
Example #2
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