From 53cf06bf46a01840832d3b9070f82a4bcc3cd78f Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Fri, 26 Feb 2021 12:23:29 +0100 Subject: [PATCH] Tidy up sanity checks (2021/Batch 3 - who's counting) (#1885) (#1911) * fixed validation-modules for plugins/modules/packaging/language/pip_package_info.py * fixed validation-modules for plugins/modules/packaging/language/maven_artifact.py * fixed validation-modules for plugins/modules/packaging/language/bundler.py * fixed validation-modules for plugins/modules/notification/pushbullet.py * fixed validation-modules for plugins/modules/monitoring/sensu/sensu_handler.py * fixed validation-modules for plugins/modules/monitoring/sensu/sensu_check.py * fixed validation-modules for plugins/modules/monitoring/sensu/sensu_client.py * fixed validation-modules for plugins/modules/monitoring/icinga2_host.py * fixed validation-modules for plugins/modules/monitoring/datadog/datadog_monitor.py * fixed validation-modules for plugins/modules/monitoring/datadog/datadog_event.py * fixed validation-modules for plugins/modules/clustering/znode.py * fixed validation-modules for plugins/modules/clustering/etcd3.py * fixed validation-modules for plugins/modules/clustering/consul/consul_session.py * fixed validation-modules for plugins/modules/clustering/consul/consul_kv.py * fixed validation-modules for plugins/modules/clustering/consul/consul.py * fixed validation-modules for plugins/modules/cloud/profitbricks/profitbricks.py * fixed validation-modules for plugins/modules/cloud/profitbricks/profitbricks_volume.py * fixed validation-modules for plugins/modules/cloud/packet/packet_sshkey.py * fixed validation-modules for plugins/modules/cloud/oneandone/oneandone_server.py * fixed validation-modules for plugins/modules/cloud/oneandone/oneandone_private_network.py * fixed validation-modules for plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py * fixed validation-modules for plugins/modules/cloud/oneandone/oneandone_load_balancer.py * fixed validation-modules for plugins/modules/cloud/oneandone/oneandone_firewall_policy.py * fixed validation-modules for plugins/modules/cloud/webfaction/webfaction_app.py * fixed validation-modules for plugins/modules/cloud/webfaction/webfaction_db.py * fixed validation-modules for plugins/modules/cloud/webfaction/webfaction_domain.py * fixed validation-modules for plugins/modules/cloud/webfaction/webfaction_mailbox.py * fixed validation-modules for plugins/modules/cloud/webfaction/webfaction_site.py * fixed validation-modules for plugins/modules/remote_management/lxca/lxca_cmms.py * fixed validation-modules for plugins/modules/remote_management/lxca/lxca_nodes.py * missed one "elements" in sensu_handler * Tidy up batch of sanity checks ignore lines * missed lines in ignore-2.9.txt * fixed validation-modules for plugins/modules/clustering/consul/consul_acl.py * Update ignore-2.9.txt Removed consul_acl.py from ignore-2.9.txt * Apply suggestions from code review Co-authored-by: Andrew Klychkov * Update plugins/modules/notification/pushbullet.py Co-authored-by: Felix Fontein * Update plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py Co-authored-by: Felix Fontein * added changelog fragment * Update plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py * Update changelogs/fragments/1885-sanity-check-fixes-batch3.yml Co-authored-by: Felix Fontein Co-authored-by: Felix Fontein Co-authored-by: Andrew Klychkov (cherry picked from commit 76d9fe4ec660210b808432738d7d9e14880b7d6f) Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> --- .../1885-sanity-check-fixes-batch3.yml | 18 ++++++ .../oneandone/oneandone_firewall_policy.py | 15 +++-- .../oneandone/oneandone_load_balancer.py | 15 +++-- .../oneandone/oneandone_monitoring_policy.py | 55 +++++++++++-------- .../oneandone/oneandone_private_network.py | 6 +- .../cloud/oneandone/oneandone_server.py | 3 +- plugins/modules/cloud/packet/packet_sshkey.py | 24 +++++--- .../cloud/profitbricks/profitbricks.py | 6 +- .../cloud/profitbricks/profitbricks_volume.py | 12 +++- .../cloud/webfaction/webfaction_app.py | 7 +++ .../modules/cloud/webfaction/webfaction_db.py | 7 +++ .../cloud/webfaction/webfaction_domain.py | 10 +++- .../cloud/webfaction/webfaction_mailbox.py | 5 ++ .../cloud/webfaction/webfaction_site.py | 15 ++++- plugins/modules/clustering/consul/consul.py | 44 ++++++++------- .../modules/clustering/consul/consul_acl.py | 20 +++++-- .../modules/clustering/consul/consul_kv.py | 1 + .../clustering/consul/consul_session.py | 3 +- plugins/modules/clustering/etcd3.py | 11 ++++ plugins/modules/clustering/znode.py | 14 +++-- .../monitoring/datadog/datadog_event.py | 18 +++--- .../monitoring/datadog/datadog_monitor.py | 37 +++++++------ plugins/modules/monitoring/icinga2_host.py | 1 + .../modules/monitoring/sensu/sensu_check.py | 12 ++-- .../modules/monitoring/sensu/sensu_client.py | 34 ++++++------ .../modules/monitoring/sensu/sensu_handler.py | 30 +++++----- plugins/modules/notification/pushbullet.py | 4 ++ plugins/modules/packaging/language/bundler.py | 3 +- .../packaging/language/maven_artifact.py | 9 ++- .../packaging/language/pip_package_info.py | 7 ++- .../remote_management/lxca/lxca_cmms.py | 3 + .../remote_management/lxca/lxca_nodes.py | 3 + tests/sanity/ignore-2.10.txt | 43 --------------- tests/sanity/ignore-2.11.txt | 43 --------------- tests/sanity/ignore-2.9.txt | 23 -------- 35 files changed, 298 insertions(+), 263 deletions(-) create mode 100644 changelogs/fragments/1885-sanity-check-fixes-batch3.yml diff --git a/changelogs/fragments/1885-sanity-check-fixes-batch3.yml b/changelogs/fragments/1885-sanity-check-fixes-batch3.yml new file mode 100644 index 0000000000..bf819a6e21 --- /dev/null +++ b/changelogs/fragments/1885-sanity-check-fixes-batch3.yml @@ -0,0 +1,18 @@ +minor_changes: + - oneandone_firewall_policy - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - oneandone_load_balancer - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - oneandone_monitoring_policy - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - oneandone_private_network - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - oneandone_server - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - profitbricks - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - profitbricks_volume - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - webfaction_domain - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - webfaction_site - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - consul - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - consul_acl - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - consul_session - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - datadog_monitor - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - sensu_check - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - sensu_client - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - sensu_handler - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). + - bundler - elements of list parameters are now validated (https://github.com/ansible-collections/community.general/pull/1885). diff --git a/plugins/modules/cloud/oneandone/oneandone_firewall_policy.py b/plugins/modules/cloud/oneandone/oneandone_firewall_policy.py index 90694861a7..32e42ea865 100644 --- a/plugins/modules/cloud/oneandone/oneandone_firewall_policy.py +++ b/plugins/modules/cloud/oneandone/oneandone_firewall_policy.py @@ -57,27 +57,32 @@ options: Each rule must contain protocol parameter, in addition to three optional parameters (port_from, port_to, and source) type: list + elements: dict add_server_ips: description: - A list of server identifiers (id or name) to be assigned to a firewall policy. Used in combination with update state. type: list + elements: str required: false remove_server_ips: description: - A list of server IP ids to be unassigned from a firewall policy. Used in combination with update state. type: list + elements: str required: false add_rules: description: - A list of rules that will be added to an existing firewall policy. It is syntax is the same as the one used for rules parameter. Used in combination with update state. type: list + elements: dict required: false remove_rules: description: - A list of rule ids that will be removed from an existing firewall policy. Used in combination with update state. type: list + elements: str required: false description: description: @@ -508,11 +513,11 @@ def main(): name=dict(type='str'), firewall_policy=dict(type='str'), description=dict(type='str'), - rules=dict(type='list', default=[]), - add_server_ips=dict(type='list', default=[]), - remove_server_ips=dict(type='list', default=[]), - add_rules=dict(type='list', default=[]), - remove_rules=dict(type='list', default=[]), + rules=dict(type='list', elements="dict", default=[]), + add_server_ips=dict(type='list', elements="str", default=[]), + remove_server_ips=dict(type='list', elements="str", default=[]), + add_rules=dict(type='list', elements="dict", default=[]), + remove_rules=dict(type='list', elements="str", default=[]), wait=dict(type='bool', default=True), wait_timeout=dict(type='int', default=600), wait_interval=dict(type='int', default=5), diff --git a/plugins/modules/cloud/oneandone/oneandone_load_balancer.py b/plugins/modules/cloud/oneandone/oneandone_load_balancer.py index 62551560c2..71f1d96b9c 100644 --- a/plugins/modules/cloud/oneandone/oneandone_load_balancer.py +++ b/plugins/modules/cloud/oneandone/oneandone_load_balancer.py @@ -95,6 +95,7 @@ options: - A list of rule objects that will be set for the load balancer. Each rule must contain protocol, port_balancer, and port_server parameters, in addition to source parameter, which is optional. type: list + elements: dict description: description: - Description of the load balancer. maxLength=256 @@ -105,22 +106,26 @@ options: - A list of server identifiers (id or name) to be assigned to a load balancer. Used in combination with update state. type: list + elements: str required: false remove_server_ips: description: - A list of server IP ids to be unassigned from a load balancer. Used in combination with update state. type: list + elements: str required: false add_rules: description: - A list of rules that will be added to an existing load balancer. It is syntax is the same as the one used for rules parameter. Used in combination with update state. type: list + elements: dict required: false remove_rules: description: - A list of rule ids that will be removed from an existing load balancer. Used in combination with update state. type: list + elements: str required: false wait: description: @@ -613,11 +618,11 @@ def main(): choices=METHODS), datacenter=dict( choices=DATACENTERS), - rules=dict(type='list', default=[]), - add_server_ips=dict(type='list', default=[]), - remove_server_ips=dict(type='list', default=[]), - add_rules=dict(type='list', default=[]), - remove_rules=dict(type='list', default=[]), + rules=dict(type='list', elements="dict", default=[]), + add_server_ips=dict(type='list', elements="str", default=[]), + remove_server_ips=dict(type='list', elements="str", default=[]), + add_rules=dict(type='list', elements="dict", default=[]), + remove_rules=dict(type='list', elements="str", default=[]), wait=dict(type='bool', default=True), wait_timeout=dict(type='int', default=600), wait_interval=dict(type='int', default=5), diff --git a/plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py b/plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py index 27ebebd6c7..67f2ce9cc0 100644 --- a/plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py +++ b/plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py @@ -71,6 +71,7 @@ options: warning alerts, critical is used to set critical alerts. alert enables alert, and value is used to advise when the value is exceeded. type: list + elements: dict suboptions: cpu: description: @@ -96,6 +97,7 @@ options: description: - Array of ports that will be monitoring. type: list + elements: dict suboptions: protocol: description: @@ -119,6 +121,7 @@ options: description: - Array of processes that will be monitoring. type: list + elements: dict suboptions: process: description: @@ -133,41 +136,49 @@ options: description: - Ports to add to the monitoring policy. type: list + elements: dict required: false add_processes: description: - Processes to add to the monitoring policy. type: list + elements: dict required: false add_servers: description: - Servers to add to the monitoring policy. type: list + elements: str required: false remove_ports: description: - Ports to remove from the monitoring policy. type: list + elements: str required: false remove_processes: description: - Processes to remove from the monitoring policy. type: list + elements: str required: false remove_servers: description: - Servers to remove from the monitoring policy. type: list + elements: str required: false update_ports: description: - Ports to be updated on the monitoring policy. type: list + elements: dict required: false update_processes: description: - Processes to be updated on the monitoring policy. type: list + elements: dict required: false wait: description: @@ -197,7 +208,7 @@ author: EXAMPLES = ''' - name: Create a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key name: ansible monitoring policy description: Testing creation of a monitoring policy with ansible @@ -258,13 +269,13 @@ EXAMPLES = ''' wait: true - name: Destroy a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key state: absent name: ansible monitoring policy - name: Update a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy name: ansible monitoring policy updated @@ -315,7 +326,7 @@ EXAMPLES = ''' state: update - name: Add a port to a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated add_ports: @@ -328,7 +339,7 @@ EXAMPLES = ''' state: update - name: Update existing ports of a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated update_ports: @@ -348,7 +359,7 @@ EXAMPLES = ''' state: update - name: Remove a port from a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated remove_ports: @@ -356,7 +367,7 @@ EXAMPLES = ''' state: update - name: Add a process to a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated add_processes: @@ -368,7 +379,7 @@ EXAMPLES = ''' state: update - name: Update existing processes of a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated update_processes: @@ -386,7 +397,7 @@ EXAMPLES = ''' state: update - name: Remove a process from a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated remove_processes: @@ -395,7 +406,7 @@ EXAMPLES = ''' state: update - name: Add server to a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated add_servers: @@ -404,7 +415,7 @@ EXAMPLES = ''' state: update - name: Remove server from a monitoring policy - oneandone_moitoring_policy: + community.general.oneandone_monitoring_policy: auth_token: oneandone_private_api_key monitoring_policy: ansible monitoring policy updated remove_servers: @@ -957,17 +968,17 @@ def main(): agent=dict(type='str'), email=dict(type='str'), description=dict(type='str'), - thresholds=dict(type='list', default=[]), - ports=dict(type='list', default=[]), - processes=dict(type='list', default=[]), - add_ports=dict(type='list', default=[]), - update_ports=dict(type='list', default=[]), - remove_ports=dict(type='list', default=[]), - add_processes=dict(type='list', default=[]), - update_processes=dict(type='list', default=[]), - remove_processes=dict(type='list', default=[]), - add_servers=dict(type='list', default=[]), - remove_servers=dict(type='list', default=[]), + thresholds=dict(type='list', elements="dict", default=[]), + ports=dict(type='list', elements="dict", default=[]), + processes=dict(type='list', elements="dict", default=[]), + add_ports=dict(type='list', elements="dict", default=[]), + update_ports=dict(type='list', elements="dict", default=[]), + remove_ports=dict(type='list', elements="str", default=[]), + add_processes=dict(type='list', elements="dict", default=[]), + update_processes=dict(type='list', elements="dict", default=[]), + remove_processes=dict(type='list', elements="str", default=[]), + add_servers=dict(type='list', elements="str", default=[]), + remove_servers=dict(type='list', elements="str", default=[]), wait=dict(type='bool', default=True), wait_timeout=dict(type='int', default=600), wait_interval=dict(type='int', default=5), diff --git a/plugins/modules/cloud/oneandone/oneandone_private_network.py b/plugins/modules/cloud/oneandone/oneandone_private_network.py index 7eae6ea3dc..edbdc9f8ce 100644 --- a/plugins/modules/cloud/oneandone/oneandone_private_network.py +++ b/plugins/modules/cloud/oneandone/oneandone_private_network.py @@ -71,10 +71,12 @@ options: description: - List of server identifiers (name or id) to be added to the private network. type: list + elements: str remove_members: description: - List of server identifiers (name or id) to be removed from the private network. type: list + elements: str wait: description: - wait for the instance to be in state 'running' before returning @@ -394,8 +396,8 @@ def main(): description=dict(type='str'), network_address=dict(type='str'), subnet_mask=dict(type='str'), - add_members=dict(type='list', default=[]), - remove_members=dict(type='list', default=[]), + add_members=dict(type='list', elements="str", default=[]), + remove_members=dict(type='list', elements="str", default=[]), datacenter=dict( choices=DATACENTERS), wait=dict(type='bool', default=True), diff --git a/plugins/modules/cloud/oneandone/oneandone_server.py b/plugins/modules/cloud/oneandone/oneandone_server.py index 1e6caab5eb..a91fc55ac9 100644 --- a/plugins/modules/cloud/oneandone/oneandone_server.py +++ b/plugins/modules/cloud/oneandone/oneandone_server.py @@ -87,6 +87,7 @@ options: - A list of hard disks with nested "size" and "is_main" properties. It must be provided with vcore, cores_per_processor, and ram parameters. type: list + elements: dict private_network: description: - The private network name or ID. @@ -627,7 +628,7 @@ def main(): vcore=dict(type='int'), cores_per_processor=dict(type='int'), ram=dict(type='float'), - hdds=dict(type='list'), + hdds=dict(type='list', elements='dict'), count=dict(type='int', default=1), ssh_key=dict(type='raw'), auto_increment=dict(type='bool', default=True), diff --git a/plugins/modules/cloud/packet/packet_sshkey.py b/plugins/modules/cloud/packet/packet_sshkey.py index 73233d8933..97589cddb9 100644 --- a/plugins/modules/cloud/packet/packet_sshkey.py +++ b/plugins/modules/cloud/packet/packet_sshkey.py @@ -17,27 +17,35 @@ author: "Tomas Karasek (@t0mk) " options: state: description: - - Indicate desired state of the target. + - Indicate desired state of the target. default: present choices: ['present', 'absent'] + type: str auth_token: description: - - Packet API token. You can also supply it in env var C(PACKET_API_TOKEN). + - Packet API token. You can also supply it in env var C(PACKET_API_TOKEN). + type: str label: - description: - - Label for the key. If you keep it empty, it will be read from key string. + description: + - Label for the key. If you keep it empty, it will be read from key string. + type: str + aliases: [name] id: description: - - UUID of the key which you want to remove. + - UUID of the key which you want to remove. + type: str fingerprint: description: - - Fingerprint of the key which you want to remove. + - Fingerprint of the key which you want to remove. + type: str key: description: - - Public Key string ({type} {base64 encoded key} {description}). + - Public Key string ({type} {base64 encoded key} {description}). + type: str key_file: description: - - File with the public key. + - File with the public key. + type: path requirements: - "python >= 2.6" diff --git a/plugins/modules/cloud/profitbricks/profitbricks.py b/plugins/modules/cloud/profitbricks/profitbricks.py index 90798672c0..507bea5339 100644 --- a/plugins/modules/cloud/profitbricks/profitbricks.py +++ b/plugins/modules/cloud/profitbricks/profitbricks.py @@ -35,6 +35,7 @@ options: description: - Public SSH keys allowing access to the virtual machine. type: list + elements: str datacenter: description: - The datacenter to provision this virtual machine. @@ -70,6 +71,7 @@ options: description: - list of instance ids, currently only used when state='absent' to remove instances. type: list + elements: str count: description: - The number of virtual machines to create. @@ -581,12 +583,12 @@ def main(): volume_size=dict(type='int', default=10), disk_type=dict(choices=['HDD', 'SSD'], default='HDD'), image_password=dict(default=None, no_log=True), - ssh_keys=dict(type='list', default=[]), + ssh_keys=dict(type='list', elements='str', default=[]), bus=dict(choices=['VIRTIO', 'IDE'], default='VIRTIO'), lan=dict(type='int', default=1), count=dict(type='int', default=1), auto_increment=dict(type='bool', default=True), - instance_ids=dict(type='list', default=[]), + instance_ids=dict(type='list', elements='str', default=[]), subscription_user=dict(), subscription_password=dict(no_log=True), location=dict(choices=LOCATIONS, default='us/las'), diff --git a/plugins/modules/cloud/profitbricks/profitbricks_volume.py b/plugins/modules/cloud/profitbricks/profitbricks_volume.py index a63cbcdd3b..0719c025fa 100644 --- a/plugins/modules/cloud/profitbricks/profitbricks_volume.py +++ b/plugins/modules/cloud/profitbricks/profitbricks_volume.py @@ -47,6 +47,7 @@ options: description: - Public SSH keys allowing access to the virtual machine. type: list + elements: str required: false disk_type: description: @@ -77,6 +78,7 @@ options: description: - list of instance ids, currently only used when state='absent' to remove instances. type: list + elements: str required: false subscription_user: description: @@ -106,6 +108,10 @@ options: type: str required: false default: 'present' + server: + description: + - Server name to attach the volume to. + type: str requirements: [ "profitbricks" ] author: Matt Baldwin (@baldwinSPC) @@ -369,13 +375,13 @@ def main(): size=dict(type='int', default=10), bus=dict(choices=['VIRTIO', 'IDE'], default='VIRTIO'), image=dict(), - image_password=dict(default=None, no_log=True), - ssh_keys=dict(type='list', default=[]), + image_password=dict(no_log=True), + ssh_keys=dict(type='list', elements='str', default=[]), disk_type=dict(choices=['HDD', 'SSD'], default='HDD'), licence_type=dict(default='UNKNOWN'), count=dict(type='int', default=1), auto_increment=dict(type='bool', default=True), - instance_ids=dict(type='list', default=[]), + instance_ids=dict(type='list', elements='str', default=[]), subscription_user=dict(), subscription_password=dict(no_log=True), wait=dict(type='bool', default=True), diff --git a/plugins/modules/cloud/webfaction/webfaction_app.py b/plugins/modules/cloud/webfaction/webfaction_app.py index 9a69ce54fc..1839db3810 100644 --- a/plugins/modules/cloud/webfaction/webfaction_app.py +++ b/plugins/modules/cloud/webfaction/webfaction_app.py @@ -35,17 +35,20 @@ options: description: - The name of the application required: true + type: str state: description: - Whether the application should exist choices: ['present', 'absent'] default: "present" + type: str type: description: - The type of application to create. See the Webfaction docs at U(https://docs.webfaction.com/xmlrpc-api/apps.html) for a list. required: true + type: str autostart: description: @@ -57,6 +60,7 @@ options: description: - Any extra parameters required by the app default: '' + type: str port_open: description: @@ -68,15 +72,18 @@ options: description: - The webfaction account to use required: true + type: str login_password: description: - The webfaction password to use required: true + type: str machine: description: - The machine name to use (optional for accounts with only one machine) + type: str ''' diff --git a/plugins/modules/cloud/webfaction/webfaction_db.py b/plugins/modules/cloud/webfaction/webfaction_db.py index 19bc6ea212..11563426d7 100644 --- a/plugins/modules/cloud/webfaction/webfaction_db.py +++ b/plugins/modules/cloud/webfaction/webfaction_db.py @@ -32,36 +32,43 @@ options: description: - The name of the database required: true + type: str state: description: - Whether the database should exist choices: ['present', 'absent'] default: "present" + type: str type: description: - The type of database to create. required: true choices: ['mysql', 'postgresql'] + type: str password: description: - The password for the new database user. + type: str login_name: description: - The webfaction account to use required: true + type: str login_password: description: - The webfaction password to use required: true + type: str machine: description: - The machine name to use (optional for accounts with only one machine) + type: str ''' EXAMPLES = ''' diff --git a/plugins/modules/cloud/webfaction/webfaction_domain.py b/plugins/modules/cloud/webfaction/webfaction_domain.py index a348ef5134..f9c3b7db7a 100644 --- a/plugins/modules/cloud/webfaction/webfaction_domain.py +++ b/plugins/modules/cloud/webfaction/webfaction_domain.py @@ -32,27 +32,33 @@ options: description: - The name of the domain required: true + type: str state: description: - Whether the domain should exist choices: ['present', 'absent'] default: "present" + type: str subdomains: description: - Any subdomains to create. default: [] + type: list + elements: str login_name: description: - The webfaction account to use required: true + type: str login_password: description: - The webfaction password to use required: true + type: str ''' EXAMPLES = ''' @@ -87,8 +93,8 @@ def main(): module = AnsibleModule( argument_spec=dict( name=dict(required=True), - state=dict(required=False, choices=['present', 'absent'], default='present'), - subdomains=dict(required=False, default=[], type='list'), + state=dict(choices=['present', 'absent'], default='present'), + subdomains=dict(default=[], type='list', elements='str'), login_name=dict(required=True), login_password=dict(required=True, no_log=True), ), diff --git a/plugins/modules/cloud/webfaction/webfaction_mailbox.py b/plugins/modules/cloud/webfaction/webfaction_mailbox.py index 144fad2983..37755763a2 100644 --- a/plugins/modules/cloud/webfaction/webfaction_mailbox.py +++ b/plugins/modules/cloud/webfaction/webfaction_mailbox.py @@ -29,27 +29,32 @@ options: description: - The name of the mailbox required: true + type: str mailbox_password: description: - The password for the mailbox required: true + type: str state: description: - Whether the mailbox should exist choices: ['present', 'absent'] default: "present" + type: str login_name: description: - The webfaction account to use required: true + type: str login_password: description: - The webfaction password to use required: true + type: str ''' EXAMPLES = ''' diff --git a/plugins/modules/cloud/webfaction/webfaction_site.py b/plugins/modules/cloud/webfaction/webfaction_site.py index 8ae982804d..87faade3e2 100644 --- a/plugins/modules/cloud/webfaction/webfaction_site.py +++ b/plugins/modules/cloud/webfaction/webfaction_site.py @@ -33,17 +33,20 @@ options: description: - The name of the website required: true + type: str state: description: - Whether the website should exist choices: ['present', 'absent'] default: "present" + type: str host: description: - The webfaction host on which the site should be created. required: true + type: str https: description: @@ -55,21 +58,27 @@ options: description: - A mapping of URLs to apps default: [] + type: list + elements: list subdomains: description: - A list of subdomains associated with this site. default: [] + type: list + elements: str login_name: description: - The webfaction account to use required: true + type: str login_password: description: - The webfaction password to use required: true + type: str ''' EXAMPLES = ''' @@ -101,12 +110,12 @@ def main(): module = AnsibleModule( argument_spec=dict( name=dict(required=True), - state=dict(required=False, choices=['present', 'absent'], default='present'), + state=dict(choices=['present', 'absent'], default='present'), # You can specify an IP address or hostname. host=dict(required=True), https=dict(required=False, type='bool', default=False), - subdomains=dict(required=False, type='list', default=[]), - site_apps=dict(required=False, type='list', default=[]), + subdomains=dict(type='list', elements='str', default=[]), + site_apps=dict(type='list', elements='list', default=[]), login_name=dict(required=True), login_password=dict(required=True, no_log=True), ), diff --git a/plugins/modules/clustering/consul/consul.py b/plugins/modules/clustering/consul/consul.py index dd8a5f50c3..cd695c4754 100644 --- a/plugins/modules/clustering/consul/consul.py +++ b/plugins/modules/clustering/consul/consul.py @@ -33,6 +33,7 @@ requirements: author: "Steve Gargan (@sgargan)" options: state: + type: str description: - register or deregister the consul service, defaults to present default: present @@ -86,6 +87,7 @@ options: documentation for further details. tags: type: list + elements: str description: - tags that will be attached to the service registration. script: @@ -345,7 +347,7 @@ def remove_service(module, service_id): module.exit_json(changed=False, id=service_id) -def get_consul_api(module, token=None): +def get_consul_api(module): consulClient = consul.Consul(host=module.params.get('host'), port=module.params.get('port'), scheme=module.params.get('scheme'), @@ -398,7 +400,7 @@ def parse_service(module): module.fail_json(msg="service_name is required to configure a service.") -class ConsulService(): +class ConsulService(object): def __init__(self, service_id=None, name=None, address=None, port=-1, tags=None, loaded=None): @@ -564,26 +566,26 @@ def main(): argument_spec=dict( host=dict(default='localhost'), port=dict(default=8500, type='int'), - scheme=dict(required=False, default='http'), - validate_certs=dict(required=False, default=True, type='bool'), - check_id=dict(required=False), - check_name=dict(required=False), - check_node=dict(required=False), - check_host=dict(required=False), - notes=dict(required=False), - script=dict(required=False), - service_id=dict(required=False), - service_name=dict(required=False), - service_address=dict(required=False, type='str', default=None), - service_port=dict(required=False, type='int', default=None), + scheme=dict(default='http'), + validate_certs=dict(default=True, type='bool'), + check_id=dict(), + check_name=dict(), + check_node=dict(), + check_host=dict(), + notes=dict(), + script=dict(), + service_id=dict(), + service_name=dict(), + service_address=dict(type='str'), + service_port=dict(type='int'), state=dict(default='present', choices=['present', 'absent']), - interval=dict(required=False, type='str'), - ttl=dict(required=False, type='str'), - tcp=dict(required=False, type='str'), - http=dict(required=False, type='str'), - timeout=dict(required=False, type='str'), - tags=dict(required=False, type='list'), - token=dict(required=False, no_log=True) + interval=dict(type='str'), + ttl=dict(type='str'), + tcp=dict(type='str'), + http=dict(type='str'), + timeout=dict(type='str'), + tags=dict(type='list', elements='str'), + token=dict(no_log=True) ), supports_check_mode=False, ) diff --git a/plugins/modules/clustering/consul/consul_acl.py b/plugins/modules/clustering/consul/consul_acl.py index 06feeea16d..c8d08f8e26 100644 --- a/plugins/modules/clustering/consul/consul_acl.py +++ b/plugins/modules/clustering/consul/consul_acl.py @@ -22,29 +22,35 @@ options: description: - a management token is required to manipulate the acl lists required: true + type: str state: description: - whether the ACL pair should be present or absent required: false choices: ['present', 'absent'] default: present + type: str token_type: description: - the type of token that should be created choices: ['client', 'management'] default: client + type: str name: description: - the name that should be associated with the acl key, this is opaque to Consul required: false + type: str token: description: - the token key identifying an ACL rule set. If generated by consul this will be a UUID required: false + type: str rules: type: list + elements: dict description: - rules that should be associated with a given token required: false @@ -53,6 +59,7 @@ options: - host of the consul agent defaults to localhost required: false default: localhost + type: str port: type: int description: @@ -64,6 +71,7 @@ options: - the protocol scheme on which the consul agent is running required: false default: http + type: str validate_certs: type: bool description: @@ -215,14 +223,14 @@ _POLICY_HCL_PROPERTY = "policy" _ARGUMENT_SPEC = { MANAGEMENT_PARAMETER_NAME: dict(required=True, no_log=True), HOST_PARAMETER_NAME: dict(default='localhost'), - SCHEME_PARAMETER_NAME: dict(required=False, default='http'), - VALIDATE_CERTS_PARAMETER_NAME: dict(required=False, type='bool', default=True), - NAME_PARAMETER_NAME: dict(required=False), + SCHEME_PARAMETER_NAME: dict(default='http'), + VALIDATE_CERTS_PARAMETER_NAME: dict(type='bool', default=True), + NAME_PARAMETER_NAME: dict(), PORT_PARAMETER_NAME: dict(default=8500, type='int'), - RULES_PARAMETER_NAME: dict(default=None, required=False, type='list'), + RULES_PARAMETER_NAME: dict(type='list', elements='dict'), STATE_PARAMETER_NAME: dict(default=PRESENT_STATE_VALUE, choices=[PRESENT_STATE_VALUE, ABSENT_STATE_VALUE]), - TOKEN_PARAMETER_NAME: dict(required=False), - TOKEN_TYPE_PARAMETER_NAME: dict(required=False, choices=[CLIENT_TOKEN_TYPE_VALUE, MANAGEMENT_TOKEN_TYPE_VALUE], + TOKEN_PARAMETER_NAME: dict(), + TOKEN_TYPE_PARAMETER_NAME: dict(choices=[CLIENT_TOKEN_TYPE_VALUE, MANAGEMENT_TOKEN_TYPE_VALUE], default=CLIENT_TOKEN_TYPE_VALUE) } diff --git a/plugins/modules/clustering/consul/consul_kv.py b/plugins/modules/clustering/consul/consul_kv.py index ee5c397054..bafa7fd6d9 100644 --- a/plugins/modules/clustering/consul/consul_kv.py +++ b/plugins/modules/clustering/consul/consul_kv.py @@ -37,6 +37,7 @@ options: 'release' respectively. a valid session must be supplied to make the attempt changed will be true if the attempt is successful, false otherwise. + type: str choices: [ absent, acquire, present, release ] default: present key: diff --git a/plugins/modules/clustering/consul/consul_session.py b/plugins/modules/clustering/consul/consul_session.py index f28d3a5eca..7ace1f89a8 100644 --- a/plugins/modules/clustering/consul/consul_session.py +++ b/plugins/modules/clustering/consul/consul_session.py @@ -67,6 +67,7 @@ options: associated with the session will be release and can be acquired once the associated lock delay has expired. type: list + elements: str host: description: - The host of the consul agent defaults to localhost. @@ -237,7 +238,7 @@ def test_dependencies(module): def main(): argument_spec = dict( - checks=dict(type='list'), + checks=dict(type='list', elements='str'), delay=dict(type='int', default='15'), behavior=dict(type='str', default='release', choices=['release', 'delete']), host=dict(type='str', default='localhost'), diff --git a/plugins/modules/clustering/etcd3.py b/plugins/modules/clustering/etcd3.py index 7883842998..df7319ecfe 100644 --- a/plugins/modules/clustering/etcd3.py +++ b/plugins/modules/clustering/etcd3.py @@ -18,47 +18,58 @@ description: - Needs python etcd3 lib to work options: key: + type: str description: - the key where the information is stored in the cluster required: true value: + type: str description: - the information stored required: true host: + type: str description: - the IP address of the cluster default: 'localhost' port: + type: int description: - the port number used to connect to the cluster default: 2379 state: + type: str description: - the state of the value for the key. - can be present or absent required: true choices: [ present, absent ] user: + type: str description: - The etcd user to authenticate with. password: + type: str description: - The password to use for authentication. - Required if I(user) is defined. ca_cert: + type: path description: - The Certificate Authority to use to verify the etcd host. - Required if I(client_cert) and I(client_key) are defined. client_cert: + type: path description: - PEM formatted certificate chain file to be used for SSL client authentication. - Required if I(client_key) is defined. client_key: + type: path description: - PEM formatted file that contains your private key to be used for SSL client authentication. - Required if I(client_cert) is defined. timeout: + type: int description: - The socket level timeout in seconds. author: diff --git a/plugins/modules/clustering/znode.py b/plugins/modules/clustering/znode.py index 156a63767b..e85537e6e8 100644 --- a/plugins/modules/clustering/znode.py +++ b/plugins/modules/clustering/znode.py @@ -17,25 +17,31 @@ options: description: - A list of ZooKeeper servers (format '[server]:[port]'). required: true + type: str name: description: - The path of the znode. required: true + type: str value: description: - The value assigned to the znode. + type: str op: description: - An operation to perform. Mutually exclusive with state. choices: [ get, wait, list ] + type: str state: description: - The state to enforce. Mutually exclusive with op. choices: [ present, absent ] + type: str timeout: description: - The amount of time to wait for a node to appear. default: 300 + type: int recursive: description: - Recursively delete node and all its children. @@ -110,11 +116,11 @@ def main(): argument_spec=dict( hosts=dict(required=True, type='str'), name=dict(required=True, type='str'), - value=dict(required=False, default=None, type='str'), - op=dict(required=False, default=None, choices=['get', 'wait', 'list']), + value=dict(type='str'), + op=dict(choices=['get', 'wait', 'list']), state=dict(choices=['present', 'absent']), - timeout=dict(required=False, default=300, type='int'), - recursive=dict(required=False, default=False, type='bool') + timeout=dict(default=300, type='int'), + recursive=dict(default=False, type='bool') ), supports_check_mode=False ) diff --git a/plugins/modules/monitoring/datadog/datadog_event.py b/plugins/modules/monitoring/datadog/datadog_event.py index a6327dde4b..fd15eaf46c 100644 --- a/plugins/modules/monitoring/datadog/datadog_event.py +++ b/plugins/modules/monitoring/datadog/datadog_event.py @@ -56,6 +56,7 @@ options: - If not specified, it defaults to the remote system's hostname. tags: type: list + elements: str description: ["Comma separated list of tags to apply to the event."] alert_type: type: str @@ -114,17 +115,12 @@ def main(): app_key=dict(required=True, no_log=True), title=dict(required=True), text=dict(required=True), - date_happened=dict(required=False, default=None, type='int'), - priority=dict( - required=False, default='normal', choices=['normal', 'low'] - ), - host=dict(required=False, default=None), - tags=dict(required=False, default=None, type='list'), - alert_type=dict( - required=False, default='info', - choices=['error', 'warning', 'info', 'success'] - ), - aggregation_key=dict(required=False, default=None), + date_happened=dict(type='int'), + priority=dict(default='normal', choices=['normal', 'low']), + host=dict(), + tags=dict(type='list', elements='str'), + alert_type=dict(default='info', choices=['error', 'warning', 'info', 'success']), + aggregation_key=dict(), validate_certs=dict(default=True, type='bool'), ) ) diff --git a/plugins/modules/monitoring/datadog/datadog_monitor.py b/plugins/modules/monitoring/datadog/datadog_monitor.py index f6020c2bed..6a8431af74 100644 --- a/plugins/modules/monitoring/datadog/datadog_monitor.py +++ b/plugins/modules/monitoring/datadog/datadog_monitor.py @@ -46,6 +46,7 @@ options: - A list of tags to associate with your monitor when creating or updating. - This can help you categorize and filter monitors. type: list + elements: str type: description: - The type of the monitor. @@ -205,29 +206,29 @@ def main(): module = AnsibleModule( argument_spec=dict( api_key=dict(required=True, no_log=True), - api_host=dict(required=False), + api_host=dict(), app_key=dict(required=True, no_log=True), state=dict(required=True, choices=['present', 'absent', 'mute', 'unmute']), - type=dict(required=False, choices=['metric alert', 'service check', 'event alert', 'process alert', 'log alert']), + type=dict(choices=['metric alert', 'service check', 'event alert', 'process alert', 'log alert']), name=dict(required=True), - query=dict(required=False), - notification_message=dict(required=False, no_log=True, default=None, aliases=['message'], + query=dict(), + notification_message=dict(no_log=True, aliases=['message'], deprecated_aliases=[dict(name='message', version='3.0.0', collection_name='community.general')]), # was Ansible 2.14 - silenced=dict(required=False, default=None, type='dict'), - notify_no_data=dict(required=False, default=False, type='bool'), - no_data_timeframe=dict(required=False, default=None), - timeout_h=dict(required=False, default=None), - renotify_interval=dict(required=False, default=None), - escalation_message=dict(required=False, default=None), - notify_audit=dict(required=False, default=False, type='bool'), - thresholds=dict(required=False, type='dict', default=None), - tags=dict(required=False, type='list', default=None), - locked=dict(required=False, default=False, type='bool'), - require_full_window=dict(required=False, default=None, type='bool'), - new_host_delay=dict(required=False, default=None), - evaluation_delay=dict(required=False, default=None), - id=dict(required=False), + silenced=dict(type='dict'), + notify_no_data=dict(default=False, type='bool'), + no_data_timeframe=dict(), + timeout_h=dict(), + renotify_interval=dict(), + escalation_message=dict(), + notify_audit=dict(default=False, type='bool'), + thresholds=dict(type='dict', default=None), + tags=dict(type='list', elements='str', default=None), + locked=dict(default=False, type='bool'), + require_full_window=dict(type='bool'), + new_host_delay=dict(), + evaluation_delay=dict(), + id=dict(), include_tags=dict(required=False, default=True, type='bool'), ) ) diff --git a/plugins/modules/monitoring/icinga2_host.py b/plugins/modules/monitoring/icinga2_host.py index 65c95812ca..b4c4cdbcfb 100644 --- a/plugins/modules/monitoring/icinga2_host.py +++ b/plugins/modules/monitoring/icinga2_host.py @@ -75,6 +75,7 @@ options: description: - Name used to create / delete the host. This does not need to be the FQDN, but does needs to be unique. required: true + aliases: [host] zone: type: str description: diff --git a/plugins/modules/monitoring/sensu/sensu_check.py b/plugins/modules/monitoring/sensu/sensu_check.py index 9ebe27653b..71e8f07228 100644 --- a/plugins/modules/monitoring/sensu/sensu_check.py +++ b/plugins/modules/monitoring/sensu/sensu_check.py @@ -49,11 +49,13 @@ options: - Path to the sensu check to run (not required when I(state=absent)) handlers: type: list + elements: str description: - List of handlers to notify when the check fails default: [] subscribers: type: list + elements: str description: - List of subscribers/channels this check should run for - See sensu_subscribers to subscribe a machine to a channel @@ -86,9 +88,9 @@ options: - When to enable handling of check failures dependencies: type: list + elements: str description: - - Other checks this check depends on, if dependencies fail, - - handling of this check will be disabled + - Other checks this check depends on, if dependencies fail handling of this check will be disabled default: [] metric: description: @@ -327,15 +329,15 @@ def main(): 'state': {'type': 'str', 'default': 'present', 'choices': ['present', 'absent']}, 'backup': {'type': 'bool', 'default': 'no'}, 'command': {'type': 'str'}, - 'handlers': {'type': 'list'}, - 'subscribers': {'type': 'list'}, + 'handlers': {'type': 'list', 'elements': 'str'}, + 'subscribers': {'type': 'list', 'elements': 'str'}, 'interval': {'type': 'int'}, 'timeout': {'type': 'int'}, 'ttl': {'type': 'int'}, 'handle': {'type': 'bool'}, 'subdue_begin': {'type': 'str'}, 'subdue_end': {'type': 'str'}, - 'dependencies': {'type': 'list'}, + 'dependencies': {'type': 'list', 'elements': 'str'}, 'metric': {'type': 'bool', 'default': 'no'}, 'standalone': {'type': 'bool'}, 'publish': {'type': 'bool'}, diff --git a/plugins/modules/monitoring/sensu/sensu_client.py b/plugins/modules/monitoring/sensu/sensu_client.py index 35444f60e4..ee67a6e75b 100644 --- a/plugins/modules/monitoring/sensu/sensu_client.py +++ b/plugins/modules/monitoring/sensu/sensu_client.py @@ -33,6 +33,7 @@ options: - If not specified it defaults to non-loopback IPv4 address as determined by Ruby Socket.ip_address_list (provided by Sensu). subscriptions: type: list + elements: str description: - An array of client subscriptions, a list of roles and/or responsibilities assigned to the system (e.g. webserver). - These subscriptions determine which monitoring checks are executed by the client, as check requests are sent to subscriptions. @@ -44,6 +45,7 @@ options: default: 'no' redact: type: list + elements: str description: - Client definition attributes to redact (values) when logging and sending client keepalives. socket: @@ -160,22 +162,22 @@ def main(): module = AnsibleModule( supports_check_mode=True, argument_spec=dict( - state=dict(type='str', required=False, choices=['present', 'absent'], default='present'), - name=dict(type='str', required=False), - address=dict(type='str', required=False), - subscriptions=dict(type='list', required=False), - safe_mode=dict(type='bool', required=False, default=False), - redact=dict(type='list', required=False), - socket=dict(type='dict', required=False), - keepalives=dict(type='bool', required=False, default=True), - keepalive=dict(type='dict', required=False), - registration=dict(type='dict', required=False), - deregister=dict(type='bool', required=False), - deregistration=dict(type='dict', required=False), - ec2=dict(type='dict', required=False), - chef=dict(type='dict', required=False), - puppet=dict(type='dict', required=False), - servicenow=dict(type='dict', required=False) + state=dict(type='str', choices=['present', 'absent'], default='present'), + name=dict(type='str', ), + address=dict(type='str', ), + subscriptions=dict(type='list', elements="str"), + safe_mode=dict(type='bool', default=False), + redact=dict(type='list', elements="str"), + socket=dict(type='dict'), + keepalives=dict(type='bool', default=True), + keepalive=dict(type='dict'), + registration=dict(type='dict'), + deregister=dict(type='bool'), + deregistration=dict(type='dict'), + ec2=dict(type='dict'), + chef=dict(type='dict'), + puppet=dict(type='dict'), + servicenow=dict(type='dict') ), required_if=[ ['state', 'present', ['subscriptions']] diff --git a/plugins/modules/monitoring/sensu/sensu_handler.py b/plugins/modules/monitoring/sensu/sensu_handler.py index 53152edc0f..0a56831ae0 100644 --- a/plugins/modules/monitoring/sensu/sensu_handler.py +++ b/plugins/modules/monitoring/sensu/sensu_handler.py @@ -37,11 +37,13 @@ options: - The Sensu event filter (name) to use when filtering events for the handler. filters: type: list + elements: str description: - An array of Sensu event filters (names) to use when filtering events for the handler. - Each array item must be a string. severities: type: list + elements: str description: - An array of check result severities the handler will handle. - 'NOTE: event resolution bypasses this filtering.' @@ -84,9 +86,9 @@ options: - 'NOTE: the pipe attribute is only required for Transport handlers (i.e. handlers configured with "type": "transport").' handlers: type: list + elements: str description: - An array of Sensu event handlers (names) to use for events using the handler set. - - Each array item must be a string. - 'NOTE: the handlers attribute is only required for handler sets (i.e. handlers configured with "type": "set").' notes: - Check mode is supported @@ -165,20 +167,20 @@ def main(): module = AnsibleModule( supports_check_mode=True, argument_spec=dict( - state=dict(type='str', required=False, choices=['present', 'absent'], default='present'), + state=dict(type='str', choices=['present', 'absent'], default='present'), name=dict(type='str', required=True), - type=dict(type='str', required=False, choices=['pipe', 'tcp', 'udp', 'transport', 'set']), - filter=dict(type='str', required=False), - filters=dict(type='list', required=False), - severities=dict(type='list', required=False), - mutator=dict(type='str', required=False), - timeout=dict(type='int', required=False, default=10), - handle_silenced=dict(type='bool', required=False, default=False), - handle_flapping=dict(type='bool', required=False, default=False), - command=dict(type='str', required=False), - socket=dict(type='dict', required=False), - pipe=dict(type='dict', required=False), - handlers=dict(type='list', required=False), + type=dict(type='str', choices=['pipe', 'tcp', 'udp', 'transport', 'set']), + filter=dict(type='str'), + filters=dict(type='list', elements='str'), + severities=dict(type='list', elements='str'), + mutator=dict(type='str'), + timeout=dict(type='int', default=10), + handle_silenced=dict(type='bool', default=False), + handle_flapping=dict(type='bool', default=False), + command=dict(type='str'), + socket=dict(type='dict'), + pipe=dict(type='dict'), + handlers=dict(type='list', elements='str'), ), required_if=[ ['state', 'present', ['type']], diff --git a/plugins/modules/notification/pushbullet.py b/plugins/modules/notification/pushbullet.py index ab27fd5e11..435fcf2fcb 100644 --- a/plugins/modules/notification/pushbullet.py +++ b/plugins/modules/notification/pushbullet.py @@ -48,6 +48,10 @@ options: type: str description: - Body of the notification, e.g. Details of the fault you're alerting. + url: + type: str + description: + - URL field, used when I(push_type) is C(link). notes: - Requires pushbullet.py Python package on the remote host. diff --git a/plugins/modules/packaging/language/bundler.py b/plugins/modules/packaging/language/bundler.py index 8be17d6f08..43f8cfa2ee 100644 --- a/plugins/modules/packaging/language/bundler.py +++ b/plugins/modules/packaging/language/bundler.py @@ -33,6 +33,7 @@ options: - If not specified, it will default to the temporary working directory exclude_groups: type: list + elements: str description: - A list of Gemfile groups to exclude during operations. This only applies when state is C(present). Bundler considers this @@ -134,7 +135,7 @@ def main(): executable=dict(default=None, required=False), state=dict(default='present', required=False, choices=['present', 'latest']), chdir=dict(default=None, required=False, type='path'), - exclude_groups=dict(default=None, required=False, type='list'), + exclude_groups=dict(default=None, required=False, type='list', elements='str'), clean=dict(default=False, required=False, type='bool'), gemfile=dict(default=None, required=False, type='path'), local=dict(default=False, required=False, type='bool'), diff --git a/plugins/modules/packaging/language/maven_artifact.py b/plugins/modules/packaging/language/maven_artifact.py index 03c3d4d44f..50b808f57a 100644 --- a/plugins/modules/packaging/language/maven_artifact.py +++ b/plugins/modules/packaging/language/maven_artifact.py @@ -141,6 +141,10 @@ options: required: false default: 'download' choices: ['never', 'download', 'change', 'always'] + directory_mode: + type: str + description: + - Filesystem permission mode applied recursively to I(dest) when it is a directory. extends_documentation_fragment: - files ''' @@ -342,7 +346,7 @@ class Artifact(object): if len(parts) >= 3: g = parts[0] a = parts[1] - v = parts[len(parts) - 1] + v = parts[-1] t = None c = None if len(parts) == 4: @@ -595,8 +599,7 @@ def main(): client_key=dict(type="path", required=False), keep_name=dict(required=False, default=False, type='bool'), verify_checksum=dict(required=False, default='download', choices=['never', 'download', 'change', 'always']), - directory_mode=dict(type='str'), # Used since https://github.com/ansible/ansible/pull/24965, not sure - # if this should really be here. + directory_mode=dict(type='str'), ), add_file_common_args=True, mutually_exclusive=([('version', 'version_by_spec')]) diff --git a/plugins/modules/packaging/language/pip_package_info.py b/plugins/modules/packaging/language/pip_package_info.py index 08eb2e952c..b769afb866 100644 --- a/plugins/modules/packaging/language/pip_package_info.py +++ b/plugins/modules/packaging/language/pip_package_info.py @@ -20,6 +20,7 @@ options: default: ['pip'] required: False type: list + elements: path requirements: - The requested pip executables must be installed on the target. author: @@ -115,7 +116,11 @@ def main(): # start work global module - module = AnsibleModule(argument_spec=dict(clients={'type': 'list', 'default': ['pip']},), supports_check_mode=True) + module = AnsibleModule( + argument_spec=dict( + clients=dict(type='list', elements='path', default=['pip']), + ), + supports_check_mode=True) packages = {} results = {'packages': {}} clients = module.params['clients'] diff --git a/plugins/modules/remote_management/lxca/lxca_cmms.py b/plugins/modules/remote_management/lxca/lxca_cmms.py index 7bd7b9ffec..776ee49fd4 100644 --- a/plugins/modules/remote_management/lxca/lxca_cmms.py +++ b/plugins/modules/remote_management/lxca/lxca_cmms.py @@ -20,6 +20,7 @@ options: uuid: description: uuid of device, this is string with length greater than 16. + type: str command_options: description: @@ -29,10 +30,12 @@ options: - cmms - cmms_by_uuid - cmms_by_chassis_uuid + type: str chassis: description: uuid of chassis, this is string with length greater than 16. + type: str extends_documentation_fragment: - community.general.lxca_common diff --git a/plugins/modules/remote_management/lxca/lxca_nodes.py b/plugins/modules/remote_management/lxca/lxca_nodes.py index febe2fd556..f788229d3d 100644 --- a/plugins/modules/remote_management/lxca/lxca_nodes.py +++ b/plugins/modules/remote_management/lxca/lxca_nodes.py @@ -20,6 +20,7 @@ options: uuid: description: uuid of device, this is string with length greater than 16. + type: str command_options: description: @@ -31,10 +32,12 @@ options: - nodes_by_chassis_uuid - nodes_status_managed - nodes_status_unmanaged + type: str chassis: description: uuid of chassis, this is string with length greater than 16. + type: str extends_documentation_fragment: - community.general.lxca_common diff --git a/tests/sanity/ignore-2.10.txt b/tests/sanity/ignore-2.10.txt index 4ab2987620..8cb4590fe5 100644 --- a/tests/sanity/ignore-2.10.txt +++ b/tests/sanity/ignore-2.10.txt @@ -64,11 +64,6 @@ plugins/modules/cloud/linode/linode_v4.py validate-modules:parameter-list-no-ele plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice -plugins/modules/cloud/oneandone/oneandone_firewall_policy.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_load_balancer.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_private_network.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_server.py validate-modules:parameter-list-no-elements plugins/modules/cloud/online/online_server_facts.py validate-modules:return-syntax-error plugins/modules/cloud/online/online_server_info.py validate-modules:return-syntax-error plugins/modules/cloud/online/online_user_facts.py validate-modules:return-syntax-error @@ -126,14 +121,7 @@ plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:parameter-list-no plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:doc-missing-type plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:doc-missing-type -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:parameter-type-not-in-doc -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:undocumented-parameter plugins/modules/cloud/packet/packet_volume_attachment.py pylint:ansible-bad-function -plugins/modules/cloud/profitbricks/profitbricks.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:doc-missing-type -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:undocumented-parameter plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed plugins/modules/cloud/rackspace/rax.py validate-modules:doc-missing-type plugins/modules/cloud/rackspace/rax.py validate-modules:parameter-list-no-elements @@ -172,44 +160,21 @@ plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:parameter-type plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:undocumented-parameter plugins/modules/cloud/univention/udm_share.py validate-modules:parameter-list-no-elements plugins/modules/cloud/univention/udm_user.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/webfaction/webfaction_app.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_db.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:parameter-type-not-in-doc -plugins/modules/cloud/webfaction/webfaction_mailbox.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:doc-choices-do-not-match-spec plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:doc-required-mismatch plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:missing-suboption-docs plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:undocumented-parameter plugins/modules/clustering/consul/consul.py validate-modules:doc-missing-type -plugins/modules/clustering/consul/consul.py validate-modules:parameter-list-no-elements plugins/modules/clustering/consul/consul.py validate-modules:undocumented-parameter -plugins/modules/clustering/consul/consul_acl.py validate-modules:doc-missing-type -plugins/modules/clustering/consul/consul_acl.py validate-modules:parameter-list-no-elements -plugins/modules/clustering/consul/consul_kv.py validate-modules:parameter-type-not-in-doc -plugins/modules/clustering/consul/consul_session.py validate-modules:parameter-list-no-elements plugins/modules/clustering/consul/consul_session.py validate-modules:parameter-state-invalid-choice -plugins/modules/clustering/etcd3.py validate-modules:parameter-type-not-in-doc -plugins/modules/clustering/znode.py validate-modules:doc-missing-type -plugins/modules/clustering/znode.py validate-modules:parameter-type-not-in-doc plugins/modules/database/postgresql/postgresql_db.py use-argspec-type-path plugins/modules/database/postgresql/postgresql_db.py validate-modules:use-run-command-not-popen plugins/modules/database/postgresql/postgresql_privs.py validate-modules:parameter-documented-multiple-times plugins/modules/database/postgresql/postgresql_tablespace.py validate-modules:mutually_exclusive-unknown plugins/modules/database/postgresql/postgresql_user.py validate-modules:doc-choices-do-not-match-spec plugins/modules/monitoring/bigpanda.py validate-modules:invalid-argument-name -plugins/modules/monitoring/datadog/datadog_event.py validate-modules:parameter-list-no-elements plugins/modules/monitoring/datadog/datadog_monitor.py validate-modules:invalid-argument-name -plugins/modules/monitoring/datadog/datadog_monitor.py validate-modules:parameter-list-no-elements -plugins/modules/monitoring/icinga2_host.py validate-modules:undocumented-parameter -plugins/modules/monitoring/sensu/sensu_check.py validate-modules:parameter-list-no-elements -plugins/modules/monitoring/sensu/sensu_client.py validate-modules:parameter-list-no-elements -plugins/modules/monitoring/sensu/sensu_handler.py validate-modules:parameter-list-no-elements plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:parameter-type-not-in-doc # This triggers when a parameter is undocumented plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:undocumented-parameter # Parameter removed but reason for removal is shown by custom code plugins/modules/net_tools/ldap/ldap_entry.py validate-modules:doc-missing-type @@ -304,13 +269,7 @@ plugins/modules/net_tools/nios/nios_zone.py validate-modules:undocumented-parame plugins/modules/notification/cisco_webex.py validate-modules:invalid-argument-name plugins/modules/notification/grove.py validate-modules:invalid-argument-name plugins/modules/notification/grove.py validate-modules:nonexistent-parameter-documented -plugins/modules/notification/pushbullet.py validate-modules:parameter-type-not-in-doc -plugins/modules/notification/pushbullet.py validate-modules:undocumented-parameter -plugins/modules/packaging/language/bundler.py validate-modules:parameter-list-no-elements plugins/modules/packaging/language/composer.py validate-modules:parameter-invalid -plugins/modules/packaging/language/maven_artifact.py validate-modules:parameter-type-not-in-doc -plugins/modules/packaging/language/maven_artifact.py validate-modules:undocumented-parameter -plugins/modules/packaging/language/pip_package_info.py validate-modules:parameter-list-no-elements plugins/modules/packaging/os/apt_rpm.py validate-modules:parameter-invalid plugins/modules/packaging/os/homebrew.py validate-modules:parameter-invalid plugins/modules/packaging/os/homebrew_cask.py validate-modules:parameter-invalid @@ -329,8 +288,6 @@ plugins/modules/remote_management/foreman/katello.py yamllint:unparsable-with-li plugins/modules/remote_management/hpilo/hpilo_boot.py validate-modules:parameter-type-not-in-doc plugins/modules/remote_management/hpilo/hpilo_info.py validate-modules:parameter-type-not-in-doc plugins/modules/remote_management/hpilo/hponcfg.py validate-modules:parameter-type-not-in-doc -plugins/modules/remote_management/lxca/lxca_cmms.py validate-modules:doc-missing-type -plugins/modules/remote_management/lxca/lxca_nodes.py validate-modules:doc-missing-type plugins/modules/remote_management/manageiq/manageiq_alert_profiles.py validate-modules:parameter-list-no-elements plugins/modules/remote_management/manageiq/manageiq_policies.py validate-modules:parameter-list-no-elements plugins/modules/remote_management/manageiq/manageiq_policies.py validate-modules:parameter-state-invalid-choice diff --git a/tests/sanity/ignore-2.11.txt b/tests/sanity/ignore-2.11.txt index bae40b11e6..aa147c8402 100644 --- a/tests/sanity/ignore-2.11.txt +++ b/tests/sanity/ignore-2.11.txt @@ -52,11 +52,6 @@ plugins/modules/cloud/linode/linode_v4.py validate-modules:parameter-list-no-ele plugins/modules/cloud/lxc/lxc_container.py use-argspec-type-path plugins/modules/cloud/lxc/lxc_container.py validate-modules:use-run-command-not-popen plugins/modules/cloud/misc/rhevm.py validate-modules:parameter-state-invalid-choice -plugins/modules/cloud/oneandone/oneandone_firewall_policy.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_load_balancer.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_monitoring_policy.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_private_network.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/oneandone/oneandone_server.py validate-modules:parameter-list-no-elements plugins/modules/cloud/online/online_server_facts.py validate-modules:return-syntax-error plugins/modules/cloud/online/online_server_info.py validate-modules:return-syntax-error plugins/modules/cloud/online/online_user_facts.py validate-modules:return-syntax-error @@ -114,14 +109,7 @@ plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:parameter-list-no plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:doc-missing-type plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:doc-missing-type -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:parameter-type-not-in-doc -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:undocumented-parameter plugins/modules/cloud/packet/packet_volume_attachment.py pylint:ansible-bad-function -plugins/modules/cloud/profitbricks/profitbricks.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:doc-missing-type -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:undocumented-parameter plugins/modules/cloud/rackspace/rax.py use-argspec-type-path # fix needed plugins/modules/cloud/rackspace/rax.py validate-modules:doc-missing-type plugins/modules/cloud/rackspace/rax.py validate-modules:parameter-list-no-elements @@ -160,44 +148,21 @@ plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:parameter-type plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:undocumented-parameter plugins/modules/cloud/univention/udm_share.py validate-modules:parameter-list-no-elements plugins/modules/cloud/univention/udm_user.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/webfaction/webfaction_app.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_db.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:parameter-type-not-in-doc -plugins/modules/cloud/webfaction/webfaction_mailbox.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:parameter-list-no-elements -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:doc-choices-do-not-match-spec plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:doc-required-mismatch plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:missing-suboption-docs plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:undocumented-parameter plugins/modules/clustering/consul/consul.py validate-modules:doc-missing-type -plugins/modules/clustering/consul/consul.py validate-modules:parameter-list-no-elements plugins/modules/clustering/consul/consul.py validate-modules:undocumented-parameter -plugins/modules/clustering/consul/consul_acl.py validate-modules:doc-missing-type -plugins/modules/clustering/consul/consul_acl.py validate-modules:parameter-list-no-elements -plugins/modules/clustering/consul/consul_kv.py validate-modules:parameter-type-not-in-doc -plugins/modules/clustering/consul/consul_session.py validate-modules:parameter-list-no-elements plugins/modules/clustering/consul/consul_session.py validate-modules:parameter-state-invalid-choice -plugins/modules/clustering/etcd3.py validate-modules:parameter-type-not-in-doc -plugins/modules/clustering/znode.py validate-modules:doc-missing-type -plugins/modules/clustering/znode.py validate-modules:parameter-type-not-in-doc plugins/modules/database/postgresql/postgresql_db.py use-argspec-type-path plugins/modules/database/postgresql/postgresql_db.py validate-modules:use-run-command-not-popen plugins/modules/database/postgresql/postgresql_privs.py validate-modules:parameter-documented-multiple-times plugins/modules/database/postgresql/postgresql_tablespace.py validate-modules:mutually_exclusive-unknown plugins/modules/database/postgresql/postgresql_user.py validate-modules:doc-choices-do-not-match-spec plugins/modules/monitoring/bigpanda.py validate-modules:invalid-argument-name -plugins/modules/monitoring/datadog/datadog_event.py validate-modules:parameter-list-no-elements plugins/modules/monitoring/datadog/datadog_monitor.py validate-modules:invalid-argument-name -plugins/modules/monitoring/datadog/datadog_monitor.py validate-modules:parameter-list-no-elements -plugins/modules/monitoring/icinga2_host.py validate-modules:undocumented-parameter -plugins/modules/monitoring/sensu/sensu_check.py validate-modules:parameter-list-no-elements -plugins/modules/monitoring/sensu/sensu_client.py validate-modules:parameter-list-no-elements -plugins/modules/monitoring/sensu/sensu_handler.py validate-modules:parameter-list-no-elements plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:parameter-type-not-in-doc # This triggers when a parameter is undocumented plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:undocumented-parameter # Parameter removed but reason for removal is shown by custom code plugins/modules/net_tools/ldap/ldap_entry.py validate-modules:doc-missing-type @@ -292,13 +257,7 @@ plugins/modules/net_tools/nios/nios_zone.py validate-modules:undocumented-parame plugins/modules/notification/cisco_webex.py validate-modules:invalid-argument-name plugins/modules/notification/grove.py validate-modules:invalid-argument-name plugins/modules/notification/grove.py validate-modules:nonexistent-parameter-documented -plugins/modules/notification/pushbullet.py validate-modules:parameter-type-not-in-doc -plugins/modules/notification/pushbullet.py validate-modules:undocumented-parameter -plugins/modules/packaging/language/bundler.py validate-modules:parameter-list-no-elements plugins/modules/packaging/language/composer.py validate-modules:parameter-invalid -plugins/modules/packaging/language/maven_artifact.py validate-modules:parameter-type-not-in-doc -plugins/modules/packaging/language/maven_artifact.py validate-modules:undocumented-parameter -plugins/modules/packaging/language/pip_package_info.py validate-modules:parameter-list-no-elements plugins/modules/packaging/os/apt_rpm.py validate-modules:parameter-invalid plugins/modules/packaging/os/homebrew.py validate-modules:parameter-invalid plugins/modules/packaging/os/homebrew_cask.py validate-modules:parameter-invalid @@ -317,8 +276,6 @@ plugins/modules/remote_management/foreman/katello.py yamllint:unparsable-with-li plugins/modules/remote_management/hpilo/hpilo_boot.py validate-modules:parameter-type-not-in-doc plugins/modules/remote_management/hpilo/hpilo_info.py validate-modules:parameter-type-not-in-doc plugins/modules/remote_management/hpilo/hponcfg.py validate-modules:parameter-type-not-in-doc -plugins/modules/remote_management/lxca/lxca_cmms.py validate-modules:doc-missing-type -plugins/modules/remote_management/lxca/lxca_nodes.py validate-modules:doc-missing-type plugins/modules/remote_management/manageiq/manageiq_alert_profiles.py validate-modules:parameter-list-no-elements plugins/modules/remote_management/manageiq/manageiq_policies.py validate-modules:parameter-list-no-elements plugins/modules/remote_management/manageiq/manageiq_policies.py validate-modules:parameter-state-invalid-choice diff --git a/tests/sanity/ignore-2.9.txt b/tests/sanity/ignore-2.9.txt index 63b80731c1..70528ea839 100644 --- a/tests/sanity/ignore-2.9.txt +++ b/tests/sanity/ignore-2.9.txt @@ -139,11 +139,6 @@ plugins/modules/cloud/ovirt/ovirt_vm_facts.py validate-modules:parameter-type-no plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:deprecation-mismatch plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:doc-missing-type plugins/modules/cloud/ovirt/ovirt_vmpool_facts.py validate-modules:invalid-documentation -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:doc-missing-type -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:parameter-type-not-in-doc -plugins/modules/cloud/packet/packet_sshkey.py validate-modules:undocumented-parameter -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:doc-missing-type -plugins/modules/cloud/profitbricks/profitbricks_volume.py validate-modules:undocumented-parameter plugins/modules/cloud/rackspace/rax.py use-argspec-type-path plugins/modules/cloud/rackspace/rax.py validate-modules:doc-missing-type plugins/modules/cloud/rackspace/rax.py validate-modules:undocumented-parameter @@ -185,24 +180,12 @@ plugins/modules/cloud/spotinst/spotinst_aws_elastigroup.py validate-modules:undo plugins/modules/cloud/univention/udm_dns_record.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/univention/udm_dns_zone.py validate-modules:undocumented-parameter -plugins/modules/cloud/webfaction/webfaction_app.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_db.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_domain.py validate-modules:parameter-type-not-in-doc -plugins/modules/cloud/webfaction/webfaction_mailbox.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:doc-missing-type -plugins/modules/cloud/webfaction/webfaction_site.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:doc-choices-do-not-match-spec plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:missing-suboption-docs plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:parameter-type-not-in-doc plugins/modules/cloud/xenserver/xenserver_guest.py validate-modules:undocumented-parameter plugins/modules/clustering/consul/consul.py validate-modules:doc-missing-type plugins/modules/clustering/consul/consul.py validate-modules:undocumented-parameter -plugins/modules/clustering/consul/consul_acl.py validate-modules:doc-missing-type -plugins/modules/clustering/consul/consul_kv.py validate-modules:parameter-type-not-in-doc -plugins/modules/clustering/etcd3.py validate-modules:parameter-type-not-in-doc -plugins/modules/clustering/znode.py validate-modules:doc-missing-type -plugins/modules/clustering/znode.py validate-modules:parameter-type-not-in-doc plugins/modules/database/postgresql/postgresql_db.py use-argspec-type-path plugins/modules/database/postgresql/postgresql_db.py validate-modules:parameter-type-not-in-doc plugins/modules/database/postgresql/postgresql_db.py validate-modules:use-run-command-not-popen @@ -210,7 +193,6 @@ plugins/modules/database/postgresql/postgresql_ext.py validate-modules:parameter plugins/modules/database/postgresql/postgresql_schema.py validate-modules:parameter-type-not-in-doc plugins/modules/database/postgresql/postgresql_user.py validate-modules:doc-choices-do-not-match-spec plugins/modules/database/postgresql/postgresql_user.py validate-modules:parameter-type-not-in-doc -plugins/modules/monitoring/icinga2_host.py validate-modules:undocumented-parameter plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:deprecation-mismatch plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:invalid-documentation plugins/modules/net_tools/ldap/ldap_attr.py validate-modules:parameter-type-not-in-doc @@ -284,10 +266,7 @@ plugins/modules/net_tools/nios/nios_zone.py validate-modules:doc-default-does-no plugins/modules/net_tools/nios/nios_zone.py validate-modules:doc-missing-type plugins/modules/net_tools/nios/nios_zone.py validate-modules:parameter-type-not-in-doc plugins/modules/net_tools/nios/nios_zone.py validate-modules:undocumented-parameter -plugins/modules/notification/pushbullet.py validate-modules:parameter-type-not-in-doc -plugins/modules/notification/pushbullet.py validate-modules:undocumented-parameter plugins/modules/packaging/language/composer.py validate-modules:parameter-invalid -plugins/modules/packaging/language/maven_artifact.py validate-modules:parameter-type-not-in-doc plugins/modules/packaging/os/apt_rpm.py validate-modules:parameter-invalid plugins/modules/packaging/os/homebrew.py validate-modules:parameter-invalid plugins/modules/packaging/os/homebrew_cask.py validate-modules:parameter-invalid @@ -308,8 +287,6 @@ plugins/modules/remote_management/foreman/katello.py validate-modules:missing-ma plugins/modules/remote_management/hpilo/hpilo_boot.py validate-modules:parameter-type-not-in-doc plugins/modules/remote_management/hpilo/hpilo_info.py validate-modules:parameter-type-not-in-doc plugins/modules/remote_management/hpilo/hponcfg.py validate-modules:parameter-type-not-in-doc -plugins/modules/remote_management/lxca/lxca_cmms.py validate-modules:doc-missing-type -plugins/modules/remote_management/lxca/lxca_nodes.py validate-modules:doc-missing-type plugins/modules/remote_management/manageiq/manageiq_provider.py validate-modules:doc-choices-do-not-match-spec plugins/modules/remote_management/manageiq/manageiq_provider.py validate-modules:doc-missing-type plugins/modules/remote_management/manageiq/manageiq_provider.py validate-modules:parameter-type-not-in-doc