Merge "Fix/refactor test_stack_update_existing_parameters"
This commit is contained in:
commit
d4f151c0e5
@ -836,61 +836,34 @@ class StackServiceAdoptUpdateTest(common.HeatTestCase):
|
|||||||
self.m.VerifyAll()
|
self.m.VerifyAll()
|
||||||
|
|
||||||
def test_stack_update_existing_parameters(self):
|
def test_stack_update_existing_parameters(self):
|
||||||
'''Use a template with default parameter and no input parameter
|
'''Use a template with existing parameters, then update with a
|
||||||
then update with a template without default and no input
|
template containing additional paramters and ensure all are preserved.
|
||||||
parameter, using the existing parameter.
|
|
||||||
'''
|
'''
|
||||||
stack_name = 'service_update_test_stack_existing_parameters'
|
stack_name = 'service_update_test_stack_existing_parameters'
|
||||||
no_params = {}
|
update_params = {'encrypted_param_names': [],
|
||||||
with_params = {'KeyName': 'foo'}
|
'parameter_defaults': {},
|
||||||
|
'parameters': {'newparam': 123},
|
||||||
old_stack = tools.get_stack(stack_name, self.ctx, with_params=False)
|
'resource_registry': {'resources': {}}}
|
||||||
sid = old_stack.store()
|
|
||||||
old_stack.set_stack_user_project_id('1234')
|
|
||||||
s = stack_object.Stack.get_by_id(self.ctx, sid)
|
|
||||||
|
|
||||||
t = template_format.parse(wp_template_no_default)
|
|
||||||
env = environment.Environment({'parameters': with_params,
|
|
||||||
'resource_registry': {'rsc': 'test'}})
|
|
||||||
template = templatem.Template(t, env=env)
|
|
||||||
stack = parser.Stack(self.ctx, stack_name, template)
|
|
||||||
|
|
||||||
self._stub_update_mocks(s, old_stack)
|
|
||||||
|
|
||||||
templatem.Template(wp_template_no_default,
|
|
||||||
files=None, env=old_stack.env).AndReturn(stack.t)
|
|
||||||
environment.Environment(no_params).AndReturn(old_stack.env)
|
|
||||||
parser.Stack(self.ctx, stack.name,
|
|
||||||
stack.t,
|
|
||||||
convergence=False, current_traversal=None,
|
|
||||||
prev_raw_template_id=None, current_deps=None,
|
|
||||||
disable_rollback=True, nested_depth=0,
|
|
||||||
owner_id=None, parent_resource=None,
|
|
||||||
stack_user_project_id='1234',
|
|
||||||
strict_validate=True,
|
|
||||||
tenant_id='test_tenant_id', timeout_mins=60,
|
|
||||||
user_creds_id=u'1',
|
|
||||||
username='test_username').AndReturn(stack)
|
|
||||||
|
|
||||||
self.m.StubOutWithMock(stack, 'validate')
|
|
||||||
stack.validate().AndReturn(None)
|
|
||||||
|
|
||||||
evt_mock = self.m.CreateMockAnything()
|
|
||||||
self.m.StubOutWithMock(grevent, 'Event')
|
|
||||||
grevent.Event().AndReturn(evt_mock)
|
|
||||||
|
|
||||||
self.m.ReplayAll()
|
|
||||||
|
|
||||||
api_args = {rpc_api.PARAM_TIMEOUT: 60,
|
api_args = {rpc_api.PARAM_TIMEOUT: 60,
|
||||||
rpc_api.PARAM_EXISTING: True}
|
rpc_api.PARAM_EXISTING: True}
|
||||||
result = self.man.update_stack(self.ctx, old_stack.identifier(),
|
t = template_format.parse(tools.wp_template)
|
||||||
wp_template_no_default, no_params,
|
|
||||||
|
stack = tools.get_stack(stack_name, self.ctx, with_params=True)
|
||||||
|
stack.store()
|
||||||
|
stack.set_stack_user_project_id('1234')
|
||||||
|
self.assertEqual({'KeyName': 'test'}, stack.t.env.params)
|
||||||
|
|
||||||
|
with mock.patch('heat.engine.stack.Stack') as mock_stack:
|
||||||
|
mock_stack.load.return_value = stack
|
||||||
|
mock_stack.validate.return_value = None
|
||||||
|
result = self.man.update_stack(self.ctx, stack.identifier(),
|
||||||
|
t,
|
||||||
|
update_params,
|
||||||
None, api_args)
|
None, api_args)
|
||||||
self.assertEqual(old_stack.identifier(), result)
|
tmpl = mock_stack.call_args[0][2]
|
||||||
self.assertIsInstance(result, dict)
|
self.assertEqual({'KeyName': 'test', 'newparam': 123},
|
||||||
self.assertTrue(result['stack_id'])
|
tmpl.env.params)
|
||||||
self.assertEqual([evt_mock], self.man.thread_group_mgr.events)
|
self.assertEqual(stack.identifier(), result)
|
||||||
self.m.VerifyAll()
|
|
||||||
|
|
||||||
def test_stack_update_reuses_api_params(self):
|
def test_stack_update_reuses_api_params(self):
|
||||||
stack_name = 'service_update_test_stack'
|
stack_name = 'service_update_test_stack'
|
||||||
|
Loading…
Reference in New Issue
Block a user