EC2 tags specified in CloudFormation should be applied to the instances (#840)

Fixes #839.
This commit is contained in:
Andy Freeland 2017-03-04 19:37:53 -08:00 committed by Steve Pulec
parent 1b6007e2b2
commit a30ba2b597
3 changed files with 10 additions and 2 deletions

View File

@ -336,7 +336,7 @@ class NetworkInterfaceBackend(object):
return generic_filter(filters, enis)
class Instance(BotoInstance, TaggedEC2Resource):
class Instance(TaggedEC2Resource, BotoInstance):
def __init__(self, ec2_backend, image_id, user_data, security_groups, **kwargs):
super(Instance, self).__init__()
self.ec2_backend = ec2_backend
@ -441,7 +441,10 @@ class Instance(BotoInstance, TaggedEC2Resource):
key_name=properties.get("KeyName"),
private_ip=properties.get('PrivateIpAddress'),
)
return reservation.instances[0]
instance = reservation.instances[0]
for tag in properties.get("Tags", []):
instance.add_tag(tag["Key"], tag["Value"])
return instance
@property
def physical_resource_id(self):

View File

@ -236,6 +236,10 @@ template = {
"Ref": "AWS::StackId"
},
"Key": "Application"
},
{
"Value": "Bar",
"Key": "Foo"
}
],
"SecurityGroupIds": [

View File

@ -676,6 +676,7 @@ def test_vpc_single_instance_in_subnet():
ec2_conn = boto.ec2.connect_to_region("us-west-1")
reservation = ec2_conn.get_all_instances()[0]
instance = reservation.instances[0]
instance.tags["Foo"].should.equal("Bar")
# Check that the EIP is attached the the EC2 instance
eip = ec2_conn.get_all_addresses()[0]
eip.domain.should.equal('vpc')