Fix the hard-coded etcd cluster size

In before, the etcd cluster size was hard-coded to 1, since HA mode
hadn't been implemented at that time. Now, we fix it. The etcd
cluster size is set to the number of master nodes.

Change-Id: I198ca604401bc805f31e8187f5245177761edf56
Closes-Bug: #1491602
This commit is contained in:
Hongbin Lu 2015-09-02 18:07:50 -04:00
parent de22f83fd2
commit c6c4053d95
2 changed files with 21 additions and 3 deletions

View File

@ -376,11 +376,9 @@ class AtomicK8sTemplateDefinition(BaseTemplateDefinition):
if hasattr(bay, 'discovery_url') and bay.discovery_url:
discovery_url = bay.discovery_url
else:
# TODO(hongbin): Eliminate hard coding of the size when multiple
# masters is supported.
discovery_endpoint = (
cfg.CONF.bay.etcd_discovery_service_endpoint_format %
{'size': 1})
{'size': bay.master_count})
discovery_url = requests.get(discovery_endpoint).text
bay.discovery_url = discovery_url

View File

@ -166,6 +166,26 @@ class AtomicK8sTemplateDefinitionTestCase(base.TestCase):
mock_get_params.assert_called_once_with(mock_context, mock_baymodel,
mock_bay, **expected_kwargs)
@mock.patch('requests.get')
def test_k8s_get_discovery_url(self, mock_get):
cfg.CONF.set_override('etcd_discovery_service_endpoint_format',
'http://etcd/test?size=%(size)d',
group='bay')
expected_discovery_url = 'http://etcd/token'
mock_resp = mock.MagicMock()
mock_resp.text = expected_discovery_url
mock_get.return_value = mock_resp
mock_bay = mock.MagicMock()
mock_bay.master_count = 10
mock_bay.discovery_url = None
k8s_def = tdef.AtomicK8sTemplateDefinition()
discovery_url = k8s_def.get_discovery_url(mock_bay)
mock_get.assert_called_once_with('http://etcd/test?size=10')
self.assertEqual(mock_bay.discovery_url, expected_discovery_url)
self.assertEqual(discovery_url, expected_discovery_url)
class AtomicSwarmTemplateDefinitionTestCase(base.TestCase):