Add cloudformation update from s3 support (#1377)

* Fix variable name typo

* Make it possible to delete EC2 instances from cloudformation json

* Add support for updating a cloudformation stack from an s3 template url
This commit is contained in:
William Richard 2017-12-08 05:48:29 -05:00 committed by Terry Cain
commit 92f5f7b263
4 changed files with 73 additions and 22 deletions

View file

@ -453,8 +453,8 @@ class ResourceMap(collections.Mapping):
resource_name, resource_json, self, self._region_name)
self._parsed_resources[resource_name] = new_resource
removed_resource_nams = set(old_template) - set(new_template)
for resource_name in removed_resource_nams:
removed_resource_names = set(old_template) - set(new_template)
for resource_name in removed_resource_names:
resource_json = old_template[resource_name]
parse_and_delete_resource(
resource_name, resource_json, self, self._region_name)

View file

@ -161,11 +161,15 @@ class CloudFormationResponse(BaseResponse):
def update_stack(self):
stack_name = self._get_param('StackName')
role_arn = self._get_param('RoleARN')
template_url = self._get_param('TemplateURL')
if self._get_param('UsePreviousTemplate') == "true":
stack_body = self.cloudformation_backend.get_stack(
stack_name).template
elif template_url:
stack_body = self._get_stack_from_s3_url(template_url)
else:
stack_body = self._get_param('TemplateBody')
parameters = dict([
(parameter['parameter_key'], parameter['parameter_value'])
for parameter