X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetstack%2Fopenstack_observer%2Fceilometer.py;h=e34b000fb740f510ceb7c09ca70f859aa56cc3b8;hb=90ecab134bf44662886576bea76c48d0aea316b7;hp=7383524e77a4ae331816ddf9deb6594b9b64dba9;hpb=9d410ff50197c3b485a302814d81180240ebc6d2;p=plstackapi.git diff --git a/planetstack/openstack_observer/ceilometer.py b/planetstack/openstack_observer/ceilometer.py index 7383524..e34b000 100644 --- a/planetstack/openstack_observer/ceilometer.py +++ b/planetstack/openstack_observer/ceilometer.py @@ -8,18 +8,19 @@ import re import datetime import time from monitor.monitordriver import * -from core.models import * +import pdb def object_to_filter(model_name, pk): + from core.models import * filter_dict = { - 'Slice':[Slice, 'tenant_id', 'project_id'], + 'ControllerSlice':[ControllerSlice, 'tenant_id', 'project_id'], 'Sliver':[Sliver, 'instance_id', 'resource_id'], - 'Site':[Site, 'tenant_id', 'project_id'] + 'ControllerSite':[ControllerSite, 'tenant_id', 'project_id'] } mod,field,tag = filter_dict[model_name] obj = mod.objects.get(pk=pk) - return '%s=%s'%(tag,mod[field]) + return '%s=%s'%(tag,getattr(obj,field)) def cli_to_array(cli_query): @@ -70,35 +71,41 @@ def cli_to_array(cli_query): def meters_to_stats(meters): stats = DashboardStatistics() for m in meters: - timestamp = datetime.datetime.strptime(m.duration_start,'%Y-%m-%dT%H:%M:%S') - stats.stat_list.append({'timestamp':timestamp, 'value':m.sum}) - stats.sum+=m.sum - stats.average+=m.sum - stats.unit = 'ns' - - stats.average/=len(meters) + timestamp = m.duration_start + stats['stat_list'].append({'timestamp':timestamp, 'value':m.sum}) + stats['sum']+=m.sum + stats['average']+=m.sum + stats['unit'] = 'ns' + + if (len(meters)): + stats['average']/=len(meters) + else: + stats['average']=0 return stats - class CeilometerDriver(MonitorDriver): def get_meter(self, meter, obj, pk, keystone=None): if (not keystone): - keystone = {} - keystone['username']=env['OS_USERNAME'] - keystone['password']=env['OS_PASSWORD'] - keystone['auth_url']=env['OS_AUTH_URL'] - keystone['tenant_name']=env['OS_TENANT_NAME'] - keystone['os_cacert']=env['OS_CACERT'] - - ceilometer_client = client._get_ksclient(**keystone) - token = ceilometer_client.auth_token - - ceilo_endpoint = client._get_endpoint(ceilometer_client, **keystone) - #ceilometer = client.get_client(2, username=keystone['username'], password=keystone['password'], tenant_name=keystone['tenant_name'], auth_url=keystone['auth_url']) - - ceilometer = client.Client('2',endpoint = ceilo_endpoint, token = lambda: token) - + keystone={} + keystone['os_username']=env['OS_USERNAME'] + keystone['os_password']=env['OS_PASSWORD'] + keystone['os_auth_url']=env['OS_AUTH_URL'] + keystone['os_tenant_name']=env['OS_TENANT_NAME'] + keystone['os_cacert']=env['OS_CACERT'] + keystone['os_region_name']=env['OS_REGION_NAME'] + + keystone['username']=env['OS_USERNAME'] + keystone['password']=env['OS_PASSWORD'] + keystone['auth_url']=env['OS_AUTH_URL'] + keystone['tenant_name']=env['OS_TENANT_NAME'] + keystone['cacert']=env['OS_CACERT'] + keystone['region_name']=env['OS_REGION_NAME'] + + keystone['auth_plugin']=client.AuthPlugin(**keystone) + + ceilometer = client.get_client(2,**keystone) + cur_ts = datetime.datetime.fromtimestamp(time.time()-86400) str_ts = cur_ts.strftime('%Y-%m-%dT%H:%M:%S')