Commit d294669d by Petr Svoboda

Add Boto version check for tags parameter of cloudformation module

Tags parameter requires at least version 2.6.0 of Boto module. When tags
parameter is used with older version, error is raised. When tags
parameter is unused, module works as before.
parent b5ae7610
......@@ -63,6 +63,7 @@ options:
tags:
description:
- Dictionary of tags to associate with stack and it's resources during stack creation. Cannot be updated later.
Requires at least Boto version 2.6.0.
required: false
default: null
aliases: []
......@@ -93,6 +94,7 @@ import json
import time
try:
import boto
import boto.cloudformation.connection
except ImportError:
print "failed=True msg='boto required for this module'"
......@@ -126,6 +128,17 @@ def boto_exception(err):
return error
def boto_version_required(version_tuple):
parts = boto.Version.split('.')
boto_version = []
try:
for part in parts:
boto_version.append(int(part))
except:
boto_version.append(-1)
return tuple(boto_version) >= tuple(version_tuple)
def stack_operation(cfn, stack_name, operation):
'''gets the status of a stack while it is created/updated/deleted'''
existed = []
......@@ -190,6 +203,11 @@ def main():
elif 'EC2_REGION' in os.environ:
r = os.environ['EC2_REGION']
kwargs = dict()
if tags is not None:
if not boto_version_required((2,6,0)):
module.fail_json(msg='Module parameter "tags" requires at least Boto version 2.6.0')
kwargs['tags'] = tags
# convert the template parameters ansible passes into a tuple for boto
......@@ -214,7 +232,7 @@ def main():
template_body=template_body,
disable_rollback=disable_rollback,
capabilities=['CAPABILITY_IAM'],
tags=tags)
**kwargs)
operation = 'CREATE'
except Exception, err:
error_msg = boto_exception(err)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment