From e932f65b7cdc08c28afde2cab20e51d771afb1ab Mon Sep 17 00:00:00 2001 From: Thomas Woerner <twoerner@redhat.com> Date: Mon, 7 Nov 2022 13:38:21 +0100 Subject: [PATCH] ipaclient_get_otp: Fix documentation sections and agument spec ansible-test with ansible-2.14 is adding a lot of new tests to ensure that the documentation section and the agument spec is complete. Needed changes: DOCUMENTATION section - `type: str` needs to be set for string parameters - `type: list` needs to be set for list parameters - `elements: str` needs to be given for list of string parameters - `required` tags need to be fixed according to the `argument_spec` - `default` tag needs to match `argument_spec` - `author` needs to be given with the github user also: `Name (@user)` - `choices` needs to match `argument_spec` RETURN section - `type: string` is not valid and needs to be replaced by `type: str` - `elements: str` needs to be given for list of string parameters argument_spec - `type='str'` needs to be set for string parameters - `elements='str'` needs to be added to all list of string parameters A call to ansible_ipa_client.check_imports has been added to check for import errors. The `copyright` date is extended with `-2022`. --- roles/ipaclient/library/ipaclient_get_otp.py | 67 ++++++++++++-------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/roles/ipaclient/library/ipaclient_get_otp.py b/roles/ipaclient/library/ipaclient_get_otp.py index a26f972a..6be32063 100644 --- a/roles/ipaclient/library/ipaclient_get_otp.py +++ b/roles/ipaclient/library/ipaclient_get_otp.py @@ -3,7 +3,7 @@ # Authors: # Florence Blanc-Renaud <frenaud@redhat.com> # -# Copyright (C) 2017 Red Hat +# Copyright (C) 2017-2022 Red Hat # see file 'COPYING' for use and warranty information # # This program is free software; you can redistribute it and/or modify @@ -40,31 +40,44 @@ options: principal: description: User Principal allowed to promote replicas and join IPA realm - required: yes + type: str + required: no + default: admin ccache: description: The local ccache - required: yes + type: path + required: no fqdn: description: The fully-qualified hostname of the host to add/modify/remove - required: no + type: str + required: yes certificates: description: A list of host certificates - required: yes + type: list + elements: str + required: no sshpubkey: description: The SSH public key for the host - required: yes + type: str + required: no ipaddress: description: The IP address for the host - required: yes + type: str + required: no random: description: Generate a random password to be used in bulk enrollment - required: yes + type: bool + required: no + default: no state: description: The desired host state - required: yes + type: str + choices: ['present', 'absent'] + default: present + required: no author: - - "Florence Blanc-Renaud" + - Florence Blanc-Renaud (@flo-renaud) ''' EXAMPLES = ''' @@ -87,11 +100,11 @@ host: contains: dn: description: the DN of the host entry - type: string + type: str returned: always fqdn: description: the fully qualified host name - type: string + type: str returned: always has_keytab: description: whether the host entry contains a keytab @@ -107,19 +120,20 @@ host: returned: always randompassword: description: the OneTimePassword generated for this host - type: string + type: str returned: changed certificates: description: the list of host certificates type: list + elements: str returned: when present sshpubkey: description: the SSH public key for the host - type: string + type: str returned: when present ipaddress: description: the IP address for the host - type: string + type: str returned: when present ''' @@ -128,9 +142,9 @@ import os from ansible.module_utils.basic import AnsibleModule from ansible.module_utils import six -from ipalib import api, errors -from ipaplatform.paths import paths -from ipapython.ipautil import run +from ansible.module_utils.ansible_ipa_client import ( + check_imports, api, errors, paths, run +) if six.PY3: unicode = str @@ -276,18 +290,21 @@ def main(): module = AnsibleModule( argument_spec=dict( - principal=dict(default='admin'), + principal=dict(required=False, type='str', default='admin'), ccache=dict(required=False, type='path'), - fqdn=dict(required=True), - certificates=dict(required=False, type='list'), - sshpubkey=dict(required=False), - ipaddress=dict(required=False), - random=dict(default=False, type='bool'), - state=dict(default='present', choices=['present', 'absent']), + fqdn=dict(required=True, type='str'), + certificates=dict(required=False, type='list', elements='str'), + sshpubkey=dict(required=False, type='str'), + ipaddress=dict(required=False, type='str'), + random=dict(required=False, type='bool', default=False), + state=dict(required=False, type='str', + choices=['present', 'absent'], default='present'), ), supports_check_mode=True, ) + check_imports(module) + ccache = module.params.get('ccache') fqdn = unicode(module.params.get('fqdn')) state = module.params.get('state') -- GitLab