When VIP is set wait on hacluster is_clustered
Delay serving client relations until hacluster signals its readiness when VIP is set. Change-Id: I7dce1dd3d6891ff7fc4c6cc32d3d7ebc6c268c82 Closes-Bug: #1718247
This commit is contained in:
parent
feaad01996
commit
ce78dd4dcf
|
@ -52,6 +52,9 @@ from charmhelpers.contrib.network.ip import (
|
|||
from charmhelpers.contrib.database.mysql import (
|
||||
MySQLHelper,
|
||||
)
|
||||
from charmhelpers.contrib.hahelpers.cluster import (
|
||||
is_clustered,
|
||||
)
|
||||
from charmhelpers.contrib.openstack.utils import (
|
||||
make_assess_status_func,
|
||||
pause_unit,
|
||||
|
@ -711,6 +714,11 @@ def cluster_ready():
|
|||
|
||||
@returns boolean
|
||||
"""
|
||||
if config("vip") and not is_clustered():
|
||||
log("Waiting on hacluster to complete clustering, not clustered yet.",
|
||||
DEBUG)
|
||||
return False
|
||||
|
||||
min_size = config('min-cluster-size')
|
||||
units = 1
|
||||
for relation_id in relation_ids('cluster'):
|
||||
|
|
|
@ -253,6 +253,7 @@ TO_PATCH = [
|
|||
'relation_get',
|
||||
'leader_get',
|
||||
'is_unit_paused_set',
|
||||
'is_clustered',
|
||||
]
|
||||
|
||||
|
||||
|
@ -414,6 +415,20 @@ class UtilsTestsCTC(CharmTestCase):
|
|||
self.config.side_effect = lambda key: _config.get(key)
|
||||
self.assertTrue(percona_utils.cluster_ready())
|
||||
|
||||
# When VIP configured check is_clustered
|
||||
mock_is_sufficient_peers.return_value = True
|
||||
self.relation_ids.return_value = ['cluster:0']
|
||||
self.related_units.return_value = ['test/0', 'test/1']
|
||||
self.relation_get.return_value = 'UUID'
|
||||
_config = {'vip': '10.10.10.10', 'min-cluster-size': 3}
|
||||
self.config.side_effect = lambda key: _config.get(key)
|
||||
# HACluster not ready
|
||||
self.is_clustered.return_value = False
|
||||
self.assertFalse(percona_utils.cluster_ready())
|
||||
# HACluster ready
|
||||
self.is_clustered.return_value = True
|
||||
self.assertTrue(percona_utils.cluster_ready())
|
||||
|
||||
@mock.patch.object(percona_utils, 'cluster_ready')
|
||||
def test_client_node_is_ready(self, mock_cluster_ready):
|
||||
# Paused
|
||||
|
|
Loading…
Reference in New Issue