Fix multiple bugs encountered with boto3
* Fix path detection for deleting keys in S3 bucket * Fix stack deletion ensure delete method exists on object * Previous tests were using a stack with no resources * Fix DESCRIBE_STACK_RESOURCES_RESPONSE, * Previously untested code path
This commit is contained in:
parent
1ece813131
commit
b152c00642
6 changed files with 81 additions and 30 deletions
|
|
@ -379,7 +379,8 @@ class ResourceMap(collections.Mapping):
|
|||
def delete(self):
|
||||
for resource in self.resources:
|
||||
parsed_resource = self._parsed_resources.pop(resource)
|
||||
parsed_resource.delete(self._region_name)
|
||||
if parsed_resource and hasattr(parsed_resource, 'delete'):
|
||||
parsed_resource.delete(self._region_name)
|
||||
|
||||
|
||||
class OutputMap(collections.Mapping):
|
||||
|
|
|
|||
|
|
@ -230,21 +230,23 @@ DESCRIBE_STACK_RESOURCE_RESPONSE_TEMPLATE = """<DescribeStackResourceResponse>
|
|||
</DescribeStackResourceResponse>"""
|
||||
|
||||
|
||||
DESCRIBE_STACK_RESOURCES_RESPONSE = """<DescribeStackResourcesResult>
|
||||
<StackResources>
|
||||
{% for resource in stack.stack_resources %}
|
||||
<member>
|
||||
<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>
|
||||
</member>
|
||||
{% endfor %}
|
||||
</StackResources>
|
||||
</DescribeStackResourcesResult>"""
|
||||
DESCRIBE_STACK_RESOURCES_RESPONSE = """<DescribeStackResourcesResponse>
|
||||
<DescribeStackResourcesResult>
|
||||
<StackResources>
|
||||
{% for resource in stack.stack_resources %}
|
||||
<member>
|
||||
<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>
|
||||
</member>
|
||||
{% endfor %}
|
||||
</StackResources>
|
||||
</DescribeStackResourcesResult>
|
||||
</DescribeStackResourcesResponse>"""
|
||||
|
||||
|
||||
LIST_STACKS_RESPONSE = """<ListStacksResponse>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ def parse_key_name(path):
|
|||
|
||||
|
||||
def is_delete_keys(request, path, bucket_name):
|
||||
return path == u'/' + bucket_name + u'/?delete' or (
|
||||
path == u'/' + bucket_name and
|
||||
getattr(request, "query_string", "") == "delete"
|
||||
return (
|
||||
path == u'/' + bucket_name + u'/?delete' or
|
||||
path == u'/' + bucket_name + u'?delete' or
|
||||
(path == u'/' + bucket_name and
|
||||
getattr(request, "query_string", "") == "delete")
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue