diff --git a/cloud/amazon/cloudformation.py b/cloud/amazon/cloudformation.py index ff4a66373c0..1c8a9d6aca5 100644 --- a/cloud/amazon/cloudformation.py +++ b/cloud/amazon/cloudformation.py @@ -60,6 +60,13 @@ options: required: true default: null aliases: [] + stack_policy: + description: + - the path of the cloudformation stack policy + required: false + default: null + aliases: [] + version_added: "x.x" tags: description: - Dictionary of tags to associate with stack and it's resources during stack creation. Cannot be updated later. @@ -197,6 +204,7 @@ def main(): template_parameters=dict(required=False, type='dict', default={}), state=dict(default='present', choices=['present', 'absent']), template=dict(default=None, required=True), + stack_policy=dict(default=None, required=False), disable_rollback=dict(default=False, type='bool'), tags=dict(default=None) ) @@ -209,6 +217,10 @@ def main(): state = module.params['state'] stack_name = module.params['stack_name'] template_body = open(module.params['template'], 'r').read() + if module.params['stack_policy'] is not None: + stack_policy_body = open(module.params['stack_policy'], 'r').read() + else: + stack_policy_body = None disable_rollback = module.params['disable_rollback'] template_parameters = module.params['template_parameters'] tags = module.params['tags'] @@ -245,6 +257,7 @@ def main(): try: cfn.create_stack(stack_name, parameters=template_parameters_tup, template_body=template_body, + stack_policy_body=stack_policy_body, disable_rollback=disable_rollback, capabilities=['CAPABILITY_IAM'], **kwargs) @@ -265,6 +278,7 @@ def main(): try: cfn.update_stack(stack_name, parameters=template_parameters_tup, template_body=template_body, + stack_policy_body=stack_policy_body, disable_rollback=disable_rollback, capabilities=['CAPABILITY_IAM']) operation = 'UPDATE'