diff --git a/lib/ansible/modules/cloud/amazon/execute_lambda.py b/lib/ansible/modules/cloud/amazon/execute_lambda.py index 3645f95eec..884fe91596 100644 --- a/lib/ansible/modules/cloud/amazon/execute_lambda.py +++ b/lib/ansible/modules/cloud/amazon/execute_lambda.py @@ -140,20 +140,24 @@ import json import traceback try: - import boto3 + import botocore HAS_BOTO3 = True except ImportError: HAS_BOTO3 = False +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.ec2 import boto3_conn, ec2_argument_spec, get_aws_connection_info +from ansible.module_utils._text import to_native + def main(): argument_spec = ec2_argument_spec() argument_spec.update(dict( name = dict(), function_arn = dict(), - wait = dict(choices=BOOLEANS, default=True, type='bool'), - tail_log = dict(choices=BOOLEANS, default=False, type='bool'), - dry_run = dict(choices=BOOLEANS, default=False, type='bool'), + wait = dict(default=True, type='bool'), + tail_log = dict(default=False, type='bool'), + dry_run = dict(default=False, type='bool'), version_qualifier = dict(), payload = dict(default={}, type='dict'), )) @@ -192,7 +196,7 @@ def main(): client = boto3_conn(module, conn_type='client', resource='lambda', region=region, endpoint=ec2_url, **aws_connect_kwargs) except (botocore.exceptions.ClientError, botocore.exceptions.ValidationError) as e: - module.fail_json(msg="Failure connecting boto3 to AWS", exception=traceback.format_exc()) + module.fail_json(msg="Failure connecting boto3 to AWS: %s" % to_native(e), exception=traceback.format_exc()) invoke_params = {} @@ -282,9 +286,6 @@ def main(): module.exit_json(changed=True, result=results) -# import module snippets -from ansible.module_utils.basic import * -from ansible.module_utils.ec2 import * if __name__ == '__main__': main() diff --git a/lib/ansible/modules/cloud/google/gcp_backend_service.py b/lib/ansible/modules/cloud/google/gcp_backend_service.py index bd3fc85f7e..504d49ec36 100644 --- a/lib/ansible/modules/cloud/google/gcp_backend_service.py +++ b/lib/ansible/modules/cloud/google/gcp_backend_service.py @@ -352,7 +352,7 @@ def main(): healthchecks=dict(type='list', required=True), service_account_email=dict(), service_account_permissions=dict(type='list'), - enable_cdn=dict(type='bool', choices=[True, False]), + enable_cdn=dict(type='bool'), port_name=dict(type='str'), protocol=dict(type='str', default='TCP', choices=['HTTP', 'HTTPS', 'SSL', 'TCP']), diff --git a/lib/ansible/modules/cloud/lxc/lxc_container.py b/lib/ansible/modules/cloud/lxc/lxc_container.py index 591278167d..5e615514a6 100644 --- a/lib/ansible/modules/cloud/lxc/lxc_container.py +++ b/lib/ansible/modules/cloud/lxc/lxc_container.py @@ -431,7 +431,13 @@ lxc_container: sample: True """ +import os +import os.path import re +import shutil +import subprocess +import tempfile +import time try: import lxc @@ -440,6 +446,10 @@ except ImportError: else: HAS_LXC = True +# import module bits +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.parsing.convert_bool import BOOLEANS_FALSE, BOOLEANS_TRUE + # LXC_COMPRESSION_MAP is a map of available compression types when creating # an archive of a container. @@ -562,11 +572,6 @@ def create_script(command): :type command: ``str`` """ - import os - import os.path as path - import subprocess - import tempfile - (fd, script_file) = tempfile.mkstemp(prefix='lxc-attach-script') f = os.fdopen(fd, 'wb') try: @@ -682,7 +687,7 @@ class LxcContainerManagement(object): variables.pop(v, None) return_dict = dict() - false_values = [None, ''] + BOOLEANS_FALSE + false_values = BOOLEANS_FALSE.union([None, '']) for k, v in variables.items(): _var = self.module.params.get(k) if _var not in false_values: @@ -1761,7 +1766,5 @@ def main(): lxc_manage.run() -# import module bits -from ansible.module_utils.basic import * if __name__ == '__main__': main() diff --git a/lib/ansible/modules/monitoring/logicmonitor.py b/lib/ansible/modules/monitoring/logicmonitor.py index 8cf07b8e5e..c75182d614 100644 --- a/lib/ansible/modules/monitoring/logicmonitor.py +++ b/lib/ansible/modules/monitoring/logicmonitor.py @@ -531,7 +531,10 @@ import socket import sys import types +from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.six.moves.urllib.parse import urlencode +from ansible.module_utils.urls import open_url + HAS_LIB_JSON = True try: @@ -604,8 +607,7 @@ class LogicMonitor(object): self.fail(msg="Error: " + resp["errmsg"]) else: return raw - except IOError: - ioe = get_exception() + except IOError as ioe: self.fail(msg="Error: Exception making RPC call to " + "https://" + self.company + "." + self.lm_url + "/rpc/" + action + "\nException" + str(ioe)) @@ -633,8 +635,7 @@ class LogicMonitor(object): "https://" + self.company + "." + self.lm_url + "/do/" + action + "?" + param_str) return f.read() - except IOError: - ioe = get_exception() + except IOError as ioe: self.fail(msg="Error: Exception making RPC call to " + "https://" + self.company + "." + self.lm_url + "/do/" + action + "\nException" + str(ioe)) @@ -2171,7 +2172,7 @@ def main(): duration=dict(required=False, default=30), properties=dict(required=False, default={}, type="dict"), groups=dict(required=False, default=[], type="list"), - alertenable=dict(required=False, default="true", choices=BOOLEANS) + alertenable=dict(required=False, default="true", type="bool") ), supports_check_mode=True ) @@ -2182,10 +2183,5 @@ def main(): selector(module) -from ansible.module_utils.basic import * -from ansible.module_utils.urls import * -from ansible.module_utils.urls import open_url - - if __name__ == "__main__": main() diff --git a/lib/ansible/modules/network/cumulus/_cl_bond.py b/lib/ansible/modules/network/cumulus/_cl_bond.py index ba919b4655..c7fc5c987d 100644 --- a/lib/ansible/modules/network/cumulus/_cl_bond.py +++ b/lib/ansible/modules/network/cumulus/_cl_bond.py @@ -216,6 +216,12 @@ msg: sample: "interface bond0 config updated" ''' +import os +import re +import tempfile + +from ansible.module_utils.basic import AnsibleModule + # handy helper for calling system calls. # calls AnsibleModule.run_command and prints a more appropriate message @@ -437,9 +443,9 @@ def main(): virtual_mac=dict(type='str'), vids=dict(type='list'), pvid=dict(type='str'), - mstpctl_portnetwork=dict(type='bool', choices=BOOLEANS), - mstpctl_portadminedge=dict(type='bool', choices=BOOLEANS), - mstpctl_bpduguard=dict(type='bool', choices=BOOLEANS), + mstpctl_portnetwork=dict(type='bool'), + mstpctl_portadminedge=dict(type='bool'), + mstpctl_bpduguard=dict(type='bool'), clag_id=dict(type='str'), min_links=dict(type='int', default=1), mode=dict(type='str', default='802.3ad'), @@ -484,11 +490,6 @@ def main(): module.exit_json(changed=_changed, msg=_msg) -# import module snippets -from ansible.module_utils.basic import * -import tempfile -import os -import re if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/cumulus/_cl_bridge.py b/lib/ansible/modules/network/cumulus/_cl_bridge.py index 516c4e1093..066adf1af9 100644 --- a/lib/ansible/modules/network/cumulus/_cl_bridge.py +++ b/lib/ansible/modules/network/cumulus/_cl_bridge.py @@ -164,6 +164,12 @@ msg: sample: "interface bond0 config updated" ''' +import os +import re +import tempfile + +from ansible.module_utils.basic import AnsibleModule + # handy helper for calling system calls. # calls AnsibleModule.run_command and prints a more appropriate message @@ -373,8 +379,8 @@ def main(): vids=dict(type='list'), pvid=dict(type='str'), mstpctl_treeprio=dict(type='str'), - vlan_aware=dict(type='bool', choices=BOOLEANS), - stp=dict(type='bool', default='yes', choices=BOOLEANS), + vlan_aware=dict(type='bool'), + stp=dict(type='bool', default='yes'), location=dict(type='str', default='/etc/network/interfaces.d') ), @@ -410,11 +416,6 @@ def main(): module.exit_json(changed=_changed, msg=_msg) -# import module snippets -from ansible.module_utils.basic import * -import tempfile -import os -import re if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/cumulus/_cl_img_install.py b/lib/ansible/modules/network/cumulus/_cl_img_install.py index 7791a0549a..6ac582e97f 100644 --- a/lib/ansible/modules/network/cumulus/_cl_img_install.py +++ b/lib/ansible/modules/network/cumulus/_cl_img_install.py @@ -110,6 +110,14 @@ msg: sample: "interface bond0 config updated" ''' +import re +from urlparse import urlparse + +# import module snippets +from ansible.module_utils.basic import AnsibleModule, platform +# incompatible with ansible 1.4.4 - ubuntu 12.04 version +# from ansible.module_utils.urls import * + def check_url(module, url): parsed_url = urlparse(url) @@ -124,8 +132,7 @@ def check_url(module, url): def run_cl_cmd(module, cmd, check_rc=True): try: (rc, out, err) = module.run_command(cmd, check_rc=check_rc) - except Exception: - e = get_exception() + except Exception as e: module.fail_json(msg=e.strerror) # trim last line as it is always empty ret = out.splitlines() @@ -301,7 +308,7 @@ def main(): argument_spec=dict( src=dict(required=True, type='str'), version=dict(type='str'), - switch_slot=dict(type='bool', choices=BOOLEANS, default=False), + switch_slot=dict(type='bool', default=False), ), ) @@ -315,12 +322,5 @@ def main(): install_img(module) -# import module snippets -from ansible.module_utils.basic import * -# incompatible with ansible 1.4.4 - ubuntu 12.04 version -# from ansible.module_utils.urls import * -from urlparse import urlparse -import re - if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/cumulus/_cl_interface.py b/lib/ansible/modules/network/cumulus/_cl_interface.py index a157472700..02a033c972 100644 --- a/lib/ansible/modules/network/cumulus/_cl_interface.py +++ b/lib/ansible/modules/network/cumulus/_cl_interface.py @@ -209,6 +209,13 @@ msg: sample: "interface bond0 config updated" ''' +import os +import platform +import re +import tempfile + +from ansible.module_utils.basic import AnsibleModule + # handy helper for calling system calls. # calls AnsibleModule.run_command and prints a more appropriate message @@ -401,10 +408,10 @@ def main(): virtual_mac=dict(type='str'), vids=dict(type='list'), pvid=dict(type='str'), - mstpctl_portnetwork=dict(type='bool', choices=BOOLEANS), - mstpctl_portadminedge=dict(type='bool', choices=BOOLEANS), - mstpctl_bpduguard=dict(type='bool', choices=BOOLEANS), - clagd_enable=dict(type='bool', choices=BOOLEANS), + mstpctl_portnetwork=dict(type='bool'), + mstpctl_portadminedge=dict(type='bool'), + mstpctl_bpduguard=dict(type='bool'), + clagd_enable=dict(type='bool'), clagd_priority=dict(type='str'), clagd_peer_ip=dict(type='str'), clagd_sys_mac=dict(type='str'), @@ -446,10 +453,6 @@ def main(): module.exit_json(changed=_changed, msg=_msg) -# import module snippets -from ansible.module_utils.basic import * -import tempfile -import os if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/cumulus/_cl_license.py b/lib/ansible/modules/network/cumulus/_cl_license.py index d1def5128c..48956b34fc 100644 --- a/lib/ansible/modules/network/cumulus/_cl_license.py +++ b/lib/ansible/modules/network/cumulus/_cl_license.py @@ -107,6 +107,9 @@ msg: sample: "interface bond0 config updated" ''' +# import module snippets +from ansible.module_utils.basic import AnsibleModule + CL_LICENSE_PATH='/usr/cumulus/bin/cl-license' def install_license(module): @@ -121,8 +124,7 @@ def main(): module = AnsibleModule( argument_spec=dict( src=dict(required=True, type='str'), - force=dict(type='bool', choices=BOOLEANS, - default=False) + force=dict(type='bool', default=False) ), ) @@ -142,9 +144,5 @@ def main(): module.exit_json(changed=module.changed, msg=module.msg) -# import module snippets -from ansible.module_utils.basic import * -# from ansible.module_utils.urls import * - if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/f5/bigip_config.py b/lib/ansible/modules/network/f5/bigip_config.py index 240bdc93d8..444dd49b1d 100644 --- a/lib/ansible/modules/network/f5/bigip_config.py +++ b/lib/ansible/modules/network/f5/bigip_config.py @@ -146,7 +146,6 @@ from ansible.module_utils.f5_utils import ( iteritems, defaultdict ) -from ansible.module_utils.basic import BOOLEANS class Parameters(AnsibleF5Parameters): diff --git a/lib/ansible/modules/network/f5/bigip_gtm_datacenter.py b/lib/ansible/modules/network/f5/bigip_gtm_datacenter.py index 08f69cbdfb..71b2a356e7 100644 --- a/lib/ansible/modules/network/f5/bigip_gtm_datacenter.py +++ b/lib/ansible/modules/network/f5/bigip_gtm_datacenter.py @@ -118,6 +118,10 @@ try: except ImportError: HAS_F5SDK = False +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.ec2 import camel_dict_to_snake_dict +from ansible.module_utils.f5_utils import F5ModuleError, f5_argument_spec + class BigIpGtmDatacenter(object): def __init__(self, *args, **kwargs): @@ -346,7 +350,7 @@ def main(): meta_args = dict( contact=dict(required=False, default=None), description=dict(required=False, default=None), - enabled=dict(required=False, type='bool', default=None, choices=BOOLEANS), + enabled=dict(required=False, type='bool', default=None), location=dict(required=False, default=None), name=dict(required=True) ) @@ -365,9 +369,6 @@ def main(): except F5ModuleError as e: module.fail_json(msg=str(e)) -from ansible.module_utils.basic import * -from ansible.module_utils.ec2 import camel_dict_to_snake_dict -from ansible.module_utils.f5_utils import * if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/f5/bigip_iapp_template.py b/lib/ansible/modules/network/f5/bigip_iapp_template.py index 7027ff507a..27e9a52f4b 100644 --- a/lib/ansible/modules/network/f5/bigip_iapp_template.py +++ b/lib/ansible/modules/network/f5/bigip_iapp_template.py @@ -118,7 +118,15 @@ RETURN = ''' import re import uuid -from ansible.module_utils.basic import BOOLEANS +try: + from StringIO import StringIO +except ImportError: + from io import StringIO + +from f5.utils.iapp_parser import ( + NonextantTemplateNameException +) + from ansible.module_utils.f5_utils import ( AnsibleF5Client, AnsibleF5Parameters, @@ -128,14 +136,6 @@ from ansible.module_utils.f5_utils import ( defaultdict, iControlUnexpectedHTTPError ) -from f5.utils.iapp_parser import ( - NonextantTemplateNameException -) - -try: - from StringIO import StringIO -except ImportError: - from io import StringIO class Parameters(AnsibleF5Parameters): @@ -453,7 +453,6 @@ class ArgumentSpec(object): choices=['present', 'absent'] ), force=dict( - choices=BOOLEANS, type='bool' ), content=dict() diff --git a/lib/ansible/modules/network/f5/bigip_snat_pool.py b/lib/ansible/modules/network/f5/bigip_snat_pool.py index 0c4c17596a..d11072ebe9 100644 --- a/lib/ansible/modules/network/f5/bigip_snat_pool.py +++ b/lib/ansible/modules/network/f5/bigip_snat_pool.py @@ -138,6 +138,10 @@ try: except ImportError: HAS_NETADDR = False +from ansible.module_utils.basic import AnsibleModule +from ansible.module_utils.ec2 import camel_dict_to_snake_dict +from ansible.module_utils.f5_utils import F5ModuleError, f5_argument_spec + class BigIpSnatPoolManager(object): def __init__(self, *args, **kwargs): @@ -363,7 +367,6 @@ class BigIpSnatPoolModuleConfig(object): append=dict( default=False, type='bool', - choices=BOOLEANS ), name=dict(required=True), members=dict( @@ -410,9 +413,6 @@ def main(): except F5ModuleError as e: module.fail_json(msg=str(e)) -from ansible.module_utils.basic import * -from ansible.module_utils.ec2 import camel_dict_to_snake_dict -from ansible.module_utils.f5_utils import * if __name__ == '__main__': main() diff --git a/lib/ansible/modules/network/f5/bigip_virtual_address.py b/lib/ansible/modules/network/f5/bigip_virtual_address.py index 48dd932e87..c4fe3055b6 100644 --- a/lib/ansible/modules/network/f5/bigip_virtual_address.py +++ b/lib/ansible/modules/network/f5/bigip_virtual_address.py @@ -196,8 +196,6 @@ try: except ImportError: HAS_NETADDR = False -from ansible.module_utils.basic import BOOLEANS_TRUE -from ansible.module_utils.basic import BOOLEANS_FALSE from ansible.module_utils.f5_utils import ( AnsibleF5Client, AnsibleF5Parameters, @@ -205,6 +203,7 @@ from ansible.module_utils.f5_utils import ( F5ModuleError, iControlUnexpectedHTTPError ) +from ansible.module_utils.parsing.convert_bool import BOOLEANS_FALSE, BOOLEANS_TRUE class Parameters(AnsibleF5Parameters): diff --git a/lib/ansible/modules/network/illumos/dladm_linkprop.py b/lib/ansible/modules/network/illumos/dladm_linkprop.py index b50d5d791e..5bd3a159ec 100644 --- a/lib/ansible/modules/network/illumos/dladm_linkprop.py +++ b/lib/ansible/modules/network/illumos/dladm_linkprop.py @@ -231,7 +231,7 @@ def main(): link=dict(required=True, default=None, type='str', aliases=['nic', 'interface']), property=dict(required=True, type='str', aliases=['name']), value=dict(required=False, type='str'), - temporary=dict(default=False, type='bool', choices=BOOLEANS), + temporary=dict(default=False, type='bool'), state=dict( default='present', choices=['absent', 'present', 'reset']), ), @@ -298,6 +298,5 @@ def main(): module.exit_json(**result) - if __name__ == '__main__': main() diff --git a/lib/ansible/modules/system/gconftool2.py b/lib/ansible/modules/system/gconftool2.py index 7efd7c5468..8d8a232eb7 100644 --- a/lib/ansible/modules/system/gconftool2.py +++ b/lib/ansible/modules/system/gconftool2.py @@ -104,8 +104,7 @@ RETURN = ''' ... ''' -from ansible.module_utils.basic import AnsibleModule, BOOLEANS_TRUE -from ansible.module_utils.pycompat24 import get_exception +from ansible.module_utils.basic import AnsibleModule class GConf2Preference(object): @@ -165,8 +164,7 @@ class GConf2Preference(object): else: changed = True - except OSError: - exception = get_exception() + except OSError as exception: self.ansible.fail_json(msg='gconftool-2 failed with exception: ' '%s' % exception) return changed, out.rstrip() @@ -193,7 +191,6 @@ def main(): state_values = {"present": "set", "absent": "unset", "get": "get"} - direct = False # Assign module values to dictionary values key = module.params['key'] value_type = module.params['value_type'] @@ -205,8 +202,7 @@ def main(): value = module.params['value'] state = state_values[module.params['state']] - if module.params['direct'] in BOOLEANS_TRUE: - direct = True + direct = module.params['direct'] config_source = module.params['config_source'] # Initialize some variables for later diff --git a/lib/ansible/modules/system/sysctl.py b/lib/ansible/modules/system/sysctl.py index e2a88c89f2..78fe8572c9 100644 --- a/lib/ansible/modules/system/sysctl.py +++ b/lib/ansible/modules/system/sysctl.py @@ -118,8 +118,10 @@ EXAMPLES = ''' import os import tempfile -from ansible.module_utils.basic import get_platform, get_exception, AnsibleModule, BOOLEANS_TRUE, BOOLEANS_FALSE + +from ansible.module_utils.basic import get_platform, AnsibleModule from ansible.module_utils.six import string_types +from ansible.module_utils.parsing.convert_bool import BOOLEANS_FALSE, BOOLEANS_TRUE class SysctlModule(object): @@ -309,8 +311,7 @@ class SysctlModule(object): f = open(self.sysctl_file, "r") lines = f.readlines() f.close() - except IOError: - e = get_exception() + except IOError as e: self.module.fail_json(msg="Failed to open %s: %s" % (self.sysctl_file, str(e))) for line in lines: @@ -335,7 +336,7 @@ class SysctlModule(object): self.fixed_lines.append(line) continue tmpline = line.strip() - k, v = line.split('=',1) + k, v = tmpline.split('=',1) k = k.strip() v = v.strip() if k not in checked: @@ -360,8 +361,7 @@ class SysctlModule(object): try: for l in self.fixed_lines: f.write(l.strip() + "\n") - except IOError: - e = get_exception() + except IOError as e: self.module.fail_json(msg="Failed to write to file %s: %s" % (tmp_path, str(e))) f.flush() f.close()