Commit Graph

984 Commits

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