ipadnszone: 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
- `suboptions` instead of `options` needs to be used for dict parameters
- `aliases` tag needs to match `argument_spec`
- `type` tag needs to match `argument_spec`
- `required` tags need to be fixed according to the `argument_spec`
- `authors` needs to be given with the github user also: `Name (@user)`

RETURN section

- `type: dict` needs to be given for dicts
- `contains` needs to be used instead of `options` for dicts
- `type: str` needs to be used for string parameters

argument_spec

- `elements="str"` needs to be added to all list of string parameters
- `elements="dict"` needs to be added to all list of dict parameters
- `type=str` and `type=int` need to be replaced by `type="str"` and
  `type="int"`

The `copyright` date is extended with `-2022`.
This commit is contained in:
Thomas Woerner
2022-09-30 14:52:37 +02:00
parent 07c8bb1efb
commit 19758959e4

View File

@@ -2,8 +2,9 @@
# Authors: # Authors:
# Sergio Oliveira Campos <seocam@redhat.com> # Sergio Oliveira Campos <seocam@redhat.com>
# Thomas Woerner <twoerner@redhat.com>
# #
# Copyright (C) 2020 Red Hat # Copyright (C) 2020-2022 Red Hat
# see file 'COPYING' for use and warranty information # see file 'COPYING' for use and warranty information
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
@@ -39,9 +40,10 @@ extends_documentation_fragment:
options: options:
name: name:
description: The zone name string. description: The zone name string.
required: true required: false
type: list type: list
alises: ["zone_name"] elements: str
aliases: ["zone_name"]
name_from_ip: name_from_ip:
description: | description: |
Derive zone name from reverse of IP (PTR). Derive zone name from reverse of IP (PTR).
@@ -51,17 +53,22 @@ options:
forwarders: forwarders:
description: The list of global DNS forwarders. description: The list of global DNS forwarders.
required: false required: false
options: type: list
elements: dict
suboptions:
ip_address: ip_address:
description: The forwarder nameserver IP address list (IPv4 and IPv6). description: The forwarder nameserver IP address list (IPv4 and IPv6).
type: str
required: true required: true
port: port:
description: The port to forward requests to. description: The port to forward requests to.
type: int
required: false required: false
forward_policy: forward_policy:
description: description:
Global forwarding policy. Set to "none" to disable any configured Global forwarding policy. Set to "none" to disable any configured
global forwarders. global forwarders.
type: str
required: false required: false
choices: ['only', 'first', 'none'] choices: ['only', 'first', 'none']
allow_sync_ptr: allow_sync_ptr:
@@ -71,6 +78,7 @@ options:
type: bool type: bool
state: state:
description: State to ensure description: State to ensure
type: str
default: present default: present
choices: ["present", "absent", "enabled", "disabled"] choices: ["present", "absent", "enabled", "disabled"]
name_server: name_server:
@@ -89,7 +97,7 @@ options:
description: Allow dynamic updates description: Allow dynamic updates
required: false required: false
type: bool type: bool
alises: ["dynamicupdate"] aliases: ["dynamicupdate"]
dnssec: dnssec:
description: Allow inline DNSSEC signing of records in the zone description: Allow inline DNSSEC signing of records in the zone
required: false required: false
@@ -97,11 +105,13 @@ options:
allow_transfer: allow_transfer:
description: List of IP addresses or networks which are allowed to transfer the zone description: List of IP addresses or networks which are allowed to transfer the zone
required: false required: false
type: bool type: list
elements: str
allow_query: allow_query:
description: List of IP addresses or networks which are allowed to issue queries description: List of IP addresses or networks which are allowed to issue queries
required: false required: false
type: bool type: list
elements: str
refresh: refresh:
description: SOA record refresh time description: SOA record refresh time
required: false required: false
@@ -141,6 +151,9 @@ options:
description: Force DNS zone creation even if nameserver is not resolvable description: Force DNS zone creation even if nameserver is not resolvable
required: false required: false
type: bool type: bool
author:
- Sergio Oliveira Campos (@seocam)
- Thomas Woerner (@t-woerner)
""" # noqa: E501 """ # noqa: E501
EXAMPLES = """ EXAMPLES = """
@@ -195,9 +208,11 @@ dnszone:
description: DNS Zone dict with zone name infered from `name_from_ip`. description: DNS Zone dict with zone name infered from `name_from_ip`.
returned: returned:
If `state` is `present`, `name_from_ip` is used, and a zone was created. If `state` is `present`, `name_from_ip` is used, and a zone was created.
options: type: dict
contains:
name: name:
description: The name of the zone created, inferred from `name_from_ip`. description: The name of the zone created, inferred from `name_from_ip`.
type: str
returned: always returned: always
""" """
@@ -487,8 +502,8 @@ class DNSZoneModule(IPAAnsibleModule):
def get_argument_spec(): def get_argument_spec():
forwarder_spec = dict( forwarder_spec = dict(
ip_address=dict(type=str, required=True), ip_address=dict(type="str", required=True),
port=dict(type=int, required=False, default=None), port=dict(type="int", required=False, default=None),
) )
return dict( return dict(
@@ -500,11 +515,13 @@ def get_argument_spec():
ipaadmin_principal=dict(type="str", default="admin"), ipaadmin_principal=dict(type="str", default="admin"),
ipaadmin_password=dict(type="str", required=False, no_log=True), ipaadmin_password=dict(type="str", required=False, no_log=True),
name=dict( name=dict(
type="list", default=None, required=False, aliases=["zone_name"] type="list", elements="str", default=None, required=False,
aliases=["zone_name"]
), ),
name_from_ip=dict(type="str", default=None, required=False), name_from_ip=dict(type="str", default=None, required=False),
forwarders=dict( forwarders=dict(
type="list", type="list",
elements="dict",
default=None, default=None,
required=False, required=False,
options=dict(**forwarder_spec), options=dict(**forwarder_spec),
@@ -526,8 +543,10 @@ def get_argument_spec():
aliases=["dynamicupdate"], aliases=["dynamicupdate"],
), ),
dnssec=dict(type="bool", required=False, default=None), dnssec=dict(type="bool", required=False, default=None),
allow_transfer=dict(type="list", required=False, default=None), allow_transfer=dict(type="list", elements="str", required=False,
allow_query=dict(type="list", required=False, default=None), default=None),
allow_query=dict(type="list", elements="str", required=False,
default=None),
refresh=dict(type="int", required=False, default=None), refresh=dict(type="int", required=False, default=None),
retry=dict(type="int", required=False, default=None), retry=dict(type="int", required=False, default=None),
expire=dict(type="int", required=False, default=None), expire=dict(type="int", required=False, default=None),