Add support for tags parameter to cloudformation module

Expose boto.cloudformation.create_stack() tags parameter. Supplied tags
will be applied to stack and all it's resources on stack creation.
Cannot be updated later (not supported by UpdateStack CloudFormation
API).
This commit is contained in:
Petr Svoboda 2013-09-27 13:21:55 +02:00
parent 80a8ba1b51
commit 67c786462f

View file

@ -60,6 +60,12 @@ options:
required: true
default: null
aliases: []
tags:
description:
- Dictionary of tags to associate with stack and it's resources during stack creation. Cannot be updated later.
required: false
default: null
aliases: []
requirements: [ "boto" ]
author: James S. Martin
@ -79,6 +85,8 @@ tasks:
DiskType: ephemeral
InstanceType: m1.small
ClusterSize: 3
tags:
Stack: ansible-cloudformation
'''
import json
@ -163,7 +171,8 @@ def main():
region=dict(aliases=['aws_region', 'ec2_region'], required=True, choices=AWS_REGIONS),
state=dict(default='present', choices=['present', 'absent']),
template=dict(default=None, required=True),
disable_rollback=dict(default=False)
disable_rollback=dict(default=False),
tags=dict(default=None)
)
)
@ -173,14 +182,15 @@ def main():
template_body = open(module.params['template'], 'r').read()
disable_rollback = module.params['disable_rollback']
template_parameters = module.params['template_parameters']
tags = module.params['tags']
if not r:
if 'AWS_REGION' in os.environ:
r = os.environ['AWS_REGION']
elif 'EC2_REGION' in os.environ:
r = os.environ['EC2_REGION']
# convert the template parameters ansible passes into a tuple for boto
template_parameters_tup = [(k, v) for k, v in template_parameters.items()]
@ -203,7 +213,8 @@ def main():
cfn.create_stack(stack_name, parameters=template_parameters_tup,
template_body=template_body,
disable_rollback=disable_rollback,
capabilities=['CAPABILITY_IAM'])
capabilities=['CAPABILITY_IAM'],
tags=tags)
operation = 'CREATE'
except Exception, err:
error_msg = boto_exception(err)