Deleted Stack Fix and ValidationError for DescribeStacks.
* stop backed from trying to iterate over empty list of deleted stacks. * Update DescribeStacks to throw ValidationError if stack name or id doesn't exist.
This commit is contained in:
parent
e67ef8f038
commit
90191675a2
@ -1,6 +1,26 @@
|
||||
from __future__ import unicode_literals
|
||||
from boto.exception import BotoServerError
|
||||
from jinja2 import Template
|
||||
|
||||
|
||||
|
||||
class UnformattedGetAttTemplateException(Exception):
|
||||
description = 'Template error: resource {0} does not support attribute type {1} in Fn::GetAtt'
|
||||
status_code = 400
|
||||
|
||||
|
||||
class ValidationError(BotoServerError):
|
||||
def __init__(self, name_or_id):
|
||||
template = Template(STACK_DOES_NOT_EXIST_RESPONSE)
|
||||
super(ValidationError, self).__init__(status=400, reason='Bad Request',
|
||||
body=template.render(name_or_id=name_or_id))
|
||||
|
||||
STACK_DOES_NOT_EXIST_RESPONSE = """<ErrorResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
|
||||
<Error>
|
||||
<Type>Sender</Type>
|
||||
<Code>ValidationError</Code>
|
||||
<Message>Stack:{{ name_or_id }} does not exist</Message>
|
||||
</Error>
|
||||
<RequestId>cf4c737e-5ae2-11e4-a7c9-ad44eEXAMPLE</RequestId>
|
||||
</ErrorResponse>
|
||||
"""
|
||||
|
@ -5,6 +5,7 @@ from moto.core import BaseBackend
|
||||
|
||||
from .parsing import ResourceMap, OutputMap
|
||||
from .utils import generate_stack_id
|
||||
from .exceptions import ValidationError
|
||||
|
||||
|
||||
class FakeStack(object):
|
||||
@ -50,10 +51,12 @@ class CloudFormationBackend(BaseBackend):
|
||||
for stack in stacks:
|
||||
if stack.name == name_or_stack_id or stack.stack_id == name_or_stack_id:
|
||||
return [stack]
|
||||
if self.deleted_stacks:
|
||||
deleted_stacks = self.deleted_stacks.values()
|
||||
for stack in deleted_stacks:
|
||||
if stack.stack_id == name_or_stack_id:
|
||||
return [stack]
|
||||
raise ValidationError(name_or_stack_id)
|
||||
else:
|
||||
return stacks
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user