Commit Graph

1321 Commits (bc7ff83cd9eb3ed2ce07f28650df438c4ec21ae4)

Author SHA1 Message Date
Gobin Sougrakpam e2de3c9776 [cloud] New module - AWS Direct Connect Gateway (#33890)
* Adding module for AWS Direct Connect Gateway

* Fixes for failing checks

* Fix errors for shippable checks

* Fix pep8 errors

* Fixes from review comments

* Simplify logic and add exception handling for every boto3 call

* Fix undefined variable
2017-12-19 17:22:18 -05:00
Sloane Hertel bf8d695ec3
[ec2_vpc_peer] Remove use of DryRun since the module doesn't support check mode (#34062) 2017-12-19 16:42:26 -05:00
Brian Lamar fcc79de246 Add support for intra-region VPC peering (#34036)
* [ec2_vpc_peer] Add support for intra-region VPC peering
2017-12-19 16:05:14 -05:00
Øyvind Saltvik b385e3d725 Add support for adding CORS to S3 bucket on AWS - fixes #29238 (#22284)
* Add aws_s3_cors module for adding/removing CORS to S3 bucket on AWS

Based on code found here but fixes some of the mentioned issues.

https://github.com/ansible/ansible-modules-extras/pull/1177/files
2017-12-19 14:23:51 -05:00
Prasad Katti ba32827f3b Cleanup route53_zone examples (#34000) 2017-12-18 12:43:15 -05:00
Prasad Katti 2cdbde524b route53_zone: fix the private zone creation example (#33995)
Creating a private hosted zone requires both `vpc_id` as well as `vpc_region`
2017-12-18 12:02:53 -05:00
Prasad Katti 423b5e475e update ec2_vpc_net return values in docs (#33902) 2017-12-18 09:29:29 -05:00
Matthew Staebler 82cd5ffa1d [aws modules] use ec2_url in a few places it was missing (#33954) 2017-12-15 12:06:24 -05:00
Sloane Hertel cae14e16ac Port ec2_vpc_net to boto3 and add support to expand existing VPCs - fixes #31216 (#33105)
* Port ec2_vpc_net to boto3 and add support to expand existing VPCs

* Add s-hertel as an author for ec2_vpc_net

* Update ec2_vpc_net test for new error triggered by lack of credentials

Fix backwards compatibility

Document new return value

* Fix pep8 and return documentation
2017-12-15 09:41:03 +10:00
Will Thames ddc3465408 [cloud] Remove repeated error handling and region checking, both now in boto3_conn (#32774)
* Remove boto usage from boto3 modules

* Remove region checking

boto3_conn now takes care of region checking and handles NoRegionError
exceptions with a standard message

boto3_conn also takes care of other connection exceptions too.

* Document boto3 as a requirement for ec2_eni_facts
2017-12-14 16:16:59 -05:00
Mamad Purbo c52964a6f4 [cloud] support encryption on create S3 folder (#33854) 2017-12-14 16:10:42 -05:00
Stefan Horning c421878523 [cloud] Return id of ENI in addition to network_interface_id for ec2_eni_facts (#33814)
* Return id of ENI in addition to network_interface_id. To be compatible to ec2_eni.

* Added documentation for the return values of the ec2_eni_facts module

* Fix typo in docs for ec2_eni_facts
2017-12-14 15:02:06 -05:00
Prasad Katti 6995985a52 Pass in '**results' to exit_json only if results is a dict (#33910) 2017-12-14 10:59:56 -05:00
Stefan Horning e55efc547c [cloud] Bring return parameters for name/arn and subnet ID back to ec2_asg module (#33775)
* Readded vital return parameters to the ec2_asg that have been spared for no obvious reason

* Fix typo in ec2_asg docs

* Fixing another typo in ec2_asg docs.
2017-12-13 10:45:34 -05:00
Ryan S. Brown bd769bf79a Add iam_role_facts to changelog 2017-12-12 12:21:20 -05:00
Will Thames c27ded6bbc [cloud] New iam_role_facts module (#32874)
* Add iam_role_facts module

Provide information about IAM roles

* Improve path prefix handling

Add preceding or trailing `/` if not already present
2017-12-12 12:19:53 -05:00
Sloane Hertel 5e24f5c701 [cloud] Ec2 module warning when IP assignment is changed on existing instances (#33783) 2017-12-11 15:21:56 -05:00
Will Thames 3283f46ffa Create common waf module for use by future waf modules (#33003)
Move waf common code into waf module_utils.
This will be used by future waf modules
2017-12-08 15:50:26 -05:00
mikedlr a95894dfcb ec2_vpc_route_table - unmask exceptions during route create/delete (#32256) 2017-12-08 15:48:09 -05:00
Justin Menga fa313c58c0 [cloud] Delete stack using CloudFormation role ARN if available 2017-12-08 15:45:27 -05:00
Sloane Hertel cc802624a6 [cloud] document return values for ec2_lc (#32592) 2017-12-08 15:41:25 -05:00
Matt Doller bcb19b9d3a [cloud] Enable redshift enhanced vpc routing, dc2.8xlarge type (#33674)
- Adds Enhanced VPC Routing as a configurable option when creating a
  new cluster.  Defaults to 'false'
- Adds the new dc2.8xlarge node type
2017-12-08 15:35:53 -05:00
Prasad Katti 5d579e1e66 [cloud] Port ec2_key module to boto3 (#33075)
* port ec2_key to boto3

* update tests for ec2_key
2017-12-08 15:34:46 -05:00
Prasad Katti fb0343cd12 Remove default value for 'value' option in route53 module (#32297)
* [route53] Remove default value for 'value' option. Fixes #32296.

* assign value_in the default value after the required_if check
2017-12-08 14:15:41 +10:00
John R Barker 18529a275b Bulk pep8 fixes - hand crafted (#33690)
* Bulk pep8 fixes - hand crafted

Fix by hand the remaining issues that autopep8 couldn't

* Next batch of hand crafted pep8 fixes

* Ignore W503

https://github.com/PyCQA/pycodestyle/pull/499

* Revert more of W503
2017-12-07 19:29:21 -08:00
John Barker 10cd2cd1b7 Manually fix issues that autopep8 introduced
* iam.py 161 -> 160 chars
* lamba -> single line function -> multiline function

Avoid redefining key

iam line length

iam.py now clean
2017-12-07 20:25:55 +00:00
John Barker c57a7f05e1 Bulk autopep8 (modules)
As agreed in 2017-12-07 Core meeting bulk fix pep8 issues

Generated using:
autopep8 1.3.3 (pycodestyle: 2.3.1)
autopep8 -r  --max-line-length 160 --in-place --ignore E305,E402,E722,E741 lib/ansible/modules

Manually fix issues that autopep8 has introduced
2017-12-07 20:25:55 +00:00
Will Thames d13d7e9404 Fail when attempting to modify unmodifiable target group parameters (#33246)
* Fail when attempting to modify unmodifiable target group parameters

As you can't modify Port, Protocol or VPC id for a target group, fail
when this happens rather than pretending to do it.

One could argue that the target group could be recreated rather than
failing, but this has massive knock on implications to other resources
that depend on the TG (all ASGs would need to be updated, the ELB
listener would need to be updated, etc)

* Use `.get()` instead of direct dictionary access
2017-12-07 15:17:45 -05:00
Brad Macpherson a12cbc3dde [cloud] `ec2_placement_group` module to create/delete EC2 Placement Groups. (#33139)
* Added modules to create, delete, and describe EC2 Placement Groups.

* Remove unnecessary print statement

* Update to use boto3.

* De-linting

* Remove facts from this PR

* Update to newer method of handling Boto3 connections and exceptions.

* Futzing around with imports and HAS_BOTO3

* Fix up exception imports.

* Remove redundant default.

* Handle DryRunOperation errors appropriately.

* Remove redundant BOTO3 check.

* Use shorter licence declaration.

* Remove redundant HAS_BOTO3 import.

* Add AWSRetry decorators to API calls.

* Add new 'strategy' parameter to allow for cluster and spread PGs.
2017-12-07 14:44:09 -05:00
s-hertel 1057ec3dc4 Revert "add support for AWS NLB - fixes #30701 (#30907)"
This reverts commit 78858a5b12.
2017-12-07 10:28:40 -05:00
Deepakkothandan 78858a5b12 add support for AWS NLB - fixes #30701 (#30907)
* add support for NLB

* added version for parameter type
2017-12-07 03:06:50 -05:00
Sloane Hertel 4071cd7a95 Remove check for HAS_BOTO3 since AnsibleAWSModule checks it (#33649) 2017-12-07 08:08:10 +10:00
Brad Macpherson dd041e6f72 Added module to describe EC2 Placement Groups. (#33228)
* Added module to describe EC2 Placement Groups.

* Update to newer way of handling Boto3 connections and exceptions.

* Futzing around with imports and HAS_BOTO3

* Fix up exception imports.

* Fix license block

* Correct task indenting in doc

* Added list-filtering example to docs
2017-12-06 15:36:25 -05:00
Christopher Bradley 71510aa67a iam_role - Add option to supress the creation of instance profiles (fixes #26023) (#32527)
* Defaults to creating the instance profile to preserve current behaviour
2017-12-06 12:46:35 +10:00
Kaz Cheng 60b5c6890a [cloud] Add template_body parameter to cloudformation module to allow lookups (#33485) 2017-12-05 13:42:05 -05:00
Abhijeet Kasurde 807bebaa1f
Add missing msg in fail_json (#33543)
This fix adds msg keyword in fail_json in aws_acm_facts,
cs_host, junos_package module.

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-12-04 21:57:58 +05:30
Ted Timmons 61cc8b2356 [cloud] Skip StackPolicy when operating on ChangeSets in CloudFormation module (#33401)
Really, the Policy only works on 'create' and 'update'.

(rm my outdated comments too)
2017-11-30 09:08:30 -05:00
Prasad Katti 1cc86167dd fix the return value of route53_zone (#33403)
All the values currently documented as return values are returned inside a 'result' key.
So if you registered the output of the task as 'output', then you would need to do 'output.result.zone_id' instead of 'output.zone_id'.
This commit fixes that so that you can do 'output.zone_id'.
2017-11-30 08:59:43 -05:00
Daniel Temme cdf660ba1b make `instance_monitoring: false` take effect (#33233)
* make `instance_monitoring: false` take effect

Fixes #33200
2017-11-30 10:12:43 +10:00
Brad Chamberlain b10859c192 Adds missing url, public_ip_address, and port keys to cluster dict #33279 (#33288)
Adds missing keys to _collect_facts function
2017-11-28 11:57:49 +10:00
Kaz Cheng 54466fa809 Update facts module to present ansible_friendly tags dictionary on returned nat gateways (#33294) 2017-11-27 16:51:38 +10:00
Brad Chamberlain 8bc74443ad Add option for specifying dc2.large as node type (#33281)
* fixes #33280

adds option for dc2.large node type

* shortens node_type choices line
2017-11-27 09:42:42 +10:00
Simon Fullick 1e46e65103 Fixed typo in aws_api_gateway.py documentation (#33247)
Gateway spelt wrong.
2017-11-24 13:31:38 +10:00
Sloane Hertel e822271d1a Allow delivery delay to be 0 (#33241) 2017-11-24 11:35:58 +10:00
Matt Clay 9735a70059 Fix invalid string escape sequences. 2017-11-21 20:59:08 -08:00
Marc-Aurèle Brothier bd5dc01d65 AWS S3: fix method call for fakes3 S3 backend (#33085)
* AWS S3: fix method call for fakes3 S3 backend

Fixes #33083

Signed-off-by: Marc-Aurèle Brothier <m@brothier.org>

* Auto append port based on proto

Signed-off-by: Marc-Aurèle Brothier <m@brothier.org>
2017-11-21 15:51:16 -05:00
Daniel Shepherd cfbe9c8aee [cloud] Add IPv6 support for ec2_vpc_subnet module(#30444)
* Add integration test suite for ec2_vpc_subnet

* wrap boto3 connection in try/except

update module documentation and add RETURN docs

add IPv6 support to VPC subnet module

rename ipv6cidr to ipv6_cidr, use required_if for parameter testing, update some failure messages to be more descriptive

DryRun mode was removed from this function a while ago but exception handling was still checking for it, removed

add wait and timeout for subnet creation process

fixup the ipv6 cidr disassociation logic a bit per review

update RETURN values per review

added module parameter check

removed DryRun parameter from boto3 call since it would always be false here

fix subnet wait loop

add a purge_tags parameter, fix the ensure_tags function, update to use compare_aws_tags func

fix tags type error per review

remove **kwargs use in create_subnet function per review

* rebased on #31870, fixed merge conflicts, and updated error messages

* fixes to pass tests

* add test for failure on invalid ipv6 block and update tags test for purge_tags=true function

* fix pylint issue

* fix exception handling error when run with python3

* add ipv6 tests and fix module code

* Add permissions to hacking/aws_config/testing_policies/ec2-policy.json for adding IPv6 cidr blocks to VPC and subnets

* fix type in tests and update assert conditional to check entire returned value

* add AWS_SESSION_TOKEN into environment for aws cli commands to work in CI

* remove key and value options from call to boto3_tag_list_to_ansible_dict

* remove wait loop and use boto3 EC2 waiter

* remove unused register: result vars

* revert az argument default value to original setting default=None
2017-11-16 14:58:12 -05:00
Will Thames 46c4f6311a [cloud] Add retries/backoff to ec2_vpc_subnet module (#31870)
* Allow backoff for describe_subnets

Improve exception handling to latest standards

* Add integration test suite for ec2_vpc_subnet

* Add test for creating subnet without AZ

Fix bug identified by test

Fixes #31905
2017-11-16 13:09:42 -05:00
Will Thames 7556ac91e5 [cloud] Allow ec2_lc module to use volume_type for block devices (#32421)
* Allow ec2_lc module to use volume_type for block devices

Makes ec2_lc consistent with ec2, ec2_ami, ec2_vol etc.

* Add deprecation message for device_type
2017-11-16 10:28:41 -05:00
Will Thames 921cc6d650 [cloud] New module elasticache_facts (#30492)
New module for obtaining facts from elasticache clusters

Fixes #30373

* Removed unnecessary boto3 and exception checking

* AnsibleAWSModule checks for lack of boto3
* boto3_conn handles error checking of AWS connection
2017-11-16 10:20:56 -05:00
Will Thames 60b29cf57d [cloud] Follow up on FIXMEs in ec2_ami & ec2_ami tests (#32337)
* Several tests were marked as FIXME and should have been fixed with
the boto3 move.

* Improved tags output. Add purge_tags option (default: no)

* Allow description and tags update

* Return launch_permissions

* Allow empty launch permissions for image creation

* Empty launch permissions should work the same way for image
creation as no launch permissions

* Cope with ephemeral devices in AMI block device mapping

* Ephemeral devices can appear in AMI block devices, and this information should be returned

* Fix notation for creating sets from comprehensions
2017-11-16 10:14:20 -05:00
Sloane Hertel cabd7f078b Fix ec2_snapshot_facts traceback if a snapshot has been deleted (#32217) 2017-11-15 10:56:49 -05:00
Prasad Katti d5e247243f ec2_key - clean up examples (#32714)
* ec2_key - clean up examples

* ec2_key: remove unnecessary example
2017-11-15 22:51:46 +10:00
Prasad Katti e23928cb41 ec2_key: document return values (#32813) 2017-11-14 14:39:54 +10:00
Matt Martz 99d4f5bab4 Remove uses of assert in production code (#32079)
* Remove uses of assert in production code

* Fix assertion

* Add code smell test for assertions, currently limited to lib/ansible

* Fix assertion

* Add docs for no-assert

* Remove new assert from enos

* Fix assert in module_utils.connection
2017-11-13 11:51:18 -05:00
Prasad Katti 306c3508b2 Deprecate ec2_ami_find (#32501) 2017-11-09 11:38:05 +10:00
Sloane Hertel 134b9f50c3 Do not set a default value for description in the iam_role module. (#32629) 2017-11-07 20:14:13 -05:00
Sloane Hertel 680d06d1ab [cloud] remove ec2_asg usage of Python base logging - fixes #32476 (#32508)
* replace logging with module.debug in ec2_asg

* Make module global in ec2_asg.

* Fix the debug messages

* pep8
2017-11-07 16:46:49 -05:00
Will Thames c93ddf5473 Move profile and region checking to module_utils.ec2 (#31921)
* Move profile and region checking to module_utils.ec2

Remove ProfileNotFound checking from individual modules

There are plenty of `if not region:` checks that could be removed,
once more thorough testing of this change has occured

The ec2_asg, iam_managed_policy and ec2_vpc_subnet_facts modules
would also benefit from this change but as they do not have tests
and are marked stableinterface, they do not get this change.
2017-11-07 13:56:17 -05:00
Rob 8b3ca4c537 Fix returning module parameters for iam_role (#30669)
* remove iam_role= from module.exit_json() to match return docs.

* Add back old iam_role= for backwards compat
2017-11-06 16:34:51 -05:00
Dan O'Brien a026d64c08 [cloud] Option to add description to iam_role (#32582)
* Option to add description to role

* set default to remove conditional
2017-11-06 15:12:12 -05:00
Will Thames 6b9faaf90e [cloud][docs] Improve exception handling guidelines for AWS modules(#30745)
Better document what exceptions to handle, when and why.
Describe how to handle client auth exceptions, and that
AWSRetry retries on `XYZNotFound` exceptions.
2017-11-06 15:05:32 -05:00
Sloane Hertel 9cfd0a58b0
Use region derived from get_aws_connection_info() in dynamodb_table to fix tagging bug (#32557) 2017-11-03 16:15:53 -04:00
Bryan Weber 6bc3f98eee Adding missing arguments: 'values' and adding default value for 'tags' argument in AWS Data Pipeline (#32517) 2017-11-03 10:05:23 -04:00
patlachance 45e35be4c1 iam.py: return iam.role dict when creating roles (#28964) 2017-11-03 09:55:27 -04:00
Jonathan Nuñez 67b1d0f274 CloudFormation module: get StackEvents when ClientRequestToken is not used (#32434)
* When getting the stack events we need to consider the case where we don't have ClientRequestToken fixes #32396

* Adding tests for the case when the ClientRequestToken is not present in the stack creation.

* Renaming the stack that the test for Client Request Token requires so it won't cause collisions with the basic test.
2017-11-02 11:41:49 -04:00
Prasad Katti 86141c3e03 [ec2_ami_facts] new boto3-based module as a replacement for ec2_ami_find (#32252)
* [ec2_ami_facts] new boto3-based module as a replacement for ec2_ami_find

- new boto3-based module to gather facts about ec2 images
- intended to replace ec2_ami_find which uses boto
- an ami find task (using new module) added to the ec2_ami integration test

* [ec2_ami_facts] Use AnsibleAWSModule. Catch BotoCoreError.

* add ec2_ami_facts alias to tests

* [ec2_ami_facts] return ami launch permissions as well
2017-11-02 08:56:58 +10:00
Will Thames 0405edcac8 Improve efs_facts (#31817)
Avoid an infinite loop when no EFS resources are present

Use standard ansible approaches to pagination, retries,
exception handling, tag processing
2017-11-01 10:05:14 -04:00
Toshio Kuratomi 42655f737a
Clarify the release and maintenance cycle (#32402)
* Clarify the release and maintenance cycle
* Namespace refs a little
* Fix an unrelated problem with plugin return docs to fix docs build
2017-10-31 22:08:14 -07:00
David Kretch 312155a641 Add ec2_vpc_route_table example, fix typo (#32415)
* Add an example in the `ec2_vpc_route_table` module of deleting a
route table.
* Fix a typo in the AWS development guidelines, from `fail_json.aws()` to
`fail_json_aws()`.
2017-11-01 12:34:34 +10:00
Will Thames 710d1f074e Allow health_check_port to be a string (#32228)
Setting health_check_port to 'traffic-port' allows the health
check to use the target's traffic port.
2017-10-31 10:27:12 -04:00
Prasad Katti a2e4196c11 [aws] Document boto3 requirement (#32329) 2017-10-31 09:49:30 +10:00
Joseph S. Tate 77061f5521 ec2_lc - cast volume_size for an EBS volume to an int (#32291) 2017-10-30 14:41:40 -04:00
Prasad Katti f78f93e646 Added some more info about the aws_s3 module's overwrite option (#31819) 2017-10-30 11:22:05 -04:00
Willem van Ketwich 310eb833a4 EC2 AMI boto3 modifications (#28506)
Migrate ec2_ami module to boto3
2017-10-30 10:20:27 +10:00
Will Thames 08d81b970d
Amazon kms_facts module (#26733)
* Amazon kms_facts module

Facts module for Amazon's Key Management Service

* kms_facts provide aliases

Return aliases for keys
Provide `alias` as a filter
Cope when tags can't be listed
Ensure everything is properly snake cased

* Rename kms_facts to aws_kms_facts

There may be conflicting KMS modules for other providers otherwise.

* Fix documentation, add aliases cache

Aliases are called many times, so add a cache

* Reduce amount of info on deleted keys

Getting info on a key is costly (2s) per key, so reduce
info on deleted keys.

* Add policy information to facts

* aws_kms_facts version update

Fix ridiculously long RETURN line

* Remove dangerous-default-value from aws_kms_facts
2017-10-30 09:10:11 +10:00
Sloane Hertel 27b2c3bd25 lambda: fix undefined variable and initially define account_id as None (#32249) 2017-10-27 09:40:01 -04:00
Prasad Katti 033a6a1560 [ec2_ami_copy] Add return documentation (#32012) 2017-10-27 09:05:50 -04:00
Prasad Katti d088b7ab93 Route53 return values (#31962) 2017-10-27 13:27:01 +10:00
Prasad Katti a199d9d91e [ec2_vpc_nacl_id] Add nacl_id alias for nacl_ids option (#32223) 2017-10-27 13:21:53 +10:00
Sloane Hertel c714da7fac cloudformation_facts: don't fail on nonexistent stack - fixes #23419 (#23758)
* Allow cloudformation_facts to exit gracefully if stack does not exist

make cloudformation_facts pep8

remove from legacy files

remove unnecessary if statement

Allow cloudformation_facts to exit gracefully if stack does not exist version 2

fix documentation errors

add an example for a hard-fail if a stack doesn't exist

* Remove extra whitespace

* Use the .response attribute since .message isn't present with Python 3

* Don't fail if no stack name is provided and no stacks exist.
2017-10-26 15:18:31 -04:00
Ted Timmons 9322486ac3 Exclude stack policy when running in check mode. (#31940)
Fixes #31931
2017-10-26 12:32:48 -04:00
Marc Mercer 17a008654a Cast target port to an int in elb_target_group. Fixes #32098 (#32202) 2017-10-26 12:09:49 -04:00
Ted Timmons 8ab4412684 aws_kms: handle updated policy format+cleanup (#30728)
* aws_kms: handle updated policy format+cleanup

- create slightly updated policy in that handles lists instead of a single string; the previous version's policy was being rejected if the key was new enough to have the updated base policy.
- removed `dry_run` conditionals, not committing the policy anyhow.
- return the policy in the return data. Leaving undocumented for now.
- update exception handling: don't rethrow in `do_grant`, don't pass anything to `format_exc`.

* whitespace/indent fail

* fix list-plus-brackets

* str and list fixes for ryansb

* port changes from #31667 over, better listification
2017-10-26 09:13:29 -04:00
Prasad Katti 13807e7ee8 [cloud][docs] Add a cloudformation_facts example (#31964) 2017-10-26 08:29:10 -04:00
Ryan Brown 838c1ba6c7 [cloud] Bugfix for aws_s3 empty directory creation (#32169)
* [cloud] Bugfix for aws_s3 empty directory creation

* Update integration tests
2017-10-26 08:17:13 -04:00
Prasad Katti 0b357ba223 [ec2] Move note about state=restarted (#31961) 2017-10-26 21:37:33 +10:00
Prasad Katti 91b5a9b868 [ec2-ami] make examples less verbose; fix default values in docs (#32008)
* make ec2-ami examples less verbose

* Fix default values in docs to be the actual default values

Fix default values for `architecture`, `virtualization_type` and
`wait_timeout` in docs to be the actual default values.

* Added note about examples not containing auth details
2017-10-26 21:33:39 +10:00
Prasad Katti 3e0f67786f [ec2_vpc_subnet_facts] Add subnet_id alias for subnet_ids options (#32023) 2017-10-26 21:32:46 +10:00
Prasad Katti 61554143d0 Document return values of ec2_eip (#32018)
- added RETURN value for ec2_eip
- removed note about what is returned
- removed a duplicate example
2017-10-26 21:31:57 +10:00
dgilbert82 78347e12a3 No need to set a default tenancy and it prevents the creation of spot lcs (#31270)
The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_82dk2ynr/ansible_module_ec2_lc.py", line 317, in create_launch_config
    connection.create_launch_configuration(**launch_config)
  File "/usr/lib/python3.6/site-packages/botocore/client.py", line 312, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/lib/python3.6/site-packages/botocore/client.py", line 601, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationError) when calling the CreateLaunchConfiguration operation: Placement tenancy is not supported for spot instances.

fatal: [localhost]: FAILED! => {
    "changed": false, 
    "error": {
        "code": "ValidationError", 
        "message": "Placement tenancy is not supported for spot instances.", 
        "type": "Sender"
    }, 
    "failed": true,
2017-10-26 05:43:38 -04:00
awkspace 87989b5c63 Fix ec2_lc failing to create multi-volume configurations (#32163) 2017-10-26 15:21:47 +10:00
Daniel Shepherd 8aeb239f73 [cloud] Update ec2_vpc_net_facts to use Boto3 (#25375)
* update ec2_vpc_net_facts module to boto3

updated with RETURN values and other requested changes

removed errant extra blank line

another errant extra line removed...auto-linter not working apparently

updates per review

fix typo in RETURN docs

* fix trailing whitespace issue
2017-10-25 13:26:16 -04:00
Sloane Hertel 1dd55acbc2 ec2_group: add rule description support - fixes #29040 (#30273)
* ec2_group: add support for rule descriptions.

* Document rule description feature and add an example using it.

* Fix removing rule descriptions.

* Add integration tests to verify adding/modifying/removing rule descriptions works as expected.

* Add permissions to hacking/aws_config/testing_policies/ec2-policy.json for updating ingress and egress rule descriptions.

* ec2_group: add backwards compatibility with older versions of botocore for rule descriptions.

* Add compatibility with older version of botocore for ec2_group integration tests.

* ec2_group: move HAS_RULE_DESCRIPTION to be checked first.

* Make requested change

* Pass around a variable instead of client

* Make sure has_rule_description defaults to None

* Fail if rule_desc is in any ingress/egress rules and the the botocore version < 1.7.2

* Remove unnecessary variable

* Fix indentation for changed=True when updating rule descriptions.

* minor refactor to remove duplicate code

* add missing parameter

* Fix pep8

* Update test policy.
2017-10-24 21:18:56 -04:00
Prasad Katti 8a9a9b84dd [ec2-ami] Use required_if with state parameter (#32009)
* [ec2-ami] Use required_if with state parameter

* Update failure msg on delete ami with no image_id task in integration test
2017-10-24 16:01:33 -04:00
Ryan Brown 11c225e039 Start using ClientRequestTokens in event lists (#31997)
* Start using ClientRequestTokens in event lists

* Include request token in all reqs that support it (basically all but check mode/changeset)

* Update placebo recordings

* Add comments for CRQ popping
2017-10-23 14:39:13 -04:00
Ted Timmons d2e01477eb add root_device_type filter. (#31911)
* add root_device_type filter.

This module is due for a refactor, but I'm piling on.

* add version added
2017-10-19 14:59:15 -04:00
Sloane Hertel 73abce83a9 iam_managed_policy: use python 3 compatible policy comparison - fixes #31474 (#31535)
* Move compare_policies and hashable_policy functions into module_utils/ec2

* Use compare_policies which is compatible with python 2 and 3.

* rename function to indicate internal use

* s3_bucket: don't set changed to false if it has had the chance to be changed to true already.
2017-10-19 08:55:45 +10:00
Marek Nogacki b9223cdc89 ec2_group: do not fail on description mismatch (#31704) (#31734)
* ec2_group: do not fail on description mismatch (#31704)

* ec2_group: do not fail on description mismatch (#31704) - fix test case
2017-10-18 09:21:55 -04:00
Sloane Hertel 1b63885fc5 [cloud] Check instance public-IP property before transforming to dict (#31849) 2017-10-18 09:17:06 -04:00
Johannes Weißl 269672faf1 [cloud] Add CAA record type to route53 (#29178)
The CAA record type is supported in Amazon Route 53 since Aug 21, 2017. Tested manually.

- https://aws.amazon.com/about-aws/whats-new/2017/08/amazon-route-53-now-supports-caa-records/
- http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html#CAAFormat
- https://tools.ietf.org/html/rfc6844
2017-10-18 12:48:04 +10:00
Michael Fenn eab9ca9a00 ec2_vpc_endpoint: make policy_path usable (#31801)
The current code flow precludes the use of the policy_path module
parameter that's documented.  It's actually called policy_file in the
code.

What's worse is that the policy_file branch actually tries to open the
file named by the policy parameter, even though policy and policy_file
are marked as mutually-exclusive.

This change fixes the logic bug in policy_file and updates the
documentation to reference policy_file.  The old parameter policy_path
is provided as an alias
2017-10-17 14:34:29 -04:00
adambanker ee4e1be7cd Fixed redshift_subnet_group typo (#31836) 2017-10-17 09:16:59 -04:00
Prasad Katti b9e15d0df1 Support 'termination protection' for cloudformation stacks (#31675)
* Support 'termination protection' for cloudformation stacks

- Pass in the stack_name and desired termination protection state to update_termination_protection

* Fix for failing cloudformation unit test

* Check if cfn has update_termination_protection attr

* Use hasattr to test if cfn supports update_termination_protection

* termination_protection shouldn't prevent update_stack call for existing stacks
2017-10-17 08:34:45 -04:00
Takuya Sato a8bc6f69d9 skip check environment parameter if has no containers. (#31083)
* skip check environment parameter if has no containers.

* optimize code
2017-10-17 08:30:32 -04:00
Javier Cortejoso 844e58aedb Define new_target_group before. Fixes #31378 (#31379) 2017-10-16 14:33:47 -04:00
John Kerkstra 1e85facf36 add note to ec2_vpc_route_table that purge_subnets option is contingent subnets option (#31749) 2017-10-16 13:35:59 -04:00
Will Thames 03abce2d39 Add pagination for IAM group API calls (#31554)
get_group and list_attached_policies_for_groups can be paginated
so add pagination handling.

Fixes #31545
2017-10-16 09:42:43 -04:00
Prasad Katti 30fd1870f3 [docs] Clean up the cloudformation examples (#31770)
- added `role_arn` to the "role example" example
- removed the irrelevant parameters to the "role example" example
- updated comment on one of the examples
- removed the last example as it was a duplicate of "role example" example
- some other minor changes
2017-10-16 08:53:10 -04:00
Sloane Hertel 53e476ad4e [cloud] Only enforce state (running/stopped/etc) in EC2 "exact_count" when state is specified (#31648)
fix issue in ec2 module where exact count would create new instances if the instane state is stopped or terminated
2017-10-13 14:11:07 -04:00
Sloane Hertel 90b6178e61 [cloud] Don't try to deregister an instance that isn't in the load balancer (#31660) 2017-10-13 13:59:24 -04:00
Sloane Hertel 34e2019251 [cloud] Require src parameter when aws_s3 is used with mode 'put' (#31657) 2017-10-13 13:57:40 -04:00
Sloane Hertel e26955fc9a [cloud] Document alias for aws_s3 'overwrite' option. (#31638) 2017-10-13 13:55:24 -04:00
Kenny Gillen 1234a79349 Fix gender pronouns and the odd typo (#31709) 2017-10-13 13:52:38 -04:00
Ryan Brown e0c2b6bbb4 Rename ssm_parameter_store module and ssm lookup to be prefixed with aws (#31662) 2017-10-13 13:52:10 +10:00
Samprita Hegde 6d16739926 [cloud] Support changeset_name parameter on CloudFormation stack create (#31436) 2017-10-12 15:44:06 -04:00
Ted Timmons bc1e3d22c2 [cloud][docs] Document default/required 'state' in CloudFormation module (#31642)
* fix documentation to match default/required status of 'state'

* add 'choices'
2017-10-12 15:31:42 -04:00
Pilou 840a57a4ed s3_sync: fix broken import (#31460) 2017-10-12 20:48:05 +02:00
Prasad Katti 03ec3cd572 [aws_s3] different fail msg depending on whether version is specified (#31598) 2017-10-12 12:12:55 +10:00
Sloane Hertel 89d09bae21 [cloud] Fix ec2_group when security group lacks a VPC (#31526) 2017-10-10 13:15:11 -04:00
Sloane Hertel 6fee6f71f7 aws_s3: fix upload_file's ExtraArgs - fixes #31232 (#31487)
* Module option metadata are extra arguments rather than S3 object metadata: update ExtraArgs variable.

* Remove hyphens from ExtraArgs to maintain backwards compatibility

* Map lowercase extra args to CamelCase

* Maintain backwards compatibility by guessing at content type rather than always defaulting to binary/octet-stream.

* Fix ExtraArgs for non-hyphenated options

* Simplify logic
2017-10-10 13:12:58 -04:00
arnonki a48532de5f Use default values for object returned from aws to prevent TypeError (#31455)
* Use default values for object returned from aws to prevent TypeError
NoneType exception fixes #31454
2017-10-10 10:08:06 -04:00
Toshio Kuratomi 75eed6a51a Port arg specs from type='str' to type='path' 2017-10-09 21:15:56 -07:00
Prasad Katti 0c64bbcd6f Document return values for aws_s3 (#31158)
* Document return values for aws_s3
2017-10-10 09:26:42 +10:00
Bill Wang 91a36faddb New module: Add module for Amazon Systems Manager Parameter Store (cloud/amazon/ssm_parameter_store) (#23460)
- new module: ssm_parameter_store
- new lookup: ssm

* lookup module ssm - adjust error message

* Pacify pylint erroring on botocore not found

* adjust to version 2.5
2017-10-10 09:04:40 +10:00
Rob 1353aae456 [cloud] Fix #31271 - cast all tag values as strings (#31272)
* Fix #31271 - cast all tag values as strings

* Replace `str` with `to_native`
2017-10-09 17:10:54 -04:00
Ryan Fitzpatrick 2ba5998c94 [cloud] Ensure absence of public_dns_name doesn't halt ec2 module (#31476) 2017-10-09 17:04:25 -04:00
Toshio Kuratomi 9c81257ce3 Remove wildcard imports from amazon modules (#31451)
* Remove wildcard imports from amazon modules
* Remove files from legacy pep8 that now pass
2017-10-09 07:38:41 -07:00
Pilou 870974e0be ec2_vpc_route_table: fix broken import (#31459) 2017-10-09 20:20:31 +10:00
Pilou 0be8ac6797 ec2_vpc_igw: fix broken import (#31458) 2017-10-09 15:36:12 +10:00
Kaz Cheng 044dd699c2 Addition of TCP protocol to ELB target group (#31228)
* Addition of TCP protocol to ELB target group as target groups support HTTP/S and TCP now

* Fixup stickiness type so that it checks if the current_tg has the stickiness_type key in the dict, as TCP ones do not
2017-10-06 00:27:30 -04:00
Jean-Frédéric d332367018 Allow an Elastic IP to be re-associated in ec2_eip (#27389)
Trying to associate an already-associated ElasticIP was failing.

This is however supported by the `boto` method that is used
under the hood, `associate_address`:

To quote `boto` documentation:
```
This option to allow an Elastic IP address that is already
associated with another networkinterface or instance to be
re-associated with the specified instance or interface.
```

This defaults to False, both per backwards-compatibility
and to mirror the boto default value.

Fixes #27385
2017-10-06 09:51:36 +10:00
Sloane Hertel efe3c94b1b [cloud] ec2.py: warn that removing a public ipv4 address is not permitted - fixes #30679 (#30952)
* Add a warning to ec2.py if assign_public_ip is different from the matching instance(s) since it isn't a modifiable attribute.

* remove comments
2017-10-05 15:32:52 -04:00
Bradford Dabbs f219d6b96d [cloud] EC2_ASG Set desired capacity to min_size if no instances exist (#30987)
* Set desired capacity to min_size if no instances exist

* Improve readability of if/then clause

* Only update null desired_capacity to min_size on initial create

Any future updates to the ASG will be able to reference the existing
capacity.
2017-10-05 14:56:46 -04:00
Rob 2804a2663a [cloud] Only get rules if listener in elb_application_lb been identified in compare_rules (#30604)
* Only get rules if listener has been identified in compare_rules

* Always cast the listener port to an integer.
2017-10-02 16:57:41 -04:00
Dave Grochowski a7229df469 [cloud] Fix handling of `encrypt` option in aws_s3 module (#30822) 2017-10-02 13:18:47 -04:00
Prasad Katti 3b1376ad09 [cloud] add boto3 requirement to `cloudformation` module docs (#31135) 2017-10-02 09:25:12 -04:00
jonjozwiak 74f950936a Fix ec2_win_password to allow blank key_passphrase (#28791) 2017-09-28 21:21:59 -04:00
Will Thames 371c6dba8b Fix aws_s3 connection exception handling (#30955)
`ProfileNotFound` does not have a `response` attribute, and
`NoCredentialsError` does not occur at connection creation time.
2017-09-28 16:20:10 -04:00
Will Thames c5971047a4 [cloud] Support reuse of unallocated Elastic IP's. (#30322)
* Return correct changed status when EIP is reused

When reusing an existing EIP, the changed status
should be False, not True.

* If public_ip is given and it exists, return it

Ensure EIP allocation returns existing public_ip correctly
2017-09-28 10:29:51 -04:00
Gustavo Maia 4f67e855ed Added ecs_taskdefinition_facts module (#30752)
* Added ecs_taskdefinition_facts module

* Expanding documentation
Now includes all possible return values

* Fixed boto dependency

* Converting results to snake case.

* Remove EcsTaskManager class, move to main()
Remove unnecessary `except` block

* Change botocore import method
Also make Profile exception message less redundant

* Changing case conversion of the results
Now converts only the root level keys
Commented is a version that would not convert only container_definitions
2017-09-28 08:48:57 -04:00
Will Thames 5900fee67a Fix ec2_snapshot_facts for python3
Avoid the following seen when running ec2_ami tests on python3,
presumably because the return type of `map` is different between
python2 and python3.

```
Traceback (most recent call last):
  File "/tmp/ansible_e44v27uj/ansible_module_ec2_snapshot_facts.py", line 242, in <module>
    main()
  File "/tmp/ansible_e44v27uj/ansible_module_ec2_snapshot_facts.py", line 238, in main
    list_ec2_snapshots(connection, module)
  File "/tmp/ansible_e44v27uj/ansible_module_ec2_snapshot_facts.py", line 193, in list_ec2_snapshots
    snapshots = connection.describe_snapshots(SnapshotIds=snapshot_ids, OwnerIds=owner_ids, RestorableByUserIds=restorable_by_user_ids, Filters=filters)
  File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 312, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 575, in _make_api_call
    api_params, operation_model, context=request_context)
  File "/usr/local/lib/python3.5/dist-packages/botocore/client.py", line 630, in _convert_to_request_dict
    api_params, operation_model)
  File "/usr/local/lib/python3.5/dist-packages/botocore/validate.py", line 291, in serialize_to_request
    raise ParamValidationError(report=report.generate_report())
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid type for parameter OwnerIds, value: <map object at 0x7ff577511048>, type: <class 'map'>, valid types: <class 'list'>, <class 'tuple'>
```

https://github.com/ansible/ansible/pull/30435#issuecomment-330750498
2017-09-27 20:38:39 -07:00
Prasad Katti b672fd1f45 ec2_instance_facts: requires boto3 and botocore 2017-09-27 09:12:46 +10:00
Will Thames ce2f5d26ab Improve cloudwatchevent_rule exception handling (#30823)
* Fix cloudwatchevent_rule exception handling

Where it is currently present, this change fixes the exception handling.
However, there are many places that it is lacking.

Fixes #30806

* Add new exception handling for cloudwatchevent_rule

Ensure all API calls are wrapped with exception handling

* PEP8 tidy up

* Remove unnecessary HAS_BOTO3 import and checks

Tidy up documentation so that NO_QA can be removed
2017-09-26 12:47:24 -04:00
Will Thames 4553ec5cc5 [cloud] Ensure target group ARNs are passed as a list in `ec2_asg` (#30905)
While sets are useful for comparing whether target groups
need modifying, the AWS API expects a list or tuple, not a set
2017-09-26 10:25:49 -04:00
Will Thames b863d072c2 [cloud] Don't remove profile, security_token by default in `aws_s3` (#30902)
Comment above suggests only removing it for non-S3 services,
so let's actually enforce that.
2017-09-26 10:18:30 -04:00
Reid Wahl a22d7513a7 Remove invalid e.response from BotoCoreErrors in ec2_asg.py (#30121) (#30495) 2017-09-21 13:10:05 -04:00
Toshio Kuratomi 46e5c48f03 Split ec2_elb_* modules in service of rename/interface changes (#30532)
* Undeprecate ec2_elb_*
* Make ec2_elb* full fledged modules rather than aliases
* Split tests for ec2_elb_lb and elb_classicb_lb
* Change names in documentation of old and new elb modules

Add tests for ec2_elb_lb
2017-09-21 13:06:14 -04:00
Will Thames 685267df73 Improve error handling for IdempotentParamaterMismatch (#30324)
Ensure all the return variables are correctly populated
and return more info in the error message
2017-09-20 16:42:13 -04:00
Vladimir Utenkov 875153d503 [cloud][py3] Fix AttributeError in iam_policy on python3 (#30551) 2017-09-20 15:14:09 -04:00
Will Thames d871964aca Ensure region is set in ec2_vpc_subnet_facts (#30399)
Make requested change in #30370
2017-09-20 11:23:48 -04:00
Will Thames 18582295e3 Fix broken LimitExceeded check in iam_managed_policy (#30537)
When policy versions exceed 5, we hit LimitExceeded. However,
the exception checking should use `e.response['Error']['Code']`
2017-09-20 09:27:45 -04:00
Willem van Ketwich 92426840d6 fix for unrequired parameter 2017-09-19 21:37:42 -07:00
s-hertel b3273223db Previously to use the modes put or get the object had to be specified with a leading /. Since the boto call doesn't take an object like that this was overlooked and removed. Added a check to remove that leading character. 2017-09-19 21:21:02 -07:00
Will Thames 31daeb4b85 New module for querying ACM certificates (#29430)
Not using AnsibleAWSModule so that it can be dropped into
a module library of Ansible 2.3
2017-09-19 19:10:39 -04:00
Matt Clay 7714dcd04e Enable more pylint rules and fix reported issues. (#30539)
* Enable pylint unreachable test.
* Enable pylint suppressed-message test.
* Enable pylint redundant-unittest-assert test.
* Enable pylint bad-open-mode test.
* Enable pylint signature-differs test.
* Enable pylint unnecessary-pass test.
* Enable pylint unnecessary-lambda test.
* Enable pylint raising-bad-type test.
* Enable pylint logging-not-lazy test.
* Enable pylint logging-format-interpolation test.
* Enable pylint useless-else-on-loop test.
2017-09-18 23:20:32 -07:00
Wolfgang Felbermeier f3865e370c Fix tags in ec2_instance_facts (#30333)
* Fix tags in ec2_instance_facts
The method boto3_tag_list_to_ansible_dict in module_utils/ec2.py changed
and does no longer check whether the returned result of boto3 uses
"key" or "Key" as the tag key identifier.
This fixes ec2_instance_facts to make this check in its own, since boto3
may return "key" instead of "Key"

* Since the indices for the tags are already formatted to lowercase
by the snaking, we can assume, that the index for the tags are already
formatted
2017-09-19 10:09:56 +10:00
KrdLab a6c8978b74 Fix RETURN section document in lambda.py (#28333)
* Fix RETURN section document in lambda.py

* Fix typo
2017-09-15 05:08:15 -04:00
Sloane Hertel bdbe5337c6 s3 integration tests (#28396)
* Replace pause in integration tests with until.

Use resource prefix instead of generating a random number

Only try to delete keys if they exist

* Add alias to tests
2017-09-15 05:08:09 -04:00
KrdLab e0a5b7d7ea Fix RETURN section document in iam_role.py (#28430) 2017-09-15 04:21:27 -04:00
Stepan Stipl 4ec91491e2 Pass region and ec2_url to boto3 connection (#30370)
fixes ansible/ansible#30368
2017-09-15 13:54:29 +10:00
Abhijit Menon-Sen 524c5dcfef Avoid KeyError when subnet['Tags'] doesn't exist (#30349)
The problem was introduced in 2cdf31d3.
2017-09-14 21:30:09 +10:00
Will Thames fd18d7ebb5 [cloud] Don't alter dictionary during iteration in elb_target_group_facts, avoiding RuntimeError (#30247)
Don't update the target_group_attributes dict
while iterating over it.

Fixes #30190
2017-09-13 14:34:26 -04:00
Sloane Hertel 4bc4abfe1b [cloud] ec2_group: Handle duplicate names between EC2 classic and VPC groups (#28931)
* ec2_group: Handle name conflict with empty vpc_id.

If several groups exist with the same name (and vpc_id is None) then
treat the group outside the vpc as preferred (same as it would for a vpc
group with vpc_id specified). Also don't run the egress rules code in
that case.

* Handle lack of `IpPermissionsEgress` attribute on EC2 classic groups

In EC2 classic groups, the `while True` loop checking for egress
permissions will continue infinitely.

* Handle incompatible combinations of EC2 Classic + VPC groups

* Fix integration tests in accounts lacking EC2 classic

This change checks against the security group created, instead of the
module parameters, for VPC ID. This means that new accounts with a
default VPC will still wait properly for the first egress rule to
populate.

* Fix conditional for storing described groups with preference for matching VPC IDs

* Revert `vpc_id is None` on conditional to allow for default VPCs
2017-09-13 14:19:05 -04:00
Matt Clay 442af3744e Miscellaneous pylint fixes.
The following rules are no longer disabled:

- bad-format-string
- duplicate-key
- lost-exception
- trailing-newlines
- unexpected-keyword-arg
- useless-suppression
- using-constant-test
2017-09-13 01:53:08 -07:00
Daniel Shepherd 2cdf31d3a2 Update ec2_vpc_subnet_facts to use Boto3 (#25374)
* update ec2_vpc_subnet_facts module to use boto3 and support gathering updated fact items from AWS API

add version_added to new parameter

added return docs and other requested changes

removed errant extra blank line

updates per review

* update per review: fix AWSRetry backoff implementation and fix example that was not correct
2017-09-13 10:17:17 +10:00
Sloane Hertel b02937f3c3 [cloud] Document requirements for ec2_asg. (#30057) 2017-09-12 11:26:35 -04:00
Will Thames 0566d4672d [cloud] Add documentation around backoff and pagination for AWS module authors (#29883)
We field a lot of PRs that could be improved through use
of built in pagination and retry capabilities.
2017-09-12 09:29:04 -04:00
Matt Clay 68aeaa58a8 Fix dangerous default args. (#29839) 2017-09-12 00:11:13 -07:00
Sloane Hertel 9bc330c89b ec2: fixes #19521, fixes #29456 - create instance-store AMI instances with correct shutdown behavior (#28885)
* Create instance-store AMI instances with 'terminate' as the shutdown behavior since it is required.

* Match on the error code instead of searching for a string in the message.

* Narrow conditional to only fix shutdown behavior if fixing it would help

* Fix pep8.
2017-09-12 11:16:00 +10:00
Sloane Hertel 942b6fb9bc ec2_vol: wait for delete_on_termination to be set to the correct value. Fixes #22534. (#28848)
wait for delete_on_termination to be set to the correct value, it can take some time to correctly reflect the setting sent in the API call.
2017-09-11 16:52:06 -04:00
Lorin Hochstein 362a2e523a Document return values for ec2_vpc_net.py (#21294)
* Document return values for ec2_vpc_net.py

* Prepend "vpc" to return values
2017-09-11 16:10:36 -04:00
Abhijeet Kasurde 8f6626bd8f Misc typo corrections
Fix adds correction for typos

* Anisble to Ansible
* Fasle to False

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-09-09 10:25:50 -07:00
s-hertel 0ac4a82f3b ec2_group: unnest variable assignment. Fixes #29113. 2017-09-09 10:20:08 -07:00
s-hertel 6ae201d3b1 cloudtrail: import botocore.exceptions in a try/except. 2017-09-09 10:10:21 -07:00
Antoine Rouaze f57d51d92c Fixes #22374: fix route table update in ec2_vpc_route_table module (#27234)
The ec2_vpc_route_table module notifies about a change on the route table when the instance Id of the NAT instance has changed, but in fact, nothing changes. The module call the create_route function the AWS SDK to add a new route with the same cidr. The AWS SDK should return an error instead of nothing.

Call replace_route function instead of create_route when a route table with the same cidr but with different target destination is present.
2017-09-08 19:27:08 -04:00
Ross Williams 39e46437bf Fixes #19666 Correct AMI information output by ec2_ami module (#27021)
Add AMI name and platform to outputs on AMI creation
2017-09-08 16:30:08 -04:00
Willem van Ketwich f58bd4f392 [cloud] EC2 AutoScaling fix for respecting zero as the desired, min&max size values (#27870) 2017-09-08 12:30:35 -04:00
Joel Thompson 4e759a9cce sns_topic: Fix unreferenced variable (#29117)
Not sure how this ever worked.

Fixes #29102
2017-09-07 21:46:30 -04:00
Tomaž Šifrer 3bd89f8298 Fix: modifying existing application lb using certificates now properly sets certificates (#28217) 2017-09-07 08:23:17 -04:00
Ryan Brown d02bea75d3 Move selected AWS modules from community/certified to core support (#28617) 2017-09-06 11:15:41 -04:00
Markus Juopperi d343a3abd1 elb_application_lb: when purging rules make deletion the first step (#28749)
This prevents errors when adding new rules that conflict with existing
ones that will be deleted. For example this allows adding a new rule
with the same priority of a rule that will be purged.
2017-09-05 13:47:33 -04:00
mikedlr 506a30cf3e lambda - more limited exception trap when doing get_function for better errors (#28918) 2017-09-01 09:25:54 -04:00
Sloane Hertel cef40cb54a [cloud] ec2_group: Allow rule source to be a security group in a peered VPC. (#28876) 2017-08-31 15:27:05 -04:00
Sloane Hertel 70e20bb571 [cloud] cloudformation: create changeset when stack is in ROLLBACK_COMPLETE. Fixes #27853 (#28832)
Fix appearance of failure when creating a cloudformation changeset after a rollback. When creating a cloudformation changeset it shouldn't matter if the last event was. 

_ROLLBACK_COMPLETE since creating a changeset is not an event. Fixes #27853.
2017-08-30 15:27:48 -04:00
Deepakkothandan 8222662d55 added module ec2_snapshot_copy (#26578)
* added module ec2_snapshot_copy

* added RETURN documentation

* Fix copyright for ec2_snapshot_copy and make requested changes.
2017-08-29 18:11:21 -04:00
James Kassemi 48c5b9665a s3_sync: add delete option - fixes #25884 (#28249)
* s3_sync: add delete option - fixes #25884

Add `delete` option. Maintain existing upload strategies. When delete
is requested files present on remote that are not in source list are
removed after upload.

* S3_sync: Delete objects in chunks of 1000 instead of one at a time.
2017-08-29 17:25:30 -04:00
jacky.chen 75998d3ca3 [cloud] Add the ability to modify shard count to kinesis_stream module (#24805)
* Add the ability to modify shard count to kinesis_stream module

* Fixed an issue in kinesis_stream where update() reports not changed when it is changed

* Remove unreachable message and make the try and catch block shorter
2017-08-29 17:13:46 -04:00
opapy 38a5033b48 support ecs task resource for cloudwatchevent_rule (#28495)
* add support ecs

* add role_arn parameters
2017-08-29 16:13:12 -04:00
Ryan S. Brown 9647a4c94f Fix silent kinesis_stream error
In cases where the boto3 call to create a Kinesis stream failed, the
error message was silently ignored because the error message wasn't
returned out of `stream_action`

Also switch `str` calls to `to_native`
2017-08-29 15:31:26 -04:00
Sloane Hertel e05eebcb50 [cloud] Remove custom pagination function in ec2_launchconfig module (#28574) 2017-08-29 13:52:45 -04:00
mestudd 7b8f113ceb Check for Rules before removing. (#28731) 2017-08-29 12:07:07 -04:00
René Moser c97f4653be fix typos in various modules and docsite (#28747) 2017-08-29 17:59:41 +02:00
Constantin 11b1ad0928 [cloud] Handle client-error exceptions in s3_bucket (#26044)
* Handle exception when capital letter used in S3 bucket name.

* Fix whitespace for PEP8
2017-08-29 11:11:27 -04:00
Michael De La Rue fbec5ab12d [cloud] new module lambda_policy (PR #24951)
- Fixes to lambda
- reformatting + tests for lambda_facts
- lambda module integration test
- switch lambda and lambda_facts to AnsibleAwsModule
- Get the account ID from STS, GetUser, and finally error message
2017-08-28 16:45:53 -04:00
Will Thames 63df0adc17 [cloud] Update RDS parameter group for boto3 (#25345)
* Update RDS parameter group for boto3

* Update to boto3
* Update to latest ansible standards
* Remove choices list for valid engines (See #19221 for context)
* Allow tagging
* Return some useful information, and document that information

* Add tests for rds_param_group

* Improve testing of rds_param_group

* Add purge_tags option for rds_param_group

* Fix remaining broken rds_param_group tests

* Ensure the group name is lowercased. Fixes integration tests when run on OSX
2017-08-28 12:52:22 -04:00
Radu Epure 54c295699e [cloud] Add DBName to RDS Facts if it exists (#27121)
* + Add DBName in RDS Facts if it's not null

* - remove 2 offending lines for automatic tests

* Syntax change for shorter code and improved readability
2017-08-28 08:33:34 -04:00
banzo 3302248616 [cloud] Amazon Redshift module cluster deletion fix (#25164)
* Fix typo (#25161)

* Fixed cluster deletion: added final snapshot management

This adds 2 new options to the module API (only for the "delete" command):

* skip_final_cluster_snapshot: skip a final snapshot before deleting the cluster
* final_cluster_snapshot_identifier: identifier of the final snapshot to be created before deleting the cluster

Ref: http://boto.cloudhackers.com/en/latest/ref/redshift.html

* Fixed cluster deletion: added final snapshot management

This adds 2 new options to the module API (only for the "delete" command):

* skip_final_cluster_snapshot: skip a final snapshot before deleting the cluster
* final_cluster_snapshot_identifier: identifier of the final snapshot to be created before deleting the cluster

Ref: http://boto.cloudhackers.com/en/latest/ref/redshift.html

* add version_added information

* Review corrections:

* used required_if instead of checking parameters compatibility inside the code
* renamed aliases to be more explicit

Also added an example for the "delete" command

* Review corrections correction - make "delete" command specific parameters mandatory only when the command is "delete"

* updated doc with aliases

* Fix YAML docs syntax

* Set default to match API for skip_final_cluster_snapshot.
2017-08-24 16:41:32 -04:00
Joel Kaasinen fc7301671e [cloud] Add check mode for cloudformation module (#23483)
* cloudformation: dummy check mode

* cloudformation: use changesets to implement check mode

* cloudformation: wait at most 5min for change set

* cloudformation: handle stack creation and deletion in check mode

* cloudformation: standardize output format in check mode

msg is a string, meta is a list

* cloudformation: use same naming convention in get_changeset as create_changeset

also add comment about code duplication between said functions

* Remove unused imports

* PEP8 whitespace fix

* Fix CI, convert success=True check to for/else
2017-08-24 14:07:48 -04:00
Sloane Hertel cf1a9d4d22 New module: Add ec2 Vpn Connection module and tests (cloud/amazon/ec2_vpc_vpn) (#24385)
* Add VPN module and unittests

* remove unnecessary imports

* fix documentation

* raise custom exception rather than passing module everywhere

* remove recordings

Rerecord tests

Fix docs

Ensure vpn_connection_id is a list of strings when checking if it exists

* fix check mode

* Rerecord tests

* remove superfluous code and comments and make exception handling uniform

fix docs

* Fix ec2_vpc_vpn documentation

* make ec2_vpc_vpn compatible with python 2.6 and make check mode logic more succinct

* fix comparison of list of dicts

* Fix typos and docstrings

make requested changes for imports

make code clearer

* Fix copyright and metadata version.
2017-08-24 12:18:40 -04:00
Matt 9407a17c40 Fix example
change count_tags to count_tag
2017-08-23 17:56:38 -04:00
Will Thames fbfa5624c3 [cloud] New module: aws_waf_facts module (#26671)
Initial implementation of waf_facts module

* Enhance waf_facts module to provide more info

Support check_mode trivially
Enhance rule and predicate information
Use AWSretry and wrap proper exception handling
Finish documentation
Remove arbitrary limits
Meet latest ansible standards.

* Rename module to use aws_ prefix.

Fix copyright.

Fix metadata version.
2017-08-23 15:09:27 -04:00
Patrick Murray b828b5d33b Fixing Issue #27270 - EFS TypeError (#27318)
* Fixing Issue #27270 regarding a TypeError invoked by the addition of a Filter type and List type.

* Fix SecurityGroup from always being reported as changed on PY3

On Python3, filter returns a generator.  This causes us to report that
security groups are always defined on Python3 even when there are none.

Also change filter() calls into list comprehensions.
2017-08-23 11:43:09 -07:00
Michael Tinning 282e743eb0 elb_application_lb: fix issue with boto parameter validation on Rules (#27333) 2017-08-23 13:49:52 -04:00
Will Thames b1df75fc1c [cloud] Return AMI info on ec2_ami module when `changed=false` (#27867)
Fixes #27861
2017-08-23 12:01:49 -04:00
Sloane Hertel 24b49c2539 [cloud] New module: AWS Direct Connect connection (#26152)
* New module for AWS Direct Connect connections

Unittests for new module

Added utils that will be used by other Direct Connect modules

* pep8 fixes

* Correct aws_direct_connect_connection EXAMPLES to be valid yaml

* Make requested changes

* remove use of the variable changed

get rid of unnecessary parentheses

* Fix unit test

* Rename variable.

* Fix metadata version
2017-08-23 11:56:19 -04:00
David M. Lee 1d4ca0fd51 amazon: extract copies of boto_exception to module_utils.ec2 (#20403)
* amazon: extract boto_exception to ec2 module

This function was copy/pasted throughout several Amazon modules. This
causes a consistency problem, since some improvements to message
formatting were applied to some modules but not others. Now all modules
use the same, improved function.

* Rebase and make requested changes

* Rebase and make requested changes
2017-08-23 11:40:32 -04:00
mzizzi 587ab33415 [cloud] Add jittered backoff+retries to CloudFormation module (#27907) 2017-08-23 11:38:19 -04:00
mikedlr f93515adb9 [MERGE] AWS module Guidelines - multiple changes to bring up to date and start on aws.core (#26871)
* aws module Guidelines - rewrite - add AWS WG - add fail_json_aws - more modern
practices and fix some spelling

* aws module Guidelines - minor further changes with agressive fill to 99 width

* aws module Guidelines - formatting fix as per gundalow request

* aws module Guidelines - mark more keywords and code with backquotes

* AWS module guidelines - fixes from ryansb review + minor other changes
2017-08-23 10:34:30 -04:00
Muhammad Panji 8ed0222eff fix sts_session_token parameter example (#28549) 2017-08-23 09:11:51 -04:00
Ryan S. Brown 2f3d9566f9 Remove exec bit on elb_application_lb module 2017-08-23 08:32:20 -04:00
Sloane Hertel a48e0b5101 New Module to manage AWS direct connect link aggregation groups (#27250)
* Add module_utils/aws/direct_connect.py for frequently used functions

* new AWS Direct Connect link aggregation group module with tests and placebo recordings

* remove extra argument

* Remove use of undefined var

* Fix param name for extra exception codes for AWSRetry to use.

* Fix undefined var and line length and metadata version number

* Fix copyright headers
2017-08-22 18:24:54 -04:00
Sloane Hertel cbb94a75fe Enable deleting IAM users with associated MFA devices. (#27288)
Refactore delete_user() since most of the heavy lifting was being done in the exception handling, which is not at all necessary and resulted in changed=False being shown after changes were successfully made.
2017-08-22 15:59:02 -04:00
Sloane Hertel f7e67dc3b1 Rename s3 module to aws_s3. Update CHANGELOG.md. (#28398)
Use aws_s3 in examples.
2017-08-22 11:17:20 -04:00
Brandon Davidson 2ceff476bf [cloud] support tags in ec2_group module (#22472)
* Add tags support to cloud/amazon/ec2_group

* Finish making ec2_group tag support boto3 compatible.

Add integration tests to validate that tags are working as expected.
2017-08-22 11:11:38 -04:00
bonuscheese 7c366f5cbd Fix 'format' method syntax to support Python 2.6 (Fixes #28198) (#28304)
Fixes #28198
Changed how string format method is used to support Python 2.6 syntax. By adding in positional arguments to braces in format method (e.g. {0}, {1}), Python 2.6 can support this module, without causing issues in newer versions of Python.

See ref for info on format differences w/ 2.6:
https://docs.python.org/2/library/string.html#format-string-syntax
2017-08-21 13:57:26 -04:00
David Kretch beed59f303 Fix trailing space in ec2_vol example, fix 'the the' typos (#28440)
* Fix 'the the' typos, fix 'pahting' filename typo

* Change 'the the' typos to a single 'the'.
* Change `playbook_pahting.rst` to `playbook_pathing.rst`.

* Delete trailing space in ec2_vol example

Delete the trailing space in `instance: "{{ item.id }} "`, which makes the
example fail when run because it looks for instance "i-xxxx ".
2017-08-19 23:00:51 +02:00
Sloane Hertel 29ab182537 elasticache_parameter_group: fix KeyError bug #24475 (#24509)
* Fix KeyError bug by appending None if key doesn't exist

ensure value is the expected type; if if expecting something parsed as truthy try to turn it back into the desired value - fixes result showing always changed since bool compared to str

use to_text

* use string_types instead of str, remove inline conditionals, abbreviate boolean logic
2017-08-18 15:23:38 -04:00
Sloane Hertel b9762b52af s3_sync was setting HAS_BOTO3 by the existence of botocore alone. Fixes #28023 (#28339)
* s3_sync was setting HAS_BOTO3 by the existence of botocore alone. Fixed to import from module_utils.ec2 to ensure boto3 + botocore are present.

Also documented module requirements.

* Remove unused import
2017-08-18 13:21:10 -04:00
Sloane Hertel 25a9ababcc ec2.py: filter by client-token if id is specified (#26114)
fixes #26021
2017-08-17 15:17:13 -04:00
Sloane Hertel 1300680d30 [cloud] Cast port to an integer in elb_application_lb listener spec (#28341) 2017-08-17 15:13:58 -04:00
Toshio Kuratomi f203ca7907 Update metadata to 1.1 2017-08-15 23:12:08 -07:00
Sam Doran 68060002e8 Rename modules from plural to singular (#27185)
* First batch of modules renamed from plural to singular

Related to this proposal: https://github.com/ansible/proposals/issues/10

* Emit rename deprication warning

* Update legacy-files.txt and skip.txt to reflect new names
2017-08-14 16:35:15 -04:00
Toshio Kuratomi 394e1e350c Expand wildcard imports and add boilerplate
More amazon modules with no open PRs.
2017-08-12 10:57:01 -07:00
Nick Ward f52a022022 Python3 compatability for elb_application_lb and elb_target_group 2017-08-12 09:01:29 -07:00
Toshio Kuratomi 9a7e23569e Fix wildcard imports, remove get_exception, add boilerplate
Amazon modules that don't have open PRs against them
2017-08-12 07:43:46 -07:00
Sloane Hertel aca1950150 iam certificate facts (duplicate): add iam_cert_facts as alias for iam_server_certificate_facts (#25387)
* add iam_cert_facts as alias for iam_server_certificate_facts
* remove from legacy files
2017-08-12 01:44:39 -07:00
Sloane Hertel 3cb1c38ecc [cloud] Allow S3 module to correctly delete objects by groups of <= 1000 (#28068) 2017-08-11 15:30:50 -04:00
Sloane Hertel 40eb349ac6 [cloud] Make ec2_asg more resilient using AWSRetry around boto3 calls (#27598)
* Add AWSRetry to ec2_asg

* Paginate describing ASGs and launch configurations

pass connection to delete_asg

Fix a couple little bugs

* Use boto3's pagination build_full_result()
2017-08-11 11:30:23 -04:00
Sloane Hertel 1de91a9aa0 [cloud] Convert `s3` module to use boto3 (#21529)
* replace boto with boto3 for the s3 module

make s3 pep8 and remove from legacy files

fix s3 unit tests

* fix indentation

* s3 module - if we can't create an MD5 sum return None and always upload file

* remove Location.DEFAULT which isn't used in boto3 and tidy up the docs

* pep8

* s3: remove default: null, empty aliases, and required: false from documentation

fix incorrectly documented defaults

* Porting s3 to boto3. Simplify some logic and remove unused imports

* Fix s3 module variables

* Fix a typo in s3 module and remove from pep8 legacy files

* s3: add pagination for listing objects.

Fix logic and use head_object instead of get_object for efficiency.

Fix typo in unit test.

* Fix pagination to maintain backwards compatibility.

Fix incorrect conditional.

Remove redundant variable assignment.

Fix s3 list_object pagination to return all pages

* Use the revised List Objects API as recommended.

* Wrap call to paginated_list in a try/except

Also remembered to allow marker/prefix/max_keys to modify what keys are listed

* Simplify argument
2017-08-11 09:34:33 -04:00
mzizzi 380c43de4e cloudformation_facts: describe all stacks by default
* cloudformation_facts describe all stacks by default

* cloudformation_facts jittered backoff / retries

* cloudformation_facts stack_name use default arg_spec

* cloudformation_facts bugfix broken notification_arns output

* cloudformation_facts add simplified "stack_tags" output

* CloudFormationServiceManager.describe_stacks default args
2017-08-10 09:06:40 +10:00
Willem van Ketwich 82765637b9 AWS EC2 ASG - Replace ELBs correctly and remove existing ELBs when specified as an empty list (#27830)
* fixes for edge cases - load_balancers has not been specified - don't want to delete existing elbs, wanted elbs aren't a superset of has_elbs (eg. 1 elb existing, adding another), specifying load_balancers: [] to delete existing elbs
2017-08-09 11:56:30 -04:00
Andrej Svenke ef55530d67 ecs_attribute: new module. (#20618)
ecs_attribute: fixed docs.

ecs_attribute: changed state to 'present' by default.

ecs_attribute: pep8 fix.

ecs_attribute: improved attribute iteration.

ecs_attribute: fixed absent EC2_REGION error message.

ecs_attribute: fixed exception handling on invalid attribute (e.g. 2+2).

ecs_attribute: pep8 fix.

ecs_attribute: docs and python3 fixes.

ecs_attribute: fixed class declaration for python 2-3 compatibility.
2017-08-09 11:06:24 -04:00
s-hertel 875c8e4f3e ensure stickiness expiration is an int before comparison 2017-08-08 22:30:50 -07:00
Sloane Hertel bd4f08823d [cloud] Cleanup of elasticache argspec (#27890)
Remove unnecessary specifications from the argument spec and use dict() instead of brackets for module uniformity.
2017-08-08 12:18:02 -04:00
Moritz Grimm 11af034255 moved aws elasticache module to boto3 (#27441)
* moved aws elasticache module to boto3

* fixed error and improved code

* implemented requested changes

* now checking for missing boto3 packages in a better way

* now dynamically setting the default port depending on the engine if it is not set

* moved standard import in front of ansible ones

* now case insensitive in regards to engine name

* removed superfluous spaces

* now checking for None in the correct way

* removed elasticache module from exceptions to pep8 testing

* removed hardcoded default ports and letting aws decide if no port is given
2017-08-08 08:39:09 -04:00
Willem van Ketwich 6d402de25e ec2 launch configuration boto3 upgrade (#26348)
Updates ec2_lc module to use boto3. Adds parameters:

instance_id
placement_tenancy

Also added a second example using instance_id and updated the docs with the new parameters.
2017-08-08 22:11:06 +10:00
Markus Krogemann d2f9160bc1 Fix documentation of name field in return values (#27822) 2017-08-07 16:21:29 +10:00
Jérôme Guilbot e29daf34f7 [s3_sync] Add cache_control option (#27388) 2017-08-04 12:35:08 -04:00
Keith Hawkridge f62fa16a89 [cloud] Fix Dead Letter config property name (#27733)
Closes #27688
2017-08-04 10:21:36 -04:00
Will Thames 4e0666fc4a Add oracle-se2 database support (#23482)
Fixes ansible-modules-core#4808
2017-08-03 17:15:18 -04:00
Sloane Hertel 467a1f54a3 s3_bucket: fix python3 sorting incompatibility (#27502)
* s3_bucket: fix policy sorting for python3 so strings are evaluated as less than tuples.

Add tests to ensure this behavior is maintained.

* Fix s3_bucket comparison function to work on both Python 3.5 and 3.6

* s3_bucket: document that cmp_to_key is used for python 2.7.

Add another test for s3_bucket to compare policies of different sizes.

* fix pep8

* Work around code-smell grepping by not using the word 'cmp'.
2017-08-03 15:41:26 -04:00
Sloane Hertel dbbad16385 [cloud] New module: Add module for managing AWS Datapipelines (cloud/amazon/data_pipeline) (#22878)
* New module for managing AWS Datapipelines

* Supports create/activate/deactivate and deletion
* Handles idempotent creation by embeding the version in the
uniqueId field
* Waits for requested state to be reached, as Botocore doesn't
have waiters yet for datapipelines

* rename module, fix imports, add tags option, improve exit_json results, fix a couple bugs, add a TODO so I don't forget

fix pep8

allow timeout to be used for pipeline creation

make .format syntax uniform

fix pep8

fix exception handling

allow pipeline to be modified, refactor, add some comments, remove unnecessary imports

pipeline activation may not be in the activated state long

remove datapipeline version option

change a loop to a list comprehension

create idempotence by hashing the options given to the module minus the objects (which can be modified)

small bugfix

* data_pipeline unittests

make unittests pep8

fix bug in unittests

* remove exception handling that serves no purpose

* Fix python3 incompatibilities in datapipeline tests and add placebo fixture maybe_sleep for faster tests

Fix python3 incompatibilities in data_pipeline build_unique_id()

Don't delete a pipeline in diff_pipeline() because it's unexpected

Don't use time.time() because it causes an issue with placebo testing

re-recorded tests

fix pep8 in data_pipeline

Remove disable_rollback from tests

Make sure unique identifier is a string

re-record tests

* improve documentation and add another example

* use a placebo fixture instead of redundant code in tests

fix tests for PLACEBO_RECORD=false

* Fix data_pipeline docs

use isinstance instead of type()

fix documentation

* fix documentation

* Remove use of undefined variable from data_pipeline module and fix license

* fix copyright header
2017-08-03 15:04:10 -04:00
Gregory Danenberg 1e42e1e04c [cloud] cloudformation: fix changeset_name bug fix #27487 (#27518)
Closes #27487
2017-08-03 08:40:28 -04:00
Sloane Hertel b0efbc5418 [cloud] ec2_vpc_igw: fix check mode - fixes #27490 (#27637)
Fix check mode for adding/removing tags; boto's DryRun is not equivalent to check mode.

Fixes #27490
2017-08-02 13:47:13 -04:00
Sloane Hertel c02deef454 [cloud] filter by vpc and subnet if provided before terminating instances (#27394) 2017-08-02 13:43:24 -04:00
piotrkarbowski-ciklum a260d99f74 ec2_ami_copy.py: Fix WaiterError handling. (#27416)
* ec2_ami_copy.py: Fix WaiterError handling.

Change suggested by Adam Johnson at https://github.com/ansible/ansible/issues/26971

* ec2_ami_copy.py: WaiterError: fail_json: add exception parameter.

* ec2_ami_copy.py: import traceback
2017-08-02 13:05:08 -04:00
Brandon Davidson 3d20a2ea82 Fix typo in cloud/amazon/ec2_vpc_nacl_facts (#27534) 2017-08-02 12:26:28 -04:00
Abhijeet Kasurde be58fa979d Fix broken import in cloudformation
* Fix imports
* Add new GPLv3 Licence

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2017-08-02 09:05:25 -07:00
Jordan Bach 24e393aef1 allow use of jinja2 variables for ec2_group from_port/to_port params (#27145) 2017-08-02 10:26:38 +10:00