Fixes issue #575: cloudformation update_stack response ResponseParserError.

This commit is contained in:
Lawrence Aiello 2016-04-18 14:37:12 -04:00
commit 3017181862
4 changed files with 81 additions and 28 deletions

View file

@ -51,6 +51,7 @@ class FakeStack(object):
self.template = template
self.resource_map.update(json.loads(template))
self.output_map = self._create_output_map()
self.status = 'UPDATE_COMPLETE'
def delete(self):
self.resource_map.delete()

View file

@ -130,14 +130,18 @@ class CloudFormationResponse(BaseResponse):
name=stack_name,
template=stack_body,
)
stack_body = {
'UpdateStackResponse': {
'UpdateStackResult': {
'StackId': stack.name,
if self.request_json:
return json.dumps({
'UpdateStackResponse': {
'UpdateStackResult': {
'StackId': stack.name,
}
}
}
}
return json.dumps(stack_body)
})
else:
template = self.response_template(UPDATE_STACK_RESPONSE_TEMPLATE)
return template.render(stack=stack)
def delete_stack(self):
name_or_stack_id = self.querystring.get('StackName')[0]
@ -164,6 +168,15 @@ CREATE_STACK_RESPONSE_TEMPLATE = """<CreateStackResponse>
</CreateStackResponse>
"""
UPDATE_STACK_RESPONSE_TEMPLATE = """<UpdateStackResponse>
<UpdateStackResult>
<StackId>{{ stack.stack_id }}</StackId>
</UpdateStackResult>
<ResponseMetadata>
<RequestId>b9b5b068-3a41-11e5-94eb-example</RequestId>
</ResponseMetadata>
</UpdateStackResponse>
"""
DESCRIBE_STACKS_TEMPLATE = """<DescribeStacksResponse>
<DescribeStacksResult>