diff --git a/lib/ansible/modules/network/f5/bigip_qkview.py b/lib/ansible/modules/network/f5/bigip_qkview.py index 926059a1d9..8b95e68f29 100644 --- a/lib/ansible/modules/network/f5/bigip_qkview.py +++ b/lib/ansible/modules/network/f5/bigip_qkview.py @@ -27,35 +27,39 @@ options: filename: description: - Name of the qkview to create on the remote BIG-IP. + type: str default: "localhost.localdomain.qkview" dest: description: - Destination on your local filesystem when you want to save the qkview. + type: path required: True asm_request_log: description: - When C(True), includes the ASM request log data. When C(False), excludes the ASM request log data. - default: no type: bool + default: no max_file_size: description: - Max file size, in bytes, of the qkview to create. By default, no max file size is specified. + type: int default: 0 complete_information: description: - Include complete information in the qkview. - default: no type: bool + default: no exclude_core: description: - Exclude core files from the qkview. - default: no type: bool + default: no exclude: description: - Exclude various file from the qkview. + type: list choices: - all - audit @@ -65,8 +69,8 @@ options: description: - If C(no), the file will only be transferred if the destination does not exist. - default: yes type: bool + default: yes notes: - This module does not include the "max time" or "restrict to blade" options. - If you are using this module with either Ansible Tower or Ansible AWX, you @@ -115,20 +119,14 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import transform_name from library.module_utils.network.f5.icontrol import download_file except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import transform_name from ansible.module_utils.network.f5.icontrol import download_file @@ -220,7 +218,7 @@ class Parameters(AnsibleF5Parameters): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.kwargs = kwargs def exec_module(self): @@ -256,7 +254,7 @@ class ModuleManager(object): class BaseManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.have = None self.want = Parameters(params=self.module.params) self.changes = Parameters() @@ -595,16 +593,12 @@ def main(): supports_check_mode=spec.supports_check_mode, ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_remote_role.py b/lib/ansible/modules/network/f5/bigip_remote_role.py index d70076cd27..0489bfc0c9 100644 --- a/lib/ansible/modules/network/f5/bigip_remote_role.py +++ b/lib/ansible/modules/network/f5/bigip_remote_role.py @@ -26,6 +26,7 @@ options: name: description: - Specifies the name of the remote role. + type: str required: True line_order: description: @@ -35,11 +36,13 @@ options: you set the first line at 1000. This allows you, in the future, to insert lines before the first line. - When creating a new remote role, this parameter is required. + type: int attribute_string: description: - Specifies the user account attributes saved in the group, in the format C(cn=, ou=, dc=). - When creating a new remote role, this parameter is required. + type: str remote_access: description: - Enables or disables remote access for the specified group of remotely @@ -61,6 +64,7 @@ options: C(operator), C(application-editor), C(manager), C(certificate-manager), C(irule-manager), C(user-manager), C(resource-administrator), C(auditor), C(administrator), C(firewall-manager). + type: str partition_access: description: - Specifies the accessible partitions for the account. @@ -70,6 +74,7 @@ options: as determined by the permissions conferred by the user's C(assigned_role). - When creating a new remote role, if this parameter is not specified, the default is C(all). + type: str terminal_access: description: - Specifies terminal-based accessibility for remote accounts not already @@ -78,14 +83,16 @@ options: may also be specified. - When creating a new remote role, if this parameter is not specified, the default is C(none). + type: str state: description: - When C(present), guarantees that the remote role exists. - When C(absent), removes the remote role from the system. - default: present + type: str choices: - absent - present + default: present extends_documentation_fragment: f5 author: - Tim Rupp (@caphrim007) @@ -150,20 +157,14 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import flatten_boolean from library.module_utils.network.f5.common import transform_name except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import flatten_boolean from ansible.module_utils.network.f5.common import transform_name @@ -314,7 +315,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -540,16 +541,12 @@ def main(): supports_check_mode=spec.supports_check_mode, ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_routedomain.py b/lib/ansible/modules/network/f5/bigip_routedomain.py index 28190e1f65..caf680f318 100644 --- a/lib/ansible/modules/network/f5/bigip_routedomain.py +++ b/lib/ansible/modules/network/f5/bigip_routedomain.py @@ -23,22 +23,27 @@ options: name: description: - The name of the route domain. + type: str version_added: 2.5 bwc_policy: description: - The bandwidth controller for the route domain. + type: str connection_limit: description: - The maximum number of concurrent connections allowed for the route domain. Setting this to C(0) turns off connection limits. + type: int description: description: - Specifies descriptive text that identifies the route domain. + type: str flow_eviction_policy: description: - The eviction policy to use with this route domain. Apply an eviction policy to provide customized responses to flow overflows and slow flows on the route domain. + type: str id: description: - The unique identifying integer representing the route domain. @@ -47,19 +52,23 @@ options: making modifications to it (for instance during update and delete operations). Instead, the C(name) parameter is used. In version 2.6, the C(name) value will become a required parameter. + type: int parent: description: - Specifies the route domain the system searches when it cannot find a route in the configured domain. + type: str partition: description: - Partition to create the route domain on. Partitions cannot be updated once they are created. + type: str default: Common version_added: 2.5 routing_protocol: description: - Dynamic routing protocols for the system to use in the route domain. + type: list choices: - none - BFD @@ -73,13 +82,15 @@ options: service_policy: description: - Service policy to associate with the route domain. + type: str state: description: - Whether the route domain should exist or not. - default: present + type: str choices: - present - absent + default: present strict: description: - Specifies whether the system enforces cross-routing restrictions or not. @@ -87,9 +98,11 @@ options: vlans: description: - VLANs for the system to use in the route domain. + type: list fw_enforced_policy: description: - Specifies AFM policy to be attached to route domain. + type: str version_added: 2.8 extends_documentation_fragment: f5 author: @@ -188,23 +201,17 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import fq_name from library.module_utils.network.f5.common import transform_name from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.compare import cmp_simple_list except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import fq_name from ansible.module_utils.network.f5.common import transform_name from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.compare import cmp_simple_list @@ -450,7 +457,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params, client=self.client) self.have = ApiParameters(client=self.client) self.changes = UsableChanges() @@ -708,19 +715,16 @@ def main(): module = AnsibleModule( argument_spec=spec.argument_spec, - supports_check_mode=spec.supports_check_mode + supports_check_mode=spec.supports_check_mode, + required_one_of=spec.required_one_of ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_selfip.py b/lib/ansible/modules/network/f5/bigip_selfip.py index ab3f916869..c0172489d1 100644 --- a/lib/ansible/modules/network/f5/bigip_selfip.py +++ b/lib/ansible/modules/network/f5/bigip_selfip.py @@ -25,50 +25,59 @@ options: - The IP addresses for the new self IP. This value is ignored upon update as addresses themselves cannot be changed after they are created. - This value is required when creating new self IPs. + type: str allow_service: description: - Configure port lockdown for the Self IP. By default, the Self IP has a "default deny" policy. This can be changed to allow TCP and UDP ports as well as specific protocols. This list should contain C(protocol):C(port) values. + type: list name: description: - The self IP to create. - If this parameter is not specified, then it will default to the value supplied in the C(address) parameter. + type: str required: True description: description: - Description of the traffic selector. + type: str version_added: 2.8 netmask: description: - The netmask for the self IP. When creating a new Self IP, this value is required. + type: str state: description: - When C(present), guarantees that the Self-IP exists with the provided attributes. - When C(absent), removes the Self-IP from the system. - default: present + type: str choices: - absent - present + default: present traffic_group: description: - The traffic group for the Self IP addresses in an active-active, redundant load balancer configuration. When creating a new Self IP, if this value is not specified, the default of C(/Common/traffic-group-local-only) will be used. + type: str vlan: description: - The VLAN that the new self IPs will be on. When creating a new Self IP, this value is required. + type: str route_domain: description: - The route domain id of the system. When creating a new Self IP, if this value is not specified, a default value of C(0) will be used. - This value cannot be changed after it is set. + type: int version_added: 2.3 partition: description: @@ -76,6 +85,7 @@ options: for Self IPs, but the address used may not match any other address used by a Self IP. In that sense, Self IPs are not isolated by partitions as other resources on a BIG-IP are. + type: str default: Common version_added: 2.5 extends_documentation_fragment: f5 @@ -226,12 +236,9 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import fq_name from library.module_utils.network.f5.common import f5_argument_spec from library.module_utils.network.f5.common import transform_name - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.ipaddress import is_valid_ip from library.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr from library.module_utils.compat.ipaddress import ip_address @@ -242,12 +249,9 @@ except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import fq_name from ansible.module_utils.network.f5.common import f5_argument_spec from ansible.module_utils.network.f5.common import transform_name - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.ipaddress import is_valid_ip from ansible.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr from ansible.module_utils.compat.ipaddress import ip_address @@ -575,7 +579,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.have = None self.want = ModuleParameters(params=self.module.params) self.changes = UsableChanges() @@ -837,16 +841,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_service_policy.py b/lib/ansible/modules/network/f5/bigip_service_policy.py index 565d247172..66ec65b97c 100644 --- a/lib/ansible/modules/network/f5/bigip_service_policy.py +++ b/lib/ansible/modules/network/f5/bigip_service_policy.py @@ -25,27 +25,33 @@ options: description: - Name of the service policy. required: True + type: str description: description: - Description of the service policy. + type: str timer_policy: description: - The timer policy to attach to the service policy. + type: str port_misuse_policy: description: - The port misuse policy to attach to the service policy. - Requires that C(afm) be provisioned to use. If C(afm) is not provisioned, this parameter will be ignored. + type: str state: description: - Whether the resource should exist or not. - default: present + type: str choices: - present - absent + default: present partition: description: - Device partition to manage resources on. + type: str default: Common extends_documentation_fragment: f5 author: @@ -94,22 +100,16 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec from library.module_utils.network.f5.common import fq_name - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import transform_name from library.module_utils.network.f5.icontrol import module_provisioned except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec from ansible.module_utils.network.f5.common import fq_name - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import transform_name from ansible.module_utils.network.f5.icontrol import module_provisioned @@ -206,7 +206,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -428,16 +428,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_smtp.py b/lib/ansible/modules/network/f5/bigip_smtp.py index 9b70dccb6c..eb82572685 100644 --- a/lib/ansible/modules/network/f5/bigip_smtp.py +++ b/lib/ansible/modules/network/f5/bigip_smtp.py @@ -24,33 +24,39 @@ options: name: description: - Specifies the name of the SMTP server configuration. + type: str required: True partition: description: - Device partition to manage resources on. + type: str default: Common smtp_server: description: - SMTP server host name in the format of a fully qualified domain name. - This value is required when create a new SMTP configuration. + type: str smtp_server_port: description: - Specifies the SMTP port number. - When creating a new SMTP configuration, the default is C(25) when - C(encryption) is C(none) or C(tls). The default is C(465) when C(ssl) - is selected. + C(encryption) is C(none) or C(tls). The default is C(465) when C(ssl) is selected. + type: int local_host_name: description: - Host name used in SMTP headers in the format of a fully qualified domain name. This setting does not refer to the BIG-IP system's hostname. + type: str from_address: description: - Email address that the email is being sent from. This is the "Reply-to" address that the recipient sees. + type: str encryption: description: - Specifies whether the SMTP server requires an encrypted connection in order to send mail. + type: str choices: - none - ssl @@ -67,17 +73,20 @@ options: smtp_server_username: description: - User name that the SMTP server requires when validating a user. + type: str smtp_server_password: description: - Password that the SMTP server requires when validating a user. + type: str state: description: - When C(present), ensures that the SMTP configuration exists. - When C(absent), ensures that the SMTP configuration does not exist. - default: present + type: str choices: - present - absent + default: present update_password: description: - Passwords are stored encrypted, so the module cannot know if the supplied @@ -87,10 +96,11 @@ options: - When C(always), will always update the password. - When C(on_create), will only set the password for newly created SMTP server configurations. - default: always + type: str choices: - always - on_create + default: always extends_documentation_fragment: f5 author: - Tim Rupp (@caphrim007) @@ -153,10 +163,7 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import transform_name from library.module_utils.network.f5.common import is_valid_hostname from library.module_utils.network.f5.ipaddress import is_valid_ip @@ -164,10 +171,7 @@ except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import transform_name from ansible.module_utils.network.f5.common import is_valid_hostname from ansible.module_utils.network.f5.ipaddress import is_valid_ip @@ -332,7 +336,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -552,16 +556,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_snat_pool.py b/lib/ansible/modules/network/f5/bigip_snat_pool.py index 545768ebb9..78067dfb20 100644 --- a/lib/ansible/modules/network/f5/bigip_snat_pool.py +++ b/lib/ansible/modules/network/f5/bigip_snat_pool.py @@ -24,21 +24,26 @@ options: description: - List of members to put in the SNAT pool. When a C(state) of present is provided, this parameter is required. Otherwise, it is optional. + type: list aliases: - member name: - description: The name of the SNAT pool. + description: + - The name of the SNAT pool. + type: str required: True state: description: - Whether the SNAT pool should exist or not. - default: present + type: str choices: - present - absent + default: present partition: description: - Device partition to manage resources on. + type: str default: Common version_added: 2.5 extends_documentation_fragment: f5 @@ -101,23 +106,17 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import fq_name from library.module_utils.network.f5.common import f5_argument_spec from library.module_utils.network.f5.common import transform_name - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.ipaddress import is_valid_ip except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import fq_name from ansible.module_utils.network.f5.common import f5_argument_spec from ansible.module_utils.network.f5.common import transform_name - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.ipaddress import is_valid_ip @@ -221,7 +220,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -443,16 +442,12 @@ def main(): required_if=spec.required_if ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_snmp.py b/lib/ansible/modules/network/f5/bigip_snmp.py index 6f1283522a..90da173269 100644 --- a/lib/ansible/modules/network/f5/bigip_snmp.py +++ b/lib/ansible/modules/network/f5/bigip_snmp.py @@ -29,16 +29,19 @@ options: to the system's default of C(127.0.0.0/8). - You can remove all allowed addresses by either providing the word C(none), or by providing the empty string C(""). + type: raw version_added: 2.6 contact: description: - Specifies the name of the person who administers the SNMP service for this system. + type: str agent_status_traps: description: - When C(enabled), ensures that the system sends a trap whenever the SNMP agent starts running or stops running. This is usually enabled by default on a BIG-IP. + type: str choices: - enabled - disabled @@ -47,6 +50,7 @@ options: - When C(enabled), ensures that the system sends authentication warning traps to the trap destinations. This is usually disabled by default on a BIG-IP. + type: str choices: - enabled - disabled @@ -55,12 +59,14 @@ options: - When C(enabled), ensures that the system sends device warning traps to the trap destinations. This is usually enabled by default on a BIG-IP. + type: str choices: - enabled - disabled location: description: - Specifies the description of this system's physical location. + type: str extends_documentation_fragment: f5 author: - Tim Rupp (@caphrim007) @@ -127,22 +133,16 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec from library.module_utils.network.f5.common import transform_name - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.compat.ipaddress import ip_network from library.module_utils.network.f5.common import is_valid_hostname except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec from ansible.module_utils.network.f5.common import transform_name - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.compat.ipaddress import ip_network from ansible.module_utils.network.f5.common import is_valid_hostname @@ -287,7 +287,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.have = ApiParameters() self.want = ModuleParameters(params=self.module.params) self.changes = UsableChanges() @@ -413,16 +413,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_snmp_community.py b/lib/ansible/modules/network/f5/bigip_snmp_community.py index 58045996a7..d01802b244 100644 --- a/lib/ansible/modules/network/f5/bigip_snmp_community.py +++ b/lib/ansible/modules/network/f5/bigip_snmp_community.py @@ -27,14 +27,19 @@ options: description: - When C(present), ensures that the address list and entries exists. - When C(absent), ensures the address list is removed. - default: present + type: str choices: - present - absent + default: present version: description: - Specifies to which Simple Network Management Protocol (SNMP) version the trap destination applies. - choices: ['v1', 'v2c', 'v3'] + type: str + choices: + - v1 + - v2c + - v3 default: v2c name: description: @@ -42,11 +47,13 @@ options: - When C(version) is C(v1) or C(v2c), this parameter is required. - The name C(public) is a reserved name on the BIG-IP. This module handles that name differently than others. Functionally, you should not see a difference however. + type: str community: description: - Specifies the community string (password) for access to the MIB. - This parameter is only relevant when C(version) is C(v1), or C(v2c). If C(version) is something else, this parameter is ignored. + type: str source: description: - Specifies the source address for access to the MIB. @@ -59,23 +66,27 @@ options: - This parameter should be provided when C(state) is C(absent), so that the correct community is removed. To remove the C(public) SNMP community that comes with a BIG-IP, this parameter should be set to C(default). + type: str port: description: - Specifies the port for the trap destination. - This parameter is only relevant when C(version) is C(v1), or C(v2c). If C(version) is something else, this parameter is ignored. + type: int oid: description: - Specifies the object identifier (OID) for the record. - When C(version) is C(v3), this parameter is required. - When C(version) is either C(v1) or C(v2c), if this value is specified, then C(source) must not be set to C(all). + type: str access: description: - Specifies the user's access level to the MIB. - When creating a new community, if this parameter is not specified, the default is C(ro). - When C(ro), specifies that the user can view the MIB, but cannot modify the MIB. - When C(rw), specifies that the user can view and modify the MIB. + type: str choices: - ro - rw @@ -88,7 +99,10 @@ options: be used. - This parameter is only relevant when C(version) is C(v1), or C(v2c). If C(version) is something else, this parameter is ignored. - choices: ['4', '6'] + type: str + choices: + - '4' + - '6' snmp_username: description: - Specifies the name of the user for whom you want to grant access to the SNMP v3 MIB. @@ -96,6 +110,7 @@ options: else, this parameter is ignored. - When creating a new SNMP C(v3) community, this parameter is required. - This parameter cannot be changed once it has been set. + type: str snmp_auth_protocol: description: - Specifies the authentication method for the user. @@ -104,6 +119,7 @@ options: - When C(none), specifies that user does not require authentication. - When creating a new SNMP C(v3) community, if this parameter is not specified, the default of C(sha) will be used. + type: str choices: - md5 - sha @@ -113,6 +129,7 @@ options: - Specifies the password for the user. - When creating a new SNMP C(v3) community, this parameter is required. - This value must be at least 8 characters long. + type: str snmp_privacy_protocol: description: - Specifies the encryption protocol. @@ -123,6 +140,7 @@ options: - When C(none), specifies that the system does not encrypt the user information. - When creating a new SNMP C(v3) community, if this parameter is not specified, the default of C(aes) will be used. + type: str choices: - aes - des @@ -132,17 +150,20 @@ options: - Specifies the password for the user. - When creating a new SNMP C(v3) community, this parameter is required. - This value must be at least 8 characters long. + type: str update_password: description: - C(always) will allow to update passwords if the user chooses to do so. C(on_create) will only set the password for newly created resources. - default: always + type: str choices: - always - on_create + default: always partition: description: - Device partition to manage resources on. + type: str default: Common extends_documentation_fragment: f5 author: @@ -253,20 +274,14 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec from library.module_utils.network.f5.common import transform_name - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec from ansible.module_utils.network.f5.common import transform_name - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json class Parameters(AnsibleF5Parameters): @@ -520,7 +535,7 @@ class ModuleManager(object): class BaseManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -892,16 +907,12 @@ def main(): required_if=spec.required_if ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_snmp_trap.py b/lib/ansible/modules/network/f5/bigip_snmp_trap.py index f20fd760a8..a215c52a81 100644 --- a/lib/ansible/modules/network/f5/bigip_snmp_trap.py +++ b/lib/ansible/modules/network/f5/bigip_snmp_trap.py @@ -23,22 +23,29 @@ options: name: description: - Name of the SNMP configuration endpoint. + type: str required: True snmp_version: description: - Specifies to which Simple Network Management Protocol (SNMP) version the trap destination applies. - choices: ['1', '2c'] + type: str + choices: + - '1' + - '2c' community: description: - Specifies the community name for the trap destination. + type: str destination: description: - Specifies the address for the trap destination. This can be either an IP address or a hostname. + type: str port: description: - Specifies the port for the trap destination. + type: str network: description: - Specifies the name of the trap network. This option is not supported in @@ -48,6 +55,7 @@ options: value when configuring a BIG-IP will cause the module to stop and report an error. The usual remedy is to choose one of the other options, such as C(management). + type: str choices: - other - management @@ -56,13 +64,15 @@ options: description: - When C(present), ensures that the resource exists. - When C(absent), ensures that the resource does not exist. - default: present + type: str choices: - present - absent + default: present partition: description: - Device partition to manage resources on. + type: str default: Common version_added: 2.5 notes: @@ -142,21 +152,15 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec from library.module_utils.network.f5.common import transform_name - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.icontrol import tmos_version except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec from ansible.module_utils.network.f5.common import transform_name - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.icontrol import tmos_version @@ -296,7 +300,7 @@ class V1Parameters(Parameters): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.kwargs = kwargs def exec_module(self): @@ -337,7 +341,7 @@ class ModuleManager(object): class BaseManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.have = None def exec_module(self): @@ -665,16 +669,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_software_image.py b/lib/ansible/modules/network/f5/bigip_software_image.py index 43edd4e7d5..19cedfe39b 100644 --- a/lib/ansible/modules/network/f5/bigip_software_image.py +++ b/lib/ansible/modules/network/f5/bigip_software_image.py @@ -29,21 +29,23 @@ options: exist. - Generally should be C(yes) only in cases where you have reason to believe that the image was corrupted during upload. - default: no type: bool + default: no state: description: - When C(present), ensures that the image is uploaded. - When C(absent), ensures that the image is removed. - default: present + type: str choices: - absent - present + default: present image: description: - The image to put on the remote device. - This may be an absolute or relative location on the Ansible controller. - Image names, whether they are base ISOs or hotfix ISOs, B(must) be unique. + type: str extends_documentation_fragment: f5 author: - Tim Rupp (@caphrim007) @@ -115,19 +117,13 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.icontrol import upload_file except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.icontrol import upload_file @@ -213,7 +209,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -467,16 +463,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_software_install.py b/lib/ansible/modules/network/f5/bigip_software_install.py index e28af62912..69011a954e 100644 --- a/lib/ansible/modules/network/f5/bigip_software_install.py +++ b/lib/ansible/modules/network/f5/bigip_software_install.py @@ -23,9 +23,11 @@ options: image: description: - Image to install on the remote device. + type: str volume: description: - The volume to install the software image to. + type: str state: description: - When C(installed), ensures that the software is installed on the volume @@ -33,10 +35,11 @@ options: into the new software. - When C(activated), performs the same operation as C(installed), but the system is rebooted to the new software. - default: activated + type: str choices: - activated - installed + default: activated extends_documentation_fragment: f5 author: - Tim Rupp (@caphrim007) @@ -78,18 +81,12 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json class Parameters(AnsibleF5Parameters): @@ -252,7 +249,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params, client=self.client) self.have = ApiParameters(client=self.client) self.changes = UsableChanges() @@ -491,16 +488,12 @@ def main(): supports_check_mode=spec.supports_check_mode, ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_software_update.py b/lib/ansible/modules/network/f5/bigip_software_update.py index 4294887130..3e11154444 100644 --- a/lib/ansible/modules/network/f5/bigip_software_update.py +++ b/lib/ansible/modules/network/f5/bigip_software_update.py @@ -33,6 +33,7 @@ options: frequency: description: - Specifies the schedule for the automatic update check. + type: str choices: - daily - monthly @@ -88,18 +89,12 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json class Parameters(AnsibleF5Parameters): @@ -206,12 +201,12 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.have = None self.want = ModuleParameters(params=self.module.params) self.changes = UsableChanges() - def exec_module(self): # lgtm [py/similar-function] + def exec_module(self): result = dict() changed = self.update() @@ -328,16 +323,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_ssl_certificate.py b/lib/ansible/modules/network/f5/bigip_ssl_certificate.py index 3d850bfc37..58a69ab149 100644 --- a/lib/ansible/modules/network/f5/bigip_ssl_certificate.py +++ b/lib/ansible/modules/network/f5/bigip_ssl_certificate.py @@ -27,28 +27,33 @@ options: - Sets the contents of a certificate directly to the specified value. This is used with lookup plugins or for anything with formatting or - C(content) must be provided when C(state) is C(present). + type: str aliases: ['cert_content'] state: description: - Certificate state. This determines if the provided certificate and key is to be made C(present) on the device or C(absent). - default: present + type: str choices: - present - absent + default: present name: description: - SSL Certificate Name. This is the cert name used when importing a certificate into the F5. It also determines the filenames of the objects on the LTM. + type: str required: True issuer_cert: description: - Issuer certificate used for OCSP monitoring. - This parameter is only valid on versions of BIG-IP 13.0.0 or above. + type: str version_added: 2.5 partition: description: - Device partition to manage resources on. + type: str default: Common version_added: 2.5 notes: @@ -134,10 +139,7 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import fq_name from library.module_utils.network.f5.common import transform_name from library.module_utils.network.f5.icontrol import upload_file @@ -145,10 +147,7 @@ except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import fq_name from ansible.module_utils.network.f5.common import transform_name from ansible.module_utils.network.f5.icontrol import upload_file @@ -311,7 +310,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -568,16 +567,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_ssl_key.py b/lib/ansible/modules/network/f5/bigip_ssl_key.py index 296ed772b3..67fd8b460f 100644 --- a/lib/ansible/modules/network/f5/bigip_ssl_key.py +++ b/lib/ansible/modules/network/f5/bigip_ssl_key.py @@ -26,6 +26,7 @@ options: - Sets the contents of a key directly to the specified value. This is used with lookup plugins or for anything with formatting or templating. This must be provided when C(state) is C(present). + type: str aliases: - key_content state: @@ -33,20 +34,24 @@ options: - When C(present), ensures that the key is uploaded to the device. When C(absent), ensures that the key is removed from the device. If the key is currently in use, the module will not be able to remove the key. - default: present + type: str choices: - present - absent + default: present name: description: - The name of the key. + type: str required: True passphrase: description: - Passphrase on key. + type: str partition: description: - Device partition to manage resources on. + type: str default: Common version_added: 2.5 notes: @@ -118,20 +123,14 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import transform_name from library.module_utils.network.f5.icontrol import upload_file except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import transform_name from ansible.module_utils.network.f5.icontrol import upload_file @@ -273,7 +272,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -509,16 +508,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_ssl_ocsp.py b/lib/ansible/modules/network/f5/bigip_ssl_ocsp.py index 2bad55b7d9..34c53c47bf 100644 --- a/lib/ansible/modules/network/f5/bigip_ssl_ocsp.py +++ b/lib/ansible/modules/network/f5/bigip_ssl_ocsp.py @@ -23,10 +23,12 @@ options: name: description: - Specifies the name of the OCSP certificate validator. + type: str required: True cache_error_timeout: description: - Specifies the lifetime of an error response in the cache, in seconds. + type: int proxy_server_pool: description: - Specifies the proxy server pool the BIG-IP system uses to fetch the OCSP @@ -35,17 +37,21 @@ options: - Use this option when either the OCSP responder cannot be reached on any of BIG-IP system's interfaces or one or more servers can proxy an HTTP request to an external server and fetch the response. + type: str cache_timeout: description: - Specifies the lifetime of the OCSP response in the cache, in seconds. + type: str clock_skew: description: - Specifies the tolerable absolute difference in the clocks of the responder and the BIG-IP system, in seconds. + type: int connections_limit: description: - Specifies the maximum number of connections per second allowed for the OCSP certificate validator. + type: int dns_resolver: description: - Specifies the internal DNS resolver the BIG-IP system uses to fetch the @@ -55,29 +61,36 @@ options: - Use this option when either there is a DNS server that can do the name-resolution of the OCSP responders or the OCSP responder can be reached on one of BIG-IP system's interfaces. + type: str route_domain: description: - Specifies the route domain for fetching an OCSP response using HTTP forward proxy. + type: str hash_algorithm: description: - Specifies a hash algorithm used to sign an OCSP request. + type: str choices: - sha256 - sha1 certificate: description: - Specifies a certificate used to sign an OCSP request. + type: str key: description: - Specifies a key used to sign an OCSP request. + type: str passphrase: description: - Specifies a passphrase used to sign an OCSP request. + type: str status_age: description: - Specifies the maximum allowed lag time that the BIG-IP system accepts for the 'thisUpdate' time in the OCSP response. + type: int strict_responder_checking: description: - Specifies whether the responder's certificate is checked for an OCSP @@ -87,36 +100,42 @@ options: description: - Specifies the time interval that the BIG-IP system waits for before ending the connection to the OCSP responder, in seconds. + type: int trusted_responders: description: - Specifies the certificates used for validating the OCSP response when the responder's certificate has been omitted from the response. + type: str responder_url: description: - Specifies the absolute URL that overrides the OCSP responder URL obtained from the certificate's AIA extensions. This should be an HTTP-based URL. + type: str update_password: description: - C(always) will allow to update passwords if the user chooses to do so. C(on_create) will only set the password for newly created OCSP validators. - default: always + type: str choices: - always - on_create + default: always partition: description: - Device partition to manage resources on. + type: str default: Common version_added: 2.5 state: description: - When C(present), ensures that the resource exists. - When C(absent), ensures that the resource does not exist. - default: present + type: str choices: - present - absent + default: present extends_documentation_fragment: f5 notes: - Requires BIG-IP >= 13.x. @@ -222,11 +241,8 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import fq_name from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import transform_name from library.module_utils.network.f5.common import flatten_boolean from library.module_utils.network.f5.icontrol import tmos_version @@ -234,11 +250,8 @@ except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import fq_name from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import transform_name from ansible.module_utils.network.f5.common import flatten_boolean from ansible.module_utils.network.f5.icontrol import tmos_version @@ -490,7 +503,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -750,16 +763,12 @@ def main(): required_together=spec.required_together, ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_static_route.py b/lib/ansible/modules/network/f5/bigip_static_route.py index 56c2c11c43..eaec82c715 100644 --- a/lib/ansible/modules/network/f5/bigip_static_route.py +++ b/lib/ansible/modules/network/f5/bigip_static_route.py @@ -23,21 +23,25 @@ options: name: description: - Name of the static route. + type: str required: True description: description: - Descriptive text that identifies the route. + type: str destination: description: - Specifies an IP address for the static entry in the routing table. When creating a new static route, this value is required. - This value cannot be changed once it is set. + type: str netmask: description: - The netmask for the static route. When creating a new static route, this value is required. - This value can be in either IP or CIDR format. - This value cannot be changed once it is set. + type: str gateway_address: description: - Specifies the router for the system to use when forwarding packets @@ -46,15 +50,18 @@ options: IPv6 address that starts with C(FE80:), the address will be treated as a link-local address. This requires that the C(vlan) parameter also be supplied. + type: str vlan: description: - Specifies the VLAN or Tunnel through which the system forwards packets to the destination. When C(gateway_address) is a link-local IPv6 - address, this value is required + address, this value is required. + type: str pool: description: - Specifies the pool through which the system forwards packets to the destination. + type: str reject: description: - Specifies that the system drops packets sent to the destination. @@ -62,24 +69,28 @@ options: mtu: description: - Specifies a specific maximum transmission unit (MTU). + type: str route_domain: description: - The route domain id of the system. When creating a new static route, if this value is not specified, a default value of C(0) will be used. - This value cannot be changed once it is set. + type: int partition: description: - Device partition to manage resources on. + type: str default: Common version_added: 2.6 state: description: - When C(present), ensures that the static route exists. - When C(absent), ensures that the static does not exist. - default: present + type: str choices: - present - absent + default: present extends_documentation_fragment: f5 author: - Tim Rupp (@caphrim007) @@ -158,12 +169,9 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import fq_name from library.module_utils.network.f5.common import f5_argument_spec from library.module_utils.network.f5.common import transform_name - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.ipaddress import is_valid_ip from library.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr from library.module_utils.compat.ipaddress import ip_address @@ -173,12 +181,9 @@ except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import fq_name from ansible.module_utils.network.f5.common import f5_argument_spec from ansible.module_utils.network.f5.common import transform_name - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.ipaddress import is_valid_ip from ansible.module_utils.network.f5.ipaddress import ipv6_netmask_to_cidr from ansible.module_utils.compat.ipaddress import ip_address @@ -446,7 +451,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.have = None self.want = ModuleParameters(params=self.module.params) self.changes = UsableChanges() @@ -686,16 +691,12 @@ def main(): mutually_exclusive=spec.mutually_exclusive, ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_sys_daemon_log_tmm.py b/lib/ansible/modules/network/f5/bigip_sys_daemon_log_tmm.py index 114227dcc8..f5535625fd 100644 --- a/lib/ansible/modules/network/f5/bigip_sys_daemon_log_tmm.py +++ b/lib/ansible/modules/network/f5/bigip_sys_daemon_log_tmm.py @@ -24,6 +24,7 @@ options: description: - Specifies the lowest level of ARP messages from the tmm daemon to include in the system log. + type: str choices: - debug - error @@ -34,6 +35,7 @@ options: description: - Specifies the lowest level of HTTP compression messages from the tmm daemon to include in the system log. + type: str choices: - debug - error @@ -44,6 +46,7 @@ options: description: - Specifies the lowest level of HTTP messages from the tmm daemon to include in the system log. + type: str choices: - debug - error @@ -54,6 +57,7 @@ options: description: - Specifies the lowest level of IP address messages from the tmm daemon to include in the system log. + type: str choices: - debug - informational @@ -63,6 +67,7 @@ options: description: - Specifies the lowest level of iRule messages from the tmm daemon to include in the system log. + type: str choices: - debug - error @@ -73,6 +78,7 @@ options: description: - Specifies the lowest level of Layer 4 messages from the tmm daemon to include in the system log. + type: str choices: - debug - informational @@ -81,6 +87,7 @@ options: description: - Specifies the lowest level of network messages from the tmm daemon to include in the system log. + type: str choices: - critical - debug @@ -92,6 +99,7 @@ options: description: - Specifies the lowest level of operating system messages from the tmm daemon to include in the system log. + type: str choices: - alert - critical @@ -105,6 +113,7 @@ options: description: - Specifies the lowest level of PVA messages from the tmm daemon to include in the system log. + type: str choices: - debug - informational @@ -113,6 +122,7 @@ options: description: - Specifies the lowest level of SSL messages from the tmm daemon to include in the system log. + type: str choices: - alert - critical @@ -126,9 +136,10 @@ options: description: - The state of the log level on the system. When C(present), guarantees that an existing log level is set to C(value). - default: present + type: str choices: - present + default: present extends_documentation_fragment: f5 author: - Wojciech Wypior (@wojtek0806) @@ -204,18 +215,12 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json class Parameters(AnsibleF5Parameters): @@ -325,7 +330,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -476,16 +481,12 @@ def main(): supports_check_mode=spec.supports_check_mode, ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_sys_db.py b/lib/ansible/modules/network/f5/bigip_sys_db.py index 28ee149222..ea0b875765 100644 --- a/lib/ansible/modules/network/f5/bigip_sys_db.py +++ b/lib/ansible/modules/network/f5/bigip_sys_db.py @@ -23,6 +23,7 @@ options: key: description: - The database variable to manipulate. + type: str required: True state: description: @@ -30,14 +31,16 @@ options: that an existing variable is set to C(value). When C(reset) sets the variable back to the default value. At least one of value and state C(reset) are required. - default: present + type: str choices: - present - reset + default: present value: description: - The value to set the key to. At least one of value and state C(reset) are required. + type: str notes: - Requires BIG-IP version 12.0.0 or greater extends_documentation_fragment: f5 @@ -101,18 +104,12 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json class Parameters(AnsibleF5Parameters): @@ -197,7 +194,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.pop('module', None) - self.client = kwargs.pop('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -394,16 +391,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/lib/ansible/modules/network/f5/bigip_sys_global.py b/lib/ansible/modules/network/f5/bigip_sys_global.py index bd8ebdfb53..c69d4dd8f2 100644 --- a/lib/ansible/modules/network/f5/bigip_sys_global.py +++ b/lib/ansible/modules/network/f5/bigip_sys_global.py @@ -23,10 +23,12 @@ options: banner_text: description: - Specifies the text to present in the advisory banner. + type: str console_timeout: description: - Specifies the number of seconds of inactivity before the system logs off a user that is logged on. + type: int gui_setup: description: - C(yes) or C(no) the Setup utility in the browser-based @@ -65,9 +67,10 @@ options: description: - The state of the variable on the system. When C(present), guarantees that an existing variable is set to C(value). - default: present + type: str choices: - present + default: present extends_documentation_fragment: f5 author: - Tim Rupp (@caphrim007) @@ -140,19 +143,13 @@ try: from library.module_utils.network.f5.bigip import F5RestClient from library.module_utils.network.f5.common import F5ModuleError from library.module_utils.network.f5.common import AnsibleF5Parameters - from library.module_utils.network.f5.common import cleanup_tokens from library.module_utils.network.f5.common import f5_argument_spec - from library.module_utils.network.f5.common import exit_json - from library.module_utils.network.f5.common import fail_json from library.module_utils.network.f5.common import flatten_boolean except ImportError: from ansible.module_utils.network.f5.bigip import F5RestClient from ansible.module_utils.network.f5.common import F5ModuleError from ansible.module_utils.network.f5.common import AnsibleF5Parameters - from ansible.module_utils.network.f5.common import cleanup_tokens from ansible.module_utils.network.f5.common import f5_argument_spec - from ansible.module_utils.network.f5.common import exit_json - from ansible.module_utils.network.f5.common import fail_json from ansible.module_utils.network.f5.common import flatten_boolean @@ -347,7 +344,7 @@ class Difference(object): class ModuleManager(object): def __init__(self, *args, **kwargs): self.module = kwargs.get('module', None) - self.client = kwargs.get('client', None) + self.client = F5RestClient(**self.module.params) self.want = ModuleParameters(params=self.module.params) self.have = ApiParameters() self.changes = UsableChanges() @@ -497,16 +494,12 @@ def main(): supports_check_mode=spec.supports_check_mode ) - client = F5RestClient(**module.params) - try: - mm = ModuleManager(module=module, client=client) + mm = ModuleManager(module=module) results = mm.exec_module() - cleanup_tokens(client) - exit_json(module, results, client) + module.exit_json(**results) except F5ModuleError as ex: - cleanup_tokens(client) - fail_json(module, ex, client) + module.fail_json(msg=str(ex)) if __name__ == '__main__': diff --git a/test/units/modules/network/f5/test_bigip_qkview.py b/test/units/modules/network/f5/test_bigip_qkview.py index 6c11ce88ec..20d744087d 100644 --- a/test/units/modules/network/f5/test_bigip_qkview.py +++ b/test/units/modules/network/f5/test_bigip_qkview.py @@ -106,9 +106,11 @@ class TestMadmLocationManager(unittest.TestCase): def test_create_qkview_default_options(self, *args): set_module_args(dict( dest='/tmp/foo.qkview', - server='localhost', - user='admin', - password='password' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -144,9 +146,11 @@ class TestBulkLocationManager(unittest.TestCase): def test_create_qkview_default_options(self, *args): set_module_args(dict( dest='/tmp/foo.qkview', - server='localhost', - user='admin', - password='password' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_remote_role.py b/test/units/modules/network/f5/test_bigip_remote_role.py index 9d67456fa7..cd9c2f5db4 100644 --- a/test/units/modules/network/f5/test_bigip_remote_role.py +++ b/test/units/modules/network/f5/test_bigip_remote_role.py @@ -90,9 +90,11 @@ class TestManager(unittest.TestCase): name='foo', line_order=1000, attribute_string='bar', - server='localhost', - password='password', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_routedomain.py b/test/units/modules/network/f5/test_bigip_routedomain.py index b37e2a97c6..9110efdca8 100644 --- a/test/units/modules/network/f5/test_bigip_routedomain.py +++ b/test/units/modules/network/f5/test_bigip_routedomain.py @@ -106,14 +106,17 @@ class TestManager(unittest.TestCase): set_module_args(dict( name='foo', id=1234, - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_one_of=self.spec.required_one_of ) mm = ModuleManager(module=module) diff --git a/test/units/modules/network/f5/test_bigip_selfip.py b/test/units/modules/network/f5/test_bigip_selfip.py index b444f87b53..2de0c6b1dc 100644 --- a/test/units/modules/network/f5/test_bigip_selfip.py +++ b/test/units/modules/network/f5/test_bigip_selfip.py @@ -149,9 +149,11 @@ class TestManager(unittest.TestCase): state='present', traffic_group='traffic-group-local-only', vlan='net1', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -183,9 +185,11 @@ class TestManager(unittest.TestCase): state='present', traffic_group='traffic-group-local-only', vlan='net1', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) current = ApiParameters(params=load_fixture('load_tm_net_self.json')) diff --git a/test/units/modules/network/f5/test_bigip_service_policy.py b/test/units/modules/network/f5/test_bigip_service_policy.py index 396a0c6d69..6c206cd2ec 100644 --- a/test/units/modules/network/f5/test_bigip_service_policy.py +++ b/test/units/modules/network/f5/test_bigip_service_policy.py @@ -109,9 +109,11 @@ class TestManager(unittest.TestCase): port_misuse_policy='misuse1', partition='Common', state='present', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_smtp.py b/test/units/modules/network/f5/test_bigip_smtp.py index f6420abcc2..0bbcd6f85f 100644 --- a/test/units/modules/network/f5/test_bigip_smtp.py +++ b/test/units/modules/network/f5/test_bigip_smtp.py @@ -124,9 +124,11 @@ class TestManager(unittest.TestCase): from_address='no-reply@mydomain.com', authentication=True, partition='Common', - server='localhost', - password='password', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_snat_pool.py b/test/units/modules/network/f5/test_bigip_snat_pool.py index 1636e360b7..01d1883e26 100644 --- a/test/units/modules/network/f5/test_bigip_snat_pool.py +++ b/test/units/modules/network/f5/test_bigip_snat_pool.py @@ -99,14 +99,17 @@ class TestManager(unittest.TestCase): name='my-snat-pool', state='present', members=['10.10.10.10', '20.20.20.20'], - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_if=self.spec.required_if ) mm = ModuleManager(module=module) @@ -126,16 +129,19 @@ class TestManager(unittest.TestCase): name='asdasd', state='present', members=['1.1.1.1', '2.2.2.2'], - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) current = ApiParameters(params=load_fixture('load_ltm_snatpool.json')) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_if=self.spec.required_if ) mm = ModuleManager(module=module) @@ -152,16 +158,19 @@ class TestManager(unittest.TestCase): name='asdasd', state='present', members=['30.30.30.30'], - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) current = ApiParameters(params=load_fixture('load_ltm_snatpool.json')) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_if=self.spec.required_if ) mm = ModuleManager(module=module) diff --git a/test/units/modules/network/f5/test_bigip_snmp.py b/test/units/modules/network/f5/test_bigip_snmp.py index 2574722787..6b2da45333 100644 --- a/test/units/modules/network/f5/test_bigip_snmp.py +++ b/test/units/modules/network/f5/test_bigip_snmp.py @@ -72,9 +72,6 @@ class TestParameters(unittest.TestCase): contact='Alice@foo.org', device_warning_traps='enabled', location='Lunar orbit', - password='password', - server='localhost', - user='admin' ) p = ModuleParameters(params=args) assert p.agent_status_traps == 'enabled' @@ -88,9 +85,6 @@ class TestParameters(unittest.TestCase): agent_status_traps='disabled', agent_authentication_traps='disabled', device_warning_traps='disabled', - password='password', - server='localhost', - user='admin' ) p = ModuleParameters(params=args) assert p.agent_status_traps == 'disabled' @@ -132,9 +126,11 @@ class TestManager(unittest.TestCase): def test_update_agent_status_traps(self, *args): set_module_args(dict( agent_status_traps='enabled', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the @@ -168,9 +164,11 @@ class TestManager(unittest.TestCase): 'foo', 'baz.foo.com' ], - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the @@ -204,9 +202,11 @@ class TestManager(unittest.TestCase): allowed_addresses=[ 'default' ], - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the @@ -236,9 +236,11 @@ class TestManager(unittest.TestCase): def test_update_allowed_addresses_empty(self, *args): set_module_args(dict( allowed_addresses=[''], - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the diff --git a/test/units/modules/network/f5/test_bigip_snmp_community.py b/test/units/modules/network/f5/test_bigip_snmp_community.py index fdaaf378af..153ee2dc39 100644 --- a/test/units/modules/network/f5/test_bigip_snmp_community.py +++ b/test/units/modules/network/f5/test_bigip_snmp_community.py @@ -170,14 +170,17 @@ class TestManager(unittest.TestCase): ip_version=4, state='present', partition='Common', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_if=self.spec.required_if ) m1 = V1Manager(module=module) @@ -194,6 +197,7 @@ class TestManager(unittest.TestCase): def test_create_v1_community_1(self, *args): set_module_args(dict( + name='foo', version='v1', community='foo', source='1.1.1.1', @@ -203,14 +207,17 @@ class TestManager(unittest.TestCase): ip_version=4, state='present', partition='Common', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_if=self.spec.required_if ) m1 = V1Manager(module=module) @@ -237,14 +244,17 @@ class TestManager(unittest.TestCase): snmp_privacy_password='secretsecret', state='present', partition='Common', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_if=self.spec.required_if ) m1 = V2Manager(module=module) @@ -270,14 +280,17 @@ class TestManager(unittest.TestCase): snmp_privacy_password='secretsecret', state='present', partition='Common', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + required_if=self.spec.required_if ) m1 = V2Manager(module=module) diff --git a/test/units/modules/network/f5/test_bigip_snmp_trap.py b/test/units/modules/network/f5/test_bigip_snmp_trap.py index 655ac5a546..6d1fd951c8 100644 --- a/test/units/modules/network/f5/test_bigip_snmp_trap.py +++ b/test/units/modules/network/f5/test_bigip_snmp_trap.py @@ -79,9 +79,6 @@ class TestParameters(unittest.TestCase): destination='10.10.10.10', port=1000, network='other', - password='password', - server='localhost', - user='admin' ) p = V2Parameters(params=args) assert p.name == 'foo' @@ -99,9 +96,6 @@ class TestParameters(unittest.TestCase): destination='10.10.10.10', port=1000, network='other', - password='password', - server='localhost', - user='admin' ) p = V1Parameters(params=args) assert p.name == 'foo' @@ -142,9 +136,11 @@ class TestManager(unittest.TestCase): destination='10.10.10.10', port=1000, network='other', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -177,9 +173,11 @@ class TestManager(unittest.TestCase): community='public', destination='10.10.10.10', port=1000, - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_software_image.py b/test/units/modules/network/f5/test_bigip_software_image.py index 373555c490..e446b445f1 100644 --- a/test/units/modules/network/f5/test_bigip_software_image.py +++ b/test/units/modules/network/f5/test_bigip_software_image.py @@ -100,9 +100,11 @@ class TestManager(unittest.TestCase): def test_create(self, *args): set_module_args(dict( image='/path/to/BIGIP-13.0.0.0.0.1645.iso', - server='localhost', - password='password', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) current = ApiParameters(params=load_fixture('load_sys_software_image_1.json')) diff --git a/test/units/modules/network/f5/test_bigip_software_install.py b/test/units/modules/network/f5/test_bigip_software_install.py index c19fae58c1..4031e7584f 100644 --- a/test/units/modules/network/f5/test_bigip_software_install.py +++ b/test/units/modules/network/f5/test_bigip_software_install.py @@ -85,9 +85,11 @@ class TestManager(unittest.TestCase): set_module_args(dict( image='BIGIP-13.0.0.0.0.1645.iso', volume='HD1.2', - server='localhost', - password='password', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) current = ApiParameters() diff --git a/test/units/modules/network/f5/test_bigip_software_update.py b/test/units/modules/network/f5/test_bigip_software_update.py index 6cf05acc03..18bb8e4c1b 100644 --- a/test/units/modules/network/f5/test_bigip_software_update.py +++ b/test/units/modules/network/f5/test_bigip_software_update.py @@ -94,9 +94,11 @@ class TestManager(unittest.TestCase): set_module_args(dict( auto_check='no', auto_phone_home='no', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the diff --git a/test/units/modules/network/f5/test_bigip_ssl_certificate.py b/test/units/modules/network/f5/test_bigip_ssl_certificate.py index d906af01ec..ba31ef22c5 100644 --- a/test/units/modules/network/f5/test_bigip_ssl_certificate.py +++ b/test/units/modules/network/f5/test_bigip_ssl_certificate.py @@ -106,9 +106,11 @@ class TestCertificateManager(unittest.TestCase): name='foo', content=load_fixture('cert1.crt'), state='present', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -130,9 +132,11 @@ class TestCertificateManager(unittest.TestCase): name='foo', content=load_fixture('chain1.crt'), state='present', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_ssl_key.py b/test/units/modules/network/f5/test_bigip_ssl_key.py index baa5bf9fab..07db999b1a 100644 --- a/test/units/modules/network/f5/test_bigip_ssl_key.py +++ b/test/units/modules/network/f5/test_bigip_ssl_key.py @@ -93,9 +93,11 @@ class TestModuleManager(unittest.TestCase): name='foo', content=load_fixture('cert1.key'), state='present', - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_ssl_ocsp.py b/test/units/modules/network/f5/test_bigip_ssl_ocsp.py index 9c0427de50..f7c7c4d52e 100644 --- a/test/units/modules/network/f5/test_bigip_ssl_ocsp.py +++ b/test/units/modules/network/f5/test_bigip_ssl_ocsp.py @@ -106,14 +106,18 @@ class TestManager(unittest.TestCase): set_module_args(dict( name='foo', clock_skew=100, - password='password', - server='localhost', - user='admin' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( argument_spec=self.spec.argument_spec, - supports_check_mode=self.spec.supports_check_mode + supports_check_mode=self.spec.supports_check_mode, + mutually_exclusive=self.spec.mutually_exclusive, + required_together=self.spec.required_together ) mm = ModuleManager(module=module) diff --git a/test/units/modules/network/f5/test_bigip_static_route.py b/test/units/modules/network/f5/test_bigip_static_route.py index 7f0629ab78..189bfa1756 100644 --- a/test/units/modules/network/f5/test_bigip_static_route.py +++ b/test/units/modules/network/f5/test_bigip_static_route.py @@ -157,13 +157,15 @@ class TestManager(unittest.TestCase): def test_create_blackhole(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', state='present', destination='10.10.10.10', netmask='255.255.255.255', - reject='yes' + reject='yes', + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -183,13 +185,15 @@ class TestManager(unittest.TestCase): def test_create_route_to_pool(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', state='present', destination='10.10.10.10', netmask='255.255.255.255', - pool="test-pool" + pool="test-pool", + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -210,13 +214,15 @@ class TestManager(unittest.TestCase): def test_create_route_to_vlan(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', state='present', destination='10.10.10.10', netmask='255.255.255.255', - vlan="test-vlan" + vlan="test-vlan", + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -237,11 +243,13 @@ class TestManager(unittest.TestCase): def test_update_description(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', state='present', - description='foo description' + description='foo description', + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -264,11 +272,13 @@ class TestManager(unittest.TestCase): def test_update_description_idempotent(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', state='present', - description='asdasd' + description='asdasd', + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -292,10 +302,12 @@ class TestManager(unittest.TestCase): def test_delete(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', - state='absent' + state='absent', + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( @@ -316,11 +328,13 @@ class TestManager(unittest.TestCase): def test_invalid_unknown_params(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', state='present', - foo="bar" + foo="bar", + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) with patch('ansible.module_utils.f5_utils.AnsibleModule.fail_json') as mo: mo.return_value = True @@ -334,14 +348,16 @@ class TestManager(unittest.TestCase): def test_create_with_route_domain(self, *args): set_module_args(dict( name='test-route', - password='admin', - server='localhost', - user='admin', state='present', destination='10.10.10.10', netmask='255.255.255.255', route_domain=1, - reject='yes' + reject='yes', + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) module = AnsibleModule( diff --git a/test/units/modules/network/f5/test_bigip_sys_daemon_log_tmm.py b/test/units/modules/network/f5/test_bigip_sys_daemon_log_tmm.py index 802c311f4f..8d95cba8a9 100644 --- a/test/units/modules/network/f5/test_bigip_sys_daemon_log_tmm.py +++ b/test/units/modules/network/f5/test_bigip_sys_daemon_log_tmm.py @@ -115,9 +115,11 @@ class TestManager(unittest.TestCase): arp_log_level='debug', layer4_log_level='debug', password='admin', - server='localhost', - user='admin', - state='present' + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the diff --git a/test/units/modules/network/f5/test_bigip_sys_db.py b/test/units/modules/network/f5/test_bigip_sys_db.py index e57b6017a5..1969105e6d 100644 --- a/test/units/modules/network/f5/test_bigip_sys_db.py +++ b/test/units/modules/network/f5/test_bigip_sys_db.py @@ -67,9 +67,6 @@ class TestParameters(unittest.TestCase): args = dict( key='foo', value='bar', - password='password', - server='localhost', - user='admin' ) p = Parameters(params=args) assert p.key == 'foo' @@ -79,10 +76,7 @@ class TestParameters(unittest.TestCase): args = dict( key='foo', value='bar', - password='password', - server='localhost', defaultValue='baz', - user='admin' ) p = Parameters(params=args) @@ -99,10 +93,12 @@ class TestManager(unittest.TestCase): set_module_args(dict( key='provision.cpu.afm', value='1', - password='admin', - server='localhost', - user='admin', - state='present' + state='present', + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the diff --git a/test/units/modules/network/f5/test_bigip_sys_global.py b/test/units/modules/network/f5/test_bigip_sys_global.py index 1e8426ab3a..0c8a410989 100644 --- a/test/units/modules/network/f5/test_bigip_sys_global.py +++ b/test/units/modules/network/f5/test_bigip_sys_global.py @@ -108,10 +108,12 @@ class TestManager(unittest.TestCase): set_module_args(dict( banner_text='this is a banner', console_timeout=100, - password='admin', - server='localhost', - user='admin', - state='present' + state='present', + provider=dict( + server='localhost', + password='password', + user='admin' + ) )) # Configure the parameters that would be returned by querying the