diff options
author | Julien Danjou <julien@danjou.info> | 2013-01-21 17:37:16 +0100 |
---|---|---|
committer | Julien Danjou <julien@danjou.info> | 2013-02-05 16:09:41 +0100 |
commit | 86586188c026b0af78a4d95c02d438ef03333df0 (patch) | |
tree | 489dc2e569f1aeb624161d90cdef8731fed1ef09 /ceilometer/objectstore/swift.py | |
parent | d33d20c3725251b873864b758bff46035e263f18 (diff) | |
download | ceilometer-86586188c026b0af78a4d95c02d438ef03333df0.tar.gz |
Use the same Keystone client instance for pollster
This provides a Keystone client instance for all pollsters running on the
central agent.
Blueprint: pollster-global-keystone-auth
Change-Id: I83d8157683410d2eaa093c35d4071f7ed0e22ebd
Signed-off-by: Julien Danjou <julien@danjou.info>
Diffstat (limited to 'ceilometer/objectstore/swift.py')
-rw-r--r-- | ceilometer/objectstore/swift.py | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/ceilometer/objectstore/swift.py b/ceilometer/objectstore/swift.py index aa988291..ff483bcc 100644 --- a/ceilometer/objectstore/swift.py +++ b/ceilometer/objectstore/swift.py @@ -22,7 +22,6 @@ from __future__ import absolute_import import abc -from keystoneclient.v2_0 import client as ksclient from swiftclient import client as swift from ceilometer import plugin @@ -49,11 +48,11 @@ class _Base(plugin.PollsterBase): @staticmethod @abc.abstractmethod - def iter_accounts(): + def iter_accounts(ksclient): """Iterate over all accounts, yielding (tenant_id, stats) tuples.""" def get_counters(self, manager): - for tenant, account in self.iter_accounts(): + for tenant, account in self.iter_accounts(manager.keystone): yield counter.Counter( name='storage.objects', type=counter.TYPE_GAUGE, @@ -100,14 +99,11 @@ class SwiftPollster(_Base): 'storage.objects.containers'] @staticmethod - def iter_accounts(): - ks = ksclient.Client(username=cfg.CONF.os_username, - password=cfg.CONF.os_password, - tenant_name=cfg.CONF.os_tenant_name, - auth_url=cfg.CONF.os_auth_url) - endpoint = ks.service_catalog.url_for(service_type='object-store', - endpoint_type='adminURL') + def iter_accounts(ksclient): + endpoint = ksclient.service_catalog.url_for( + service_type='object-store', + endpoint_type='adminURL') base_url = '%s/v1/%s' % (endpoint, cfg.CONF.reseller_prefix) - for t in ks.tenants.list(): + for t in ksclient.tenants.list(): yield (t.id, swift.head_account('%s%s' % (base_url, t.id), - ks.auth_token)) + ksclient.auth_token)) |