Commit Graph

1565 Commits (0e9ff44df18c02ff251277685a3e7d3d0d9e411e)

Author SHA1 Message Date
Vinay Dandekar fe6b7f6b5d [aws] Change IAM role name parsing to come from the ARN (#45534) 2018-09-24 12:41:23 -04:00
Sloane Hertel 485320aab8 [sns_topic] Don't mask non-authorization errors (#46030) 2018-09-24 11:58:46 -04:00
Dag Wieers f90fc8a9a2 Fix author in modules (#46068)
Fix a few cases where the author was incomplete or incorrect.
2018-09-24 10:14:29 -05:00
Abhijeet Kasurde 0ecbd50c3b Misc typo fixes (#45969)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2018-09-21 14:43:22 +01:00
Yanis LISIMA 45c7facd64 ec2_vpc_igw: migrate to boto3 (#45346)
* ec2_vpc_igw: draft migrate to boto3

* ec2_vpc_igw: migrate to boto3

* ec2_vpc_igw: fix error and implement code review

* ec2_vpc_igw: always catch BotoCoreError with ClientError, remove unused fail method

* ec2_vpc_igw: fix pep error
2018-09-20 19:56:19 +10:00
Dag Wieers 197ddd3c45
Fix incorrect type in arg_spec 2018-09-20 02:13:29 +02:00
Dag Wieers 2edf20d1ed Docs: Avoid use of 'default: null' (#45795)
Various modules document the default 'null' value, but it causes None to
be shown in the documentation explicitly.
2018-09-19 09:02:27 -05:00
Julien PRIGENT 6059246093 EFS - add support for new Provisioned Throughput (#43253)
* efs.py: Add support for EFS provisioned throughput

* efs_facts.py: Add support for EFS provisioned throughput

* efs_facts integration tests updated with provision throughput

* efs_facts: Tests refactoring - add failure and success playbook according to botocore version.

* efs_facts: More tests and new option descriptions adjustment

* efs_facts tests renamed to efs
2018-09-19 09:10:56 +10:00
Sloane Hertel 8d2df9be52 ec2_group - fix VPC precedence for security group targets (#45787)
Update the dictionary with the preferred values last to get the right order of VPC precedence

Fixes #45782
2018-09-18 15:33:19 -04:00
Will Thames d2569a3f7d Improve iam_group exception handling (#45599)
* Improve iam_group exception handling

Use AnsibleAWSModule for iam_group and handle BotoCoreErrors
as well as ClientErrors. Use fail_json_aws to improve error messages

* Add minimal iam_group test suite

Update some of the read-only IAM permissions (this is not sufficient
to run the test suite but it gets further than it did until it tries
to add a (non-existent) user)

* Clean up after tests
2018-09-17 19:53:44 -04:00
Sloane Hertel 21f4b5911e [aws] fix version_added for elb_classic_lbmodule (#45559) 2018-09-17 14:32:51 -04:00
Sloane Hertel b42c7f4512 [iam_role] A hyphen with nothing following becomes [None] rather than []. Fix example syntax. (#45742) 2018-09-17 14:32:15 -04:00
Sloane Hertel d7ca3f2bd3 ec2_group: fix regression for targets that are a list containing strings and lists (#45594)
* Fix targets that may be a list containing strings and lists which worked prior to 2.6.

* Add ec2_group integration tests for lists of nested targets

* changelog

* Add diff mode support for lists of targets containing strings and lists.
2018-09-17 14:31:41 -04:00
Jon Cormier 7aaa5da41d [aws_ssm_parameter_store] use describe_parameters paginator (#45632)
Fix the service reaching an internal limit while processing the results and returning unexpected data
2018-09-14 15:17:15 -04:00
Sloane Hertel e5269c047c [AWS] cloudfront_distribution - fix method name from 'validate_distribution_id_from_caller_reference' to 'validate_distribution_from_caller_reference' and set distribution_id to the distribution's key 'Id' (#45498) 2018-09-11 15:08:30 -04:00
Ryan Brown 4d7e261074 [aws] Remove deprecated `ec2_vpc_dhcp_options_facts` alias of ec2_vpc_dhcp_option_facts (#45322) 2018-09-07 09:09:28 -04:00
Ryan Brown 8d363f7693 [aws] Remove deprecated `ec2_vpc_dhcp_options` alias of ec2_vpc_dhcp_option (#45321) 2018-09-07 09:08:09 -04:00
Sloane Hertel 8b341619ae Fix backwards compatibility without providing prefix since boto3 does more parameter validation than boto (#45308)
Use .get() instead of assuming a rule has a Transitions or Filter key (both of which are optional)
2018-09-06 15:44:26 -04:00
Andrew McGilvray 71c4355d58 check for change of role arn in ecs task definition (#44942)
* check role arn for ecs task definition

If the task role in a ECS task definition changes ansible should create a new revsion of the task definition.
2018-09-06 15:43:30 -04:00
Vinay Dandekar 4ce09ea62d [aws] ec2_metadata_facts URL encode the metadata URL to avoid errors (#43394)
- If a field in the URL has a space it would result in a 400 without making it URL safe
- Fixes #42371 and #43378
2018-09-06 15:24:25 -04:00
Rob 7e426b0381 Fix health check configurations being ignored - #43244 (#43247)
* Fix health check configurations being ignored - #43244

* Ensure health_check_protocol is not None before check

* Simplify long indented if statement
2018-09-06 15:19:04 -04:00
Ryan Brown 079299db4d
[aws] ec2_group multi-account and peered VPC bugfix (#45296)
* Add tests to replicate bug #44788 

* Handle when userId is same account due to in-account peering

* Module defaults for main.yml

* Turn off VPC peering tests in CI
2018-09-06 15:06:03 -04:00
chalupaa 1f3e7ea061 [aws] lambda_policy fix update when principal is an account number (#44871)
Fix KeyError on update when principal is an account number
2018-09-05 14:59:14 -04:00
Ryan Brown 20f21779d3
Fix ec2_group for numbered protocols (GRE) (#42765)
* Fix spurious `changed=True` when int is passed as tag

* Fix for all AWS module using compare_aws_tags

* Handle improperly stringified protocols and allow inconsistency between None/-1 on non-tcp protocols

* Add integration test that reproduces the same bug

* Return false if the comparsison is not equal
2018-09-05 13:34:26 -04:00
Sloane Hertel 038fd0d0f2 elb_target_group - prevent a KeyError exception (#45169)
Ensure ports to integers after allowing the key 'Targets' to be available in params
2018-09-05 12:50:03 -04:00
Ryan Brown 9d1bf32825
[aws] Add suboptions to aws_application_scaling_policy (#43042)
* [aws] Add suboptions to aws_application_scaling_policy

Fixes #42917

* Remove any suboptions that are None
2018-09-05 12:35:26 -04:00
Dougal Seeley a6c97f2243 ec2_vpc_route_table - allow routes to be created if the CIDR already exists but its 'Origin' is 'EnableVgwRoutePropagation' (which cannot be replaced). (#43417)
Fixes #43415
2018-09-04 11:18:33 -04:00
Matt Martz f89d873698
Stub out modules scheduled for 2.8 removal (#44985)
* Remove modules scheduled for 2.8

* Add changelog and porting guide

* Skip docs test on removed modules

* Don't link to removed modules
2018-08-31 16:27:32 -05:00
Roman Belyakovsky 4f70eb3e26 ec2_vol_facts: moved to boto3 (#43348)
* ec2_vol_facts: moved to boto3

* vol_facts: formatting fixes

* vol_facts: formatting fixes

* vol_facts: added integration tests

* vol_facts: improved integration tests

* vol_facts: integration tests, fixed ami

* vol_facts: integration tests, fixed ami

* vol_facts: refactor, post-review update

* vol_facts: implemented pagination

* vol_facts: pep8 style fix

* CI IAM policy requirements fix

* Tests fixed, added to unsupported, removed empty files

* removed shippable alias
2018-08-31 13:50:17 +10:00
Sloane Hertel 113336d6f1 rds_instance module and tests (#43789)
* Add functions to retrieve the allowed and required parameters for boto3 client methods

* Add custom waiter for stopping an RDS DB instance

* Add rds_instance module

* Add rds_instance integration tests

* address requested changes from ryansb

* address requested changes from willthames

* address requested changes from dmsimard

* Fix final snapshots

Fix idempotence with already-deleting DB instances

Remove unused import from module_utils/aws/core.py

Consolidate function to get all boto3 client method parameters and the subset of required parameters

* Add some additional rds_instance integration tests

* Add some common functions to module_utils/aws/rds

* Move common code out of rds_instance

* Remove hardcoded engine choices and require the minimum boto3

* Document wait behavior

* Provide a list of valid engines in the error message if it is invalid

Add supported methods to whitelist

Remove AWSRetry around waiter

Wait for a less crazy amount of time

Remove unused variables

* Add a test for an invalid engine option

* pep8

* Missed adding a method to the whitelist

* Use retries

* Fix some little things

* Fix more things

* Improve error message

* Support creating cross-region read replicas

* Remove unused imports

* Add retry when getting RDS instance

* Soft-check required options so module fails properly when options are missing

* Fix mariadb parameter version

* Fix cross-region read_replica creation and tests

* fix modify tests

* Fix a modification test

* Fix typo

* Remove test for option_group_name that exists for this account but may not for others and added as a TODO to do properly
2018-08-31 12:17:02 +10:00
Adam 00368a432f Update lightsail.py (#44902) 2018-08-30 13:24:04 -05:00
yaakov kuperman 6b7ea5078f [aws] New module: elb_target_facts (#43565)
* initial source of the elb_target_facts module, which gathers all
registered ELBv2 target groups for a given instance id

* updating

* initial dump of tests

* updating docs, adding AWSRetry decorators

* updating tests

* More brush up, some refactoring

* updating for sanity tests

* removing extra space

* updating elb_target_facts to use a new name for the return value, not return a fact, and use instance variables for the AWS connections.  updating tests to go along with that

* updating classes to be 'new-style' classes
2018-08-30 10:47:28 -04:00
Constantin Bugneac 23adc3ecf1 added RETURN structure to _ec2_remote_facts.py (#26041) 2018-08-29 18:22:09 -04:00
Chris Adams 23eb4f2093 ec2: add "IAM Role" to instance_profile_name
The AWS API and console docs are inconsistent about whether EC2 instances have IAM profiles or roles. Things which follow the API tend to use profile but the console uses “IAM Role”. This adds that term to the help text so it's searchable.

+label: docsite_pr
2018-08-27 10:06:15 -04:00
Dag Wieers b6b36276a4 Clean up BOTMETA.yml (#44574)
This PR includes:
- Removal of maintainers that are listed as author in the module
- Removal of entries that do not extend the original author list
- Move ignored-statement to namespace/directory (where useful)
- In some cases, fix the authors-list or add missing github id

We end up with a list of exceptions/additions and a large set of
namespace/directory maintainers or team of maintainers.

Some entries could be further improved by discussing with some
maintainers.
2018-08-24 19:43:35 -04:00
Toshio Kuratomi b2932a41b0 Fixup removed and deprecated modules
* Removed modules no longer have documentation
  Decided this was causing people to think that modules were supported
  even after being removed.  This change is a new strategy to have the
  error message trying to use a removed module point people to the older
  documentation.

* Add stubs for modules removed in 2.7
  These are freshly removed so we want people who are still using them
  when they upgrade Ansible to have a hint as to where to find information
  on how to port.

* Finish properly undeprecating include
  include was undeprecated earlier but not all of the pieces that marked
  it as deprecated were reverted.  This change fixes the remaining
  pieces
2018-08-24 15:37:13 -07:00
Ryan S. Brown 990e95eb57 Fix ec2_instance synopsis. Fixes #44641 2018-08-24 15:44:28 -04:00
Sloane Hertel d3f5238c09
Fix dangerous elb_application_lb state (#44646)
* elb_application_lb: fix dangerous default of deleting an ELB if state is omitted by changing state to default to present to be more like other AWS modules
2018-08-24 13:04:15 -04:00
Will Thames 60e3af42d5 sns_topic boto3 port (#39292)
* Port sns_topic to boto3 and add tests
2018-08-23 21:04:18 -04:00
Sloane Hertel 79ecb4c41f
Add diff mode for ec2_group (#44533)
* Add (preview) diff mode support ec2_group

* Add diff mode to some ec2_group integration tests

* Remove unnecessary arguments and add comment to the module notes

* Add changelog
2018-08-23 19:43:18 -04:00
GElkayam 4bea004a4e Fix assign_public_ip: no disregarded (#29691) (#43954)
in case assign_public_ip is False, it is not handled.
2018-08-23 16:43:44 -04:00
Uwila b1d6802d71 Fix ignoring of 'Login Profile cannot be found' errors in iam (#43198) 2018-08-23 12:14:51 -04:00
/v\atthew L Daniel d7e66f16a6 Correct the default doc for attached in ec2_eni (#44523)
* Correct the default doc for attached in ec2_eni

Also corrected a typo in the summary

* Address ansible-test sanity error about E324

* Fix and remove the E325 suppression for ec2_eni
2018-08-23 12:44:49 +10:00
Ryan Brown 4c8808ec9d
Extend `module_defaults` by adding default groups for cloud modules (#44127)
Extends `module_defaults` by adding a prefix to defaults `group/` which denotes a builtin list of modules. Initial groups are: `group/aws`, `group/azure`, and `group/gcp`
2018-08-22 21:33:27 -04:00
Matt Martz a1febd95b7
Remove deprecated ec2_facts (#44536)
* Remove deprecated ec2_facts

* Add changelog
2018-08-22 16:48:22 -05:00
Matt Martz 5ea7480e90
Remove deprecated s3 module (#44537)
* Remove deprecated s3 module

* Add changelog
2018-08-22 16:48:09 -05:00
sdubrul 061877d584 added account_alias in the response of module aws_caller_facts (#42345)
* added account_alias in the response of module aws_caller_facts

* added comment to explain list_account_aliases

* renamed caller_identity to caller_facts as the content is extended

* created changelog

* security-policy needs the iam:ListAccountAliases for this module to work

* test now checks for the added field account_alias

* gracefully handle missing iam:ListAccountAliases permission
2018-08-22 17:21:12 -04:00
♫ Christian Krause ♫ d779eb1f15 doc: fixes the the repetitions (#43937)
Wow, this does not seem to be an uncommon misspelling. Might be there
are some left that span over two lines. I noticed the one in the git
module and then used `grep -rw 'the the'` to find some more.
2018-08-22 21:53:30 +02:00
Wes Mosher b6fef17848 fix ec2_vpc_peer example with incorrect parameter (#43905)
+label: docsite_pr
2018-08-22 14:57:42 -04:00
Pedro Magalhães 12812d21c5 Add 'instance_protocol' parameter when fetching ELB Listeners (#40785)
This PR changes the ec2_elb_facts module to output the value of ELB InstanceProtocol
2018-08-22 13:57:02 -04:00
Ben Irving 0e536f746b Fix spelling error of secondary_availability_zone in rds module (#43852) 2018-08-22 13:55:22 -04:00
Rob St. Marie a8f2b8f5ab CloudFormation: Allow failed changesets to gather stack_outputs (#43509) 2018-08-22 13:54:31 -04:00
Will Thames c4303804bf Ensure that target group ports are cast to int on creation (#44442)
A previous fix fixed this for existing target groups but not
for new target groups

Fixes #37368
2018-08-22 13:51:59 -04:00
Ryan Brown 6d52afeed6 New module cloudformation_stack_set (#41669)
* [AWS] new module cloudformation_stack_set with integration tests
2018-08-20 14:38:14 -04:00
Julien PRIGENT 3921f34253 ec2_instance.py: Add CpuOptions to EC2 (#43799)
* ec2_instance.py: Add CpuOptions to EC2

* ec2_instance_facts.py: Add CpuOptions to EC2 facts

* ec2_instance.py: LooseVersion and pylint indentation

* Implement nested cpu_options dict

* Fix botocore required version

* ec2_instance: Split integration tests to add executions with old botocore versions

* Ensure runme.sh is executable
2018-08-20 20:49:00 +10:00
Chris Adams ab76fcd18a rds_instance_facts: use correct parameter in example (#44323)
The example referenced `name:` which is not a supported parameter.

+label: docsite_pr
2018-08-18 09:48:44 +10:00
Juan Jimenez cceddfab9b Update lambda.py (#44066)
Timeout doesn't say if in secs, minutes or ??
2018-08-13 12:33:14 -04:00
curry9999 2d79589515 To improve readability, we added a line feed. (#43801)
* 	modified:   google/gcp_compute_backend_bucket.py
	modified:   google/gcp_compute_backend_service.py
	modified:   google/gcp_compute_forwarding_rule.py
	modified:   google/gcp_compute_global_forwarding_rule.py
	modified:   google/gcp_compute_image.py
	modified:   google/gcp_compute_instance.py
	modified:   google/gcp_compute_instance_group.py
	modified:   google/gcp_compute_instance_group_manager.py
	modified:   google/gcp_compute_instance_template.py
	modified:   google/gcp_compute_route.py
	modified:   google/gcp_compute_subnetwork.py
	modified:   google/gcp_compute_target_http_proxy.py
	modified:   google/gcp_compute_target_https_proxy.py
	modified:   google/gcp_compute_target_ssl_proxy.py
	modified:   google/gcp_compute_target_tcp_proxy.py
	modified:   google/gcp_compute_url_map.py
	modified:   google/gcp_container_node_pool.py
	modified:   google/gcp_dns_resource_record_set.py
	modified:   google/gcp_pubsub_subscription.py
	modified:   google/gcp_storage_bucket_access_control.py

* 	modified:   lib/ansible/modules/cloud/amazon/aws_ses_identity.py
	modified:   lib/ansible/modules/cloud/amazon/route53_facts.py
	modified:   lib/ansible/modules/cloud/cloudscale/cloudscale_server.py
	modified:   lib/ansible/modules/network/aos/_aos_logical_device.py
	modified:   lib/ansible/modules/network/aos/_aos_rack_type.py
	modified:   lib/ansible/modules/network/aos/_aos_template.py
	modified:   lib/ansible/modules/network/cumulus/nclu.py
	modified:   lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_launch.py
	modified:   lib/ansible/modules/web_infrastructure/ansible_tower/tower_job_wait.py
2018-08-08 16:10:26 -07:00
Willian Ricardo 29f2bf651e [aws] Allow CloudWatch Log Group retention to be changed when log group exists (#43752)
* fix bugs #42028 and #43735
2018-08-07 16:06:06 -04:00
Rushan c4591f0861 Leading dot in efs_facts.mountpoint (#35909)
* remove leading dot in efs_facts mountpoint

* remove leading dot in efs_facts mountpoint

* remove leading dot in efs.py

* introduce filesystem_address var in efs* modules and revert changes to mount_point
2018-08-01 06:32:06 -04:00
Matt Martz 01c0446cb5
Add AnsibleModule signature schema, and fix associated issues (#43512) 2018-07-31 15:04:22 -05:00
Sloane Hertel 25218e6843 Fix dualstack without s3_url (#43510) 2018-07-31 15:50:15 -04:00
Joren Vrancken b954917761 Surround top-level function and class definitions with two blank lines. 2018-07-31 12:06:56 -07:00
Sloane Hertel 4b3e5998bf Allow AWS endpoints and dualstack (#43497) 2018-07-31 15:04:21 -04:00
Andreas Olsson 726c6eb889 Support Amazon S3 Dual-Stack Endpoints in aws_module (#43403)
* Use https:// for docs.aws.amazon.com in aws_s3 module

* Support Amazon S3 Dual-Stack Endpoints in aws_module

The default S3 endpoint only resolves to IPv4 addresses. By enabling
the dual-stack endpoint IPv6 too get added as an option.
2018-07-31 11:35:33 -04:00
joren485 240b65ddda Fix an unreachable else statement (#43463) 2018-07-31 08:27:13 +10:00
curry9999 486a43829c change aws_kms example (#43438) 2018-07-31 08:16:17 +10:00
Ryan Brown 43c508b3c3
[AWS] iam_role->AnsibleAWSModule and support IAM permission boundaries (#43270)
* Convert to AnsibleAWSModule and support IAM permission boundaries

* Handle adding boundary to existing role that lacks one

* Properly clean up role boundary associations on delete

* Handle case when policy boundary is `""` but does not exist
2018-07-30 15:06:23 -04:00
Ryan Brown 1c082e93ef
[aws] Catch errors raised when deleting objects remaining in an s3_bucket (#43358)
* Catch errors raised when deleting objects remaining in a bucket

* Also remove VersionId when it is not needed
2018-07-30 11:22:00 -04:00
flowerysong a08668cf00 Port ec2_tag to boto3 (#39712)
* Add volume manipulation to EC2 integration test policy

* Port ec2_tag to boto3
2018-07-27 15:45:18 -04:00
mjmayer a488b3a8ed elb_application_lb purge rules option (#43113)
* Add parameter to keep elb rules

Does not purge elb rules. This is usefull if running the elb_application_lb
 role and there is the desire to keep existing rules.

* Change variable name keep_rules to purge_rules

The descriptor purge has been used in the past.

* Changed default for purge_rules

Default is purge_rules. This is how the module has functioned previously. This change maintains
 the previous behavior.

* Add integration test for purge_rules flag

* Change wording of test task

* Fix merge conflcit

* Changed default for purge_rules

Default is purge_rules. This is how the module has functioned previously. This change maintains
 the previous behavior.

* merge conflcit

* Change wording of test task

* Add purge_rules option to test

* Change test description wording

* Expand purge_rules documentation

* Clarifies documentation for purge_rules option
2018-07-25 20:55:34 +10:00
Julien PRIGENT 151419b87a ec2.py: Set source_dest_check default value to None (#42863)
* ec2.py:
  * source_dest_check default value is now None, updated docs
  * Refactor restart_instances and startstop_instances -> Two new functions to prevent repetition: check_source_dest_attr and check_termination_protection
2018-07-23 11:57:30 -04:00
Ryan Brown b6f8de9204 [aws] Enable SQS events for `lambda_event` module (#43019)
* Enable SQS events for `lambda_event` module

* Handle SQS event type properly

* PEP8
2018-07-20 10:52:21 -04:00
Julien PRIGENT 3272188170 elasticache_parameter_group.py: add parameter group compatibility with redis4.0 (#43041) 2018-07-20 09:52:03 -04:00
Ryan Brown 07927edfac
[AWS] Fix SSM Parameter Store module when description is missing (#43020) 2018-07-20 09:32:13 -04:00
Will Thames 786613f426 Handle FieldLevelEncryptionId in cloudfront_distribution (#41770)
Ensure that FieldLevelEncryptionId is properly handled - passing it if
set, and keeping it if returned by GetDistribution

Update cloudfront_distribution tests to remove references to
test_identifier so test suite actually works

Fixes #40724
2018-07-19 08:27:13 -04:00
Roberto Barreda f0f335d2bd parametrize allow_reassignment in ec2_eni (#41982)
* parametrize allow_reassignment

* fix documentation

* fix version_added
2018-07-19 08:27:04 -04:00
yaakov kuperman 61b0981341 [AWS] check mode for ec2_elb and elb_instance (#42694)
what ELBs an instance will be deregistered from prior to actually
executing
2018-07-19 08:13:16 -04:00
Sloane Hertel 67cf2da2a1 Fix error when removing S3 lifecycle rules (#42762) 2018-07-18 13:13:33 -04:00
Vladimir Pavljuchenkov a7d0804279 Update cloudformation.py (#42948)
missed space

+label: docsite_pr
2018-07-18 13:06:38 -04:00
Guy Templeton 841b063d12 Fixes #37752 Delete all versions and deletemarkers in S3_Bucket when force paramet… (#39781)
* Delete all versions and deletemarkers in S3_Bucket when force parameter is passed

* Fix PEP8 style conformance

* Clarify explanation of force parameter
2018-07-18 08:49:01 -04:00
Sloane Hertel 2c3e6f8bd3 [elb_target_group] fix docs and add default for wait_timeout - fixes #42324 (#42477)
Add default for wait_timeout and version_added flag
2018-07-13 15:09:33 -04:00
Jared Hocutt 7e97380664 Fix docs for the volume parameter in the ec2_instance module (#42710)
The existing docs specified valid keys of ebs.device_type and ebs.device_size
but they should instead be ebs.volume_type and ebs.volume_size.
2018-07-13 09:48:25 -04:00
Gennady Aleksandrov 12057de1c6 Fix #38038 cloudfront_facts module returns only first page of response (#38045) 2018-07-12 15:07:57 -04:00
Calvin Wu 7e42e88cc1 ecs_taskdefinition can absent without containers argument (#41398)
* ecs_taskdefinition can absent without containers argument

* add regression test for absent with arn

* Add PassRole privilege for ecs_cluster to pass
2018-07-12 23:16:41 +10:00
Ryan Brown e4c28571d0 Update to AnsibleAWSModule and remove now-duplicate fail_json_aws function (#42629) 2018-07-12 22:52:28 +10:00
Sloane Hertel 7086863c52 [s3_bucket] import urlparse (#42474) 2018-07-11 12:40:45 -04:00
Grzegorz Śliwiński d6f20952fe Fix ec2_asg metric* option's version introduction - refs #25168 (#42626)
Introduced in 404f9260d9 during 2.6, so version_added: 2.5 was incorrect.
2018-07-11 10:57:11 -04:00
Toshio Kuratomi 9350a81ae4 Port modules away from __file__
* __file__ won't work if we want to invoke modules via -m or if we
  figure out how to keep modules from hitting the disk with pipelining.
* module.tmpdir is the new way to place a file where it will be cleaned
  automatically.

Change format string to not depend on __file__:

* cloud/amazon/ec2_elb_lb.py
* cloud/amazon/elb_classic_lb.py

Use module.tempdir:

* packaging/os/apt.py
* files/unarchive.py
2018-07-09 15:51:20 -07:00
Julien Vey 0f612d1b76 efs_facts: improve performance by reducing the number of api calls (#36520)
* efs_facts: improve performance by reducing the number of api calls

* Remove efs_facts tests from running in CI
2018-07-08 16:34:22 -04:00
Deiwin Sarjas 6412cbf84b aws_eks_cluster: Add wait functionality (#42259)
* aws_eks_cluster: Improve output documentation

This data is already returned by the module, it just wasn't documented. These
fields are required for accessing the created Kubernetes API with e.g. the
k8s_raw module.

* aws_eks_cluster: Add wait functionality

This enables further cluster configuration once it's created and active.

20 minutes was chosen as an arbitrary default, so that if it takes longer than
the documented "usually less than 10 minutes" it's still likely to succeed.

* Correct security group name in aws_eks tests

* Improve teardown of aws_eks tests

Fix minor teardown issues. The `pause` step is a placeholder until
a waiter for `state: absent`
2018-07-04 22:30:57 +10:00
mjmayer b60fc33eef Add execution_role_arn parameter (#41849)
* Add execution_role_arn parameter

* Change ecs_taskdefinition to use AnsibleAWSmodule

Botocore version checking is becomming more common. Changing the ecs_taskdefinition
to use AnsibleAWSmodule allows more easily for this.

* Change launch type check to use botocore_at_least function

* Remove execution_role_arn param from params dict

* Change check to use parameter

* Fix typo

* Add test for old botocore version

* Add test for execution role parameter

* Remove iam_role_facts task

Task was unecessary. The same information could be gathered by registering
the iam_role task.
2018-07-04 14:34:11 +10:00
cahlchang 92dce2943f [AWS] Add check Iam Role description update (#39773)
* add check description update

* Ensure 'Description' is in the role so KeyError isn't caused

* Fix changed when modifying the description with check mode
2018-07-03 18:01:14 -04:00
Rob b87e1a023d [aws] add support for http2 to AWS ALB (#40372) 2018-07-02 14:31:56 -04:00
cclauss 14bc625c2c Catch the raised exception so we can report failure (#42177)
[AWS iam_policy] Avoid the _undefined name_ by catching the raised exception into the variable __e__ so it can be reported on the following line.

flake8 testing of https://github.com/ansible/ansible on Python 3.6.3

$ __flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics__
```
./lib/ansible/modules/cloud/amazon/iam_policy.py:305:16: F821 undefined name 'e'
            if e.errno == 2:
               ^
./lib/ansible/modules/cloud/misc/rhevm.py:594:24: F821 undefined name 'e'
            setMsg(str(e))
                       ^
./lib/ansible/modules/files/archive.py:391:92: F821 undefined name 'e'
                module.fail_json(dest=dest, msg='Error deleting some source files: ' + str(e), files=errors)
                                                                                           ^
3    F821 undefined name 'e'
3
```
2018-07-02 08:45:36 -04:00
Ryan Brown d76e9008ee [aws] Default state of iam_managed_policy to `present` (#42069)
This default matches with the other IAM modules, such as iam_role.
2018-06-28 16:03:40 -04:00
Leif Madsen 4a05b6c8ba Fix EC2 example variable naming mismatch (#42048)
Fix EC2 example where variable name mismatched usage.

+label: docsite_pr
2018-06-28 13:05:43 -04:00
David Medberry ffba0a5d99 Update aws_caller_facts.py (#41936)
Minor typo (accont vs account) and rewording to remove dangling from.

+label: docsite_pr
2018-06-26 09:54:44 +10:00
Dennis Benkert 28d0a173db [aws] add limit on number of CloudFormation stack events fetched by cloudformation module (#41840)
* Add a module parameter to configure the max fetched AWS CFN stack events
* Add version documentation for new configuration option
* Increase default in order to make sure that enough are fetched by default. This align roughly with the limit of manageable resources in CloudFormation.
2018-06-25 12:39:32 -04:00
Ryan Brown c7a5e9d4eb Remove unused imports from aws_direct_connect_connection module (#41802)
* Remove unused imports from aws_direct_connect_connection module

* Fix tuple notation
2018-06-21 14:50:09 -04:00
Ryan Brown 5abb63ea56 Remove unused imports from aws_config_aggregator (#41803) 2018-06-21 13:36:07 -04:00
cpollard0 f93a171bb6 [aws][docs] Update max session duration in sts_assume_role documentation(#41765)
Update to reflect assume role updated durations as of March 2018. 
https://aws.amazon.com/blogs/security/enable-federated-api-access-to-your-aws-resources-for-up-to-12-hours-using-iam-roles/

+label: docsite_pr
2018-06-21 12:05:51 -04:00
Sloane Hertel c4a6bce69f ecs_service: make assign_public_ip option a boolean (#41759) 2018-06-21 12:17:01 +10:00
Ryan Brown 84612577ba [aws] Remove unused return in ec2_vpc_dhcp_option_facts module (#41709) 2018-06-19 16:36:45 -04:00
Ryan Brown 531cdddeed [aws] Remove unused return in ec2_vpc_igw_facts module (#41708) 2018-06-19 16:31:18 -04:00
Ryan Brown a01a17c772 [aws] Remove extra variable definition in ec2_vpc_nacl module (#41707) 2018-06-19 16:29:56 -04:00
Ryan Brown 22f1b71be0 [aws] Remove unused variable in ec2_asg module (#41706) 2018-06-19 16:23:41 -04:00
Ryan Brown 956fe7362d [aws] Fix unused return value in ec2_vpc_vgw_facts module (#41697) 2018-06-19 14:46:24 -04:00
Sloane Hertel 1268ce4d4f [ecs_service] fix assign_public_ip network configuration to module parameter rather than fixed string (#41689)
Fix parameter name

Use suboptions

document suboptions

Add a test to assert assign_public_ip is configurable
2018-06-19 14:35:53 -04:00
Ryan Brown 67d6e8177e [aws] remove unused variable in iam_user module (#41695) 2018-06-19 14:32:56 -04:00
Ryan Brown 1118e441e9 [aws] lambda_policy: Remove spurious definition of `policy` variable (#41693) 2018-06-19 14:30:04 -04:00
Ryan Brown fd8cc775a7 [aws] Simplify conditional in iam_cert module (#41691) 2018-06-19 14:28:43 -04:00
Ryan S. Brown 52acec3455 [aws] Remove double-defined variable from iam_policy module 2018-06-19 11:50:16 -04:00
Ryan S. Brown a5ec29ed49 Fix exception message in AWS lambda module 2018-06-19 10:11:14 -04:00
Ryan Brown 7dcaef8115
Fix aws_config_aggregator argument count error (#41686) 2018-06-19 08:48:46 -04:00
Deepakkothandan 5a72eef0a3 [ecs_service] fix assign_public ip for network configuration (#41685)
* fix assign_public ip for ecs_service

* used module.botocore_at_least instead of distutils
2018-06-19 08:46:40 -04:00
Kristian Østergaard Martensen d8fc027db5 [docs] Include "_facts" in module examples section (#41680)
The example says module name: "cloudwatchlogs_log_group"
where it should say: "cloudwatchlogs_log_group_facts"

+label: docsite_pr
2018-06-19 08:25:24 -04:00
Jon Dufresne bf304832ff Prefer readthedocs.io instead of readthedocs.org for doc links (#41537)
Read the Docs moved hosting to readthedocs.io instead of
readthedocs.org. Fix all links in the project.

For additional details, see:

https://blog.readthedocs.com/securing-subdomains/

> Starting today, Read the Docs will start hosting projects from
> subdomains on the domain readthedocs.io, instead of on
> readthedocs.org. This change addresses some security concerns around
> site cookies while hosting user generated data on the same domain as
> our dashboard.
2018-06-18 08:22:50 -04:00
Sloane Hertel 40d2df0ef3 Add AWS boto3 error code exception function is_boto3_error_code (#41202)
* Add aws/core.py function to check for specific AWS error codes

* Use sys.exc_info to get exception object if it isn't passed in

* Allow catching exceptions with is_boto3_error_code

* Replace from_code with is_boto3_error_code

* Return a type that will never be raised to support stricter type comparisons in Python 3+

* Use is_boto3_error_code in aws_eks_cluster

* Add duplicate-except to ignores when using is_boto3_error_code

* Add is_boto3_error_code to module development guideline docs
2018-06-12 12:15:16 -04:00
Christian Groschupp e59742eccd [aws] Remove walrus conditional in aws_s3 module when using custom s3_url (#36832)
fix aws_s3 module to use custum s3_url.
2018-06-07 15:07:52 -04:00
Will Thames 46886f8249 Improve aws_s3 permission handling for non S3 (#38574)
* Test case for missing permissions

* Update aws_s3 module to latest standards

* Use AnsibleAWSModule
* Handle BotoCoreErrors properly
* Test for BotoCoreErrors
* Check for XNotImplemented exceptions (#38569)

* Don't prematurely fail if user does not have s3:GetObject permission

* Allow S3 drop-ins to ignore put_object_acl and put_bucket_acl
2018-06-07 13:13:10 -04:00
Will Thames b235cb8734 aws_eks_cluster: New module for managing AWS EKS (#41183)
* aws_eks: New module for managing AWS EKS

aws_eks module is used for creating and removing EKS clusters.

Includes full test suite and updates to IAM policies to enable it.

* Clean up all security groups

* appease shippable

* Rename aws_eks module to aws_eks_cluster
2018-06-07 08:44:04 -04:00
Brandon W Maister 453a6f4047 Improve error message if policy_document does not exist (#40094) 2018-06-06 16:55:20 -04:00
Abhishek Garg 0512e9656b [aws] Doc fix for aws_ses_identity (#41194)
Examples have a typo of ses_identity instead of aws_ses_identity. Fixed that and proposing these changes here.

+label: docsite_pr
2018-06-06 16:10:20 -04:00
Will Thames f61164406e [aws] Support custom KMS keys in `aws_s3` module (#35761)
* Allow the use of 'aws:kms' as an encryption method
* Allow the use of a non standard KMS key
* Deduce whether AWS Signature Version 4 is required rather than specifying with a parameter
2018-06-06 11:22:52 -04:00
René Moser 146cc2dd9c
cloudwatchevent_rule: doc: fix schedule_expression in example (#41138) 2018-06-06 16:54:09 +02:00
Will Thames a60fe1946c Remove ECS policies from AWS compute policy
The compute policy was exceeding maximum size and contained
policies that already exist in ecs-policy.

Look up suitable AMIs rather than hardcode

We don't want to maintain multiple image IDs for multiple regions
so use ec2_ami_facts to set a suitable image ID

Improve exception handling
2018-06-06 20:51:50 +10:00
Michael Mayer fbcd6f8a65 Add Fargate support for ECS modules
Fargate instances do not require memory and cpu descriptors. EC2 instances
 do require descriptions. https://botocore.readthedocs.io/en/latest/reference/services/ecs.html#ECS.Client.describe_task_definition

Fargate requires that cpu and memory be defined at task definition level.
EC2 launch requires them to be defined at the container level.

Fargate requires the use of awsvpc for the networking_mode. Also updated,
the documentation regarding where and when memory/cpu needs to the assigned.

The task_definition variable for the awspvc configuration colided with
the ecs_service for the bridge network. This would cause the test to fail.

Add testing for fargate

Add examples for fargate and ec2
2018-06-06 20:51:50 +10:00
Jon Steinich 8eb9cc3217 add launchType to ecs_service per #35607
update ecs_taskdefinition to support fargate tasks per #35607
2018-06-06 20:51:50 +10:00
Tine Jozelj ab96a84154 Fix ec2_ami block_device_mapping volume_size to be int in 2.5 (#40938)
* fix ec2_ami block_device_mapping size to be int

* fixed cr issues

renamed `type` to `attribute_type`
reused `new_item` instead of creating new variable `value`
2018-06-04 10:03:59 -04:00
Ryan Brown 7f8654d586 Add minimum botocore and boto3 checking to AnsibleAWSModule (#41005)
* Add minimum botocore and boto3 checking to AnsibleAWSModule
2018-06-01 18:45:22 -04:00
René Moser 4006f1ba40 ec2_lc: fix state doc matching arg_spec (#40792)
* ec2_lc: fix state doc matching arg_spec

* Remove unused variable
2018-05-30 09:34:23 -04:00
Ed Costello c4536bc827 Support check mode in aws_ses_identity module (#38422)
* Port aws_ses_identity module to use AnsibleAWSModule

* Support Check Mode in aws_ses_identity

* Add tests for check mode

* Move feedback forwarding parameter check to before any changes are made.
2018-05-25 18:46:25 -04:00
ossark 90aa68be41 Fixes #38484 (#38522)
* Fixes #38484

* Makes asn optional
2018-05-25 14:17:18 -04:00
Sloane Hertel 9d30434b6c
ec2_ami_facts: return images in a consistent order (#40679)
* ec2_ami_facts: return images in a consistent order
2018-05-25 14:10:33 -04:00
Rob 38c13259b3 [AWS] New module: aws_glue_job (#39493)
* New module - glue_job

* Review fixes
2018-05-25 13:12:39 -04:00
Rob 1b45a755a2 [AWS] Add helpful failure message when using wrong lb module (#40433)
Remove the default empty dict parameter for tags.
2018-05-25 13:10:39 -04:00
Moritz Grimm f16ec4e64c [AWS] Add check for empty values in elasticache module - fixes #40063 (#40454) 2018-05-25 13:09:11 -04:00
Rob 858f0fc000 New module: AWS Network load balancer (#33808)
* New module - elb_network_lb

* Fix creating a load balancer without tags

* Linter

Fix purging tags

Remove extra imports

* add support for cross zone lb, doc update and fix tagging

* pep8 fixes

* Add integration tests for elb_network_lb module

* more pep8

* Remove non-applicable option for NLBs

* fix target protocol

* pep8
2018-05-24 16:38:34 -04:00
Ryan Brown 046561bbb0 Split AWS Config modules (#40111)
* Adding module for AWS Config service

* adding integration tests

* Split resource types into their own modules

* Properly use resource_prefix and retry on IAM "eventual consistency"

* Add config aggregator module

* AWS config aggregator integration test fixes

* AWS config recorder module

* Config aggregation auth rule

* Use resource_prefix in IAM role name

* Disable config tests
2018-05-24 15:52:41 -04:00
Sloane Hertel a90342ac33 ec2_vpc_net: fix hanging waiter when using host bits in a CIDR block (#40622)
* ec2_vpc_net: fix hanging waiter when using hostbits in a CIDR block

* remove extra line
2018-05-24 15:51:23 -04:00
Ryan Brown 858a1b09bb EC2_group module refactor (formerly pr/37255) (#38678)
* Refactor ec2_group

Replace nested for loops with list comprehensions

Purge rules before adding new ones in case sg has maximum permitted rules

* Add check mode tests for ec2_group

* add tests

* Remove dead code

* Fix integration test assertions for old boto versions

* Add waiter for security group that is autocreated

* Add support for in-account group rules

* Add common util to get AWS account ID

Fixes #31383

* Fix protocol number and add separate tests for egress rule handling

* Return egress rule treatment to be backwards compatible

* Remove functions that were obsoleted by `Rule` namedtuple

* IP tests

* Move description updates to a function

* Fix string formatting missing index

* Add tests for auto-creation of the same group in quick succession

* Resolve use of brand-new group in a rule without a description

* Clean up duplicated get-security-group function

* Add reverse cleanup in case of dependency issues

* Add crossaccount ELB group support

* Deal with non-STS calls to account API

* Add filtering of owner IDs that match the current account
2018-05-24 11:53:21 -04:00
Rob 49f569d915 New module: AWS Glue connection (#39492)
* New module = AWS Glue connection

* Add a few initial integration tests

* Add alias for CI

* module rename

* finish module rename

* add loop when getting glue connection again so we dont get None

* Limit number of retries to get new glue connection info
2018-05-24 11:35:24 -04:00
saydamir 8666c08327 ec2_instance - fix instance creation with IPv6 (#40334)
IPv6 addresses and IPv6 address count may not be specified on the same request https://docs.aws.amazon.com/cli/latest/reference/ec2/assign-ipv6-addresses.html#options
2018-05-24 10:10:55 -04:00
Ryan Brown ae49f4fd35 Coerce VPC tags from to string types to prevent spurious `changed` (#40422)
* Coerce VPC tags from to string types to prevent spurious `changed`

* Remove dict comprehension for 2.6 compatibility
2018-05-23 10:17:34 -04:00
Matt Clay 8deced3e04
Fix shebangs and file modes and update tests. (#40563)
* Add execute bit sanity test and apply fixes.
* Add shebang test for `lib` dirs and apply fixes.
* Shebang and execute bit cleanup.
2018-05-22 14:25:36 -07:00
Ryan Brown 858b1c277b
[docs] Update `ec2` module to use wait_for_connection instead of wait_for (#40171) 2018-05-22 11:21:04 -04:00
Ben Berry 6a4f3fb729 S3 versioned lifecycle (#40161)
* - add tests for s3_lifecycle
- fix a bug comparing transitions with different storage_types

* make s3_lifecycle work with boto3

* add noncurrent version lifecycle rules
2018-05-17 15:07:40 -04:00
Sloane Hertel 571c183f59
Fix failing aws_ses_identity integration tests (#39560)
* Fix failing aws_ses_identity integration tests

Reduce boilerplate with yaml anchor

* remove unstable test alias

* Update feedback forwarding check to use desired state rather than
repeated API calls.
2018-05-17 13:45:02 -04:00
Will Thames 57c801c34f RDS: split into more sensible modules
RDS instance and snapshot facts modules
Move common code into module_utils/rds.py

This work is a precursor to new rds_snapshot
and rds_instance modules

Improve rds_snapshot_facts to latest AWS standards

Improve exception handling, pagination etc.

Version added

Add clustered snapshot facts

Add proper RETURN information for snapshots and cluster_snapshots

pep8

Co-authored-by: Michael De La Rue <jababubic.margoteen@spamgourmet.com>
2018-05-16 22:48:57 -04:00