Use leader storage for `db-initialised` flag
There are no relation-level concerns for this flag. Any pre-existing deployments with recent charms (as in released 2015 or later) will have already migrated the peer storage to leader storage, so this change can build on that work directly. Ref: https://github.com/juju/charm-helpers/blame/master/charmhelpers/contrib/peerstorage/__init__.py Change-Id: Ia7362d257428b102c452d0e91bcf9b3378a1e6e9 Closes-bug: #1783747
This commit is contained in:
parent
1e991dc28b
commit
a4c39edc24
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue