Commit graph

1555 commits

Author SHA1 Message Date
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