diff options
author | Thomas Herve <therve@redhat.com> | 2016-03-17 16:03:08 +0100 |
---|---|---|
committer | Zane Bitter <zbitter@redhat.com> | 2016-04-06 18:14:23 -0400 |
commit | a404131e9135012007dd34a3796c197761fbd819 (patch) | |
tree | f425ab5f60701dd7005f6583fd95fc6efdac7219 /heat_integrationtests | |
parent | a00b2f890e604b662dfc43669776435f67be217e (diff) | |
download | heat-a404131e9135012007dd34a3796c197761fbd819.tar.gz |
Remove unknown parameters in patched update
When updating a stack with the existing flag, we keep the parameters
from the old template to be used against the new version. Sometimes
parameters will get remove and won't make sense anymore, and keeping
them would break update with a 'Parameter was not defined' error. This
filters out such parameters so that the updates succeed.
Change-Id: I6f2aa77da28d271dd001a137bb574b5470292f15
Closes-Bug: #1558610
(cherry picked from commit 90fc4fe89e76e18df8831e1163c064eae76fbf69)
Diffstat (limited to 'heat_integrationtests')
-rw-r--r-- | heat_integrationtests/functional/test_template_resource.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/heat_integrationtests/functional/test_template_resource.py b/heat_integrationtests/functional/test_template_resource.py index 9ae7a2dcb..650e46a7c 100644 --- a/heat_integrationtests/functional/test_template_resource.py +++ b/heat_integrationtests/functional/test_template_resource.py @@ -890,3 +890,69 @@ resources: stack_identifier, self.main_template_update, files={'resource.yaml': self.nested_templ_update}) + + +class TemplateResourceRemovedParamTest(functional_base.FunctionalTestsBase): + + main_template = ''' +heat_template_version: 2013-05-23 +parameters: + value1: + type: string + default: foo +resources: + my_resource: + type: resource.yaml + properties: + value1: {get_param: value1} +''' + nested_templ = ''' +heat_template_version: 2013-05-23 +parameters: + value1: + type: string + default: foo +resources: + test: + type: OS::Heat::TestResource + properties: + value: {get_param: value1} +''' + main_template_update = ''' +heat_template_version: 2013-05-23 +resources: + my_resource: + type: resource.yaml +''' + nested_templ_update = ''' +heat_template_version: 2013-05-23 +parameters: + value1: + type: string + default: foo + value2: + type: string + default: bar +resources: + test: + type: OS::Heat::TestResource + properties: + value: + str_replace: + template: VAL1-VAL2 + params: + VAL1: {get_param: value1} + VAL2: {get_param: value2} +''' + + def test_update(self): + stack_identifier = self.stack_create( + template=self.main_template, + environment={'parameters': {'value1': 'spam'}}, + files={'resource.yaml': self.nested_templ}) + + self.update_stack( + stack_identifier, + self.main_template_update, + environment={'parameter_defaults': {'value2': 'egg'}}, + files={'resource.yaml': self.nested_templ_update}, existing=True) |