From ad85ef0a70988474f5a8f64b93b3d76809bbc080 Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Mon, 12 Jan 2015 16:48:19 -0500 Subject: [PATCH] Load ceilometer credentials from controller --- planetstack/core/views/stats.py | 9 +++++- planetstack/openstack_observer/ceilometer.py | 33 ++++++++++---------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/planetstack/core/views/stats.py b/planetstack/core/views/stats.py index 421fbfe..58f33e5 100644 --- a/planetstack/core/views/stats.py +++ b/planetstack/core/views/stats.py @@ -1,5 +1,6 @@ from django.http import HttpResponse from monitor import driver +from core.models import * import json def Stats(request): @@ -8,5 +9,11 @@ def Stats(request): meter = request.GET['meter'] controller_name = request.GET['controller_name'] - meters = driver.get_meter(meter, model, pk) + controller = Controller.objects.filter(name=controller_name)[0] + keystone = {'username':controller.admin_user, 'password':controller.admin_password, 'tenant_name':controller.admin_tenant, 'auth_url':controller.auth_url, 'cacert':'/etc/ssl/certs/ca-certificates.crt'} + + for k,v in keystone.items(): + keystone['os_'+k] = v + + meters = driver.get_meter(meter, model, pk, keystone) return HttpResponse(json.dumps(meters)) diff --git a/planetstack/openstack_observer/ceilometer.py b/planetstack/openstack_observer/ceilometer.py index 00c1238..e34b000 100644 --- a/planetstack/openstack_observer/ceilometer.py +++ b/planetstack/openstack_observer/ceilometer.py @@ -13,9 +13,9 @@ 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] @@ -86,20 +86,21 @@ def meters_to_stats(meters): class CeilometerDriver(MonitorDriver): def get_meter(self, meter, obj, pk, keystone=None): - 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'] + if (not keystone): + 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) -- 2.43.0