Add support for getting spot instance request tags

This commit is contained in:
Bobby Impollonia 2014-09-04 12:38:09 -07:00
parent 22d9141122
commit f029fe672d
3 changed files with 32 additions and 1 deletions

View File

@ -1211,7 +1211,7 @@ class VPCGatewayAttachmentBackend(object):
return attachment
class SpotInstanceRequest(BotoSpotRequest):
class SpotInstanceRequest(BotoSpotRequest, TaggedEC2Instance):
def __init__(self, spot_request_id, price, image_id, type, valid_from,
valid_until, launch_group, availability_zone_group, key_name,
security_groups, user_data, instance_type, placement, kernel_id,

View File

@ -186,6 +186,16 @@ DESCRIBE_SPOT_INSTANCES_TEMPLATE = """<DescribeSpotInstanceRequestsResponse xmln
</PlacementRequestType>
{% endif %}
</launchSpecification>
<tagSet>
{% for tag in request.get_tags() %}
<item>
<resourceId>{{ tag.resource_id }}</resourceId>
<resourceType>{{ tag.resource_type }}</resourceType>
<key>{{ tag.key }}</key>
<value>{{ tag.value }}</value>
</item>
{% endfor %}
</tagSet>
{% if request.launch_group %}
<launchGroup>{{ request.launch_group }}</launchGroup>
{% endif %}

View File

@ -125,3 +125,24 @@ def test_request_spot_instances_fulfilled():
request = requests[0]
request.state.should.equal("active")
@mock_ec2
def test_tag_spot_instance_request():
"""
Test that moto correctly tags a spot instance request
"""
conn = boto.connect_ec2()
request = conn.request_spot_instances(
price=0.5, image_id='ami-abcd1234',
)
request[0].add_tag('tag1', 'value1')
request[0].add_tag('tag2', 'value2')
requests = conn.get_all_spot_instance_requests()
requests.should.have.length_of(1)
request = requests[0]
tag_dict = dict(request.tags)
tag_dict.should.equal({'tag1' : 'value1', 'tag2' : 'value2'})