def get_vms():
    nova = login.get_nova_client()
    ceilometer = login.get_ceilometer_client()
    nova_servers = nova.servers.list(search_opts={"all_tenants": True})
    vms = []
    for nova_server in nova_servers:
        # print nova_server._info
        server_id = nova_server._info["id"]
        server_flavor = nova.flavors.get(nova_server._info["flavor"]["id"])
        server_vcpus = server_flavor._info["vcpus"]
        server_ram = server_flavor._info["ram"]
        server_hypervisor = nova_server._info["OS-EXT-SRV-ATTR:hypervisor_hostname"]
        server_state = nova_server._info["OS-EXT-STS:vm_state"]
        server_cpu_util_rel = get_vm_cpu_util(ceilometer, server_id)
        vms.append(
            {
                "id": server_id,
                "util": server_cpu_util_rel,
                "host": server_hypervisor,
                "vcpus": server_vcpus,
                "ram": server_ram,
                "vm_state": server_state,
                "util_abs": server_cpu_util_rel * server_vcpus,
            }
        )
    return vms
Esempio n. 2
0
def get_ts_ceilometer():
    ts = -1
    ceilometer = login.get_ceilometer_client()
    NO_SAMPLES = 1
    # query = [dict(field='resource', op='eq', value=instance_id)]
    samples = ceilometer.samples.list(meter_name='power', limit=NO_SAMPLES)
    try:
        ts = int((datetime.datetime.strptime(
            str(samples[0]._info['timestamp']),
            '%Y-%m-%dT%H:%M:%S.%f')).strftime('%s'))
        # cons_ts = cpu_util_sum += float(samples[0]._info['counter_volume'])
    except:
        print "failed to get timestamp!"
    return ts
Esempio n. 3
0
def get_ts_ceilometer():
    ts = -1
    ceilometer = login.get_ceilometer_client()
    NO_SAMPLES = 1
    # query = [dict(field='resource', op='eq', value=instance_id)]
    samples = ceilometer.samples.list(meter_name='power', limit=NO_SAMPLES)
    try:
        ts = int((datetime.datetime.strptime(
                 str(samples[0]._info['timestamp']),
                 '%Y-%m-%dT%H:%M:%S.%f')).strftime('%s'))
        # cons_ts = cpu_util_sum += float(samples[0]._info['counter_volume'])
    except:
        print "failed to get timestamp!"
    return ts