diff options
author | Dusan Matejka <D3DeFi@users.noreply.github.com> | 2020-01-11 15:25:15 +0100 |
---|---|---|
committer | Matt Clay <matt@mystile.com> | 2020-01-13 13:51:26 -0800 |
commit | c94aa6dde64adf0d621d5aa890cd574358d4f196 (patch) | |
tree | 1d828a1b5d24f8e535ff693ff7096ae94d22cc90 /lib | |
parent | de0936f9c4ae6cc5fce3913b7b2be8fee40ec040 (diff) | |
download | ansible-c94aa6dde64adf0d621d5aa890cd574358d4f196.tar.gz |
adjusted doc and argument spec in zabbix modules to match sanity requirements (#66176)
(cherry picked from commit 34567004204db4c50ccb2b9f86b5cbeba39214df)
Diffstat (limited to 'lib')
11 files changed, 148 insertions, 72 deletions
diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_group.py b/lib/ansible/modules/monitoring/zabbix/zabbix_group.py index 40f9812422..451f2a4f1e 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_group.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_group.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_group short_description: Create/delete Zabbix host groups @@ -33,12 +33,15 @@ options: description: - Create or delete host group. required: false + type: str default: "present" choices: [ "present", "absent" ] host_groups: description: - List of host groups to create or delete. required: true + type: list + elements: str aliases: [ "host_group" ] extends_documentation_fragment: @@ -48,7 +51,7 @@ notes: - Too many concurrent updates to the same group may cause Zabbix to return errors, see examples for a workaround if needed. ''' -EXAMPLES = ''' +EXAMPLES = r''' # Base create host groups example - name: Create host groups local_action: @@ -144,7 +147,7 @@ def main(): http_login_password=dict(type='str', required=False, default=None, no_log=True), validate_certs=dict(type='bool', required=False, default=True), host_groups=dict(type='list', required=True, aliases=['host_group']), - state=dict(default="present", choices=['present', 'absent']), + state=dict(type='str', default="present", choices=['present', 'absent']), timeout=dict(type='int', default=10) ), supports_check_mode=True diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_group_info.py b/lib/ansible/modules/monitoring/zabbix/zabbix_group_info.py index 6bca816042..300333be0e 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_group_info.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_group_info.py @@ -12,7 +12,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'community'} -RETURN = ''' +RETURN = r''' --- host_groups: description: List of Zabbix groups. @@ -21,7 +21,7 @@ host_groups: sample: [ { "flags": "0", "groupid": "33", "internal": "0", "name": "Hostgruup A" } ] ''' -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_group_info short_description: Gather information about Zabbix hostgroup @@ -40,11 +40,13 @@ options: - Name of the hostgroup in Zabbix. - hostgroup is the unique identifier used and cannot be updated using this module. required: true + type: list + elements: str extends_documentation_fragment: - zabbix ''' -EXAMPLES = ''' +EXAMPLES = r''' - name: Get hostgroup info local_action: module: zabbix_group_info diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_host.py b/lib/ansible/modules/monitoring/zabbix/zabbix_host.py index 1d55ea304b..0b30edcc48 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_host.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_host.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_host short_description: Create/update/delete Zabbix hosts @@ -35,36 +35,46 @@ options: - Name of the host in Zabbix. - I(host_name) is the unique identifier used and cannot be updated using this module. required: true + type: str visible_name: description: - Visible name of the host in Zabbix. version_added: '2.3' + type: str description: description: - Description of the host in Zabbix. version_added: '2.5' + type: str host_groups: description: - List of host groups the host is part of. + type: list + elements: str link_templates: description: - List of templates linked to the host. + type: list + elements: str inventory_mode: description: - Configure the inventory mode. choices: ['automatic', 'manual', 'disabled'] version_added: '2.1' + type: str inventory_zabbix: description: - Add Facts for a zabbix inventory (e.g. Tag) (see example below). - Please review the interface documentation for more information on the supported properties - U(https://www.zabbix.com/documentation/3.2/manual/api/reference/host/object#host_inventory) version_added: '2.5' + type: dict status: description: - Monitoring status of the host. choices: ['enabled', 'disabled'] default: 'enabled' + type: str state: description: - State of the host. @@ -72,11 +82,14 @@ options: - On C(absent) will remove a host if it exists. choices: ['present', 'absent'] default: 'present' + type: str proxy: description: - The name of the Zabbix proxy to be used. + type: str interfaces: type: list + elements: dict description: - List of interfaces to be created for the host (see example below). - For more information, review host interface documentation at @@ -143,6 +156,7 @@ options: - Works only with >= Zabbix 3.0 default: 1 version_added: '2.5' + type: int tls_accept: description: - Specifies what types of connections are allowed for incoming connections. @@ -152,29 +166,34 @@ options: - Works only with >= Zabbix 3.0 default: 1 version_added: '2.5' + type: int tls_psk_identity: description: - It is a unique name by which this specific PSK is referred to by Zabbix components - Do not put sensitive information in the PSK identity string, it is transmitted over the network unencrypted. - Works only with >= Zabbix 3.0 version_added: '2.5' + type: str tls_psk: description: - PSK value is a hard to guess string of hexadecimal digits. - The preshared key, at least 32 hex digits. Required if either I(tls_connect) or I(tls_accept) has PSK enabled. - Works only with >= Zabbix 3.0 version_added: '2.5' + type: str ca_cert: description: - Required certificate issuer. - Works only with >= Zabbix 3.0 version_added: '2.5' aliases: [ tls_issuer ] + type: str tls_subject: description: - Required certificate subject. - Works only with >= Zabbix 3.0 version_added: '2.5' + type: str ipmi_authtype: description: - IPMI authentication algorithm. @@ -186,6 +205,7 @@ options: any of the I(ipmi_)-options; this means that if you attempt to set any of the four options individually, the rest will be reset to default values. version_added: '2.5' + type: int ipmi_privilege: description: - IPMI privilege level. @@ -195,16 +215,19 @@ options: being the API default. - also see the last note in the I(ipmi_authtype) documentation version_added: '2.5' + type: int ipmi_username: description: - IPMI username. - also see the last note in the I(ipmi_authtype) documentation version_added: '2.5' + type: str ipmi_password: description: - IPMI password. - also see the last note in the I(ipmi_authtype) documentation version_added: '2.5' + type: str force: description: - Overwrite the host configuration, even if already present. @@ -215,7 +238,7 @@ extends_documentation_fragment: - zabbix ''' -EXAMPLES = ''' +EXAMPLES = r''' - name: Create a new host or update an existing host's info local_action: module: zabbix_host @@ -676,9 +699,9 @@ def main(): validate_certs=dict(type='bool', required=False, default=True), host_groups=dict(type='list', required=False), link_templates=dict(type='list', required=False), - status=dict(default="enabled", choices=['enabled', 'disabled']), - state=dict(default="present", choices=['present', 'absent']), - inventory_mode=dict(required=False, choices=['automatic', 'manual', 'disabled']), + status=dict(type='str', default="enabled", choices=['enabled', 'disabled']), + state=dict(type='str', default="present", choices=['present', 'absent']), + inventory_mode=dict(type='str', required=False, choices=['automatic', 'manual', 'disabled']), ipmi_authtype=dict(type='int', default=None), ipmi_privilege=dict(type='int', default=None), ipmi_username=dict(type='str', required=False, default=None), @@ -689,7 +712,7 @@ def main(): tls_psk=dict(type='str', required=False), ca_cert=dict(type='str', required=False, aliases=['tls_issuer']), tls_subject=dict(type='str', required=False), - inventory_zabbix=dict(required=False, type='dict'), + inventory_zabbix=dict(type='dict', required=False), timeout=dict(type='int', default=10), interfaces=dict(type='list', required=False), force=dict(type='bool', default=True), diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_host_info.py b/lib/ansible/modules/monitoring/zabbix/zabbix_host_info.py index aeed472498..993238a593 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_host_info.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_host_info.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ['preview'], 'supported_by': 'community'} -RETURN = ''' +RETURN = r''' --- hosts: description: List of Zabbix hosts. See https://www.zabbix.com/documentation/3.4/manual/api/reference/host/get for list of host values. @@ -22,7 +22,7 @@ hosts: sample: [ { "available": "1", "description": "", "disable_until": "0", "error": "", "flags": "0", "groups": ["1"], "host": "Host A", ... } ] ''' -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_host_info short_description: Gather information about Zabbix host @@ -40,11 +40,16 @@ options: description: - Name of the host in Zabbix. - host_name is the unique identifier used and cannot be updated using this module. - required: true + - Required when I(host_ip) is not used. + required: false + type: str host_ip: description: - Host interface IP of the host in Zabbix. + - Required when I(host_name) is not used. required: false + type: list + elements: str exact_match: description: - Find the exact match @@ -60,13 +65,14 @@ options: - List of host inventory keys to display in result. - Whole host inventory is retrieved if keys are not specified. type: list + elements: str required: false version_added: 2.8 extends_documentation_fragment: - zabbix ''' -EXAMPLES = ''' +EXAMPLES = r''' - name: Get host info local_action: module: zabbix_host_info diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_hostmacro.py b/lib/ansible/modules/monitoring/zabbix/zabbix_hostmacro.py index 68c2597e53..65fd5a033d 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_hostmacro.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_hostmacro.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_hostmacro short_description: Create/update/delete Zabbix host macros @@ -31,14 +31,17 @@ options: description: - Name of the host. required: true + type: str macro_name: description: - Name of the host macro without the enclosing curly braces and the leading dollar sign. required: true + type: str macro_value: description: - Value of the host macro. - required: true + - Required if I(state=present). + type: str state: description: - State of the macro. @@ -46,6 +49,7 @@ options: - On C(absent) will remove a macro if it exists. required: false choices: ['present', 'absent'] + type: str default: "present" force: description: @@ -58,8 +62,8 @@ extends_documentation_fragment: - zabbix ''' -EXAMPLES = ''' -- name: Create a new host macro or update an existing macro's value +EXAMPLES = r''' +- name: Create new host macro or update an existing macro's value local_action: module: zabbix_hostmacro server_url: http://monitor.example.com @@ -159,8 +163,8 @@ def main(): validate_certs=dict(type='bool', required=False, default=True), host_name=dict(type='str', required=True), macro_name=dict(type='str', required=True), - macro_value=dict(type='str', required=True), - state=dict(default="present", choices=['present', 'absent']), + macro_value=dict(type='str', required=False), + state=dict(type='str', default='present', choices=['present', 'absent']), timeout=dict(type='int', default=10), force=dict(type='bool', default=True) ), diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_maintenance.py b/lib/ansible/modules/monitoring/zabbix/zabbix_maintenance.py index 310f201423..e58da2603c 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_maintenance.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_maintenance.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' module: zabbix_maintenance short_description: Create Zabbix maintenance windows @@ -30,35 +30,36 @@ options: - Create or remove a maintenance window. Maintenance window to remove is identified by name. default: present choices: [ "present", "absent" ] + type: str host_names: description: - Hosts to manage maintenance window for. - Separate multiple hosts with commas. - C(host_name) is an alias for C(host_names). - B(Required) option when C(state) is I(present) - and no C(host_groups) specified. + - B(Required) option when I(state=present) and I(host_groups) is not used. aliases: [ "host_name" ] + type: list + elements: str host_groups: description: - Host groups to manage maintenance window for. - Separate multiple groups with commas. - C(host_group) is an alias for C(host_groups). - B(Required) option when C(state) is I(present) - and no C(host_names) specified. + - B(Required) option when I(state=present) and I(host_names) is not used. aliases: [ "host_group" ] + type: list + elements: str minutes: description: - Length of maintenance window in minutes. default: 10 + type: int name: description: - Unique name of maintenance window. required: true + type: str desc: description: - Short description of maintenance window. - required: true default: Created by Ansible + type: str collect_data: description: - Type of maintenance. With data collection, or without. @@ -77,7 +78,7 @@ notes: - Install required module with 'pip install zabbix-api' command. ''' -EXAMPLES = ''' +EXAMPLES = r''' - name: Create a named maintenance window for host www1 for 90 minutes zabbix_maintenance: name: Update of www1 @@ -273,8 +274,8 @@ def get_host_ids(zbx, host_names): def main(): module = AnsibleModule( argument_spec=dict( - state=dict(required=False, default='present', choices=['present', 'absent']), - server_url=dict(type='str', required=True, default=None, aliases=['url']), + state=dict(type='str', required=False, default='present', choices=['present', 'absent']), + server_url=dict(type='str', required=True, aliases=['url']), host_names=dict(type='list', required=False, default=None, aliases=['host_name']), minutes=dict(type='int', required=False, default=10), host_groups=dict(type='list', required=False, default=None, aliases=['host_group']), @@ -362,7 +363,7 @@ def main(): if module.check_mode: changed = True else: - (rc, _, error) = update_maintenance(zbx, maintenance["maintenanceid"], group_ids, host_ids, start_time, maintenance_type, period, desc) + (rc, data, error) = update_maintenance(zbx, maintenance["maintenanceid"], group_ids, host_ids, start_time, maintenance_type, period, desc) if rc == 0: changed = True else: @@ -372,7 +373,7 @@ def main(): if module.check_mode: changed = True else: - (rc, _, error) = create_maintenance(zbx, group_ids, host_ids, start_time, maintenance_type, period, name, desc) + (rc, data, error) = create_maintenance(zbx, group_ids, host_ids, start_time, maintenance_type, period, name, desc) if rc == 0: changed = True else: @@ -388,7 +389,7 @@ def main(): if module.check_mode: changed = True else: - (rc, _, error) = delete_maintenance(zbx, maintenance["maintenanceid"]) + (rc, data, error) = delete_maintenance(zbx, maintenance["maintenanceid"]) if rc == 0: changed = True else: diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_map.py b/lib/ansible/modules/monitoring/zabbix/zabbix_map.py index 9926126f4a..bfd59609d6 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_map.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_map.py @@ -7,7 +7,7 @@ from __future__ import absolute_import, division, print_function __metaclass__ = type -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_map author: @@ -50,11 +50,13 @@ options: - Name of the map. required: true aliases: [ "map_name" ] + type: str data: description: - Graph written in DOT language. required: false aliases: [ "dot_data" ] + type: str state: description: - State of the map. @@ -63,21 +65,25 @@ options: required: false choices: ['present', 'absent'] default: "present" + type: str width: description: - Width of the map. required: false default: 800 + type: int height: description: - Height of the map. required: false default: 600 + type: int margin: description: - Size of white space between map's borders and its elements. required: false default: 40 + type: int expand_problem: description: - Whether the problem trigger will be displayed for elements with a single problem. @@ -96,19 +102,21 @@ options: required: false choices: ['label', 'ip', 'name', 'status', 'nothing', 'custom'] default: "name" + type: str default_image: description: - Name of the Zabbix image used to display the element if this element doesn't have the C(zbx_image) attribute defined. required: false aliases: [ "image" ] + type: str extends_documentation_fragment: - zabbix ''' -RETURN = ''' # ''' +RETURN = r''' # ''' -EXAMPLES = ''' +EXAMPLES = r''' ### ### Example inventory: # [web] @@ -758,7 +766,7 @@ def main(): data=dict(type='str', required=False, aliases=['dot_data']), width=dict(type='int', default=800), height=dict(type='int', default=600), - state=dict(default="present", choices=['present', 'absent']), + state=dict(type='str', default="present", choices=['present', 'absent']), default_image=dict(type='str', required=False, aliases=['image']), margin=dict(type='int', default=40), expand_problem=dict(type='bool', default=True), diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_mediatype.py b/lib/ansible/modules/monitoring/zabbix/zabbix_mediatype.py index 2cc0580ac4..9cc6912a46 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_mediatype.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_mediatype.py @@ -12,7 +12,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_mediatype short_description: Create/Update/Delete Zabbix media types @@ -40,7 +40,6 @@ options: - present - absent default: 'present' - required: true type: type: 'str' description: @@ -85,6 +84,7 @@ options: - Required when I(type=script). script_params: type: 'list' + elements: str description: - List of script parameters. - Required when I(type=script). @@ -168,10 +168,9 @@ extends_documentation_fragment: ''' -RETURN = ''' -''' +RETURN = r''' # ''' -EXAMPLES = ''' +EXAMPLES = r''' - name: 'Create an email mediatype with SMTP authentication' zabbix_mediatype: name: "Ops email" diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_proxy.py b/lib/ansible/modules/monitoring/zabbix/zabbix_proxy.py index 83cafc2e0a..fd017251e2 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_proxy.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_proxy.py @@ -25,7 +25,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_proxy short_description: Create/delete/get/update Zabbix proxies @@ -42,45 +42,54 @@ options: description: - Name of the proxy in Zabbix. required: true + type: str description: description: - Description of the proxy. required: false + type: str status: description: - Type of proxy. (4 - active, 5 - passive) required: false choices: ['active', 'passive'] default: "active" + type: str tls_connect: description: - Connections to proxy. required: false choices: ['no_encryption','PSK','certificate'] default: 'no_encryption' + type: str tls_accept: description: - Connections from proxy. required: false choices: ['no_encryption','PSK','certificate'] default: 'no_encryption' + type: str ca_cert: description: - Certificate issuer. required: false aliases: [ tls_issuer ] + type: str tls_subject: description: - Certificate subject. required: false + type: str tls_psk_identity: description: - PSK identity. Required if either I(tls_connect) or I(tls_accept) has PSK enabled. required: false + type: str tls_psk: description: - The preshared key, at least 32 hex digits. Required if either I(tls_connect) or I(tls_accept) has PSK enabled. required: false + type: str state: description: - State of the proxy. @@ -89,6 +98,7 @@ options: required: false choices: ['present', 'absent'] default: "present" + type: str interface: description: - Dictionary with params for the interface when proxy is in passive mode @@ -97,12 +107,13 @@ options: - U(https://www.zabbix.com/documentation/3.2/manual/api/reference/proxy/object#proxy_interface) required: false default: {} + type: dict extends_documentation_fragment: - zabbix ''' -EXAMPLES = ''' +EXAMPLES = r''' - name: Create a new proxy or update an existing proxy local_action: module: zabbix_proxy @@ -122,7 +133,7 @@ EXAMPLES = ''' port: 10050 ''' -RETURN = ''' # ''' +RETURN = r''' # ''' import traceback @@ -246,12 +257,12 @@ def main(): http_login_password=dict(type='str', required=False, default=None, no_log=True), validate_certs=dict(type='bool', required=False, default=True), - status=dict(default="active", choices=['active', 'passive']), - state=dict(default="present", choices=['present', 'absent']), + status=dict(type='str', default="active", choices=['active', 'passive']), + state=dict(type='str', default="present", choices=['present', 'absent']), description=dict(type='str', required=False), - tls_connect=dict(default='no_encryption', + tls_connect=dict(type='str', default='no_encryption', choices=['no_encryption', 'PSK', 'certificate']), - tls_accept=dict(default='no_encryption', + tls_accept=dict(type='str', default='no_encryption', choices=['no_encryption', 'PSK', 'certificate']), ca_cert=dict(type='str', required=False, default=None, aliases=['tls_issuer']), tls_subject=dict(type='str', required=False, default=None), diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_screen.py b/lib/ansible/modules/monitoring/zabbix/zabbix_screen.py index 5899da8896..60db441776 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_screen.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_screen.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_screen short_description: Create/update/delete Zabbix screens @@ -32,6 +32,7 @@ options: description: - List of screens to be created/updated/deleted (see example). type: list + elements: dict required: true suboptions: screen_name: @@ -39,13 +40,12 @@ options: - Screen name will be used. - If a screen has already been added, the screen name won't be updated. type: str - required: yes + required: true host_group: description: - Host group will be used for searching hosts. - Required if I(state=present). type: str - required: yes state: description: - I(present) - Create a screen if it doesn't exist. If the screen already exists, the screen will be updated as needed. @@ -60,6 +60,7 @@ options: - Graph names will be added to a screen. Case insensitive. - Required if I(state=present). type: list + elements: str graph_width: description: - Graph width will be set in graph settings. @@ -87,7 +88,7 @@ notes: - Too many concurrent updates to the same screen may cause Zabbix to return errors, see examples for a workaround if needed. ''' -EXAMPLES = ''' +EXAMPLES = r''' # Create/update a screen. - name: Create a new screen or update an existing screen's items 5 in a row local_action: @@ -350,16 +351,24 @@ def main(): http_login_password=dict(type='str', required=False, default=None, no_log=True), validate_certs=dict(type='bool', required=False, default=True), timeout=dict(type='int', default=10), - screens=dict(type='list', elements='dict', required=True, options=dict( - screen_name=dict(type='str', required=True), - host_group=dict(type='str'), - state=dict(type='str', default='present', choices=['absent', 'present']), - graph_names=dict(type='list', elements='str'), - graph_width=dict(type='int', default=None), - graph_height=dict(type='int', default=None), - graphs_in_row=dict(type='int', default=3), - sort=dict(default=False, type='bool'), - )) + screens=dict( + type='list', + elements='dict', + required=True, + options=dict( + screen_name=dict(type='str', required=True), + host_group=dict(type='str'), + state=dict(type='str', default='present', choices=['absent', 'present']), + graph_names=dict(type='list', elements='str'), + graph_width=dict(type='int', default=None), + graph_height=dict(type='int', default=None), + graphs_in_row=dict(type='int', default=3), + sort=dict(default=False, type='bool'), + ), + required_if=[ + ['state', 'present', ['host_group']] + ] + ) ), supports_check_mode=True ) diff --git a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py index 2d9342a647..8c1bdbaa9e 100644 --- a/lib/ansible/modules/monitoring/zabbix/zabbix_template.py +++ b/lib/ansible/modules/monitoring/zabbix/zabbix_template.py @@ -13,7 +13,7 @@ ANSIBLE_METADATA = {'metadata_version': '1.1', 'supported_by': 'community'} -DOCUMENTATION = ''' +DOCUMENTATION = r''' --- module: zabbix_template short_description: Create/update/delete/dump Zabbix template @@ -35,6 +35,7 @@ options: - Required when I(template_json) or I(template_xml) are not used. - Mutually exclusive with I(template_json) and I(template_xml). required: false + type: str template_json: description: - JSON dump of templates to import. @@ -52,6 +53,7 @@ options: - Mutually exclusive with I(template_name) and I(template_json). required: false version_added: '2.9' + type: str template_groups: description: - List of host groups to add template to when template is created. @@ -60,6 +62,7 @@ options: Not required when updating an existing template. required: false type: list + elements: str link_templates: description: - List of template names to be linked to the template. @@ -67,12 +70,14 @@ options: cleared from the template. required: false type: list + elements: str clear_templates: description: - List of template names to be unlinked and cleared from the template. - This option is ignored if template is being created for the first time. required: false type: list + elements: str macros: description: - List of user macros to create for the template. @@ -80,14 +85,17 @@ options: - See examples on how to pass macros. required: false type: list + elements: dict suboptions: name: description: - Name of the macro. - Must be specified in {$NAME} format. + type: str value: description: - Value of the macro. + type: str dump_format: description: - Format to use when dumping template with C(state=dump). @@ -95,6 +103,7 @@ options: choices: [json, xml] default: "json" version_added: '2.9' + type: str state: description: - Required state of the template. @@ -104,12 +113,13 @@ options: required: false choices: [present, absent, dump] default: "present" + type: str extends_documentation_fragment: - zabbix ''' -EXAMPLES = ''' +EXAMPLES = r''' --- - name: Create a new Zabbix template linked to groups, macros and templates local_action: @@ -224,7 +234,7 @@ EXAMPLES = ''' register: template_dump ''' -RETURN = ''' +RETURN = r''' --- template_json: description: The JSON dump of the template @@ -606,7 +616,7 @@ def main(): clear_templates=dict(type='list', required=False), macros=dict(type='list', required=False), dump_format=dict(type='str', required=False, default='json', choices=['json', 'xml']), - state=dict(default="present", choices=['present', 'absent', 'dump']), + state=dict(type='str', default="present", choices=['present', 'absent', 'dump']), timeout=dict(type='int', default=10) ), required_one_of=[ |