Skip to content
Snippets Groups Projects
Commit 66dbfce0 authored by Thomas Woerner's avatar Thomas Woerner
Browse files

ipaserver_setup_http: 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`
- `type` tag needs to match `argument_spec`
- `default` tag needs to match `argument_spec`
- `author` needs to be given with the github user also: `Name (@user)`

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_server.check_imports has been added to check for import
errors.

The `copyright` date is extended with `-2022`.
parent b22207d6
No related branches found
No related tags found
No related merge requests found
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
# #
# Based on ipa-client-install code # Based on ipa-client-install code
# #
# Copyright (C) 2017 Red Hat # Copyright (C) 2017-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,107 +39,155 @@ description: Setup HTTP ...@@ -39,107 +39,155 @@ description: Setup HTTP
options: options:
dm_password: dm_password:
description: Directory Manager password description: Directory Manager password
required: no type: str
required: yes
password: password:
description: Admin user kerberos password description: Admin user kerberos password
required: no type: str
required: yes
master_password: master_password:
description: kerberos master password (normally autogenerated) description: kerberos master password (normally autogenerated)
required: no type: str
required: yes
domain: domain:
description: Primary DNS domain of the IPA deployment description: Primary DNS domain of the IPA deployment
required: no type: str
required: yes
realm: realm:
description: Kerberos realm name of the IPA deployment description: Kerberos realm name of the IPA deployment
required: no type: str
required: yes
hostname: hostname:
description: Fully qualified name of this host description: Fully qualified name of this host
required: yes type: str
required: no
ip_addresses: ip_addresses:
description: List of Master Server IP Addresses description: List of Master Server IP Addresses
required: yes type: list
elements: str
required: no
reverse_zones: reverse_zones:
description: The reverse DNS zones to use description: The reverse DNS zones to use
required: yes type: list
elements: str
required: no
http_cert_files: http_cert_files:
description: description:
File containing the Apache Server SSL certificate and private key File containing the Apache Server SSL certificate and private key
required: yes type: list
elements: str
required: no
setup_adtrust: setup_adtrust:
description: Configure AD trust capability description: Configure AD trust capability
required: yes type: bool
default: no
required: no
setup_kra: setup_kra:
description: Configure a dogtag KRA description: Configure a dogtag KRA
required: yes type: bool
default: no
required: no
setup_dns: setup_dns:
description: Configure bind with our zone description: Configure bind with our zone
required: yes type: bool
default: no
required: no
setup_ca: setup_ca:
description: Configure a dogtag CA description: Configure a dogtag CA
required: yes type: bool
default: no
required: no
no_host_dns: no_host_dns:
description: Do not use DNS for hostname lookup during installation description: Do not use DNS for hostname lookup during installation
required: yes type: bool
default: no
required: no
no_pkinit: no_pkinit:
description: Disable pkinit setup steps description: Disable pkinit setup steps
required: yes type: bool
default: no
required: no
no_hbac_allow: no_hbac_allow:
description: Don't install allow_all HBAC rule description: Don't install allow_all HBAC rule
required: yes type: bool
default: no
required: no
no_ui_redirect: no_ui_redirect:
description: Do not automatically redirect to the Web UI description: Do not automatically redirect to the Web UI
required: yes type: bool
default: no
required: no
external_cert_files: external_cert_files:
description: description:
File containing the IPA CA certificate and the external CA certificate File containing the IPA CA certificate and the external CA certificate
chain chain
required: yes type: list
elements: str
required: no
subject_base: subject_base:
description: description:
The certificate subject base (default O=<realm-name>). The certificate subject base (default O=<realm-name>).
RDNs are in LDAP order (most specific RDN first). RDNs are in LDAP order (most specific RDN first).
required: yes type: str
required: no
_subject_base: _subject_base:
description: The installer _subject_base setting description: The installer _subject_base setting
required: yes type: str
required: no
ca_subject: ca_subject:
description: The installer ca_subject setting description: The installer ca_subject setting
required: yes type: str
required: no
_ca_subject: _ca_subject:
description: The installer _ca_subject setting description: The installer _ca_subject setting
required: yes type: str
required: no
idstart: idstart:
description: The starting value for the IDs range (default random) description: The starting value for the IDs range (default random)
required: no type: int
required: yes
idmax: idmax:
description: The max value for the IDs range (default idstart+199999) description: The max value for the IDs range (default idstart+199999)
required: no type: int
required: yes
domainlevel: domainlevel:
description: The domain level description: The domain level
required: yes type: int
required: no
dirsrv_config_file: dirsrv_config_file:
description: description:
The path to LDIF file that will be used to modify configuration of The path to LDIF file that will be used to modify configuration of
dse.ldif during installation of the directory server instance dse.ldif during installation of the directory server instance
required: yes type: str
required: no
dirsrv_cert_files: dirsrv_cert_files:
description: description:
Files containing the Directory Server SSL certificate and private key Files containing the Directory Server SSL certificate and private key
required: yes type: list
elements: str
required: no
no_reverse: no_reverse:
description: Do not create new reverse DNS zone description: Do not create new reverse DNS zone
required: yes type: bool
default: no
required: no
auto_forwarders: auto_forwarders:
description: Use DNS forwarders configured in /etc/resolv.conf description: Use DNS forwarders configured in /etc/resolv.conf
required: yes type: bool
default: no
required: no
_dirsrv_pkcs12_info: _dirsrv_pkcs12_info:
description: The installer _dirsrv_pkcs12_info setting description: The installer _dirsrv_pkcs12_info setting
required: yes type: list
elements: str
required: no
_http_pkcs12_info: _http_pkcs12_info:
description: The installer _http_pkcs12_info setting description: The installer _http_pkcs12_info setting
required: yes type: list
elements: str
required: no
author: author:
- Thomas Woerner - Thomas Woerner (@t-woerner)
''' '''
EXAMPLES = ''' EXAMPLES = '''
...@@ -150,7 +198,7 @@ RETURN = ''' ...@@ -150,7 +198,7 @@ RETURN = '''
from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.ansible_ipa_server import ( from ansible.module_utils.ansible_ipa_server import (
AnsibleModuleLog, setup_logging, options, sysrestore, paths, check_imports, AnsibleModuleLog, setup_logging, options, sysrestore, paths,
ansible_module_get_parsed_ip_addresses, ansible_module_get_parsed_ip_addresses,
api_Backend_ldap2, redirect_stdout, ds_init_info, api_Backend_ldap2, redirect_stdout, ds_init_info,
krbinstance, httpinstance, ca, service, tasks krbinstance, httpinstance, ca, service, tasks
...@@ -161,16 +209,19 @@ def main(): ...@@ -161,16 +209,19 @@ def main():
ansible_module = AnsibleModule( ansible_module = AnsibleModule(
argument_spec=dict( argument_spec=dict(
# basic # basic
dm_password=dict(required=True, no_log=True), dm_password=dict(required=True, type='str', no_log=True),
password=dict(required=True, no_log=True), password=dict(required=True, type='str', no_log=True),
master_password=dict(required=True, no_log=True), master_password=dict(required=True, type='str', no_log=True),
domain=dict(required=True), domain=dict(required=True, type='str'),
realm=dict(required=True), realm=dict(required=True, type='str'),
hostname=dict(required=False), hostname=dict(required=False, type='str'),
ip_addresses=dict(required=False, type='list', default=[]), ip_addresses=dict(required=False, type='list', elements='str',
reverse_zones=dict(required=False, type='list', default=[]), default=[]),
http_cert_files=dict(required=False, type='list', default=[]), reverse_zones=dict(required=False, type='list', elements='str',
default=[]),
http_cert_files=dict(required=False, type='list', elements='str',
default=[]),
setup_adtrust=dict(required=False, type='bool', default=False), setup_adtrust=dict(required=False, type='bool', default=False),
setup_kra=dict(required=False, type='bool', default=False), setup_kra=dict(required=False, type='bool', default=False),
...@@ -183,29 +234,34 @@ def main(): ...@@ -183,29 +234,34 @@ def main():
no_ui_redirect=dict(required=False, type='bool', default=False), no_ui_redirect=dict(required=False, type='bool', default=False),
external_cert_files=dict(required=False, type='list', default=[]), external_cert_files=dict(required=False, type='list',
subject_base=dict(required=False), elements='str', default=[]),
_subject_base=dict(required=False), subject_base=dict(required=False, type='str'),
ca_subject=dict(required=False), _subject_base=dict(required=False, type='str'),
_ca_subject=dict(required=False), ca_subject=dict(required=False, type='str'),
_ca_subject=dict(required=False, type='str'),
idstart=dict(required=True, type='int'), idstart=dict(required=True, type='int'),
idmax=dict(required=True, type='int'), idmax=dict(required=True, type='int'),
domainlevel=dict(required=False, type='int'), domainlevel=dict(required=False, type='int'),
dirsrv_config_file=dict(required=False), dirsrv_config_file=dict(required=False),
dirsrv_cert_files=dict(required=False, type='list', default=[]), dirsrv_cert_files=dict(required=False, type='list', elements='str',
default=[]),
no_reverse=dict(required=False, type='bool', default=False), no_reverse=dict(required=False, type='bool', default=False),
auto_forwarders=dict(required=False, type='bool', default=False), auto_forwarders=dict(required=False, type='bool', default=False),
# _update_hosts_file=dict(required=False, type='bool', # _update_hosts_file=dict(required=False, type='bool',
# default=False), # default=False),
_dirsrv_pkcs12_info=dict(required=False, type='list'), _dirsrv_pkcs12_info=dict(required=False, type='list',
_http_pkcs12_info=dict(required=False, type='list'), elements='str'),
_http_pkcs12_info=dict(required=False, type='list',
elements='str'),
), ),
) )
ansible_module._ansible_debug = True ansible_module._ansible_debug = True
check_imports(ansible_module)
setup_logging() setup_logging()
ansible_log = AnsibleModuleLog(ansible_module) ansible_log = AnsibleModuleLog(ansible_module)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment