Merge "Use leader storage for `db-initialised` flag"

This commit is contained in:
Zuul 2018-07-30 08:33:17 +00:00 committed by Gerrit Code Review
commit 0e9ced29ab
4 changed files with 24 additions and 13 deletions

View File

@ -467,7 +467,7 @@ def cluster_joined(rid=None):
@restart_on_change(restart_map(), stopstart=True)
def cluster_changed():
# NOTE(jamespage) re-echo passwords for peer storage
echo_whitelist = ['_passwd', 'identity-service:', 'db-initialised']
echo_whitelist = ['_passwd', 'identity-service:']
log("Peer echo whitelist: %s" % (echo_whitelist), level=DEBUG)
peer_echo(includes=echo_whitelist, force=True)

View File

@ -66,10 +66,6 @@ from charmhelpers.contrib.openstack.utils import (
is_unit_paused_set,
)
from charmhelpers.core.strutils import (
bool_from_string,
)
from charmhelpers.core.decorators import (
retry_on_exception,
)
@ -651,11 +647,9 @@ def do_openstack_upgrade(configs):
def is_db_initialised():
if relation_ids('cluster'):
inited = peer_retrieve('db-initialised')
if inited and bool_from_string(inited):
log("Database is initialised", level=DEBUG)
return True
if leader_get('db-initialised'):
log("Database is initialised", level=DEBUG)
return True
log("Database is NOT initialised", level=DEBUG)
return False
@ -692,7 +686,7 @@ def migrate_database():
else:
service_start(keystone_service())
time.sleep(10)
peer_store('db-initialised', 'True')
leader_set({'db-initialised': True})
# OLD

View File

@ -446,7 +446,7 @@ class KeystoneRelationTests(CharmTestCase):
mock_config.return_value = None
hooks.cluster_changed()
whitelist = ['_passwd', 'identity-service:', 'db-initialised']
whitelist = ['_passwd', 'identity-service:']
self.peer_echo.assert_called_with(force=True, includes=whitelist)
self.assertTrue(configs.write_all.called)

View File

@ -223,7 +223,23 @@ class TestKeystoneUtils(CharmTestCase):
disable_unused_apache_sites.assert_called_with()
self.reset_os_release.assert_called()
def test_migrate_database(self):
@patch.object(utils, 'leader_get')
def test_is_db_initialised_true_string(self, _leader_get):
_leader_get.return_value = "True"
self.assertTrue(utils.is_db_initialised())
@patch.object(utils, 'leader_get')
def test_is_db_initialised_true_bool(self, _leader_get):
_leader_get.return_value = True
self.assertTrue(utils.is_db_initialised())
@patch.object(utils, 'leader_get')
def test_is_db_initialised_not_set(self, _leader_get):
_leader_get.return_value = None
self.assertFalse(utils.is_db_initialised())
@patch.object(utils, 'leader_set')
def test_migrate_database(self, _leader_set):
self.os_release.return_value = 'havana'
utils.migrate_database()
@ -231,6 +247,7 @@ class TestKeystoneUtils(CharmTestCase):
cmd = ['sudo', '-u', 'keystone', 'keystone-manage', 'db_sync']
self.subprocess.check_output.assert_called_with(cmd)
self.service_start.assert_called_with('keystone')
_leader_set.assert_called_with({'db-initialised': True})
@patch.object(utils, 'leader_get')
@patch.object(utils, 'get_api_version')