From f8d522de69552fcb75695c266ed3e583bdd9c6b5 Mon Sep 17 00:00:00 2001 From: Will Thames Date: Wed, 5 Jul 2017 23:06:08 +1000 Subject: [PATCH] Support check mode for efs_facts (#26273) Facts modules support check mode by default Fix pep8 compliance --- lib/ansible/modules/cloud/amazon/efs_facts.py | 26 ++++++++++++------- test/sanity/pep8/legacy-files.txt | 1 - 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/ansible/modules/cloud/amazon/efs_facts.py b/lib/ansible/modules/cloud/amazon/efs_facts.py index 9f50e44c5bf..7e08ef7b5fa 100644 --- a/lib/ansible/modules/cloud/amazon/efs_facts.py +++ b/lib/ansible/modules/cloud/amazon/efs_facts.py @@ -168,12 +168,15 @@ tags: from time import sleep from collections import defaultdict +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.ec2 import boto3_conn, get_aws_connection_info, ec2_argument_spec +from ansible.module_utils.ec2 import camel_dict_to_snake_dict, HAS_BOTO3 + try: from botocore.exceptions import ClientError - import boto3 - HAS_BOTO3 = True except ImportError as e: - HAS_BOTO3 = False + pass # caught by imported HAS_BOTO3 + class EFSConnection(object): STATE_CREATING = 'creating' @@ -297,6 +300,7 @@ def prefix_to_attr(attr_id): return attr_by_prefix[prefix] return 'IpAddress' + def first_or_default(items, default=None): """ Helper method to fetch first element of list (if exists) @@ -305,6 +309,7 @@ def first_or_default(items, default=None): return item return default + def has_tags(available, required): """ Helper method to determine if tag requested already exists @@ -314,6 +319,7 @@ def has_tags(available, required): return False return True + def has_targets(available, required): """ Helper method to determine if mount tager requested already exists @@ -324,6 +330,7 @@ def has_targets(available, required): return False return True + def group_list_of_dict(array): """ Helper method to group list of dict to dict with all possible values @@ -341,13 +348,14 @@ def main(): """ argument_spec = ec2_argument_spec() argument_spec.update(dict( - id=dict(required=False, type='str', default=None), - name=dict(required=False, type='str', default=None), - tags=dict(required=False, type="dict", default={}), - targets=dict(required=False, type="list", default=[]) + id=dict(), + name=dict(), + tags=dict(type="dict", default={}), + targets=dict(type="list", default=[]) )) - module = AnsibleModule(argument_spec=argument_spec) + module = AnsibleModule(argument_spec=argument_spec, + supports_check_mode=True) if not HAS_BOTO3: module.fail_json(msg='boto3 required for this module') @@ -373,8 +381,6 @@ def main(): file_systems_info = [camel_dict_to_snake_dict(x) for x in file_systems_info] module.exit_json(changed=False, ansible_facts={'efs': file_systems_info}) -from ansible.module_utils.basic import * -from ansible.module_utils.ec2 import * if __name__ == '__main__': main() diff --git a/test/sanity/pep8/legacy-files.txt b/test/sanity/pep8/legacy-files.txt index 8aaf6983202..998008ae339 100644 --- a/test/sanity/pep8/legacy-files.txt +++ b/test/sanity/pep8/legacy-files.txt @@ -44,7 +44,6 @@ lib/ansible/modules/cloud/amazon/ecs_service_facts.py lib/ansible/modules/cloud/amazon/ecs_task.py lib/ansible/modules/cloud/amazon/ecs_taskdefinition.py lib/ansible/modules/cloud/amazon/efs.py -lib/ansible/modules/cloud/amazon/efs_facts.py lib/ansible/modules/cloud/amazon/elasticache.py lib/ansible/modules/cloud/amazon/elasticache_subnet_group.py lib/ansible/modules/cloud/amazon/execute_lambda.py