check metering_connection attribute by default
ensure we check metering_connection and only default to database.connection if missing. Change-Id: I985f66c145bc8795bc93f846413823c4fea2a6ac Closes-Bug: #1419962
This commit is contained in:
parent
059d6b20e4
commit
f80cd71d86
@ -88,7 +88,7 @@ class StorageBadAggregate(Exception):
|
||||
code = 400
|
||||
|
||||
|
||||
def get_connection_from_config(conf, purpose=None):
|
||||
def get_connection_from_config(conf, purpose='metering'):
|
||||
retries = conf.database.max_retries
|
||||
|
||||
# Convert retry_interval secs to msecs for retry decorator
|
||||
@ -98,11 +98,9 @@ def get_connection_from_config(conf, purpose=None):
|
||||
if conf.database_connection:
|
||||
conf.set_override('connection', conf.database_connection,
|
||||
group='database')
|
||||
namespace = 'ceilometer.metering.storage'
|
||||
url = conf.database.connection
|
||||
if purpose:
|
||||
namespace = 'ceilometer.%s.storage' % purpose
|
||||
url = getattr(conf.database, '%s_connection' % purpose) or url
|
||||
namespace = 'ceilometer.%s.storage' % purpose
|
||||
url = (getattr(conf.database, '%s_connection' % purpose) or
|
||||
conf.database.connection)
|
||||
return get_connection(url, namespace)
|
||||
|
||||
return _inner()
|
||||
|
@ -100,6 +100,21 @@ class ConnectionConfigTest(base.BaseTestCase):
|
||||
conn = storage.get_connection_from_config(self.CONF, 'event')
|
||||
self.assertIsInstance(conn, impl_hbase_event.Connection)
|
||||
|
||||
def test_three_urls_no_default(self):
|
||||
self.CONF.set_override("connection", None, group="database")
|
||||
self.CONF.set_override("metering_connection", "log://",
|
||||
group="database")
|
||||
self.CONF.set_override("alarm_connection", "sqlite://",
|
||||
group="database")
|
||||
self.CONF.set_override("event_connection", "hbase://__test__",
|
||||
group="database")
|
||||
conn = storage.get_connection_from_config(self.CONF)
|
||||
self.assertIsInstance(conn, impl_log.Connection)
|
||||
conn = storage.get_connection_from_config(self.CONF, 'alarm')
|
||||
self.assertIsInstance(conn, impl_sqlalchemy_alarm.Connection)
|
||||
conn = storage.get_connection_from_config(self.CONF, 'event')
|
||||
self.assertIsInstance(conn, impl_hbase_event.Connection)
|
||||
|
||||
def test_sqlalchemy_driver(self):
|
||||
self.CONF.set_override("connection", "sqlite+pysqlite://",
|
||||
group="database")
|
||||
|
Loading…
Reference in New Issue
Block a user