Add support for DescribeStackResource
Signed-off-by: Scott Greene <scott.greene@getbraintree.com>
This commit is contained in:
parent
ec10699c38
commit
da98052b18
@ -6,6 +6,7 @@ from six.moves.urllib.parse import urlparse
|
|||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.s3 import s3_backend
|
from moto.s3 import s3_backend
|
||||||
from .models import cloudformation_backends
|
from .models import cloudformation_backends
|
||||||
|
from .exceptions import ValidationError
|
||||||
|
|
||||||
|
|
||||||
class CloudFormationResponse(BaseResponse):
|
class CloudFormationResponse(BaseResponse):
|
||||||
@ -68,11 +69,26 @@ class CloudFormationResponse(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_STACKS_TEMPLATE)
|
template = self.response_template(DESCRIBE_STACKS_TEMPLATE)
|
||||||
return template.render(stacks=stacks)
|
return template.render(stacks=stacks)
|
||||||
|
|
||||||
|
def describe_stack_resource(self):
|
||||||
|
stack_name = self._get_param('StackName')
|
||||||
|
stack = self.cloudformation_backend.get_stack(stack_name)
|
||||||
|
logical_resource_id = self._get_param('LogicalResourceId')
|
||||||
|
|
||||||
|
for stack_resource in stack.stack_resources:
|
||||||
|
if stack_resource.logical_resource_id == logical_resource_id:
|
||||||
|
resource = stack_resource
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise ValidationError(logical_resource_id)
|
||||||
|
|
||||||
|
template = self.response_template(DESCRIBE_STACK_RESOURCE_RESPONSE_TEMPLATE)
|
||||||
|
return template.render(stack=stack, resource=resource)
|
||||||
|
|
||||||
def describe_stack_resources(self):
|
def describe_stack_resources(self):
|
||||||
stack_name = self._get_param('StackName')
|
stack_name = self._get_param('StackName')
|
||||||
stack = self.cloudformation_backend.get_stack(stack_name)
|
stack = self.cloudformation_backend.get_stack(stack_name)
|
||||||
|
|
||||||
template = self.response_template(DESCRIBE_STACKS_RESOURCES_RESPONSE)
|
template = self.response_template(DESCRIBE_STACK_RESOURCES_RESPONSE)
|
||||||
return template.render(stack=stack)
|
return template.render(stack=stack)
|
||||||
|
|
||||||
def list_stacks(self):
|
def list_stacks(self):
|
||||||
@ -199,7 +215,22 @@ DESCRIBE_STACKS_TEMPLATE = """<DescribeStacksResponse>
|
|||||||
</DescribeStacksResponse>"""
|
</DescribeStacksResponse>"""
|
||||||
|
|
||||||
|
|
||||||
DESCRIBE_STACKS_RESOURCES_RESPONSE = """<DescribeStackResourcesResult>
|
DESCRIBE_STACK_RESOURCE_RESPONSE_TEMPLATE = """<DescribeStackResourceResponse>
|
||||||
|
<DescribeStackResourceResult>
|
||||||
|
<StackResourceDetail>
|
||||||
|
<StackId>{{ stack.stack_id }}</StackId>
|
||||||
|
<StackName>{{ stack.name }}</StackName>
|
||||||
|
<LogicalResourceId>{{ resource.logical_resource_id }}</LogicalResourceId>
|
||||||
|
<PhysicalResourceId>{{ resource.physical_resource_id }}</PhysicalResourceId>
|
||||||
|
<ResourceType>{{ resource.type }}</ResourceType>
|
||||||
|
<Timestamp>2010-07-27T22:27:28Z</Timestamp>
|
||||||
|
<ResourceStatus>{{ stack.status }}</ResourceStatus>
|
||||||
|
</StackResourceDetail>
|
||||||
|
</DescribeStackResourceResult>
|
||||||
|
</DescribeStackResourceResponse>"""
|
||||||
|
|
||||||
|
|
||||||
|
DESCRIBE_STACK_RESOURCES_RESPONSE = """<DescribeStackResourcesResult>
|
||||||
<StackResources>
|
<StackResources>
|
||||||
{% for resource in stack.stack_resources %}
|
{% for resource in stack.stack_resources %}
|
||||||
<member>
|
<member>
|
||||||
|
Loading…
Reference in New Issue
Block a user