summaryrefslogtreecommitdiff
path: root/ceilometer/objectstore/swift.py
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2013-01-21 17:37:16 +0100
committerJulien Danjou <julien@danjou.info>2013-02-05 16:09:41 +0100
commit86586188c026b0af78a4d95c02d438ef03333df0 (patch)
tree489dc2e569f1aeb624161d90cdef8731fed1ef09 /ceilometer/objectstore/swift.py
parentd33d20c3725251b873864b758bff46035e263f18 (diff)
downloadceilometer-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.py20
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))