Skip to content

Commit

Permalink
Bulk migration to AnsibleAWSModule (ansible-collections#173)
Browse files Browse the repository at this point in the history
* Update comments to reference AnsibleAWSModule rather than AnsibleModule
* Bulk re-order imports and split onto one from import per-line.
* Add AnsibleAWSModule imports
* Migrate boto 2 based modules to AnsibleAWSModule
* Move boto3-only modules over to AnsibleAWSModule
* Remove extra ec2_argument_spec calls - not needed now we're using AnsibleAWSModule
* Remove most HAS_BOTO3 code, it's handled by AnsibleAWSModule
* Handle missing Boto 2 consistently  (HAS_BOTO)
* Remove AnsibleModule imports
* Changelog fragment

This commit was initially merged in https://github.com/ansible-collections/community.aws
See: ansible-collections/community.aws@818c6d2
  • Loading branch information
tremble authored and alinabuzachis committed Oct 11, 2024
1 parent d786232 commit 0b873b5
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 39 deletions.
30 changes: 13 additions & 17 deletions plugins/modules/ec2_vpc_peer.py
Original file line number Diff line number Diff line change
Expand Up @@ -219,13 +219,14 @@
try:
import botocore
except ImportError:
pass # caught by imported HAS_BOTO3
pass # Handled by AnsibleAWSModule

import distutils.version
import traceback

from ansible.module_utils.basic import AnsibleModule
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import boto3_conn, ec2_argument_spec, get_aws_connection_info, HAS_BOTO3
from ansible_collections.amazon.aws.plugins.module_utils.core import AnsibleAWSModule
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import boto3_conn
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import get_aws_connection_info
from ansible_collections.amazon.aws.plugins.module_utils.core import is_boto3_error_code


Expand Down Expand Up @@ -392,28 +393,23 @@ def find_pcx_by_id(pcx_id, client, module):


def main():
argument_spec = ec2_argument_spec()
argument_spec.update(
dict(
vpc_id=dict(),
peer_vpc_id=dict(),
peer_region=dict(),
peering_id=dict(),
peer_owner_id=dict(),
tags=dict(required=False, type='dict'),
state=dict(default='present', choices=['present', 'absent', 'accept', 'reject'])
)
argument_spec = dict(
vpc_id=dict(),
peer_vpc_id=dict(),
peer_region=dict(),
peering_id=dict(),
peer_owner_id=dict(),
tags=dict(required=False, type='dict'),
state=dict(default='present', choices=['present', 'absent', 'accept', 'reject']),
)
required_if = [
('state', 'present', ['vpc_id', 'peer_vpc_id']),
('state', 'accept', ['peering_id']),
('state', 'reject', ['peering_id'])
]

module = AnsibleModule(argument_spec=argument_spec, required_if=required_if)
module = AnsibleAWSModule(argument_spec=argument_spec, required_if=required_if)

if not HAS_BOTO3:
module.fail_json(msg='json, botocore and boto3 are required.')
state = module.params.get('state')
peering_id = module.params.get('peering_id')
vpc_id = module.params.get('vpc_id')
Expand Down
34 changes: 12 additions & 22 deletions plugins/modules/ec2_vpc_peering_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,14 @@
try:
import botocore
except ImportError:
pass # will be picked up by imported HAS_BOTO3
pass # Handled by AnsibleAWSModule

from ansible.module_utils.basic import AnsibleModule
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import (boto3_tag_list_to_ansible_dict,
ec2_argument_spec,
boto3_conn,
get_aws_connection_info,
ansible_dict_to_boto3_filter_list,
HAS_BOTO3,
camel_dict_to_snake_dict,
)
from ansible_collections.amazon.aws.plugins.module_utils.core import AnsibleAWSModule
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import boto3_tag_list_to_ansible_dict
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import boto3_conn
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import get_aws_connection_info
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import ansible_dict_to_boto3_filter_list
from ansible_collections.amazon.aws.plugins.module_utils.ec2 import camel_dict_to_snake_dict


def date_handler(obj):
Expand All @@ -103,23 +100,16 @@ def get_vpc_peers(client, module):


def main():
argument_spec = ec2_argument_spec()
argument_spec.update(
dict(
filters=dict(default=dict(), type='dict'),
peer_connection_ids=dict(default=None, type='list', elements='str'),
)
argument_spec = dict(
filters=dict(default=dict(), type='dict'),
peer_connection_ids=dict(default=None, type='list', elements='str'),
)

module = AnsibleModule(argument_spec=argument_spec,
supports_check_mode=True)
module = AnsibleAWSModule(argument_spec=argument_spec,
supports_check_mode=True,)
if module._name == 'ec2_vpc_peering_facts':
module.deprecate("The 'ec2_vpc_peering_facts' module has been renamed to 'ec2_vpc_peering_info'", date='2021-12-01', collection_name='community.aws')

# Validate Requirements
if not HAS_BOTO3:
module.fail_json(msg='botocore and boto3 are required.')

try:
region, ec2_url, aws_connect_kwargs = get_aws_connection_info(module, boto3=True)
except NameError as e:
Expand Down

0 comments on commit 0b873b5

Please sign in to comment.