Refactor loop from code review feedback. Address possibility of the remote
value not being set prior to being used.
This commit is contained in:
parent
f8962a5c94
commit
ff2291756e
|
@ -42,28 +42,29 @@ class MongoDBContext(OSContextGenerator):
|
|||
host = relation_get('hostname', unit, relid)
|
||||
port = relation_get('port', unit, relid)
|
||||
|
||||
conf = {
|
||||
"db_host": host,
|
||||
"db_port": port,
|
||||
"db_name": CEILOMETER_DB
|
||||
}
|
||||
|
||||
if not context_complete(conf):
|
||||
continue
|
||||
|
||||
if not use_replset:
|
||||
conf = {
|
||||
"db_host": host,
|
||||
"db_port": port,
|
||||
"db_name": CEILOMETER_DB
|
||||
}
|
||||
return conf
|
||||
|
||||
if context_complete(conf):
|
||||
return conf
|
||||
else:
|
||||
if replset is None:
|
||||
replset = relation_get('replset', unit, relid)
|
||||
if replset is None:
|
||||
replset = relation_get('replset', unit, relid)
|
||||
|
||||
mongo_servers.append('{}:{}'.format(host, port))
|
||||
mongo_servers.append('{}:{}'.format(host, port))
|
||||
|
||||
if mongo_servers:
|
||||
conf = {
|
||||
return {
|
||||
'db_mongo_servers': ','.join(mongo_servers),
|
||||
'db_name': CEILOMETER_DB,
|
||||
'db_replset': replset
|
||||
}
|
||||
return conf
|
||||
|
||||
return {}
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
ceilometer_hooks.py
|
|
@ -6,11 +6,11 @@ import ceilometer_utils as utils
|
|||
from test_utils import CharmTestCase, mock_open
|
||||
|
||||
TO_PATCH = [
|
||||
'config',
|
||||
'relation_get',
|
||||
'relation_ids',
|
||||
'related_units',
|
||||
'config',
|
||||
'os_release'
|
||||
'os_release',
|
||||
]
|
||||
|
||||
|
||||
|
@ -69,6 +69,20 @@ class CeilometerContextsTest(CharmTestCase):
|
|||
{'db_host': 'mongodb-0', 'db_port': 8090,
|
||||
'db_name': 'ceilometer'})
|
||||
|
||||
@patch.object(contexts, 'context_complete')
|
||||
def test_mongodb_context_related_replset_missing_values(self, mock_ctxcmp):
|
||||
mock_ctxcmp.return_value = False
|
||||
self.relation_ids.return_value = ['shared-db:0']
|
||||
self.related_units.return_value = ['mongodb/0']
|
||||
data = {
|
||||
'hostname': None,
|
||||
'port': 8090,
|
||||
'replset': 'replset-1'
|
||||
}
|
||||
self.test_relation.set(data)
|
||||
self.os_release.return_value = 'icehouse'
|
||||
self.assertEquals(contexts.MongoDBContext()(), {})
|
||||
|
||||
def test_mongodb_context_related_replset_multiple_mongo(self):
|
||||
self.relation_ids.return_value = ['shared-db:0']
|
||||
related_units = {
|
||||
|
|
Loading…
Reference in New Issue