Moved keystone settings in the ceilometer collector
Removed _connect abstract method as we can't assume the collector will connect somewhere and should be handled by the collector himself. Removed now useless state manager in orchestrator(handled by the storage backend). Kept the keystone instance in the orchestrator for future token validation purpose. Change-Id: I471ed1ad94345c83a637247d814a30b38743b100
This commit is contained in:
parent
de644c15d9
commit
32d83e3614
|
@ -40,20 +40,12 @@ class BaseCollector(object):
|
|||
def __init__(self, transformers, **kwargs):
|
||||
try:
|
||||
self.transformers = transformers
|
||||
self.user = kwargs['user']
|
||||
self.password = kwargs['password']
|
||||
self.tenant = kwargs['tenant']
|
||||
self.region = kwargs['region']
|
||||
self.keystone_url = kwargs['keystone_url']
|
||||
self.period = kwargs['period']
|
||||
except IndexError as e:
|
||||
raise ValueError("Missing argument (%s)" % e)
|
||||
|
||||
self._check_transformers()
|
||||
|
||||
self._conn = None
|
||||
self._connect()
|
||||
|
||||
def _check_transformers(self):
|
||||
"""Check for transformer prerequisites
|
||||
|
||||
|
@ -63,12 +55,6 @@ class BaseCollector(object):
|
|||
raise TransformerDependencyError(self.collector_name,
|
||||
dependency)
|
||||
|
||||
@abc.abstractmethod
|
||||
def _connect(self):
|
||||
"""Connect to the backend
|
||||
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def last_month():
|
||||
month_start = ck_utils.get_month_start()
|
||||
|
|
|
@ -16,10 +16,30 @@
|
|||
# @author: Stéphane Albert
|
||||
#
|
||||
from ceilometerclient import client as cclient
|
||||
from oslo.config import cfg
|
||||
|
||||
from cloudkitty import collector
|
||||
from cloudkitty import utils as ck_utils
|
||||
|
||||
ceilometer_collector_opts = [
|
||||
cfg.StrOpt('username',
|
||||
default='cloudkitty',
|
||||
help='OpenStack username.'),
|
||||
cfg.StrOpt('password',
|
||||
default='',
|
||||
help='OpenStack password.'),
|
||||
cfg.StrOpt('tenant',
|
||||
default='service',
|
||||
help='OpenStack tenant.'),
|
||||
cfg.StrOpt('region',
|
||||
default='',
|
||||
help='OpenStack region.'),
|
||||
cfg.StrOpt('url',
|
||||
default='http://127.0.0.1:5000',
|
||||
help='OpenStack auth URL.'), ]
|
||||
|
||||
cfg.CONF.register_opts(ceilometer_collector_opts, 'ceilometer_collector')
|
||||
|
||||
|
||||
class ResourceNotFound(Exception):
|
||||
"""Raised when the resource doesn't exist."""
|
||||
|
@ -63,13 +83,17 @@ class CeilometerCollector(collector.BaseCollector):
|
|||
def __init__(self, transformers, **kwargs):
|
||||
super(CeilometerCollector, self).__init__(transformers, **kwargs)
|
||||
|
||||
self.user = cfg.CONF.ceilometer_collector.username
|
||||
self.password = cfg.CONF.ceilometer_collector.password
|
||||
self.tenant = cfg.CONF.ceilometer_collector.tenant
|
||||
self.region = cfg.CONF.ceilometer_collector.region
|
||||
self.keystone_url = cfg.CONF.ceilometer_collector.url
|
||||
|
||||
self.t_ceilometer = self.transformers['CeilometerTransformer']
|
||||
self.t_cloudkitty = self.transformers['CloudKittyFormatTransformer']
|
||||
|
||||
self._cacher = CeilometerResourceCacher()
|
||||
|
||||
def _connect(self):
|
||||
"""Initialize connection to the Ceilometer endpoint."""
|
||||
self._conn = cclient.get_client('2', os_username=self.user,
|
||||
os_password=self.password,
|
||||
os_auth_url=self.keystone_url,
|
||||
|
|
|
@ -35,9 +35,6 @@ class MetaCollector(collector.BaseCollector):
|
|||
self._mappings = {}
|
||||
self._load_mappings()
|
||||
|
||||
def _connect(self):
|
||||
pass
|
||||
|
||||
def _load_mappings(self):
|
||||
mappings = self._db.list_services()
|
||||
for mapping in mappings:
|
||||
|
@ -60,11 +57,6 @@ class MetaCollector(collector.BaseCollector):
|
|||
if self._check_enabled(name):
|
||||
self._collectors[name] = collectors[name].plugin(
|
||||
self.transformers,
|
||||
user=self.user,
|
||||
password=self.password,
|
||||
tenant=self.tenant,
|
||||
region=self.region,
|
||||
keystone_url=self.keystone_url,
|
||||
period=self.period)
|
||||
|
||||
def map_retrieve(self, trans_resource, res_collector=None):
|
||||
|
|
|
@ -28,7 +28,6 @@ from cloudkitty import config # NOQA
|
|||
from cloudkitty import extension_manager
|
||||
from cloudkitty.openstack.common import lockutils
|
||||
from cloudkitty.openstack.common import log as logging
|
||||
from cloudkitty import state
|
||||
from cloudkitty import utils as ck_utils
|
||||
|
||||
eventlet.monkey_patch()
|
||||
|
@ -94,25 +93,17 @@ class BillingEndpoint(object):
|
|||
|
||||
class Orchestrator(object):
|
||||
def __init__(self):
|
||||
self.keystone = kclient.Client(username=CONF.auth.username,
|
||||
self.admin_ks = kclient.Client(username=CONF.auth.username,
|
||||
password=CONF.auth.password,
|
||||
tenant_name=CONF.auth.tenant,
|
||||
region_name=CONF.auth.region,
|
||||
auth_url=CONF.auth.url)
|
||||
|
||||
self.sm = state.DBStateManager(self.keystone.user_id,
|
||||
'osrtf')
|
||||
|
||||
# Transformers
|
||||
self.transformers = {}
|
||||
self._load_transformers()
|
||||
|
||||
collector_args = {'transformers': self.transformers,
|
||||
'user': CONF.auth.username,
|
||||
'password': CONF.auth.password,
|
||||
'tenant': CONF.auth.tenant,
|
||||
'region': CONF.auth.region,
|
||||
'keystone_url': CONF.auth.url,
|
||||
'period': CONF.collect.period}
|
||||
self.collector = driver.DriverManager(
|
||||
COLLECTORS_NAMESPACE,
|
||||
|
|
|
@ -347,6 +347,28 @@
|
|||
#url=
|
||||
|
||||
|
||||
[ceilometer_collector]
|
||||
|
||||
#
|
||||
# Options defined in cloudkitty.collector.ceilometer
|
||||
#
|
||||
|
||||
# OpenStack username. (string value)
|
||||
#username=cloudkitty
|
||||
|
||||
# OpenStack password. (string value)
|
||||
#password=
|
||||
|
||||
# OpenStack tenant. (string value)
|
||||
#tenant=service
|
||||
|
||||
# OpenStack region. (string value)
|
||||
#region=
|
||||
|
||||
# OpenStack auth URL. (string value)
|
||||
#url=http://127.0.0.1:5000
|
||||
|
||||
|
||||
[collect]
|
||||
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue