Merge "Conductor: Remove _update_stack_outputs from bay_conductor"
This commit is contained in:
commit
25ae7c7044
|
@ -107,15 +107,6 @@ def _update_stack(context, osc, bay, scale_manager=None):
|
||||||
return osc.heat().stacks.update(bay.stack_id, **fields)
|
return osc.heat().stacks.update(bay.stack_id, **fields)
|
||||||
|
|
||||||
|
|
||||||
def _update_stack_outputs(context, stack, bay):
|
|
||||||
baymodel = conductor_utils.retrieve_baymodel(context, bay)
|
|
||||||
cluster_distro = baymodel.cluster_distro
|
|
||||||
cluster_coe = baymodel.coe
|
|
||||||
definition = TDef.get_template_definition('vm', cluster_distro,
|
|
||||||
cluster_coe)
|
|
||||||
return definition.update_outputs(stack, bay)
|
|
||||||
|
|
||||||
|
|
||||||
class Handler(object):
|
class Handler(object):
|
||||||
|
|
||||||
_update_allowed_properties = set(['node_count'])
|
_update_allowed_properties = set(['node_count'])
|
||||||
|
@ -242,7 +233,7 @@ class HeatPoller(object):
|
||||||
raise loopingcall.LoopingCallDone()
|
raise loopingcall.LoopingCallDone()
|
||||||
if (stack.stack_status in [bay_status.CREATE_COMPLETE,
|
if (stack.stack_status in [bay_status.CREATE_COMPLETE,
|
||||||
bay_status.UPDATE_COMPLETE]):
|
bay_status.UPDATE_COMPLETE]):
|
||||||
_update_stack_outputs(self.context, stack, self.bay)
|
self.template_def.update_outputs(stack, self.bay)
|
||||||
|
|
||||||
self.bay.status = stack.stack_status
|
self.bay.status = stack.stack_status
|
||||||
self.bay.status_reason = stack.stack_status_reason
|
self.bay.status_reason = stack.stack_status_reason
|
||||||
|
|
|
@ -351,35 +351,6 @@ class TestBayConductorWithK8s(base.TestCase):
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
reqget.assert_called_once_with('http://etcd/test?size=1')
|
reqget.assert_called_once_with('http://etcd/test?size=1')
|
||||||
|
|
||||||
@patch('magnum.objects.BayModel.get_by_uuid')
|
|
||||||
def test_update_stack_outputs(self, mock_objects_baymodel_get_by_uuid):
|
|
||||||
baymodel_dict = self.baymodel_dict
|
|
||||||
baymodel_dict['cluster_distro'] = 'coreos'
|
|
||||||
baymodel = objects.BayModel(self.context, **baymodel_dict)
|
|
||||||
mock_objects_baymodel_get_by_uuid.return_value = baymodel
|
|
||||||
expected_api_address = 'api_address'
|
|
||||||
expected_node_addresses = ['ex_minion', 'address']
|
|
||||||
|
|
||||||
outputs = [
|
|
||||||
{"output_value": expected_node_addresses,
|
|
||||||
"description": "No description given",
|
|
||||||
"output_key": "kube_minions_external"},
|
|
||||||
{"output_value": expected_api_address,
|
|
||||||
"description": "No description given",
|
|
||||||
"output_key": "api_address"},
|
|
||||||
{"output_value": ['any', 'output'],
|
|
||||||
"description": "No description given",
|
|
||||||
"output_key": "kube_minions"}
|
|
||||||
]
|
|
||||||
mock_stack = mock.MagicMock()
|
|
||||||
mock_stack.outputs = outputs
|
|
||||||
mock_bay = mock.MagicMock()
|
|
||||||
|
|
||||||
bay_conductor._update_stack_outputs(self.context, mock_stack, mock_bay)
|
|
||||||
|
|
||||||
self.assertEqual(mock_bay.api_address, expected_api_address)
|
|
||||||
self.assertEqual(mock_bay.node_addresses, expected_node_addresses)
|
|
||||||
|
|
||||||
@patch('magnum.common.short_id.generate_id')
|
@patch('magnum.common.short_id.generate_id')
|
||||||
@patch('heatclient.common.template_utils.get_template_contents')
|
@patch('heatclient.common.template_utils.get_template_contents')
|
||||||
@patch('magnum.conductor.handlers.bay_conductor'
|
@patch('magnum.conductor.handlers.bay_conductor'
|
||||||
|
@ -585,8 +556,7 @@ class TestBayConductorWithK8s(base.TestCase):
|
||||||
self.assertRaises(loopingcall.LoopingCallDone, poller.poll_and_check)
|
self.assertRaises(loopingcall.LoopingCallDone, poller.poll_and_check)
|
||||||
self.assertEqual(poller.attempts, 2)
|
self.assertEqual(poller.attempts, 2)
|
||||||
|
|
||||||
@patch('magnum.conductor.handlers.bay_conductor._update_stack_outputs')
|
def test_poll_done_by_update(self):
|
||||||
def test_poll_done_by_update(self, mock_update_stack_outputs):
|
|
||||||
mock_heat_stack, bay, poller = self.setup_poll_test()
|
mock_heat_stack, bay, poller = self.setup_poll_test()
|
||||||
|
|
||||||
mock_heat_stack.stack_status = bay_status.UPDATE_COMPLETE
|
mock_heat_stack.stack_status = bay_status.UPDATE_COMPLETE
|
||||||
|
@ -704,8 +674,7 @@ class TestBayConductorWithK8s(base.TestCase):
|
||||||
|
|
||||||
self.assertEqual(bay.node_count, 1)
|
self.assertEqual(bay.node_count, 1)
|
||||||
|
|
||||||
@patch('magnum.conductor.handlers.bay_conductor._update_stack_outputs')
|
def test_poll_node_count_by_update(self):
|
||||||
def test_poll_node_count_by_update(self, mock_update_stack_outputs):
|
|
||||||
mock_heat_stack, bay, poller = self.setup_poll_test()
|
mock_heat_stack, bay, poller = self.setup_poll_test()
|
||||||
|
|
||||||
mock_heat_stack.parameters = {'number_of_minions': 2}
|
mock_heat_stack.parameters = {'number_of_minions': 2}
|
||||||
|
@ -933,8 +902,7 @@ class TestBayConductorWithSwarm(base.TestCase):
|
||||||
|
|
||||||
self.assertEqual(bay.node_count, 1)
|
self.assertEqual(bay.node_count, 1)
|
||||||
|
|
||||||
@patch('magnum.conductor.handlers.bay_conductor._update_stack_outputs')
|
def test_poll_node_count_by_update(self):
|
||||||
def test_poll_node_count_by_update(self, mock_update_stack_outputs):
|
|
||||||
mock_heat_stack, bay, poller = self.setup_poll_test()
|
mock_heat_stack, bay, poller = self.setup_poll_test()
|
||||||
|
|
||||||
mock_heat_stack.parameters = {'number_of_nodes': 2}
|
mock_heat_stack.parameters = {'number_of_nodes': 2}
|
||||||
|
@ -1049,8 +1017,7 @@ class TestBayConductorWithMesos(base.TestCase):
|
||||||
|
|
||||||
self.assertEqual(bay.node_count, 1)
|
self.assertEqual(bay.node_count, 1)
|
||||||
|
|
||||||
@patch('magnum.conductor.handlers.bay_conductor._update_stack_outputs')
|
def test_poll_node_count_by_update(self):
|
||||||
def test_poll_node_count_by_update(self, mock_update_stack_outputs):
|
|
||||||
mock_heat_stack, bay, poller = self.setup_poll_test()
|
mock_heat_stack, bay, poller = self.setup_poll_test()
|
||||||
|
|
||||||
mock_heat_stack.parameters = {'number_of_slaves': 2}
|
mock_heat_stack.parameters = {'number_of_slaves': 2}
|
||||||
|
|
|
@ -136,6 +136,35 @@ class TemplateDefinitionTestCase(base.TestCase):
|
||||||
value = output.get_output_value(mock_stack)
|
value = output.get_output_value(mock_stack)
|
||||||
self.assertIsNone(value)
|
self.assertIsNone(value)
|
||||||
|
|
||||||
|
def test_update_outputs(self):
|
||||||
|
definition = tdef.TemplateDefinition.get_template_definition(
|
||||||
|
'vm',
|
||||||
|
'fedora-atomic',
|
||||||
|
'kubernetes')
|
||||||
|
|
||||||
|
expected_api_address = 'api_address'
|
||||||
|
expected_node_addresses = ['ex_minion', 'address']
|
||||||
|
|
||||||
|
outputs = [
|
||||||
|
{"output_value": expected_node_addresses,
|
||||||
|
"description": "No description given",
|
||||||
|
"output_key": "kube_minions_external"},
|
||||||
|
{"output_value": expected_api_address,
|
||||||
|
"description": "No description given",
|
||||||
|
"output_key": "api_address"},
|
||||||
|
{"output_value": ['any', 'output'],
|
||||||
|
"description": "No description given",
|
||||||
|
"output_key": "kube_minions"}
|
||||||
|
]
|
||||||
|
mock_stack = mock.MagicMock()
|
||||||
|
mock_stack.outputs = outputs
|
||||||
|
mock_bay = mock.MagicMock()
|
||||||
|
|
||||||
|
definition.update_outputs(mock_stack, mock_bay)
|
||||||
|
|
||||||
|
self.assertEqual(mock_bay.api_address, expected_api_address)
|
||||||
|
self.assertEqual(mock_bay.node_addresses, expected_node_addresses)
|
||||||
|
|
||||||
|
|
||||||
class AtomicK8sTemplateDefinitionTestCase(base.TestCase):
|
class AtomicK8sTemplateDefinitionTestCase(base.TestCase):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue