diff options
Diffstat (limited to 'lib/ansible/modules/cloud/amazon/ec2_group_info.py')
-rw-r--r-- | lib/ansible/modules/cloud/amazon/ec2_group_info.py | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/lib/ansible/modules/cloud/amazon/ec2_group_info.py b/lib/ansible/modules/cloud/amazon/ec2_group_info.py deleted file mode 100644 index 733f7d0622..0000000000 --- a/lib/ansible/modules/cloud/amazon/ec2_group_info.py +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/python -# Copyright: Ansible Project -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) - -from __future__ import absolute_import, division, print_function -__metaclass__ = type - - -ANSIBLE_METADATA = {'metadata_version': '1.1', - 'status': ['preview'], - 'supported_by': 'community'} - - -DOCUMENTATION = ''' ---- -module: ec2_group_info -short_description: Gather information about ec2 security groups in AWS. -description: - - Gather information about ec2 security groups in AWS. - - This module was called C(ec2_group_facts) before Ansible 2.9. The usage did not change. -version_added: "2.3" -requirements: [ boto3 ] -author: -- Henrique Rodrigues (@Sodki) -options: - filters: - description: - - A dict of filters to apply. Each dict item consists of a filter key and a filter value. See - U(https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html) for - possible filters. Filter names and values are case sensitive. You can also use underscores (_) - instead of dashes (-) in the filter keys, which will take precedence in case of conflict. - required: false - default: {} - type: dict -notes: - - By default, the module will return all security groups. To limit results use the appropriate filters. - -extends_documentation_fragment: - - aws - - ec2 -''' - -EXAMPLES = ''' -# Note: These examples do not set authentication details, see the AWS Guide for details. - -# Gather information about all security groups -- ec2_group_info: - -# Gather information about all security groups in a specific VPC -- ec2_group_info: - filters: - vpc-id: vpc-12345678 - -# Gather information about all security groups in a specific VPC -- ec2_group_info: - filters: - vpc-id: vpc-12345678 - -# Gather information about a security group -- ec2_group_info: - filters: - group-name: example-1 - -# Gather information about a security group by id -- ec2_group_info: - filters: - group-id: sg-12345678 - -# Gather information about a security group with multiple filters, also mixing the use of underscores as filter keys -- ec2_group_info: - filters: - group_id: sg-12345678 - vpc-id: vpc-12345678 - -# Gather information about various security groups -- ec2_group_info: - filters: - group-name: - - example-1 - - example-2 - - example-3 - -# Gather information about any security group with a tag key Name and value Example. -# The quotes around 'tag:name' are important because of the colon in the value -- ec2_group_info: - filters: - "tag:Name": Example -''' - -RETURN = ''' -security_groups: - description: Security groups that match the provided filters. Each element consists of a dict with all the information related to that security group. - type: list - returned: always - sample: -''' - -try: - from botocore.exceptions import BotoCoreError, ClientError -except ImportError: - pass # caught by AnsibleAWSModule - -from ansible.module_utils.aws.core import AnsibleAWSModule -from ansible.module_utils.ec2 import (boto3_tag_list_to_ansible_dict, ansible_dict_to_boto3_filter_list, camel_dict_to_snake_dict) - - -def main(): - argument_spec = dict( - filters=dict(default={}, type='dict') - ) - - module = AnsibleAWSModule(argument_spec=argument_spec, supports_check_mode=True) - if module._name == 'ec2_group_facts': - module.deprecate("The 'ec2_group_facts' module has been renamed to 'ec2_group_info'", version='2.13') - - connection = module.client('ec2') - - # Replace filter key underscores with dashes, for compatibility, except if we're dealing with tags - sanitized_filters = module.params.get("filters") - for key in list(sanitized_filters): - if not key.startswith("tag:"): - sanitized_filters[key.replace("_", "-")] = sanitized_filters.pop(key) - - try: - security_groups = connection.describe_security_groups( - Filters=ansible_dict_to_boto3_filter_list(sanitized_filters) - ) - except (BotoCoreError, ClientError) as e: - module.fail_json_aws(e, msg='Failed to describe security groups') - - snaked_security_groups = [] - for security_group in security_groups['SecurityGroups']: - # Modify boto3 tags list to be ansible friendly dict - # but don't camel case tags - security_group = camel_dict_to_snake_dict(security_group) - security_group['tags'] = boto3_tag_list_to_ansible_dict(security_group.get('tags', {}), tag_name_key_name='key', tag_value_key_name='value') - snaked_security_groups.append(security_group) - - module.exit_json(security_groups=snaked_security_groups) - - -if __name__ == '__main__': - main() |