Commit Graph

43 Commits (ad6999e2ebd65a322ac7f1e5bde84a3b12a8b91d)

Author SHA1 Message Date
Ryan Brown e45e25c257 Fix `cloudformation` error when stack-rollback fails (#5550)
In cases where a CFN stack could not complete (due to lack of
permissions or similar) but also failed to roll back, the gathering of
stack resources would fail because successfully deleted items in the
rollback would no longer have a `PhysicalResourceId` property.

This PR fixes that by soft-failing when there's no physical ID
associated to a resource.
2016-12-08 11:25:27 -05:00
Ryan S. Brown 2744fde7c9 Fix link in `cloudformation` module docs 2016-12-08 11:25:27 -05:00
Sean Summers 59b11be65d added requires for botocore with RoleARN support
Added a requires for the minimum botocore version required to support RoleARN
2016-12-08 11:25:27 -05:00
Sean Summers 67934ac7db add role_arn to support Service Role
Add `role_arn` to support [AWS CloudFormation Service Role](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html)
2016-12-08 11:25:27 -05:00
Ryan S. Brown 422ec08649 Remove unused YAML import from cloudformation 2016-12-08 11:25:22 -05:00
Ryan Brown dfd57942f9 Support native YAML in CloudFormation module (#5327)
Support the new native YAML format in the CloudFormation API. This means
the existing `template_format` parameter is deprecated. This commit also
adds a warning for the deprecated parameter.
2016-12-08 11:25:22 -05:00
Ryan S. Brown 08b119df33 Fix cloudformation module return parameter documentation
Always return stack outputs, even if only an empty dict
2016-12-08 11:25:21 -05:00
tedder d01bfa6a72 Cloudformation module fix unintentional changed=true
- Don't rewrite the result; this is causing 'changed=true' on update
- Move AWSRetry import to top since it's a decorator, and is needed at definition-time
2016-12-08 11:25:21 -05:00
tedder 763399830d Boto3 rewrite of cloudformation module
- removed star-imports, which wasn't possible in Ansible 1.x
- boto doesn't have any of the modern features (most notably, changesets), so this rewrite goes all-in on boto3.
- tags are updateable, at least in boto3. Fix documentation.
- staying with "ansible yaml to json conversion" because I'm trying to keep this scoped properly. The next PR will have AWS-native yaml support.
- documented the output. Tried to leave it backwards-compatible but the changes to 'events' might break someone's flow. However, the existing data wasn't terribly useful so I don't assume it will hurt.
- split up the code into functions. This should make unit testing possible.
- added forward-facing code: 'six' for iterating, started using AWSRetry, common tag conversion.
- add todo list
- Pass `exception` parameter to fail_json
2016-12-08 11:25:21 -05:00
Ryan S. Brown adc56e52d8 Fix `fail_json` invocation in `cloudformation` module 2016-12-08 11:25:21 -05:00
mzizzi eaef333215 cloudformation stack events itertools.imap bugfix (#4868) 2016-12-08 11:25:05 -05:00
Matt Ferrante d88f5f6808 Properly support tag updates on CloudFormation stack-update actions (#3638) 2016-12-08 11:25:02 -05:00
Matthew Martin 4d952d6e6e Add CAPABILITY_NAMED_IAM to cloudformation capabilities
While from the documentation[1] one would assume that replacing
CAPABILITY_IAM with CAPABILITY_NAMED_IAM; this as empirically been shown
to not be the case.

1: "If you have IAM resources, you can specify either capability. If you
have IAM resources with custom names, you must specify
CAPABILITY_NAMED_IAM."
http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html
2016-12-08 11:24:45 -05:00
Toshio Kuratomi 53a22ce93a Finish python3 syntax compilation fixing for core repo 2016-12-08 11:24:37 -05:00
Will Thames 52accd7d1f Use connect_to_aws where possible
`connect_to_aws` fixes a bug with security tokens in AWS.
Modules should use that rather than calling
`boto.x.connect_to_region`
2016-12-08 11:24:09 -05:00
Constantin07 3dde5196aa Added explicit type for 'tags' option 2016-12-08 11:24:08 -05:00
Shawn Silva 12be401c11 The parameters 'template' and 'template_url' are incorrectly required in all cases.
If the state is 'absent' they should not be required. A few lines below the correct check is already in place.
2016-12-08 11:24:01 -05:00
Jens Carl 00f9dfac34 Change type of parameter 'template' to 'path'. 2016-12-08 11:23:38 -05:00
Jens Carl 507111f090 Fix to handle user directory within parameter 'template'. 2016-12-08 11:23:37 -05:00
Ted Timmons 7027de77b7 fix ugly documentation
current version dumps a character per line in the docs: http://docs.ansible.com/ansible/cloudformation_module.html
2016-12-08 11:23:29 -05:00
Robb Wagoner aed7d903ee Include a CFN stack's resources in the result 2016-12-08 11:23:28 -05:00
Brian Coca a0b0c022b8 corrected version_added 2016-12-08 11:23:22 -05:00
Scott Miller 62b6cf85d3 Update cloudformation.py
Fix for inaccurate phrasing
2016-12-08 11:23:17 -05:00
Scott Miller b43db1d2ff update docs for cloudformation 2016-12-08 11:23:15 -05:00
Greg DeKoenigsberg 18ca7aee07 Updating cloud modules with proper github author information 2016-12-08 11:23:07 -05:00
Soenke Ruempler b57bcac72f Add support for SNS notification ARNs in CloudFormation 2016-12-08 11:23:06 -05:00
billwanjohi ff7dfefbd6 cloudformation: accept local templates in yaml format
Since the YAML data format is a subset of JSON, it is trivial to convert
the former to the latter. This means that we can use YAML templates to
build cloudformation stacks, as long as we translate them before passing
them to the AWS API. I figure this could potentially be quite popular in
the Ansible world, since we already use so much YAML for our playbooks.
2016-12-08 11:23:04 -05:00
Jan Brauer af689dece3 Handle the case where a stack rollback fails. 2016-12-08 11:22:58 -05:00
Brian Coca 706db441b4 really fixed docs this time 2016-12-08 11:22:52 -05:00
Brian Coca 2dafff3f97 fixed doc issues on cloudformation 2016-12-08 11:22:52 -05:00
Rob Johnson d8af3f3b67 allow both template and template_url parameters 2016-12-08 11:22:52 -05:00
Brian Coca 4f7bc895d2 removed requirements/boto as it broke documentation as it is duplicated in shared aws fragements 2016-12-08 11:22:51 -05:00
Adam Chainz 21339664ce Make cloudformation module's template argument not required in case of stack deletion 2016-12-08 11:22:51 -05:00
Mick Bass 9980205edc Add support for AWS Security Token Service (temporary credentials) to all AWS cloud modules. 2016-12-08 11:22:51 -05:00
Toshio Kuratomi e710e46ff2 Make lack of boto call fail_json instead of sys.exit
Fixes #994
2016-12-08 11:22:51 -05:00
Mick Bass e9a0fad36b add retry with exponential backoff when we receive throttling error code from cloudformation 2016-12-08 11:22:50 -05:00
Brian Coca 945909bf67 update to use connect_to_region to avoid errors with china 2016-12-08 11:22:34 -05:00
Jeff Gonzalez 8eedd915cd Fixed formatting in documentation
The example was using mixed shorthand and long form yaml (region: "us-east-1 disable_rollback=true"

I modified the entire example to be long form.
2016-12-08 11:22:33 -05:00
Harald Skoglund 1a8b9b8935 add support for stack policies in cloudformation 2016-12-08 11:22:32 -05:00
Mike Putnam 1de5248a0a Clarify possible variable value in the docs. 2016-12-08 11:22:32 -05:00
Toshio Kuratomi cd7cc07e85 Gixes to doc formatting 2016-12-08 11:22:31 -05:00
Michael DeHaan 590d20db24 Misc EC2 doc tweaks. 2016-12-08 11:22:29 -05:00
Brian Coca 32e85c0944 made subcategories for cloud modules for better organization 2016-12-08 11:22:24 -05:00