Commit Graph

1111 Commits (c52964a6f4595b9e60e059d792a43d6853182cdf)

Author SHA1 Message Date
Sloane Hertel 04e93e22cb add traceback and more helpful errors for ec2_vpc_route_table (#25704) 2017-06-21 12:01:52 +10:00
Yang Liu b41b4fe2fd use proper pagination variable (#25838) 2017-06-21 12:00:41 +10:00
Damir Suleymanov 74f6b64fb0 Handle rate limits on every iteration (#23726) 2017-06-20 16:49:05 -04:00
Will Thames f3c98f482a [cloud] New module ec2_vpc_endpoint_facts for AWS EC2 VPC Endpoints (#20211)
* New facts module for AWS EC2 VPC Endpoints

* ec2_vpc_endpoint_facts - meet latest Ansible standards

Fix exception syntax and use of `iteritems` for python3

Fix undefined `ec2` variable (should have been `connection`
Address various flake8 issues

Use `ansible_dict_to_boto3_filter_list` rather than
duplicating its implementation

* Remove max_items and next_token from vpc_endpoint_facts

max_items and next_token should be a module concern, not
a caller concern. It would be very difficult for a module
consumer to use next_token properly, whereas it's easy for
the module to handle it.

* ec2_vpc_endpoint_facts trivially supports check mode

Add supports_check_mode=True to the argument spec.

* Improve RETURN documentation for ec2_vpc_endpoint_facts

Fix bug in EXAMPLE documentation too

* fix return type for validate-modules
2017-06-20 08:31:31 -04:00
Will Rouesnel 3adf08e10f [cloud] iam_cert return arn and allow use with ansible vault (#20787)
* iam_cert.py Fix duplicate certificate detection with included chains.

The iam_cert module would fail to detect certificates as duplicates
if the certificate body included the authority chain directly.

This commit fixes the problem by checking if a given certificate
matches the start of the data returned by AWS, since in all cases
where they would match the certificate will come first.

* iam_cert.py Return certificate ARN in all success cases.

When uploading certificates or interacting with IAM, the certificate ARN
is needed for other operations with AWS such as provisioning elastic load
balancers.

This commit returns the certificate ARN in all success cases, which allows
it to be used to idempotently provision other Amazon services depending on
it (ELBs being an immediate example).
2017-06-20 08:01:56 -04:00
Sloane Hertel 06c21b4bec [cloud] fix dynamodb_ttl exception handling for ParamValidationError (#25870)
Also adds tracebacks to exceptions and imports `HAS_BOTO3` instead of checking directly.
2017-06-19 15:29:14 -04:00
Sloane Hertel e079498485 [cloud] document route53 state choices added in 2.4 (#25866) 2017-06-19 15:16:58 -04:00
Ted Timmons 346cbf7d7a [cloud] New module: Add module to set Amazon AWS DynamoDB TTL (cloud/amazon/dynamodb_ttl) (#22588)
* add aws dynamo_ttl module, small parameter setter

 - New Module Pull Request

`dynamodb_ttl`

2.3.0/devel

Very self-contained TTL setter. This is independent of the dynamodb_table module
as it's really designed to be a helper for tables that may be created in other
ways (say, CloudFormation, which doesn't support setting TTL).

* committer is no longer a valid value

* bump version_added, catch common exceptions

* pep8 fixes

* one more pep8
2017-06-19 09:57:04 -04:00
Abhijeet Kasurde 6bc1e802e3 Rectify traceback.format_exc() call (#25773)
Fix adds correct call to traceback.format_exc method

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-06-16 11:38:36 -04:00
Sloane Hertel 938d60472a [cloud] ec2.py: add region to the aws_connect_kwargs before creating vpc connection Fixes #25673 (#25749)
* add region to the aws_connect_kwargs before creating vpc connection

* remove unused import
2017-06-15 15:52:56 -04:00
Robin Miller 540e1bbd69 [cloud] Route53 Avoid throttling errors and unnecessary processing when checking rrsets. (#22104)
The boto Route53 get_all_rrsets method will return the record set
matching the name, type, and identifier specified, followed by ALL
subsequent sets in alphabetical order based on name. If the specified
set does not exist, the method will still return all the sets that
_would_ have come after it. Searching through sets we know will not
match is not just a waste of resources but, more importantly, often
triggers AWS API throttling when used on zones with large numbers of
records.
2017-06-15 15:06:16 -04:00
Rob 6d34ce3f2a [cloud] elb_target_group_facts.pyFix tags being snaked (#25742) 2017-06-15 13:19:28 -04:00
Rob f8d027b1ba [cloud] New module elb_target_group_facts (#24583) 2017-06-14 12:22:50 -04:00
Sloane Hertel dfcf43efa9 ec2: Allow EC2-VPC instances to modify security groups - fixes #18928 (#23831)
* Allow EC2-VPC instances to update SG

make ec2 pep8

* use sets instead of loop and a break

* bring things in an indentation level

* Use to_text instead of str, text_type instead of basestring, - instead of difference

* basestrings not unicode

* simplifying syntax
2017-06-14 11:10:29 -04:00
Sloane Hertel bd4f08d434 [cloud] Fix Route53 module value option, defaulting to empty list (#24555) 2017-06-13 15:55:19 -04:00
Sloane Hertel 3bba43a487 [cloud] ec2.py: region is documented as optional; allow endpoints to be used - fixes #24382 (#24470)
* region isn't required for ec2.py; allow endpoints to be used

* move where aws_connect_kwargs is set

* remove camel_dict_to_snake_dict and display error message
2017-06-13 15:12:47 -04:00
Sloane Hertel 00d5de3dec fix return value (#25611)
document the returned
2017-06-13 09:18:58 -04:00
Simon Staszkiewicz eb7530df95 Correct link to DescribeInternetGateway docs (#25622)
Old link pointed to DescribeRoutingTable documentation instead of DescribeInternetGateway documentation.
2017-06-12 20:30:30 -04:00
Sloane Hertel 3f0c47196e [cloud] s3: deleting a nonexistent bucket should not give a traceback Fixes #25445 (#25487)
* trying to delete a nonexistent bucket should not fail

* Improve error handling for deleting s3 bucket

* Allow successful deletion

* Add test for deleting a nonexistent bucket

rename integration test target from s3 to aws_s3
2017-06-12 13:52:25 -04:00
Alan Loi 3ac9273507 Fix hash_key_name to be optional for delete (#25009) 2017-06-12 10:25:43 -04:00
Alan Loi c23e3c1913 Fix version_added for tags and wait_for_active_timeout params (#24993) 2017-06-12 10:19:41 -04:00
willricardo dd1f5d7acd ec2 module conver basestring to string_types (#25503) 2017-06-12 08:48:38 -04:00
Will Thames 16b877e2b3 ec2_asg and ec2_asg_facts module improvements (#25166)
* ec2_asg and ec2_asg_facts module improvements

Return target group information for both ec2_asg and ec2_asg_facts
modules

Provide RETURN documentation for ec2_asg module

PEP8 fixes for ec2_asg_facts

* ec2_asg: use pagination when describing target groups

In case an ASG has 100s of target groups, ensure that
we get the full result using build_full_result
2017-06-12 07:15:04 -04:00
Abhijeet Kasurde b89cb95609 Fix spelling mistakes (comments only) (#25564)
Original Author : klemens <ka7@github.com>

Taking over previous PR as per
https://github.com/ansible/ansible/pull/23644#issuecomment-307334525

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-06-12 07:55:19 +01:00
Chris Atkinson 62fa2019c6 [cloud] Allow IAM certificate secrets, body, chains to be strings (e.g. sourced from ansible-vault) (#24206)
* Allow cert and private pem information to be passed in via string, eg when obtaining sensitive key details from anisble-vault at runtime

* Allow cert chain body to be passed as a string

* Ensure the new options are set in parameters

* Dont publish the private key in logs

* Set the version_added documentation

* Update documentation inline with review

* Removes file based certificates in favour of string only as suggested in feature review

* Documentation changes as suggested by review
2017-06-09 11:32:22 -04:00
Sloane Hertel b376bde4d7 [cloud] ec2_eni module - allow attaching a new instance - fixes #19452 (#22377)
* fix bug attaching instances

* pep8
2017-06-09 11:31:42 -04:00
Will Thames 3549391673 New facts module for AWS VPC Peering (#19910)
* New facts module for AWS VPC Peering

* Update documentation and region catch for boto3

* Update ec2_vpc_peering_facts for python3 and flake8

Update version to 2.3
Update for python3 exception handling
Use ansible_dict_to_boto3_filter_list rather than duplicating
implementation
Use camel_dict_to_snake_dict on results for ansible standard results
Tidy up flake8 compliance

* Support check_mode for ec2_vpc_peering_facts

Add supports_check_mode to the module declaration

* Fix latest Ansible standards

Update version to 2.4
Add ANSIBLE_METADATA
Move imports
2017-06-06 14:42:58 -04:00
Sloane Hertel 7bebc83dcf module_utils/ec2: fix boto3 tags to remove (#25277)
* Fix boto3 tags to remove; unable to remove a list of strings, need list of {'Key': key}

* pep8 fix

* cannot bugfix due to differences in AWS APIs - just document

* add more info to guidelines for using compare_aws_tags
2017-06-06 11:02:15 -04:00
Michael De La Rue e28845018d [cloud] New module: AWS API Gageway module (#20230)
* Ultra basic api-gateway module based of lambda.py

* Ultra basic deployment added to api-gateway module

* ApiGateway module Allow creation of APIs, more documentation and better return value

* ApiGateway module incorporate review feedback

* ApiGateway module flake8 cleanup

* APIGateway module - more review fixes.

* slightly better messages in api_gateway module

* AWS api_gateway module - try to improve messages in case of exceptions

* rename api_gateway module to aws_api_gateway as discussed in PR 20230

* aws_api_gateway - Allow delivery of swagger either as text or dictionary.

* aws_api_gateway module - introduce 'unit' tests, improve imports using them and small fixes

* aws_api_gateway module - move path expand_user to avoid early typecheck

* aws_api_gateway - version means version of metadata not module - fix to 1.0

* aws_api_gateway module - Rely on module_utils.ec2 for imports & path type for expanduser / cleanups

* aws_api_gateway module - heavy cleanup and refactor of code + cloud retry functionality.

* api_gateway_module - failing test case for handling more than one deployment in succession and API deletion

* add TooManyRequestsException to AWSRetry exception list - makes API deployment work.

* api_gateway_module - Fixes for various review comments + errors from various linters

* api_gateway_module - Fixes for more review comments + linter error

* api_gateway_module - Major refactor into sensible functions - create_response becomes configure_response

* api_gateway_module - should be working under python3; remove test exclusion

* api_gateway_module - finish off remaining review fixes - use ansible defaults and fix mutually exclusive

* api_gateway_module - attempt to improve handling of botocore errors in python3

* api_gateway_module - implement state=absent / API deletion
2017-06-05 10:25:56 -04:00
Sloane Hertel 77008707f5 ensure port is an int (#25310) 2017-06-02 15:15:47 -04:00
Will Thames 84eea2a7e3 Support check_mode in ec2_vpc_nacl (#23112)
* Support check_mode in ec2_vpc_nacl

Ensure that all API calls that make changes are guarded by
`if not module.check_mode`.

* Update ec2_vpc_nacl_facts to latest pep8 standards
2017-06-02 13:15:38 -04:00
Silvio Tomatis 2ee2c8c1ab [cloud] ec2_elb_lb module Python 3 fix for string types (#24925)
* Python 3 compatibility for ec2_elb_lb module

* Use string_types from ansible.module_utils.six for python2/3 compatibility
2017-06-02 07:40:56 -04:00
Brandon Davidson 0e0c5328fa amazon/ec2_vpc_igw: Allow internet gateways to be tagged (#23782) 2017-06-02 07:38:50 -04:00
Sloane Hertel 7160a491c2 elasticache: add requirements to parameter_group and snapshot (#24904)
* Add requirements to elasticache parameter group

* add requirements for elasticache_snapshot

* pep8 elasticache_snapshot

* remove elasticache_snapshot from legacy files
2017-06-02 00:18:02 +02:00
MechaXL c1f0260ae3 Convert basestring to string_types (#25228) 2017-06-01 10:24:33 -07:00
Will Thames 3ca006ecbb Allow removal of target groups from ASGs (#25126)
An empty `target_group_arns` list represents no target groups.
This is different to not passing a `target_group_arns` list at all
which can signify no change.

Remove unnecessary empty list construction, as it must already be
an empty list to get to that point.
2017-06-01 08:53:31 -04:00
Abhijeet Kasurde 07be5f2b67 spelling fixes (non-trivial, changing messages) (#25094)
Multiple spell fixes in single commit.
Taking over existing PR as per comment -
https://github.com/ansible/ansible/pull/23645#issuecomment-304312275

Original Author: klemens <ka7@github.com>

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-06-01 10:45:19 +01:00
Yury V. Zaytsev c559567f16 [cloud] s3_bucket: fix connections for buckets with dots in names (#24720)
Refer to 689f135 for similar fix in s3 module. This change makes `OrdinaryCallingFormat` default for handling S3 connections. 

Signed-off-by: Yury V. Zaytsev <yury.zaytsev@moneymeets.com>
2017-05-31 10:36:17 -04:00
Will Thames bc24ae88a8 Allow iam_role to work with friendly policy names (#22630)
Basically obtain all the policies and create a mapping
from friendly name to ARN

Tidy up module argument specification to remove unneeded
settings.
2017-05-31 10:15:13 -04:00
Rob 2f0ce790d1 [cloud] New module to support ALB/ELBv2 elb_target_group (#19492)
* New module = elb_target_group

* Update elb_target_group.py

Adds support for adding and removing targets from a target group

* Better error handling

* Bump version_added

* Minor fixes

* Scope ec2 imports, add better doco, fix up examples, allow for both upper and lower case in protocol

* Yaml fixes

* ci fix

* Added targets parameter to doc and added new modify_targets flag to prevent runs from modifying targets

* Update to metadata_version

* Update to metadata support

* Remove defaults for some params. Add tags parameter

* Use paginator to get target groups

* Add tag support

* Add tg attributes to module

* Quote multilines

* Remove unnecessary defaults. Fix multiline

* Fix line ending
2017-05-31 10:09:20 -04:00
Rob 76e56bf48e [cloud] New module = elb_application_lb (#19491)
* New module = elb_application_lb

* Update elb_application_lb.py

Adds support for rules, adds wait option for ALB creation, adds support for using target group names instead of ARNs when referencing target groups in rules. All additional features should be idempotent.

* Better exception error messages. Bump version_added. Pep8 fixes

* Add missing full stop to description

* Review changes and fixes

* Fix pep issues

* Fix up examples

* Fix pep8

* half way through sorting elb attributes

* Add access logs enabled param

* Finish implementing elb attributes

* Use paginator to get elbs

* Dont snake_case the tags

* Add listeners to return output and fixed up examples

* review changes

* fix line lengths

* pep8 fixes
2017-05-31 09:29:49 -04:00
Sloane Hertel b04cf04f59 Prior to 2.4 only one source is permitted for ec2_group rules/rules_egress. 2.4 and after a list of sources is accepted. (#25165) 2017-05-31 08:51:33 -04:00
Will Thames 5c1a914002 Fix ec2_asg exception handling (#25121)
`e.message` is a string, and `camel_dict_to_snake_dict` fails when
given a string. The intended code is to run `camel_dict_to_snake_dict`
on `e.response`, the result of which includes a `message` key.

Make exception handling lines more consistent and wrap for slightly
shorter lines.
2017-05-31 08:50:32 -04:00
kgottholm 1e4b227e6f Os port fix (#24913)
* replace deprecated cmp() with custom conditional
cmp is not present in Python3 but several modules use it
Reference 24756
2017-05-23 09:40:56 -07:00
Rob 43fc97cad3 [cloud] Fix iam_role to compare trust policies accurately (#22936)
* Fix iam_role to compare trust policies accurately

* Better exception handling and better handling of detaching all managed policies
2017-05-22 15:13:35 -04:00
glassresistor 4a718645e8 fixed minor py3 compliance issue in ec2_vpn_nacl (#24758)
wrapped a dict.items() with list
2017-05-19 13:58:48 -07:00
Niall Donegan 29fb573fd6 Tiny Typo Fix (#24828) 2017-05-19 14:31:02 +01:00
Will Thames 5741712a09 ec2_group_facts tag list should have case preserved (#24760)
Tags should retain case, and should not be snake cased.
Easiest way to do this is to snake before converting tag
list as while that affects the keys of the boto3 tag lists,
it doesn't affect the values. Need to use `tag_value_key_name`
and `tag_name_key_name` following recent change to
`boto3_tag_list_to_ansible_dict`, which used to handle both
`key`/`Key` and `value`/`Value`
2017-05-18 09:34:53 -04:00
Jose Armesto 3eb8142a41 [cloud] Fixes #24578: ROLLBACK_COMPLETE is a failure state for CloudFormation module (#24596)
* ROLLBACK_COMPLETE is a failure state

Fixes #24578

* Adding AWS documentation on Stack status

* Fixed comment
2017-05-17 09:17:47 -04:00
Andrea Tosatto b230b03045 [cloud] Rebase and fix ENI lookup logic to only hit unique ENIs (rebase of #20039) (#23404)
* fix eni lookup logic to update them only when univocally specified (Fixes #19972)

remove redundant eni lookup

* Rename the univocally_find_eni method to uniquely_find_eni

* Idempotency logic minor fixes

* Fixing pep8 reported issues

* Adding a required_together constraint for instance_id and device_index

* Fix ec2_eni private_ip_address matching

* Adding an example of matching via subnet_id and private_ip_address

* Removing the required_together and subnet_id constraints

* Addding some notes to explain the module assumptions

* Implementing Ryan's wording proposal
2017-05-17 08:54:37 -04:00
Brandon Davidson 0210a1a7dc [cloud] Add vpc_id option for ec2_lc security group lookups by name (#24459) 2017-05-16 16:46:28 -04:00
Daniel Shepherd cf4806d29d [cloud] Update AWS CloudTrail module to use boto3 and updated/new CT parameters (#22884)
remove cloudtrail.py from legacy-files as it passes pep8 tests now

update return values to use snake case per coding guidelines

update boto3 exception handling to use method outlined in coding guidelines

update parameter spec and return value code per PR code review
2017-05-16 16:45:03 -04:00
Will Thames 9a958da57e [cloud] Make ec2_vpc_nat_gateway results consistent (#24042)
Ensure newly created NAT gateways get converted to snake dict
Remove custom code, and associated test, for generating snake
dict and use `camel_dict_to_snake_dict`
Make use of `required_if` rather than bespoke parameter checks
Remove ec2_vpc_nat_gateway from pep8 legacy files list
2017-05-16 11:14:05 -04:00
kwerey 668092e95a [cloud] Add support for AWS China to elasticache_subnet_group role (#24286) 2017-05-16 11:10:15 -04:00
kwerey 6f66e88bd8 [cloud] Use boto connect_to_region so Elasticache works in AWS China (#24250) 2017-05-16 11:09:54 -04:00
Will Thames 6e13e3918f [cloud] Update VPC configuration for existing lambda (#24368)
If a lambda exists but does not have a VPC configuration,
add the VPC configuration when it's present in the ansible
parameters.

Prior to this change, setting VPC configuration on a lambda
that did not have any VPC configuration would ignore that config.
2017-05-16 11:08:21 -04:00
Lujeni a3a0742ce5 Add new aws module - iam_cert_facts (#24451) 2017-05-16 09:31:39 -04:00
Justin Menga 8dae2ea869 Cast CloudFormation parameter values to string - fixes #23593 (#24182) 2017-05-15 13:10:29 -04:00
Jonathan Davila 6410e13903 Fix bug in iam_role (#22618) 2017-05-14 17:29:44 -04:00
Sloane Hertel 822fcc566e [cloud] Stop ec2_group module from authorizing duplicate rules (#24528) 2017-05-12 14:54:25 -04:00
Sloane Hertel 91b87d4cbb dict.values() was a list python2 but in python3 it's a view (#24504) 2017-05-12 08:48:16 -04:00
Jon Hadfield eb4cc31ae5 [cloud] migrate ec2_asg to boto3 and support application ELB target groups. (#19667)
* switch to boto3 and add support for application ELBs with target groups.

* use py23 compatible dict iterator.

* removing commented out fail_json calls

utilize sets to simplify logic

remove setting a redundant variable

add bounds checking in two places

add AWSRetry decorator - do we want this for other functions too?

change xrange to range so python3 doesn't fail

remove sorting lists of dicts; in python2 this returns None, in python3 this fails

* remove error variable from traceback.format_exc

* Remove boto2-style calls brought in by rebase

Old boto-style calls to `as_group` attributes break in boto3

Also remove module from legacy-PEP8 list

* Add  parameter to target_group_arn option

* Fix HAS_BOTO3 check

* use tags.items() instead of iteritems

* import botocore

* Fixed bugs in deleting autoscaling groups

* make changes in deleting autoscaling groups pep8

* more pep8

* fix version

* fix bugs so local integration tests run

* fix launch config check

* reflect changed status for ASG updates

* Fix existing exception handling and use traceback.

Fix imports

* line length

* Fix notification setup

* Fix mutually exclusive arguments
Only one of the AvailabilityZones and VPCZoneIdentifier arguments should be provided to the CreateAutoScalingGroup call.

* Allow desired_capacity, min_size, max_size, launch_config_name to be derived from the existing ASG if not specified

Remove code updating dict after ASG already uses it
2017-05-11 09:08:19 -04:00
Rob fd1debb869 Feature/aws helper function for tags (#23387)
* Add new helper function for comparing AWS tag key pair dicts. Also modify boto3_tag_list_to_ansible_dict function to be more generic when looking for key names because AWS sometimes uses 'Key', sometimes 'TagKey' and who knows what the future holds! Fixed modules to work with changes.

* Review changes

* Add some more doc to GUIDELINES for tags and fix var name for snaked values in ec2_group_facts
2017-05-11 07:39:51 +01:00
Sloane Hertel 2618e6d516 ec2_elb_lb: allow elb scheme to be updated by restarting the resource - fixes #19116 (#22916)
* allow elb scheme to be updated by restarting the resource

use ensure_gone and require wait option

* fix pep8

* fix yaml

* requested changes

* fix fail_json
2017-05-09 14:01:37 -04:00
Abhijeet Kasurde d072d91aed Use wait_timeout as integer in redshift module (#24279)
Fix stricts datatype of wait_timeout to int as module
is using it as integer.

Fixes https://github.com/ansible/ansible/issues/24267

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-05-08 10:07:04 -04:00
Sloane Hertel 0438236263 [cloud] Add version_added to route53 option 'state' - fixes #24306 (#24335)
* fix route53 documentation

* improve state option description and remove version_added
2017-05-05 14:58:34 -04:00
Sloane Hertel ad8cb903f4 rds: do not update multi-az unless specified - fixes #23385 (#23498)
* allow multi_az to be unmodified if not explicitly specified

* fix pep8 and remove from legacy files
2017-05-03 12:24:02 -04:00
Sloane Hertel 4278618746 verify arns differently than function names (#23966) 2017-05-03 12:01:42 -04:00
mattwwarren 45ac28ba04 remove self from function outside of class (#24017)
* remove self from function outside of class

* fix indentation
2017-05-03 11:49:43 -04:00
Matt Clay 425d35ef0f Fix ec2_elb_lb error handling. (#24183)
- Use `fail_json` for `get_all_load_balancers` unhandled exception.
- Do not mask error message on failure of `enable_zones`.
- Do not mask error message on failure of `disable_zones`.

Also added/removed blank lines to improve PEP 8 compliance.
2017-05-03 10:25:01 +08:00
higginsd 8408c6b454 fixed missing "import traceback" (#23427) 2017-05-02 11:42:43 -04:00
Sloane Hertel e13fc5d6bd elasticache_parameter_group: fix documentation and exception handling - fixes #23709 (#23718)
* fix documentation and correct exception handling

* follow AWS exception guidelines

* fix parameter_group_family req; only needed when creating cache parameter group

make pep8 and remove from legacy files
2017-05-02 10:13:56 -04:00
Sloane Hertel fcaa49b536 sns: move from notification directory to cloud/amazon directory - fixes #11874 (#23805)
* move sns to cloud directory

* make sns pep8 and remove from legacy files
2017-05-02 10:05:48 -04:00
Andrea Tartaglia 1d0a629dcc Fixed docs for cloud modules (#23745)
* Fixed docs for cloud modules

* removed blank line in ec2_snapshot_facts
2017-04-27 12:01:11 +01:00
Andrej Svenke 3185ec94c5 ecs_service: add tasks placement constraints and strategy. (#20503)
ecs_service: documentation fix.

ecs_service: updated version_added.

ecs_service: pep8 fixes.
2017-04-27 08:33:23 +01:00
Sloane Hertel d021d8f16b efs: include name in results (#23931) 2017-04-24 17:49:14 -04:00
Sloane Hertel 380ac577c6 [cloud] ec2_facts: make ec2_facts python3 compatible - fixes #23595 (#23872)
* make ec2_facts python3 compatible

* remove parentheses and use pop() instead of del
2017-04-24 16:09:46 -04:00
Sloane Hertel 91644167c9 improve exception handling (#23722)
make pep8
2017-04-20 16:40:37 -04:00
Sloane Hertel 11c292bac2 route53_facts: add example for how to use next_marker option - fixes #23625 (#23802)
* Add example for using route53 next_marker option

* make route53_facts pep8 and remove from legacy files
2017-04-20 16:34:43 -04:00
Matt Babineau 4914164717 Typo (#23778)
Missed that D...
2017-04-20 10:36:09 -07:00
Sloane Hertel d63af51f90 s3_sync: removing irrelevant s3.list_buckets() call - fixes #23409 (#23492)
* Removing irrelevant s3 call

Fix exception handling

Make s3_sync pep8 and remove from legacy file
2017-04-18 16:49:10 -04:00
Daniel Shepherd 698fa37a44 [cloud] Fix #23152 in route53 module and pep8 cleanup (#23156)
update module to support more standard state=present/absent syntax

update module to use required_if, required_together, mutually_exclusive functions where possible

per ryansb review: make documentation section more clear, fix some extra quotes, remove FIXME comment

pre willthames review: force private_zone to True if vpc_id is set and fix word wrap
2017-04-18 11:49:25 -04:00
Will Thames 9229d53143 [cloud] Add ec2_vpc_dhcp_options_facts check mode (#23106)
* Support check mode in ec2_vpc_dhcp_options_facts

As a facts module, ec2_vpc_dhcp_options_facts supports check mode
by default

* ec2_vpc_dhcp_options_facts tidy up

Use named method imports, move imports to top of code
Use shared code to handle filters and tags
Use snake case for parameter names while retaining backward compatibility
2017-04-18 08:56:38 -04:00
Bradley Phipps abf5d6e682 eu-west-1a is an availability zone, not a region. (#23557) 2017-04-13 12:11:00 -07:00
Łukasz Kostka 94bd647bc0 Fix alarm action comparison (#23523)
This fixes issue when list from module contains more than one element.
Ansible and/or boto may put same elements in list in different order,
thus resulting task as changed.

Fixes #3310
2017-04-13 11:27:48 -07:00
Sloane Hertel 2f64e2c7fb [cloud] ec2_asg: check autoscaling group for tags before trying to use them - partially fixes #23234 (#23259)
* check autoscaling group for tags before trying to use them

* Add warning

fix comparison
2017-04-11 16:15:05 -04:00
Sloane Hertel 5f517fdfa9 [cloud] route53_zone: allow split horizon for route53_zone and refactor - fixes #22939 (#23190)
* allow split horizon for route53_zone and refactor

* fix documentation

remove comment

fix version_added

* Remove unused imports

* Only include zone as matching if it has the same privacy setting

* Use `.endswith` instead of indexing into a string

* Update public zone behavior to only create new if there is no matching public zone

* Remove from legacy PEP8 files
2017-04-11 16:02:14 -04:00
Matt Clay 48eeab8a53 Fix errors reported by pylint. (#23282)
* Fix pylint misplaced-bare-raise errors.
* Fix pylint return-in-init error.
* Fix pylint bad-format-character error.
* Fix pylint too-many-format-args errors.
* Fix pylint too-few-format-args errors.
* Fix pylint truncated-format-string error.
2017-04-06 16:58:16 -07:00
Takuya Sato dff35bc205 ecs_taskdefinition module : Convert environment variables to string (#23297)
Before modification, it fails unless it is a string type
2017-04-06 10:46:40 +01:00
Will Thames b3a15e9ac3 [cloud] New AWS ec2_vpc_endpoint module for creating/deleting VPC endpoints (#20212)
* New AWS VPC Endpoint module for creating and deleting VPC endpoints

* Fix for python3, update version_added, fix flake8 issues

Change exception syntax for python 3
Update version_added to 2.3
Fix some minor flake8 issues

* ec2_vpc_endpoint: improve standards compliance

* Better documentation
* Return results in camel case format
* Improved exception handling
* Added `policy_file` argument
* Add ANSIBLE_METADATA

* Fix version_added

* Update ansible metadata to have metadata_version field
2017-04-05 08:28:52 -04:00
Matt Clay a6ca849643 Fix PEP 8 issues. 2017-04-04 12:22:47 -07:00
Rob 7e3af115ce Add ability to use either sec group name or sec group id or combinati… (#21049)
* Add ability to use either sec group name or sec group id or combination to ec2_lc. Also fix header size in AWS Guidelines

* Fix ec2 import to only import neccessary packages. Remove pep8 double line
2017-04-04 14:11:21 -04:00
Brian Coca 2f3ca66fbf fixed version 2017-04-04 14:09:28 -04:00
anryko bd05c653fd ec2_group: add ports and multiple source lists (#19888). 2017-04-04 14:09:24 -04:00
Brian Coca 7d64ac95df doc notes 2017-04-04 14:08:07 -04:00
Mark Chappell c5edaf5e68 ec2_lc.py: Also pass 'encrypted' when adding a volume
This only allows for using the default KMS keys, but enables encryption
at rest without needing to migrate the module to boto3
2017-04-04 14:07:03 -04:00
bentaylornz 95c1b07bdb [cloud] re-raise boto ClientError if throttling timeout is reached in efs.py (#23109)
* re-raise exception as expected

The current ThrottlingException handling code hides other actual exceptions from the user, and basically goes infinite loop instead. eg when the api caller doesn't have permission (example below) to use the api, ansible effectively hangs. adding the re-raise stops execution and shows the error to the command line as expected

can test by removing permission to the efs api, and calling the efs: module

The error was: botocore.exceptions.ClientError: An error occurred (AccessDeniedException) when calling the DescribeFileSystems operation: User: <x> is not authorized to perform: elasticfilesystem:DescribeFileSystems on the specified resource

* PEP8 fix
2017-04-04 08:41:20 -04:00
Will Thames bded5ac987 [cloud] Support check_mode for ec2_vpc_subnet_facts (#23111)
* Support check_mode for ec2_vpc_subnet_facts

facts modules support check mode by default

* ec2_vpc_subnet_facts pep8 tidy up
2017-04-04 08:34:49 -04:00
Will Thames 2be64b8c3a [cloud] Support check_mode for ec2_vpc_route_table_facts (#23116)
As a facts module, just needs supports_check_mode to be
set in the argument_spec
2017-04-04 08:31:26 -04:00
Will Thames ec01aac983 [cloud] Support check_mode for ec2_vpc_nat_gateway_facts (#23114)
As a facts module, just needs supports_check_mode switched on
2017-04-04 08:31:01 -04:00
Will Thames e61be9ea78 [cloud] Remove DryRun parameter in ec2_vpc_igw_facts check_mode (#23113)
* Remove DryRun parameter in ec2_vpc_igw_facts check_mode

Using DryRun in check mode causes errors, and is not required
(as nothing changes when calling describe_internet_gateways)

Prevents the following error:
```
{"changed": false,
 "failed": true,
  "msg": "An error occurred (DryRunOperation) when calling
          the DescribeInternetGateways operation: Request
          would have succeeded, but DryRun flag is set."}
```

* ec2_vpc_igw_facts pep8 tidy up
2017-04-04 08:29:48 -04:00
Will Thames cd19964bca [cloud] Support check_mode for ec2_group_facts (#23164)
Update imports to use named imports
2017-04-03 13:45:38 -04:00
Prasad Katti 2b18c0ed07 [cloud][docs] Must use the count_tag option with exact_count (#23167)
Fixed an example in ec2 module. The example does not work without
count_tag option.
2017-04-03 13:40:12 -04:00
Sloane Hertel 224b5d5283 remove vpc requirement for default outbound traffic (#22743) 2017-04-03 08:16:03 -04:00
Ryan Brown 2196fa0e95 [cloud][tests] fixtures for placebo to test AWS modules using boto3 (#21253)
* [cloud][tests] Create fixtures for using placebo to test boto3-using modules

* Use pytest's importorskip instead of manually skipping on missing deps

* Fix imports in cloudformation module

* Delete unused code

* Add maybe_sleep fixtures to speed up recorded test runs

* Build basic placebo-CFN tests

* Commit placebo recordings of basic stack operations

* Add placebo to test-requires

* Allow unit tests to run regardless of environment by setting a default region

* Use explicit relative import for Python 3 compat

* Use __name__ attribute that works on Python 2 and 3
2017-03-31 15:31:12 -04:00
Will Thames 9a3a0d731f Fix typo in AWS guidelines doc (#23168)
Change `format_ex` to `format_exc`
2017-03-31 09:57:38 -04:00
Sloane Hertel f5f7a8c681 [cloud] only create new eni if none of the filters lead to one match (#22919) 2017-03-30 14:55:31 -04:00
Sloane Hertel dab0e75ce0 [cloud] update the local variable route_table with the latest tag changes (#23136) 2017-03-30 14:53:42 -04:00
Sloane Hertel 44b2859338 ec2: fix instids and res_list being referenced before assigned - fixes #22692 (#23053)
* add else statement to ensure instids is set

set res_list to None to avoid UnboundLocalError and fix iteration over a nonetype by adding an empty tuple

* make res_list empty tuple by default and check for instids before setting tags (fails otherwise)
2017-03-29 20:18:23 -04:00
Sloane Hertel 7720ef8ec1 [cloud][python3] bytes fix to make ec2_key work on python 3 (#23051) 2017-03-28 17:00:26 -04:00
Ricardo Carrillo Cruz 6fa3cb55e1 Fix dynamodb pep8 issues (#23032) 2017-03-28 15:11:39 +02:00
Corey Christous 34a3ab94d8 add tagging to dynamodb_table.py (#20946)
* add tagging to dynamodb_table.py

* fix doc syntax

* address PR comments

* add boto3 has tagging check
2017-03-28 07:18:20 -04:00
Nick Ball c8364d64d6 [cloud] New module: AWS lightsail (#19846)
* Add AWS lightsail module

* lightsail: fix doc error + badly formatted yaml

* lightsail: code style cleanup

* make requested lightsail changes

* fix imports and pep8

* fix metadata and version

fix yaml

fix RETURN section
2017-03-27 15:10:52 -04:00
Will Thames 7142e28423 [cloud] Default `encrypted` parameter on ec2_ami_copy to False (#22634)
Set encrypted to default False, rather than None

Otherwise you get:

```
Invalid type for parameter Encrypted, value: None, type: <type 'NoneType'>, valid types: <type 'bool'>)
```
2017-03-27 12:44:59 -04:00
Alex Lo ac74520b6f ec2_group: description property is immutable (#19790)
* update integration tests for updated boto exception message

* integration tests fail on both "test credential" test cases

exception bubbles out of module.  instead catch and wrap

* ec2_group does not support updating a security group's description

AWS security group descriptions are immutable.
if ec2_group finds a group that matches by name, but the descriptions do not match, the module does not support this case
previously it would check if the group was used, but would not do anything if it was

old behavior was erroneous because it could make a user expect that the description change of a group was fine when in fact it did not occur
also, it made an expensive check against all ec2 instances for no good reason

* comments not doc strings

* else must have pass w/o doc-string statement

* Catch specific BotoServerException, give context around error when fetching SGs

* python3 compatible exception blocks

* add traceback to fail_json

* two blank lines before first function
2017-03-26 09:33:29 -04:00
ukaj db328a0f83 [cloud] Add support for running s3 module in check mode (#22188) 2017-03-24 16:05:19 -04:00
Sloane Hertel 1ca4a42c0e include traceback in exception handling (#22807) 2017-03-23 14:08:02 -04:00
Matt Martz 3164e8b561 E501 fixes (#22879) 2017-03-22 20:50:28 -05:00
Glen Maetzig ac992eff1c Import camel_dict_to_snake_dict method to fix error when executing get_nat_gateways() method
(cherry picked from commit 223fc34ab91b3980eebc641cb2649ad58e8bf385)
2017-03-22 16:30:59 -07:00
Shaun Brady cd24bbbc9c Missing purge_subnets parameter on function call
purge_subnets|routes were introduced recently.
ensure_subnet_associations now takes purge_subnets as a parameter.  A
call to this function was missed when introducing this feature.  With
out, results in a "got 5 expected 6" error.
2017-03-22 16:22:54 -07:00
mjfroehlich cc50b803df [cloud][route53_health_check] Consider port in identity test (#22762)
Allows to health-check two services on one host. Before, asking for 2 health checks being present for `http://myhost:8888` and `http://myhost:9999`  resulted in just a single health check, as this module considered the two specs as equal.

Bonus: route53_health_check now passes style guidelines
2017-03-22 12:49:39 -04:00
Matt Martz 02f66b9369 E1 legacy pep8 fixes (#21933)
* E1 pep8 fixes

* e111 fix for rds.py
2017-03-21 21:19:40 -05:00
Joshua C. Randall e7fd38af78 Fix get_s3_connection (fixes #22317) (#22318)
* Fix get_s3_connection (fixes #22317)

Override aws_connect_kwargs rather than prepending to them. Should fix an issue in which `calling_format` is set twice in the kwargs passed to `boto.connect_s3` or `S3Connection` if a bucket name contains a `.`

* Revert "Fix get_s3_connection (fixes #22317)"

This reverts commit 7f61b8bebd2929940495204f1a98d660a55985d8.

* implements alternative way of fixing issue with aws_connect_kwargs for rgw and fakes3 (fixes 22317)

* add comment to explain why the keys are being removed from aws_connect_kwargs

* remove trailing whitespace on comment line
2017-03-21 08:15:53 -04:00
Sloane Hertel 4749b75090 [cloud] ec2_eni: don't modify a network interface without eni_id - fixes #22401 (#22689)
* don't modify an eni without eni_id

fix pep8

remove ec2_eni from pep8 legacy files

remove a couple unused variables in main()

fix the documentation

* fix yaml
2017-03-17 16:26:49 -04:00
Sloane Hertel 8ccde6fbb0 [cloud] make docs for ec2_group rules more clear (#22701)
make ec2_group pep8

removed ec2_group from pep8 legacy files
2017-03-17 16:14:20 -04:00
Sloane Hertel a4552c11b3 allow groups parameter to be noticed as an empty list (#22707)
make iam.py pep8

remove iam.py from pep8 legacy files
2017-03-17 16:11:48 -04:00
Sloane Hertel 5e67f86586 [cloud] fix ec2_vpc_route_table module documentation - Fixes #19344 (#22367)
* improve ec2_vpc_route_table documentation

* make pep8
2017-03-15 13:14:13 -04:00
Sloane Hertel 3aef028d42 [cloud] make ec2 module pep8 (#22421)
* making ec2 pep8

* remove ec2 from pep8 legacy files

* missed a couple

* fix imports and remove iteritems

* making group_id and group_name mutually exclusive and fixing whitespace
2017-03-15 13:13:25 -04:00
Toshio Kuratomi eb1214baad New metadata 1.0 (#22587)
Changes to the metadata format were approved here:
https://github.com/ansible/proposals/issues/54
* Update documentation to the new metadata format
* Changes to metadata-tool to account for new metadata
  * Add GPL license header
  * Add upgrade subcommand to upgrade metadata version
  * Change default metadata to the new format
  * Fix exclusion of non-modules from the metadata report
* Fix ansible-doc for new module metadata
* Exclude metadata version from ansible-doc output
* Fix website docs generation for the new metadata
* Update metadata schema in valiate-modules test
* Update the metadata in all modules to the new version
2017-03-14 09:07:22 -07:00
Marc Mercer c5c0d9086e [cloud][docs] update ec2_tag documentation example (#22586)
Currently the documentation utilizes with_subelements, but it does not parse the results correctly.  By changing to with_items: and specifying the proper list, we are able to tag the instances as expected.
2017-03-14 11:12:28 -04:00
Ryan Brown 19511971ee Format ELBInfo call (#22383)
Move declaration of AWSRetry of get_all_load_balancers so it isn't redeclared for every page of data.
2017-03-13 16:00:34 -04:00
Robin Miller 6d8edfc35f Handle throttling and move BotoServerError handling to main. (#22383)
Unclear how useful it is to still be catching BotoServerError exceptions
generally, especially when we are now hopefully handling most instances
of throttling, but kept it as it was already in the code. Moved to main
as catching BotoServerErrors inside individual functions will bypass any
AWSRetry.backoff decorator.

Move additional imports to top.

Use python2.6 formatting

A bit of cleanup on imports

Make one more string interpolation Python 2.6 compatible.
2017-03-13 16:00:06 -04:00
Will Thames 4cc872669c [cloud] fix connection_draining idempotency in ec2_elb_lb (#21323)
* Fix connection_draining idempotency in ec2_elb_lb

Ensure connection_draining types are equivalent when comparing
whether or not connection_draining is being changed.

This means that running `ec2_elb_lb` with connection_draining
set a second time will now report `changed=False`

* ec2_elb_lb: fixed latest Ansible standards compliance

Update to current pep8 standards, fix module imports
and remove module from exclusion file
2017-03-13 14:06:49 -04:00
夏恺(Kai Xia) 5e40af0732 [cloud] change returned type of tag in ec2_snapshot_facts, fix #22431. (#22432)
Signed-off-by: Xia Kai(夏恺) <xiaket@gmail.com>
2017-03-13 14:00:16 -04:00
Will Thames 459724da6b [cloud] Convert nat gateway facts to ansible format (#20962)
Use camel_dict_to_snake_dict
2017-03-13 13:15:45 -04:00
Joshua C. Randall 444b67ca0c s3_bucket: fixes #22464 without fully implementing support for ceph bucket update (#22538) 2017-03-13 10:29:14 -04:00
John R Barker e5b990a55a Fix invalid fields in module DOCUMENATION (#22297)
* fix module doc fields

* More module docs corrections

* More module docs corrections

* More module docs corrections

* More module docs corrections

* correct aliases

* Review comments

* Must quote ':'

* More authors

* Use suboptions:

* restore type: bool

* type should be in the same place

* More tidyups

* authors

* Use suboptions

* revert

* remove duplicate author

* More issues post rebase
2017-03-09 16:20:25 +00:00
Alex Lo 8e910cce8a ec2_group: description is only required when group state is present (#19791)
* description is only required when group state is present

also note that AWS requires a non-empty description when creating a security group

* clarify description requirement
2017-03-07 20:55:17 +01:00
Kamil Cholewiński ec9582fd83 Fix invocations of module.fail_json with no msg=
Bonus: add missing % in cs_nic.py
2017-03-07 10:17:14 -05:00
Andrea Giardini 863c1ff38b Ec2_tag support for check mode (#21779) 2017-03-07 10:44:32 +00:00
John R Barker 8531547ec2 Correct `module:`, it should match filename (#22296)
* Validate module: matches filename

* remove testcase

* Revert module validation, move to different PR
2017-03-07 09:49:03 +00:00
Ryan Brown f0491b4261 [cloud] Fix ZeroDivisionError in ec2_elb_facts module (#22332) 2017-03-06 17:26:02 -05:00
Robin Miller 9c20182bdf [cloud] Avoid failures in RDS modyue due to throttling while waiting (#22271)
1. Check less aggressively for resources that take a long time to return
(some resources can take an hour or more).
2. Handle throttling when checking for resources, and back off quickly
when it occurs.
2017-03-06 15:19:59 -05:00
Dan Vaida 433829769e [cloud] Fix data types in ec2_elb_lb causing resource to be spuriously updated (#21906)
fixes broken idempotence caused by the idle_timeout and cross_az_load_balancing params. (#21906)
2017-03-06 12:27:30 -05:00
Michał Masłowski 228131d1cd lambda: Fix adding environment variables to functions previously not having any (#22313) 2017-03-06 11:10:40 -05:00
Valentyn Boginskey 2d10ad4a3e [cloud] allow ec2_lc to take user data from binary files w/ user_data_path (#20138)
* Add user_data_path parameter to ec2_lc module

* Improve user_data_path parameter documentation

- Specify mutual exclusivity
- Specify `version_added`
- Change module parameter type to `path`

* Use correct comparison for user_data result

* Include traceback on error and use with block

* Only hide user data if provided in file
2017-03-06 11:09:25 -05:00
Will Thames 274016101f ec2_vpc_subnet: cope with empty tags (#21813)
ensure_tags fails if `tags` is None rather than an empty
dict. Ensure that not passing `tags` parameter is equivalent
to passing an empty dict.

Fixes #21778
2017-03-03 13:47:29 -05:00
Will Thames 699f0e861c [cloud] Add supports_check_mode to ec2_ami_find (#22180)
ec2_ami_find is a facts module, and makes no
changes, so trivially supports check mode
2017-03-03 13:34:38 -05:00
mikedlr 710b6c7209 [cloud] bugfix for `lambda` module with empty environment (#22196)
* lambda module - failing test case: shows lambda create mishandles empty environment

* lambda module - fix lambda create with empty environment

* lambda module - fix lambda create with empty environment - style fixes
2017-03-02 09:25:39 -05:00
amblina c6849a3464 S3 object parameter and bucket deletion exclusive (#21830)
Fixes ansible#21796 Prevent users from deleting buckets rather than objects by making object parameter and mode=delobj mutually exclusive in task.
https://github.com/ansible/ansible/issues/21796
2017-02-28 15:36:55 -05:00
Ryan Brown 1699c9ea48 [cloud] ec2_elb_facts fails on accounts with to many ELBs (#21602)
The list_elbs call to boto doesn't use any pagination, so any time there
are more ELBs than the API page size, this module will fail. This change
uses the `next_token` attribute of `ResultSet` to check if there are
still more ELBs to return.

Fixes #21361
2017-02-27 16:42:23 -05:00
Will Thames ebfc7bac94 cloudfront_facts module improvements
* Make more use of AWS Exception information
* Use pythonic dict assignments
* Improve documentation formatting to make option names clearer
  in descriptions
* Meet ansible line length requirements
* Tidy up flake8 messages
2017-02-27 10:22:55 -05:00
Will Thames bd4003e3f2 Add tags to cloudfront distribution facts
Tags are available from cloudfront API, so make use of them
2017-02-27 10:22:55 -05:00
Matt Martz 305c88700d PEP8 E712 fixes (#21916) 2017-02-24 16:49:43 -06:00
Sloane Hertel 942ed42eb0 [cloud] Support deadletter queue configuration in `lambda` module (#21720)
* Add dead_letter_arn option for Lambda.py

* fix logic so DeadLetterConfig can be deleted
2017-02-23 16:04:45 -05:00
Philipp Schmiedel 88f67747cc [cloud] Add `force` flag to ec2_key module (#21685)
Set the `force` flag to false to:
  - protect existing Keys from being overwritten
  - check if a Key was already existing by evaluating
    the returned `changed` status
2017-02-23 09:46:52 -05:00
Matt Clay 4554e8d769 Remove unnecessary shebangs and execute bits. 2017-02-22 18:13:46 -08:00
Troy Ready 3f391f5a23 update ec2_ami_find to allow product-code filter (#18896)
CentOS's cloud image wiki page (wiki.centos.org/Cloud/AWS) gives an
example of using their product code to search for AMIs. This commit
adds an optional parameter to ec2_ami_find to allow this filtering.
2017-02-22 22:36:59 +01:00
scottb 3812c76168 Update GUIDELINES.md
Edited for grammar and clarity.
2017-02-22 10:25:42 -05:00
Brian Coca 96d952a998 fix typo 2017-02-22 10:25:42 -05:00
Brian Coca 4bdaf6a4f0 updated guidelines to reflect boto3 preference 2017-02-22 10:25:42 -05:00
Ryan Brown c136ff58c0 [cloud][docs] Fix misleading Route53 `value` example (#21689)
The `route53` module uses a comma-separated string for records
containing more than one value. Fixes #21134
2017-02-21 15:48:32 -05:00
Sloane Hertel 26b10eb160 [modules] Fix bad usages of `traceback.format_exc()`; doesn't take an error parameter (#21678) 2017-02-20 13:27:39 -05:00
Will Thames f42ffe6de3 [cloud] Ensure that s3_bucket module always enables/disables versioning if it is specified (#21320)
If versioning is not enabled, then `get_bucket_versioning`
can return an empty dict.

If that happens, the code to enable versioning should still
run!

The logic for suspending versioning was also incorrect, so
have updated that too.

Fixes #20491
2017-02-16 09:45:05 -05:00
Sloane Hertel a077aeb693 [cloud][aws] Refactor s3 module, and add 'ignore_nonexistent_bucket' option (#20501)
Introduces `ignore_nonexistent_bucket` option that does not require ListBuckets permission, so less permissioned IAM roles can still be used with this module. 

Fixes #20501
2017-02-16 09:39:11 -05:00
Sloane Hertel f775996209 add 'version_added' field for environment_variables option in lambda.py (#21500)
* Add 'version_added' field for environment_variables option (version_added: "2.3")
2017-02-15 18:52:48 -05:00
Matt Martz 7c00346714 Validate EXAMPLES as YAML 2017-02-15 13:01:43 -08:00
Will Thames 635e3fe9ee [cloud] ec2_vpc_peer should remove peering connections (#20113)
Don't try to create tags on a vpc that you've just removed.

Avoids

```
 "msg": "An error occurred (InvalidParameterValue) when calling the CreateTags operation: You must specify one or more tags to create"
```

Although not quite sure why the `create_tags` was being called
as `module.params.get('tags')` *should* have returned `None`.
2017-02-15 10:21:47 -05:00
s-hertel c5446d95cc [cloud] New module: AWS elasticache_parameter_group for modifying Elasticache cluster settings (#21023)
Added a new module for ElastiCache. Allows users to create/modify/delete/reset cache parameter groups.
2017-02-14 15:32:42 -05:00
s-hertel 0123ec786d [cloud] New module: AWS elasticache_snapshot (#21135)
* Adding an elasticache snapshot module.

Allows user to create, copy, or delete a snapshot.

* Removing unnecessary function

* Make indentation uniform.

* Making requested changes.

Fixing PEP8

Adding a more graceful fail for delete() if the snapshot's state valid (such as when it is in the process of being created).

* PEP8

* Fixing some formatting

move imports

fix parameter alignment

* move imports to the top of the file below documentation
2017-02-14 10:41:07 -05:00
Stepan Stipl 86ed4b116c [cloud] add ec2_vpc_route_table purge_routes and purge_subnets options (#19334)
* Added purge_routes option to ec2_vpc_route_table module

* Added purge_subnets option to ec2_vpc_route_table module
2017-02-14 10:08:51 -05:00
Tim Rupp bf836850a4 Replaces expanduser with type path
Replaces the usage of expanduser with the type 'path' for the
dest and object options as that functionality is available
in that type automatically.

patch related to #12263
2017-02-13 17:32:41 -05:00
Tim Rupp 4900201c5b Remove expanduser and use type path
This patch removes the use of expanduser and replaces it with
type 'path'. This patch is related to #12263
2017-02-13 12:15:50 -05:00
Willem van Ketwich 93a689958e [cloud] add summary feature and refactor AWS cloudfront_facts module (#20791)
* initial commit of cloudfront_facts.py

* modification as per review from @georgepsarakis

* fixed shippable build error

* fixed shippable build error

* removed wildcard imports and replaced with specific imports from ansible.module_utils.ec2 as advised by @georgepsarakis

* renamed all instances of cloud_front_origin_access_identity to origin_access_identity as advised by @georgepsarakis

* show facts based on alias and distribution id for easy referencing as advised by @ryansb. have done for both distribution and distribution_config

* fixed incorrect logic for default list_distributions, fixed list_distributions_by_web_acl - wasn't passing web_acl_id, fixed list_invalidations keyword args missing DistributionId

* fixed last fact added clobbering all previous facts for an alias or an id

* removed list_ prefix from list keys

* removed unnecessary boto fields. made list_distributions and list_streaming_distributions dictionaries with id/alias as key. fixed list_invalidations.

* initial commit of cloudfront_facts summary

* checks for empty list returned from boto, standardised list naming

* neatened up parameters

* added summary documentation

* refactoring of functions for modularity

* refactoring, neatening code, fix for if cname not present, added try-catch blocks

* more refactoring, cleaning

* more cleaning, allowed streaming distributions to be found by domain name alias

* removed unnecessary line

* fixed tabs

* fixed indentation

* removed trailing whitespace

* removed more whitespace

* more refactoring, modified where invalidations dict is set

* added ETag to summary

* refactored summary list

* moved list out of for loop

* trailing white space

* reverted line lengthening as advised by @willthames

* modified exceptions to multi line as advised by @willthames

* reverted variable spacing to be more pythonic'

* reverted spacing in YAML as advised by @ryansb

* reverted line spacing for parameters for correct blame attribution as advised by @ryansb

* removed white space

* more white space

* reverted line spacings for parameters as advised by @ryansb

* removed spaces between parameters as advised by @ryansb
2017-02-13 09:20:04 -05:00
Dag Wieers f824b2ce8d Avoid having module documentation links to itself (#21329)
* Avoid having module documentation links to itself

A lot of modules use M(own_module) in their documentation causing a link
in the documentation to itself.

* Make note more clear now
2017-02-13 14:02:34 +00:00
s-hertel 84135ef7ad Removing cmp from ec2_vpc_net.py to be compatible with Python3 (#21202)
* Removing cmp to be compatible with Python3

* fix syntax

* Added an overlooked return

* Fixing making  things overly complicated

* Simplifying since tags will always be hashable. Don't need to use cmp at all.
2017-02-10 15:23:08 -05:00
s-hertel 2dc42fce80 [cloud] add tags parameter to `ec2_vol` & PEP8 fixes (#21254)
* Make ec2_vol pep8 and add tags parameter

* Remove ec2_vol.py from pep8 legacy-files
2017-02-10 15:22:38 -05:00
Robin Miller 951994be5e use backoff/retry for conn.get_zones and conn.get_hosted_zone in route53 module (#20771) 2017-02-10 13:34:50 -05:00
s-hertel 22701806c3 Adding environment variable support for lambda.py in response to feat… (#20705)
* Adding environment variable support for lambda.py in response to feature idea #20479.

Plus a 1-character bug fix.

* fix yaml syntax

* Fixing option name, adding alias, and fixing a line to allow the user to delete environment variables by setting an empty dict.
2017-02-09 15:12:56 -05:00
s-hertel 0e4f48d684 Merge pull request #20953 from surfuga/fix-20951-ec2_vpc_net-multi_ok
Fixes #20951 fixed multi_ok in ec2_vpc_net.py (var multi usage in vpc_exists function)
2017-02-09 14:24:51 -05:00
Ralph Rodkey b1f06f6555 [cloud] make ec2_asg honor 'wait_for_instances' on delete 2017-02-08 12:57:59 -05:00
Toshio Kuratomi 5c56e79a8f Cleanup imports 2017-02-06 13:04:54 -08:00
Eugene Krokhalev d67cbaa274 fix urlparse usage in cloud.amazon module to be compatible with python3 (#20917)
* fix urlparse usage in cloud.amazon module to be compatible with python3

* make imports style compatible with six documentation
2017-02-06 12:55:11 -08:00
Ryan S. Brown bb9ee0cf6f [cloud][aws] Make `s3_object_version` truly optional in lambda module 2017-02-03 16:22:54 -05:00
Matt Martz 829c0b8f62 Update validate-modules (#20932)
* Update validate-modules

* Validates ANSIBLE_METADATA
* Ensures imports happen after documentation vars
* Some pep8 cleanup

* Clean up some left over unneeded code

* Update modules for new module guidelines and validate-modules checks

* Update imports for ec2_vpc_route_table and ec2_vpc_nat_gateway
2017-02-02 11:45:22 -08:00
s-hertel 0ed1e6a1f3 [cloud] rds module: handle parameters that are False, but also not the default value. Fixes #20370 (#20646)
Boolean options that default as `None` but are set to `False` by the user were ignored on update. This change checks to distinguish None & False so that options like multi_az can be turned off during an update. 

* Modifying how optional parameters are handled in rds.py. Fixes #20370

Allowing options to be set to false/no. Previously ignored unless set to true/yes.

Added a conditional for invalid parameters since the default is false instead of null for some options (e.g. force_failover, apply_immediately, upgrade).

* Making requested revision.
2017-02-02 09:49:19 -05:00
Pau Rodriguez cc240e3f2d fixed multi_ok(multi) usage in vpc_exists function 2017-02-02 00:28:38 +01:00
Will Thames da1c13705d Disassociate EC2 VPC subnets from route tables before deletion (#20114)
* Disassociate subnets from route tables before deletion

If a route table still has subnets associated with it, it will fail
to delete:

```
"msg": "The routeTable 'rtb-abcd1234' has dependencies and cannot be deleted."
```

Avoid this by disassociating subnets before route table deletion

* Fix ec2_vpc_route_table flake8 complaints
2017-02-01 15:36:51 -05:00
Will Thames 950ff3f24a Fix EIP release in ec2_vpc_nat_gateway (#20167)
* Check if EIP exists before deleting it

After deleting the NAT gateway, the EIP sometimes seems to
cease to exist afterwards. Check if it exists before deleting it.

Otherwise you get:
```
Failed to release EIP eipalloc-abdc1234: An error occurred (InvalidAllocationID.NotFound) \
when calling the ReleaseAddress operation: The allocation ID 'eipalloc-abcd1234' does not \
exist", "success": false}
```

* Fix flake8 errors with ec2_vpc_nat_gateway
2017-02-01 15:32:03 -05:00
Maxime Deravet 0d2d25b515 Fix for #20473 - If there is no instance in the ASG, we initialize an empty array for `properties['instances']` (#20475) 2017-02-01 15:29:18 -05:00
naslanidis c29f52897b [cloud] New module ec2_vpc_igw_facts (#19787)
* added ec2_vpc_igw_facts module

* added cr at end of file

* corrected import json in wrong location

* corrected version added

* added snake_case conversion

* updated documentation and fixed for python 3'

* ec2_vpc_igw_facts: simplify logic

Make module arguments more 'Ansiblish'
Remove unnecessary intermediate variables in results generation
Use `ansible_dict_to_boto3_filter_list` rather than duplicating logic
Use `check_mode` rather than pass a `dryrun` argument
Update for flake8 improvements

* updated documentation
2017-02-01 09:47:47 -05:00
Will Thames 38ff9b735e Fix python3, fix flake8, use common code
Update exception handling, remove use of iteritems
Update for better flake8 compliance

Use ansible_dict_to_boto3_filter_list rather than
duplicating its implementation
2017-01-31 14:49:50 -05:00
Etherdaemon 2e35d5716b Remove camel_dict_to_snake_dict as this was breaking the module itself - the result is a list 2017-01-31 14:49:50 -05:00
Etherdaemon b0c49c7141 Update typo for connection to the get_nat_gateways function 2017-01-31 14:49:50 -05:00
Etherdaemon e6821b3472 New facts module for ec2 nat gateway facts module 2017-01-31 14:49:50 -05:00
sebastianneubauer 3f14061584 s3 module: fix urlparse invocation and netloc mixup on Python 3 (#20836) 2017-01-31 11:54:29 -05:00
Matt Clay 5f89fc4a68 PEP 8 E111 cleanup. 2017-01-30 20:08:33 -08:00
Matt Clay 23f2efbc8d PEP 8 E111 cleanup. (#20841) 2017-01-30 18:03:13 -08:00
Steve Kuznetsov 4a57cba86d ec2_group_facts: Fail correctly when boto3 is not installed
Signed-off-by: Steve Kuznetsov <skuznets@redhat.com>
2017-01-30 15:03:56 -08:00
Matt Clay cb76200c7d PEP 8 E111 & E114 cleanup. (#20838) 2017-01-30 15:01:47 -08:00
Matt Clay 10d9318de7 PEP 8 indent cleanup. (#20800)
* PEP 8 E121 cleanup.

* PEP 8 E126 cleanup.

* PEP 8 E122 cleanup.
2017-01-29 07:28:53 +00:00
Matt Clay e2c0b375d3 PEP 8 cleanup. (#20790)
* PEP 8 E115 cleanup.
* PEP 8 E131 cleanup.
2017-01-28 01:39:40 -08:00
Matt Clay d0d1158c5e PEP 8 cleanup. (#20789)
* PEP 8 E703 cleanup.
* PEP 8 E701 cleanup.
* PEP 8 E711 cleanup.
* PEP 8 W191 and E101 cleanup.
2017-01-28 00:12:11 -08:00
Matt Clay d913f69ba1 PEP 8 W291 whitespace cleanup. 2017-01-27 17:08:02 -08:00
Matt Clay 95789f3949 PEP 8 whitespace cleanup. (#20783)
* PEP 8 E271 whitespace cleanup.
* PEP 8 W293 whitespace cleanup.
* Fix whitespace issue from recent PR.
2017-01-27 15:45:23 -08:00
Matt Clay 63b1e0c277 Fix infrequent PEP 8 issues. 2017-01-27 14:06:21 -08:00
simplesteph 392fa5a7ac moved utils function to utils modules, fixed a small typo 2017-01-26 12:24:45 -05:00
simplesteph d811b1d942 added deployment configuration as an option. this fixes #2434 2017-01-26 12:24:45 -05:00
Michał Masłowski c10c7aa67b lambda: Remove the note about supporting S3 uploads only (#20562)
The module supports also ZIP uploads which are documented.

Refer to the correct boto3 function in the return value description.
2017-01-24 11:21:32 -05:00
Andrej Svenke 491b67f114 Fixed bug in ecs_taskdefinition for new task with forced revision 1. (#20561) 2017-01-24 11:19:22 -05:00
naslanidis 8a01f209ac new AWS module for ec2 VPC vgw facts (#19021)
* new AWS module for ec2 VPC vgw facts

* fixed documentation as suggested by reviewers

* changed iteritems to items for py 3

* improvements to bring in line with #19787

* corrected documentation

* updated doco and exception path
2017-01-24 09:54:49 -05:00
Will Thames 75437bbe3c Fix ec2_vpc deprecation docs
Clarify the CHANGELOG with deprecation timeline
Correct name of `ec2_vpc_net` module to be used instead
2017-01-19 17:07:57 -08:00
Robert Sax 9d26d8b605 fixing mime types in s3_sync module (#20059) 2017-01-19 15:14:05 -05:00
Ross Williams 592c79e837 Add support for registering Amazon Machine Images from EBS snapshots. (#19020) 2017-01-19 13:06:36 -05:00
Fabio Alessandro Locati b2acba0d16 Improve examples and remove shell (#19208) 2017-01-19 17:15:24 +00:00
Will Thames 75a7ebe900 Deprecate ec2_vpc module (#20344)
* Deprecate ec2_vpc module

The deprecation of ec2_vpc module has been discussed for
2 years and is causing duplication of effort as changes
are implemented for ec2_vpc rather than for the newer
alternatives

* Improve module deprecation documentation

Update the developing modules documentation with the latest
instructions on how to deprecate a module.
2017-01-19 11:25:28 +00:00
Pascal Bach c6621aa0ae ec2_vol: Add key selection support for EBS volume encryption. (#19570)
* Fixes: #3217 - Add a new parameter for the kms_key_id to the ec2_vol module.

* Fixes: #3217 - Correcting comment string as requested.

* Fixes: #3217 - Adding boto version when kms_key_id is used. Also re-adding accidentally removed comment line.

* Cleanup of EBS volume key pull request
2017-01-18 10:02:54 -05:00
David M. Lee fde551fa2a Adding support for Amazon ECR (#19306)
* Adding support for Amazon ECR

This patch adds a new module named ecr, which can create, update or
destroy Amazon EC2 Container Registries. It also handles the management
of ECR policies.

* ecs_ecr: addressed review feeback

 * Renaming ecr to ecs_ecr
 * Fixed docs
   * Removed bad doc about empty string handling
   * Added example of `delete_policy`
 * Removed `policy_text` option; switched policy to `json` type so
   it can accept string or dict
 * Added support for specifying registry_id
 * Added explicit else after returned if clauses
 * Added `force_set_policy` option
 * Improved `set_repository_policy` error handling
 * Fixed policy comparisons when AWS doesn't keep the ordering stable
 * Moved `boto_exception` into the module
2017-01-17 14:45:43 -05:00
David M. Lee b8dd4dd52b amazon: added boto3_conn to GUIDELINES.md (#20305)
* amazon: added boto3_conn to GUIDELINES.md

* Update GUIDELINES.md

Light edits. Good to go.
2017-01-16 21:00:45 -08:00
Jasper Lievisse Adriaanse 64692e7a89 Annotate boto3 dependency in the standard location. 2017-01-13 14:36:17 -05:00
defunct 92b26a28b8 Update ec2_ami_copy to boto3, fix encrypted support (#20009)
* Update ec2_ami_copy to boto3, fix encrypted support

* docs, backwards compat options, more verbose exception handling

* minor option changes, fix documentation

* update documentation
2017-01-12 19:39:32 -05:00
BRAMILLE Sébastien 110753502e Update rds_subnet_group.py 2017-01-11 12:37:31 -05:00
Michał Masłowski 5a1395a486 sns_topic: Do not attempt to unsubscribed deleted subscriptions (#20086) 2017-01-11 06:57:24 -05:00
Willem van Ketwich 1ee69c07cc New module (cloud): cloudfront_facts (#19727)
* initial commit of cloudfront_facts.py

* modification as per review from @georgepsarakis

* fixed shippable build error

* fixed shippable build error

* removed wildcard imports and replaced with specific imports from ansible.module_utils.ec2 as advised by @georgepsarakis

* renamed all instances of cloud_front_origin_access_identity to origin_access_identity as advised by @georgepsarakis

* added input option requirements where missing. fixed a typo in an error message, added '.' to the end of sentences.

* fixed typo in documentation

* simplified paginated_response method as advised by @georgepsarakis

* set default option to list_defaults when no option specified as advised by @ryansb

* bumped version to 2.3 as advised by @ryansb

* removed double-nesting of ansible_facts as advised by @ryansb

* show facts based on alias and distribution id for easy referencing as advised by @ryansb. have done for both distribution and distribution_config

* made comments clearer

* fixed incorrect logic for default list_distributions, fixed list_distributions_by_web_acl - wasn't passing web_acl_id, fixed list_invalidations keyword args missing DistributionId

* neatened up logic for list_distributions default

* facts now return Etag as well as specific facts. modified paginated_response to handle this. also all requests that use distribution id also list the facts under the corresponding alias now.

* fixed last fact added clobbering all previous facts for an alias or an id

* removed list_ prefix from list keys

* removed unnecessary boto fields. made list_distributions and list_streaming_distributions dictionaries with id/alias as key. fixed list_invalidations.

* fixed incorrectly named list_distributions_by_web_acl to ..web_acl_id. added id/alias dict for list_distributions_by_web_acl_id

* minor doc changes

* removed merge tag

* fixed more of merge
2017-01-10 11:27:54 -05:00
Toshio Kuratomi 08d6990e67 Fix code-blocks to use correct syntax highlighting 2017-01-08 09:18:45 -08:00
howinator 90002e06ae Add subnet associations to route tables dict
The main purpose of this PR is to add the subnet associations to the
dict returned by ec2_vpc_route_table_facts. This commit also
re-formats code to make it PEP8 compliant.
2017-01-06 12:30:54 -05:00
Will Thames 4bf7bf0b94 Add postgres-9.6 to rds_param_group module
Support postgres-9.6 as an engine choice for rds_param_group
2017-01-06 12:29:37 -05:00
John R Barker 40ecc3188f Use M() to link to the replacement module. (#19976) 2017-01-06 16:21:39 +00:00
Emlyn Stokes 1154aca746 Paginate ASG results (#19944) 2017-01-05 16:12:30 -05:00
Ted Timmons 12495e4b42 New module: aws_kms for managing access grants on AWS KMS keys (#19309)
New module by @tedder for handling granting/revoking access to KMS secrets. 

For example:

```
- name: grant user-style access to production secrets
  kms:
  args:
    mode: grant
    key_alias: "alias/my_production_secrets"
    role_name: "prod-appServerRole-1R5AQG2BSEL6L"
    grant_types: "role,role grant"
```
2017-01-05 09:42:59 -05:00
Enis Ozgen d4d9a48205 Fix typo in ec2_vpc_peer.py documentation 2017-01-04 16:51:26 -08:00
Ryan S. Brown 8772e4387b Update `ec2_facts` with new ap-south region 2017-01-04 10:27:48 -05:00
Rob 927218d99d Fix backward compat change - create custom required_together statement (#19642) 2017-01-04 14:11:56 +00:00
Kash dceace6bb2 ecs_taskdefinition: Fix missing import camel_dict_to_snake_dict (#19560)
ecs_taskdefinition: Fix missing import camel_dict_to_snake_dict
2017-01-04 13:50:13 +00:00
Kash 8e0119b24c ecs_taskdefinition: more accurate description in doc (#19204) 2016-12-30 12:30:04 -05:00
Rob 36213e8b21 Fix to fail when task_definition or desired_count not defined and state=present, define that role is required with load_balancers parameter and a few pep8 fixes (#19490) 2016-12-30 10:50:09 -05:00
Rob White 62dfa2ad11 Add helper function so that IAM policies can be compared for equality and update s3_bucket to take advantage of helper function 2016-12-30 10:41:22 -05:00
Tom Paine e66501b0b7 [docs] update ec2_ami_copy docs to clarify encrypted snapshots (#19641)
Docs formatting.
2016-12-30 10:37:25 -05:00
Tom Paine 7ba746dc1e Update ec2_ami.py (#19636)
- Consistent capitalisation in the descriptions
- Removed redundant 'optional' notes when this is covered by the Boolean `optional` column
- Clarified `instance_id` description
2016-12-30 10:36:29 -05:00
Lujeni 427cfd6162 Fix the certificates bodies compare into iam_cert module (#19684) 2016-12-30 10:34:18 -05:00
joernheissler a5145a41a8 Add 3 new Amazon AWS regions (#19687) 2016-12-30 10:32:21 -05:00
Laurent Goujon e2c50baf3f Fix broken ec2 volume creation breaks with older boto versions (#1773) (#19723)
Fix issue which prevents creating ec2 instance with extra volumes when
using a older version of boto not supporting volume encryption.

Fix issue #1173
2016-12-30 10:31:35 -05:00
Sean Summers f8fa772a55 ec2_ami_find: set is_public to 'true' or 'false' (#19250)
* set is_public 'true' or 'false'

Despite being a boolean property, https://github.com/melta/boto/blob/master/boto/ec2/image.py:63 sets is_public = True only if the argument is passed in as the string 'true'. Likewise for False/'false'.

This is a workaround for that bug in boto2, to allow the documented parameter to work with valid yaml values.

fixes #5600

* only set is_public if true
2016-12-30 10:28:13 -05:00
Ivan Nikolov fcb1a2b6cc Fixed ec2_eip.py when assigning a standard elastic IP. (#19238) 2016-12-30 10:27:04 -05:00
Chris Soyars e0d4050612 ec2_facts: Add support for ca-central-1 (#19260) 2016-12-30 10:26:09 -05:00
Gaël Lambert 647bf4eceb doc: fix indentation in amazon/rds.py example docs (#19734)
Actual doc give this error

```
fatal: [localhost]: FAILED! => {
    "changed": false,
    "failed": true,
    "invocation": {
        "module_args": {
            "command": "facts",
            "register": "new_database_facts"
        },
        "module_name": "rds"
    },
    "msg": "unsupported parameter for module: register"
}
```

Register should be at the module `rds` level and not at args level in this example :

```
 - rds:
     command: facts
     instance_name: new-database
-    register: new_database_facts
+  register: new_database_facts
```
2016-12-29 08:46:40 -05:00
Rob 69c14bd003 New module - iam_role (#19486)
* New module - iam_role

* Change policy type to json. Remove wildcard import
2016-12-22 13:58:38 +00:00
Rob cfa8ce767b Add new parameters to taskdefinition module - network_mode and task_r… (#19493)
* Add new parameters to taskdefinition module - network_mode and task_role_arn

* Add version_added field for doco

* Change version_added parameter to 2.3
2016-12-19 18:16:35 +00:00
Rob b77ab1a6c9 Add support to ec2_eip to associate with a secondary ip address (#19484) 2016-12-19 15:45:38 +00:00
Alex Sergeyev 28a3a13656 Support MariaDB engine version 10.1 (#19483) 2016-12-19 14:28:29 +00:00
Ryan S. Brown 5204024f35 `s3_sync` module: Add ANSIBLE_METADATA parameter 2016-12-16 09:28:45 -05:00
tedder be7a568b33 New module `s3_sync`: boto3-powered s3 synchronization
Syncs groups of files faster than the `s3` module and support content
type detection/overriding and globbing.
2016-12-16 09:26:30 -05:00
Ryan S. Brown 197658aff4 Handle when the AMI launch permissions are unset.
Use an empty list to avoid a TypeError because `'NoneType' is not iterable``
2016-12-14 19:45:14 -05:00
Carlos E. Garcia 0b8011436d minor spelling changes 2016-12-13 13:51:13 -05:00
Toshio Kuratomi 51491c9904 Remove itervalues (not available on py3) 2016-12-13 05:40:48 -08:00
Andrea Tartaglia ef391a11ec Removed dict.iteritems() in modules. (#18859)
This is for py3 compatibility, addressed in #18506
2016-12-12 15:16:23 -08:00
Kash 6b1586748f Fixes #4538 passing int params as required by boto (#18999) 2016-12-09 14:39:02 -05:00
Yury V. Zaytsev 395b59ea6c Update ec2_vpc_peer.py (#19069)
Document `peering_id` module parameter.
2016-12-09 11:24:48 -05:00
José Sabater Montes 66ced41485 Add new Amazon EBS volume types. Fixes issue 4041 of ansible-modules-core 2016-12-09 10:27:54 -05:00
Adam Chainz 0b8aada1bc Cloudformation - allow re-using an existing template (#19009)
* Allow re-using an existing template when updating a stack by not passing 'template' or 'template_url'. This is a big one for me as our deploy process creates a new stack and then modifies the old one; to avoid changing the resources inside the old one, we have had to avoid using the Ansible module and use the AWS CLI instead in order to pass `--use-previous-template`.
* Split create and update logic into separate functions
* Remove dead `update` variable
2016-12-09 10:24:10 -05:00
Maarten Bezemer 7b4eb078c6 Leave current secutiry groups as-is if not provided (#19043) 2016-12-09 10:21:16 -05:00
Tom Paine 1d80f5cf0f Update ec2_group.py (#19033)
PR move of https://github.com/ansible/ansible-modules-core/pull/3588

##### ISSUE TYPE
- Docs Pull Request

##### COMPONENT NAME
ec2_group.py

##### ANSIBLE VERSION

```
ansible 2.0.2.0
  config file = /Users/tpai/src/cm-secure/ansible.cfg
  configured module search path = Default w/o overrides
```
##### SUMMARY

Make it clear you can specify the created group in the rules list, allowing idempotent use for group<->group networking rules.

This is a really useful feature that isn't obvious enough in the docs.
2016-12-09 10:11:17 -05:00
Andy Freeland cb9b5ab146 Include volume encryption status in 'ec2_vol_facts' module (#19017) 2016-12-09 10:01:13 -05:00
Andy Freeland 72310ff3e8 Fix `wait` parameter in ec2 module docs (#19037)
Fixes #18913.
2016-12-09 05:51:43 -05:00
Matt Clay c709b22e5c Fix differences with devel. 2016-12-08 11:35:21 -05:00
James Cammarata 011ea55a8f Relocating extras into lib/ansible/modules/ after merge 2016-12-08 11:35:18 -05:00
James Cammarata 8afa090417 Resolving differences in core modules post-merge 2016-12-08 11:25:36 -05:00
Toshio Kuratomi 7319104552 Refreshed metadata for core modules 2016-12-08 11:25:35 -05:00
Adam Chainz 46ca2b8bcd Cloudformation - remove dead invoke_with_throttling_retries function (#5690)
Unused since f040d63403f6c459a278918fa48fa8cb87754506.
2016-12-08 11:25:35 -05:00
Fabio Alessandro Locati c8fd24ee04 Call main in conditional way - cloud/amazon 2016-12-08 11:25:35 -05:00
Fabio Alessandro Locati ca047c3881 Unquote urls in YAML - cloud (#5797) 2016-12-08 11:25:34 -05:00
Ted Timmons 367f675420 use 'six' for urlparse compatability (#5777)
* use 'six' for urlparse compatability
2016-12-08 11:25:34 -05:00
Rob White 3f81a65e53 Fail if specifying an ENI as device but in_vpc is not true 2016-12-08 11:25:34 -05:00
tedder 78f8ef267c update formatted lines to use named identifiers 2016-12-08 11:25:32 -05:00
tedder c77f7af765 add .format indexes for 2.6 compatability
Fixes #5551; the "".format() style needs to have `{0}` instead of the implied `{}` version for compatability with 2.6.
2016-12-08 11:25:32 -05:00
Sam Doran 38c0769abb Examples syntax batch5 (#5622)
* Change example syntax on supervisorctl module

* Change example syntax or _ec2_ami_search module

* Change example syntax on cloudformation module

* Change example syntax on ec2 module

* Change example syntax on ec2_facts module

* Change example syntax on ec2_eip module

* Change example syntax on rds module

* Change example syntax on route53 module

* Change example syntax on s3 module

* Change example syntax on digital_ocean module

* Change example syntax on docker_service module

* Change example syntax on cloudformation module

* Change example syntax on gc_storage module

* Change example syntax on gce module

* Change example syntax on gce_mig module

* Change example syntax on _glance_image module

* Change example syntax on _keystone_user module

* Change example syntax on _nova_keypair module

* Change example syntax on _quantum_floating module

* Change example syntax on _quantum_floating_ip_associate module

* Change example syntax on _quantum_network module

* Change example syntax on _quantum_router module

* Change example syntax on _quantum_router_gateway module

* Change example syntax on _quantum_router_interface module

* Change example syntax on _quantum_subnet module

* SQUASH _quantum_subnet

* Add missing quotes
2016-12-08 11:25:31 -05:00
Ben Tomasik 0de338824a Set suspend_processes version_added to 2.3 2016-12-08 11:25:29 -05:00
Ben Tomasik f2af5b8664 Add support for suspending scaling processes Ref: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-suspend-resume-processes.html 2016-12-08 11:25:29 -05:00
einarc 22df46d168 Avoid `TypeError` when desired_capacity is not provided to `ec2_asg` module (#5501)
Moving the "check if min_size/max_size/desired_capacity..." code to execute BEFORE the desired_capacity code is used in the following operation:
num_new_inst_needed = desired_capacity - len(new_instances)

Otherwise the following exception occurs when desired_capacity is not specified and you're replacing instances:
    num_new_inst_needed = desired_capacity - len(new_instances)
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'

Stack Trace:

An exception occurred during task execution. The full traceback is:
Traceback (most recent call last):
  File "/var/lib/awx/.ansible/tmp/ansible-tmp-1478229985.74-62334493713074/ec2_asg", line 3044, in <module>
    main()
  File "/var/lib/awx/.ansible/tmp/ansible-tmp-1478229985.74-62334493713074/ec2_asg", line 3038, in main
    replace_changed, asg_properties=replace(connection, module)
  File "/var/lib/awx/.ansible/tmp/ansible-tmp-1478229985.74-62334493713074/ec2_asg", line 2778, in replace
    num_new_inst_needed = desired_capacity - len(new_instances)
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'

fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "ec2_asg"}, "module_stderr": "Traceback (most recent call last):\n  File \"/var/lib/awx/.ansible/tmp/ansible-tmp-1478229985.74-62334493713074/ec2_asg\", line 3044, in <module>\n    main()\n  File \"/var/lib/awx/.ansible/tmp/ansible-tmp-1478229985.74-62334493713074/ec2_asg\", line 3038, in main\n    replace_changed, asg_properties=replace(connection, module)\n  File \"/var/lib/awx/.ansible/tmp/ansible-tmp-1478229985.74-62334493713074/ec2_asg\", line 2778, in replace\n    num_new_inst_needed = desired_capacity - len(new_instances)\nTypeError: unsupported operand type(s) for -: 'NoneType' and 'int'\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}
	to retry, use: --limit @
2016-12-08 11:25:28 -05:00
Zaius Dr d8c21b153d Improve `ec2` module Python3 Support (#5497)
Imported six module from ansible module_utils for backwards compatibility.
2016-12-08 11:25:27 -05:00
Andrew Gaffney 2ef59561ba Fix bare variable references in docs (#5554) 2016-12-08 11:25:27 -05:00
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 bf9077bfad Fix doc examples for `ec2_elb_lb` module
The examples had the listeners as a list item for each param, when they
really need to be their own objects.
2016-12-08 11:25:27 -05:00
Ryan S. Brown 5dd9372ff8 Fail gracefully in `ec2_asg` module when there are no matching launch configurations 2016-12-08 11:25:27 -05:00
jctanner 06e1141106 replace type() with isinstance() (#5541)
Replace all use of type() with isintance()

Addresses https://github.com/ansible/ansible/issues/18310
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
mickael-ange 23eba8fd97 Added aws and ec2 extends_documentation_fragment to cloud/amazon/rds module. (#3951) 2016-12-08 11:25:26 -05:00
Eduard Iskandarov 8ec5757789 Fixes: #4516 add placement_group argument for ec2_asg module 2016-12-08 11:25:26 -05:00
Jamie Dyer 4ac3b0c5d5 Make the RDS endpoint available if AWS returns it. Fixes #3865 (#4143) 2016-12-08 11:25:25 -05:00
Charles Paul f6676f4957 add id: back to documentation 2016-12-08 11:25:24 -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
John R Barker 25b6492d37 Bulk spelling improvement to modules-core (#5225)
* Correct spelling mistakes

* Correct more spelling issues

* merge conflict

* Revert typo in parms
2016-12-08 11:25:20 -05:00
John Barker bca8bbe7c2 Correct functional typos 2016-12-08 11:25:19 -05:00
jjshoe 706bdbf284 Catch the rare condition where ami creation failed, this is critical when you have a 10-15 minute wait on ami creation. This rarely happens, and is tough to reproduce, but it does happen. (#5106) 2016-12-08 11:25:19 -05:00
Elena Washington 91e433594a Make is so that the params param truly isn't required (fix for #3860) 2016-12-08 11:25:19 -05:00
Ryan Brown b091d39baf Handle termination_protection parameter when restarting instances (#5076)
* Restart EC2 instances with multiple network interfaces

A previous bug, #3234, caused instances with multiple ENI's to fail when being
started or stopped because sourceDestCheck is a per-interface attribute, but we
use the boto global access to it (which only works when there's a single ENI).

This patch handles a variant of that bug that only surfaced when restarting an
instance, and catches the same type of exception.

* Default termination_protection to None instead of False

AWS defaults the value of termination_protection to False, so we don't
need to explicitly send `False` when the user hasn't specified a
termination protection level. Before this patch, the below pair of tasks
would:

1. Create an instance (enabling termination_protection)
2. Restart that instance (disabling termination_protection)

Now, the default None value would prevent the restart task from
disabling termination_protection.

```
- name: make an EC2 instance
  ec2:
    vpc_subnet_id: {{ subnet  }}
    instance_type: t2.micro
    termination_protection: yes
    exact_count: 1
    count_tag:
       Name: TestInstance
    instance_tags:
       Name: TestInstance
    group_id: {{ group }}
    image: ami-7172b611
    wait: yes
- name: restart a protected EC2 instance
  ec2:
    vpc_subnet_id: {{ subnet  }}
    state: restarted
    instance_tags:
       Name: TestInstance
    group_id: {{ group }}
    image: ami-7172b611
    wait: yes
```
2016-12-08 11:25:18 -05:00
Pradeep b405931e8b Typo Fix 2016-12-08 11:25:18 -05:00
Ryan Brown 135b92bf4e Check status of finished spot instance requests (#4990)
Per #3877, the code to wait for spot instance requests to finish would
hang for the full wait time if any spot request failed for any reason.
This commit introduces status checks for spot requests, so if the
request fails, finishes, or is cancelled the task will fail/succeed
accordingly.

One edge case introduced here is tha if a user terminates the instance
associated with the request manually it won't fail the play, under the
presumption that the user *wants* the instance terminated.
2016-12-08 11:25:15 -05:00
Denis Tiago c0c5b9a50a fix health instances count when we have more than one lb in asg 2016-12-08 11:25:13 -05:00
Ryan S. Brown 93737f819a Accept JSON type as the content of policy_json parameter on `iam_policy` module 2016-12-08 11:25:12 -05:00
René Moser cb9ec9f802 iam_cert: remove choice list for dup_ok type bool (#4940)
See 8879931f0cd727244587b6e58a7279d9125c96a2
2016-12-08 11:25:12 -05:00
Ryan S. Brown 10e0ec84fb Fix version_added for ec2_asg feature 2016-12-08 11:25:09 -05:00
Shawn Siefkas cff256b057 Adding SNS notification support to ec2_asg module
Addresses #1844
2016-12-08 11:25:07 -05:00
Ryan Brown 6dff21bd42 Stop sorting of termination_policies in `ec2_asg` (#4883)
The AWS API requires that any termination policy list that includes
`Default` must end with Default. The attribute sorting caused any list
of attributes to be lexically sorted, so a list like
`["OldestLaunchConfiguration", "Default"]` would be changed to
`["Default", "OldestLaunchConfiguration"]` because default is earlier
alphabetically. This caused calls to fail with BotoServerError per #4069

This commit also adds proper tracebacks to all botoservererror fail_json
calls.

Closes #4069
2016-12-08 11:25:06 -05:00
mzizzi eaef333215 cloudformation stack events itertools.imap bugfix (#4868) 2016-12-08 11:25:05 -05:00
Christopher Kotfila f916dae700 Unpack AWS reservations while waiting to terminate (#4012)
Previously calculation of the number of instances that have been
terminated assumed all instances were in the first reservation returned
by AWS.  If this is not the case the calculated number of instances
terminated never reaches the number of instances and the module always
times out. By unpacking the instances we get an accurate number and the
module correctly exits.
2016-12-08 11:25:05 -05:00
Ryan Brown 1a02005b8d Handle EC2 instances with multiple network interfaces (#4766)
Currently instances with multiple ENI's can't be started or stopped
because sourceDestCheck is a per-interface attribute, but we use the
boto global access to it (which only works when there's a single ENI).

This patch handles multiple ENI's and applies the sourcedestcheck across
all interfaces the same way.

Fixes #3234
2016-12-08 11:25:05 -05:00
Ryan Brown 6ae4e50e47 Fix failure when powering on/off EC2 instances by tag only. (#4767)
If you apply `wait=yes` and use `instance_tags` as your filter for
stopping/starting EC2 instances, this stack trace happens:

```
An exception occurred during task execution. The full traceback is:                                                                          │~
Traceback (most recent call last):                                                                                                           │~
  File "/tmp/ryansb/ansible_FwE8VR/ansible_module_ec2.py", line 1540, in <module>                                                            │~
    main()                                                                                                                                   │~
  File "/tmp/ryansb/ansible_FwE8VR/ansible_module_ec2.py", line 1514, in main                                                                │~
    (changed, instance_dict_array, new_instance_ids) = startstop_instances(module, ec2, instance_ids, state, instance_tags)                  │~
  File "/tmp/ryansb/ansible_FwE8VR/ansible_module_ec2.py", line 1343, in startstop_instances                                                 │~
    if len(matched_instances) < len(instance_ids):                                                                                           │~
TypeError: object of type 'NoneType' has no len()                                                                                            │~
                                                                                                                                             │~
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "ec2"}, "module_stderr": "Traceb│~
ack (most recent call last):\n  File \"/tmp/ryansb/ansible_FwE8VR/ansible_module_ec2.py\", line 1540, in <module>\n    main()\n  File \"/tmp/│~
ryansb/ansible_FwE8VR/ansible_module_ec2.py\", line 1514, in main\n    (changed, instance_dict_array, new_instance_ids) = startstop_instances│~
(module, ec2, instance_ids, state, instance_tags)\n  File \"/tmp/ryansb/ansible_FwE8VR/ansible_module_ec2.py\", line 1343, in startstop_insta│~
nces\n    if len(matched_instances) < len(instance_ids):\nTypeError: object of type 'NoneType' has no len()\n", "module_stdout": "", "msg": "│~
MODULE FAILURE", "parsed": false}
```

That's because the `instance_ids` variable is None if not supplied
in the task. That means the instances that result from the instance_tags
query aren't going to be included in the wait loop. To fix this, a list
needs to be kept of instances with matching tags and that list needs to
be added to `instance_ids` before the wait loop.
2016-12-08 11:25:03 -05:00
Abhijit Menon-Sen 841ceb808d Fix spot instance creation by ignoring instance_initiated_shutdown_behavior (#4741)
Before this, all spot instance requests would fail because the code
_always_ called module.fail_json when the parameter was set (which it
always was, because the module parameter's default was set to 'stop').

As the comment said, this parameter doesn't make sense for spot
instances at all, so the error message was also misleading.
2016-12-08 11:25:02 -05:00
Florian Dambrine 2adc325ef6 Fix ec2 module source_dest_check when running on non VPC instances (EC2 Classic) (#3243) 2016-12-08 11:25:02 -05:00
Matt Ferrante d88f5f6808 Properly support tag updates on CloudFormation stack-update actions (#3638) 2016-12-08 11:25:02 -05:00
Kenny Woodson 3cb42fc5dd Fix for validate rule. Ensure rule is a dict. (#4640) 2016-12-08 11:24:59 -05:00
Kenny Woodson f1db594e9f Getting rid of a None type error when no resource tags are defined. (#4638) 2016-12-08 11:24:59 -05:00
Ryan Brown c85d854c84 Remove spurious `changed` state on iam_policy module (#4381)
Due to a mixup of the group/role/user and policy names, policies with
the same name as the group/role/user they are attached to would never be
updated after creation. To fix that, we needed two changes to the logic
of policy comparison:

- Compare the new policy name to *all* matching policies, not just the
  first in lexicographical order
- Compare the new policy name to the matching ones, not to the IAM
  object the policy is attached to
2016-12-08 11:24:55 -05:00
Rick Mendes 503c2b6158 Fixes #3144 (#4305) 2016-12-08 11:24:55 -05:00
Ilja Bauer 729486809e Replaced use of bare variables with full variable syntax (#4149) 2016-12-08 11:24:54 -05:00
Richard Adams b0135fadea Add parameter to `ec2` module to control instance shutdown behavior (stop|terminate) 2016-12-08 11:24:52 -05:00
Shawn Siefkas e9bf046c26 Check mode fixes for ec2_vpc_net module (#2179)
* Check mode fixes for ec2_vpc_net module

Returns VPC object information

Detects state change for VPC, DHCP options, and tags in check mode

* Early exit on VPC creation in check mode
2016-12-08 11:24:47 -05:00
Shawn Siefkas 0b95051039 Fix #2526 (#2527)
Fail on unhandled exception in ec2_asg rather than raise
2016-12-08 11:24:47 -05:00
Shawn Siefkas 66f1f6d537 Check mode fix for ec2_group module (#2184)
The default VPC egress rules was being left in the egress rules for
purging in check mode.  This ensures that the module returns the correct
change state during check mode.
2016-12-08 11:24:47 -05:00
Rick Mendes be33879152 Fixes #4227: just changing messaging 2016-12-08 11:24:46 -05:00
Rick Mendes eae75cf727 Fix #3549, failure to reference `module` in `ec2_eip` module 2016-12-08 11:24:46 -05:00
Lyle Mantooth f57ece661f Remove file extension from policy names (#3805)
Fixes #3804.

Prevents `__file__` from contributing ".", which is an illegal character in ELB policy names.
2016-12-08 11:24:46 -05:00
Rick Mendes 4fad93561a please remove me as maintainer 2016-12-08 11:24:46 -05:00
Rick Mendes d6cc007380 Fixes #4227 2016-12-08 11:24:46 -05:00
Jasmine Hegman f5c3f4dd6b Update docs to indicate ec2_asg state defaults to present (#4046)
* Update docs to indicate ec2_asg state defaults to present

Hopefully fixes Issue #4016

* Forgot to flip required to false
2016-12-08 11:24:46 -05:00
Shaun Brady 7b8d625546 Make ec2_elb_lb respect VPCs when resolving groups
AWS security groups are unique by name only by VPC (Restated, the VPC
and group name form a unique key).

When attaching security groups to an ELB, the ec2_elb_lb module would
erroneously find security groups of the same name in other VPCs thus
causing an error stating as such.

To eliminate the error, we check that we are attaching subnets (implying
that we are in a VPC), grab the vpc_id of the 0th subnet, and filtering
the list of security groups on this VPC.  In other cases, no such filter
is applied (filters=None).
2016-12-08 11:24:46 -05:00
Shaun Brady 3b32b60338 Remove trailing white space 2016-12-08 11:24:46 -05:00
Shaun Brady 04199140c5 Make group_name resolution VPC aware
EC2 Security Group names are unique given a VPC.  When a group_name
value is specified in a rule, if the group_name does not exist in the
provided vpc_id it should create the group as per the documentation.

The groups dictionary uses group_names as keys, so it is possible to
find a group in another VPC with the name that is desired.  This causes
an error as the security group being acted on, and the security group
referenced in the rule are in two different VPCs.

To prevent this issue, we check to see if vpc_id is defined and if so
check that VPCs match, else we treat the group as new.
2016-12-08 11:24:46 -05:00
chrisweaver 531954e2f6 Enforce boolean type for dup_ok
Stop "choices" from being interpreted as strings.
2016-12-08 11:24:45 -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
Michael Baydoun 3818cc2b95 fixes issues where iam_policy incorrected reported changed 2016-12-08 11:24:45 -05:00
Kai Kousa 4a8a052e2e Improve documentation on security_groups-option 2016-12-08 11:24:44 -05:00
Adrian Moisey 28716f565c Add default port for aurora (#4102)
If a port isn't specified, it's looked up. The lookup breaks without
this.

Related: https://github.com/ansible/ansible-modules-core/pull/3414
2016-12-08 11:24:42 -05:00
Ryan Brown d4cec5ccc1 Remove double-assignment of EC2 parameters (#4081)
The `source_dest_check` and `termination_protection` variables are being
assigned twice in ec2.py, likely due to an incorrect merge somewhere
along the line.
2016-12-08 11:24:40 -05:00
Hrishikesh Barua cf9bfc3459 Fix for #16518 - added missing regions 2016-12-08 11:24:40 -05:00
Ryan S. Brown a2e6ac6ca8 IAM group modules need `module` passed
The IAM group modules were not receiving the `module` object, but they
use `module.fail_json()` in their exception handlers. This patch passes
through the module object so the real errors from boto are exposed,
rather than errors about "NoneType has no method `fail_json`".
2016-12-08 11:24:39 -05:00
Javier M. Mellid 49f9404cd2 Add s3_url requirement in doc when rgw support is enabled in s3.py
Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
2016-12-08 11:24:38 -05:00
Javier M. Mellid 6346cad9d0 Add proper version_added for rgw option in s3.py
Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
2016-12-08 11:24:38 -05:00
Javier M. Mellid 0b156aae16 Add Ceph RGW S3 compatibility
Ceph Object Gateway (Ceph RGW) is an object storage interface built on top of
librados to provide applications with a RESTful gateway to Ceph Storage
Clusters:

http://docs.ceph.com/docs/master/radosgw/

This patch adds the required bits to use the RGW S3 RESTful API properly.

Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
2016-12-08 11:24:38 -05:00
Adam Butler 0c7ec1e860 Fixes incorrect key name protocols -> protocol (#3963) 2016-12-08 11:24:38 -05:00
Toshio Kuratomi 53a22ce93a Finish python3 syntax compilation fixing for core repo 2016-12-08 11:24:37 -05:00
Bradley Phipps 17985f9917 added missing colons to documentation (#3913) 2016-12-08 11:24:36 -05:00