diff --git a/plugins/modules/web_infrastructure/apache2_mod_proxy.py b/plugins/modules/web_infrastructure/apache2_mod_proxy.py index 96c07c4a07..dcf1656fcf 100644 --- a/plugins/modules/web_infrastructure/apache2_mod_proxy.py +++ b/plugins/modules/web_infrastructure/apache2_mod_proxy.py @@ -21,26 +21,30 @@ description: python module. options: balancer_url_suffix: + type: str description: - Suffix of the balancer pool url required to access the balancer pool status page (e.g. balancer_vhost[:port]/balancer_url_suffix). default: /balancer-manager/ balancer_vhost: + type: str description: - (ipv4|ipv6|fqdn):port of the Apache httpd 2.4 mod_proxy balancer pool. required: true member_host: + type: str description: - (ipv4|ipv6|fqdn) of the balancer member to get or to set attributes to. Port number is autodetected and should not be specified here. If undefined, apache2_mod_proxy module will return a members list of dictionaries of all the current balancer pool members' attributes. state: + type: str description: - Desired state of the member host. (absent|disabled),drained,hot_standby,ignore_errors can be simultaneously invoked by separating them with a comma (e.g. state=drained,ignore_errors). - choices: ["present", "absent", "enabled", "disabled", "drained", "hot_standby", "ignore_errors"] + - 'Accepted state values: ["present", "absent", "enabled", "disabled", "drained", "hot_standby", "ignore_errors"]' tls: description: - Use https to access balancer management page. @@ -351,7 +355,7 @@ def main(): """ Initiates module.""" module = AnsibleModule( argument_spec=dict( - balancer_vhost=dict(required=True, default=None, type='str'), + balancer_vhost=dict(required=True, type='str'), balancer_url_suffix=dict(default="/balancer-manager/", type='str'), member_host=dict(type='str'), state=dict(type='str'), diff --git a/plugins/modules/web_infrastructure/apache2_module.py b/plugins/modules/web_infrastructure/apache2_module.py index c4cb365faf..0253e7a42d 100644 --- a/plugins/modules/web_infrastructure/apache2_module.py +++ b/plugins/modules/web_infrastructure/apache2_module.py @@ -20,10 +20,12 @@ description: - Enables or disables a specified module of the Apache2 webserver. options: name: + type: str description: - Name of the module to enable/disable as given to C(a2enmod/a2dismod). required: true identifier: + type: str description: - Identifier of the module as listed by C(apache2ctl -M). This is optional and usually determined automatically by the common convention of @@ -36,6 +38,7 @@ options: type: bool default: False state: + type: str description: - Desired state of the module. choices: ['present', 'absent'] diff --git a/plugins/modules/web_infrastructure/deploy_helper.py b/plugins/modules/web_infrastructure/deploy_helper.py index 28271957b8..641cc1d4ec 100644 --- a/plugins/modules/web_infrastructure/deploy_helper.py +++ b/plugins/modules/web_infrastructure/deploy_helper.py @@ -32,6 +32,7 @@ description: options: path: + type: path required: True aliases: ['dest'] description: @@ -39,6 +40,7 @@ options: Returned in the C(deploy_helper.project_path) fact. state: + type: str description: - the state of the project. C(query) will only gather facts, @@ -51,18 +53,21 @@ options: default: present release: + type: str description: - the release version that is being deployed. Defaults to a timestamp format %Y%m%d%H%M%S (i.e. '20141119223359'). This parameter is optional during C(state=present), but needs to be set explicitly for C(state=finalize). You can use the generated fact C(release={{ deploy_helper.new_release }}). releases_path: + type: str description: - the name of the folder that will hold the releases. This can be relative to C(path) or absolute. Returned in the C(deploy_helper.releases_path) fact. default: releases shared_path: + type: path description: - the name of the folder that will hold the shared resources. This can be relative to C(path) or absolute. If this is set to an empty string, no shared folder will be created. @@ -70,12 +75,14 @@ options: default: shared current_path: + type: path description: - the name of the symlink that is created when the deploy is finalized. Used in C(finalize) and C(clean). Returned in the C(deploy_helper.current_path) fact. default: current unfinished_filename: + type: str description: - the name of the file that indicates a deploy has not finished. All folders in the releases_path that contain this file will be deleted on C(state=finalize) with clean=True, or C(state=clean). This file is @@ -89,6 +96,7 @@ options: default: 'yes' keep_releases: + type: int description: - the number of old releases to keep when cleaning. Used in C(finalize) and C(clean). Any unfinished builds will be deleted first, so only correct releases will count. The current version will not count. @@ -102,6 +110,7 @@ notes: - Because of the default behaviour of generating the I(new_release) fact, this module will not be idempotent unless you pass your own release name with C(release). Due to the nature of deploying software, this should not be much of a problem. +extends_documentation_fragment: files ''' EXAMPLES = ''' diff --git a/plugins/modules/web_infrastructure/ejabberd_user.py b/plugins/modules/web_infrastructure/ejabberd_user.py index 7483fcd9bb..be63c92080 100644 --- a/plugins/modules/web_infrastructure/ejabberd_user.py +++ b/plugins/modules/web_infrastructure/ejabberd_user.py @@ -19,14 +19,17 @@ description: - This module provides user management for ejabberd servers options: username: + type: str description: - the name of the user to manage required: true host: + type: str description: - the ejabberd host associated with this username required: true password: + type: str description: - the password to assign to the username required: false @@ -37,6 +40,7 @@ options: default: false type: bool state: + type: str description: - describe the desired state of the user to be managed required: false @@ -168,8 +172,8 @@ class EjabberdUser(object): def main(): module = AnsibleModule( argument_spec=dict( - host=dict(default=None, type='str'), - username=dict(default=None, type='str'), + host=dict(required=True, type='str'), + username=dict(required=True, type='str'), password=dict(default=None, type='str', no_log=True), state=dict(default='present', choices=['present', 'absent']), logging=dict(default=False, type='bool') diff --git a/plugins/modules/web_infrastructure/gunicorn.py b/plugins/modules/web_infrastructure/gunicorn.py index b6baf6da23..5703055623 100644 --- a/plugins/modules/web_infrastructure/gunicorn.py +++ b/plugins/modules/web_infrastructure/gunicorn.py @@ -23,29 +23,37 @@ author: - "Alejandro Gomez (@agmezr)" options: app: + type: str required: true aliases: ['name'] description: - The app module. A name refers to a WSGI callable that should be found in the specified module. venv: + type: path aliases: ['virtualenv'] description: - 'Path to the virtualenv directory.' config: + type: path description: - 'Path to the gunicorn configuration file.' + aliases: ['conf'] chdir: + type: path description: - 'Chdir to specified directory before apps loading.' pid: + type: path description: - 'A filename to use for the PID file. If not set and not found on the configuration file a tmp pid file will be created to check a successful run of gunicorn.' worker: + type: str choices: ['sync', 'eventlet', 'gevent', 'tornado ', 'gthread', 'gaiohttp'] description: - 'The type of workers to use. The default class (sync) should handle most "normal" types of workloads.' user: + type: str description: - 'Switch worker processes to run as this user.' notes: diff --git a/plugins/modules/web_infrastructure/htpasswd.py b/plugins/modules/web_infrastructure/htpasswd.py index 9997ab581b..6ff041316f 100644 --- a/plugins/modules/web_infrastructure/htpasswd.py +++ b/plugins/modules/web_infrastructure/htpasswd.py @@ -16,30 +16,35 @@ description: - This is used by web servers such as Apache and Nginx for basic authentication. options: path: + type: path required: true aliases: [ dest, destfile ] description: - Path to the file that contains the usernames and passwords name: + type: str required: true aliases: [ username ] description: - User name to add or remove password: + type: str required: false description: - Password associated with user. - Must be specified if user does not exist yet. crypt_scheme: + type: str required: false - choices: ["apr_md5_crypt", "des_crypt", "ldap_sha1", "plaintext"] default: "apr_md5_crypt" description: - Encryption scheme to be used. As well as the four choices listed here, you can also use any other hash supported by passlib, such as md5_crypt and sha256_crypt, which are linux passwd hashes. If you do so the password file will not be compatible with Apache or Nginx + - 'Some of the available choices might be: C(apr_md5_crypt), C(des_crypt), C(ldap_sha1), C(plaintext)' state: + type: str required: false choices: [ present, absent ] default: "present" @@ -195,11 +200,11 @@ def check_file_attrs(module, changed, message): def main(): arg_spec = dict( - path=dict(required=True, aliases=["dest", "destfile"]), - name=dict(required=True, aliases=["username"]), - password=dict(required=False, default=None, no_log=True), - crypt_scheme=dict(required=False, default="apr_md5_crypt"), - state=dict(required=False, default="present"), + path=dict(type='path', required=True, aliases=["dest", "destfile"]), + name=dict(type='str', required=True, aliases=["username"]), + password=dict(type='str', required=False, default=None, no_log=True), + crypt_scheme=dict(type='str', required=False, default="apr_md5_crypt"), + state=dict(type='str', required=False, default="present", choices=["present", "absent"]), create=dict(type='bool', default=True), ) diff --git a/plugins/modules/web_infrastructure/jenkins_job.py b/plugins/modules/web_infrastructure/jenkins_job.py index 468f672b06..0e06b5ee62 100644 --- a/plugins/modules/web_infrastructure/jenkins_job.py +++ b/plugins/modules/web_infrastructure/jenkins_job.py @@ -18,6 +18,7 @@ requirements: author: "Sergio Millan Rodriguez (@sermilrod)" options: config: + type: str description: - config in XML format. - Required if job does not yet exist. @@ -32,29 +33,35 @@ options: type: bool required: false name: + type: str description: - Name of the Jenkins job. required: true password: + type: str description: - Password to authenticate with the Jenkins server. required: false state: + type: str description: - Attribute that specifies if the job has to be created or deleted. required: false default: present choices: ['present', 'absent'] token: + type: str description: - API token used to authenticate alternatively to password. required: false url: + type: str description: - URL where the Jenkins server is accessible. required: false default: http://localhost:8080 user: + type: str description: - User to authenticate with the Jenkins server. required: false @@ -328,14 +335,14 @@ def job_config_to_string(xml_str): def main(): module = AnsibleModule( argument_spec=dict( - config=dict(required=False), - name=dict(required=True), - password=dict(required=False, no_log=True), - state=dict(required=False, choices=['present', 'absent'], default="present"), + config=dict(type='str', required=False), + name=dict(type='str', required=True), + password=dict(type='str', required=False, no_log=True), + state=dict(type='str', required=False, choices=['present', 'absent'], default="present"), enabled=dict(required=False, type='bool'), - token=dict(required=False, no_log=True), - url=dict(required=False, default="http://localhost:8080"), - user=dict(required=False) + token=dict(type='str', required=False, no_log=True), + url=dict(type='str', required=False, default="http://localhost:8080"), + user=dict(type='str', required=False) ), mutually_exclusive=[ ['password', 'token'], diff --git a/plugins/modules/web_infrastructure/jenkins_job_info.py b/plugins/modules/web_infrastructure/jenkins_job_info.py index 7a4268259b..f0d13262b0 100644 --- a/plugins/modules/web_infrastructure/jenkins_job_info.py +++ b/plugins/modules/web_infrastructure/jenkins_job_info.py @@ -18,27 +18,34 @@ requirements: - "python-jenkins >= 0.4.12" options: name: + type: str description: - Exact name of the Jenkins job to fetch information about. glob: + type: str description: - A shell glob of Jenkins job names to fetch information about. color: + type: str description: - Only fetch jobs with the given status color. password: + type: str description: - Password to authenticate with the Jenkins server. - This is a required parameter, if C(token) is not provided. token: + type: str description: - API token used to authenticate with the Jenkins server. - This is a required parameter, if C(password) is not provided. url: + type: str description: - URL where the Jenkins server is accessible. default: http://localhost:8080 user: + type: str description: - User to authenticate with the Jenkins server. validate_certs: @@ -212,13 +219,13 @@ def get_jobs(module): def main(): module = AnsibleModule( argument_spec=dict( - name=dict(), - glob=dict(), - color=dict(), - password=dict(no_log=True), - token=dict(no_log=True), - url=dict(default="http://localhost:8080"), - user=dict(), + name=dict(type='str'), + glob=dict(type='str'), + color=dict(type='str'), + password=dict(type='str', no_log=True), + token=dict(type='str', no_log=True), + url=dict(type='str', default="http://localhost:8080"), + user=dict(type='str'), validate_certs=dict(type='bool', default=True), ), mutually_exclusive=[ diff --git a/plugins/modules/web_infrastructure/jenkins_plugin.py b/plugins/modules/web_infrastructure/jenkins_plugin.py index 8327a27786..e2adf7a69d 100644 --- a/plugins/modules/web_infrastructure/jenkins_plugin.py +++ b/plugins/modules/web_infrastructure/jenkins_plugin.py @@ -18,26 +18,32 @@ description: options: group: + type: str description: - Name of the Jenkins group on the OS. default: jenkins jenkins_home: + type: path description: - Home directory of the Jenkins user. default: /var/lib/jenkins mode: + type: raw description: - File mode applied on versioned plugins. default: '0644' name: + type: str description: - Plugin name. required: yes owner: + type: str description: - Name of the Jenkins user on the OS. default: jenkins state: + type: str description: - Desired plugin state. - If the C(latest) is set, the check for new version will be performed @@ -45,10 +51,12 @@ options: choices: [absent, present, pinned, unpinned, enabled, disabled, latest] default: present timeout: + type: int description: - Server connection timeout in secs. default: 30 updates_expiration: + type: int description: - Number of seconds after which a new copy of the I(update-center.json) file is downloaded. This is used to avoid the need to download the @@ -58,16 +66,19 @@ options: C(latest) is specified. default: 86400 updates_url: + type: str description: - URL of the Update Centre. - Used as the base URL to download the plugins and the I(update-center.json) JSON file. default: https://updates.jenkins.io url: + type: str description: - URL of the Jenkins server. default: http://localhost:8080 version: + type: str description: - Plugin version number. - If this option is specified, all plugin dependencies must be installed @@ -95,10 +106,9 @@ notes: - It is not possible to run the module remotely by changing the I(url) parameter to point to the Jenkins server. The module must be used on the host where Jenkins runs as it needs direct access to the plugin files. - - "The C(params) option was removed in Ansible 2.5 due to circumventing Ansible's - option handling" extends_documentation_fragment: - url + - files ''' EXAMPLES = ''' @@ -692,12 +702,11 @@ def main(): # Module arguments argument_spec = url_argument_spec() argument_spec.update( - group=dict(default='jenkins'), - jenkins_home=dict(default='/var/lib/jenkins'), + group=dict(type='str', default='jenkins'), + jenkins_home=dict(type='path', default='/var/lib/jenkins'), mode=dict(default='0644', type='raw'), - name=dict(required=True), - owner=dict(default='jenkins'), - params=dict(type='dict'), + name=dict(type='str', required=True), + owner=dict(type='str', default='jenkins'), state=dict( choices=[ 'present', @@ -723,11 +732,6 @@ def main(): supports_check_mode=True, ) - # Params was removed - # https://meetbot.fedoraproject.org/ansible-meeting/2017-09-28/ansible_dev_meeting.2017-09-28-15.00.log.html - if module.params['params']: - module.fail_json(msg="The params option to jenkins_plugin was removed in Ansible 2.5 since it circumvents Ansible's option handling") - # Force basic authentication module.params['force_basic_auth'] = True diff --git a/plugins/modules/web_infrastructure/jenkins_script.py b/plugins/modules/web_infrastructure/jenkins_script.py index 6fcfe6e4bc..68f06c2758 100644 --- a/plugins/modules/web_infrastructure/jenkins_script.py +++ b/plugins/modules/web_infrastructure/jenkins_script.py @@ -20,11 +20,13 @@ description: options: script: + type: str description: - The groovy script to be executed. This gets passed as a string Template if args is defined. required: true url: + type: str description: - The jenkins server to execute the script against. The default is a local jenkins instance that is not being proxied through a webserver. @@ -37,16 +39,20 @@ options: type: bool default: 'yes' user: + type: str description: - The username to connect to the jenkins server with. password: + type: str description: - The password to connect to the jenkins server with. timeout: + type: int description: - The request timeout in seconds default: 10 args: + type: dict description: - A dict of key-value pairs used in formatting the script using string.Template (see https://docs.python.org/2/library/string.html#template-strings). diff --git a/plugins/modules/web_infrastructure/jira.py b/plugins/modules/web_infrastructure/jira.py index e06a5cac77..c84e208dbb 100644 --- a/plugins/modules/web_infrastructure/jira.py +++ b/plugins/modules/web_infrastructure/jira.py @@ -20,11 +20,13 @@ description: options: uri: + type: str required: true description: - Base URI for the JIRA instance. operation: + type: str required: true aliases: [ command ] choices: [ comment, create, edit, fetch, link, search, transition, update ] @@ -32,71 +34,86 @@ options: - The operation to perform. username: + type: str required: true description: - The username to log-in with. password: + type: str required: true description: - The password to log-in with. project: + type: str required: false description: - The project for this operation. Required for issue creation. summary: + type: str required: false description: - The issue summary, where appropriate. description: + type: str required: false description: - The issue description, where appropriate. issuetype: + type: str required: false description: - The issue type, for issue creation. issue: + type: str required: false description: - An existing issue key to operate on. + aliases: ['ticket'] comment: + type: str required: false description: - The comment text to add. status: + type: str required: false description: - The desired status; only relevant for the transition operation. assignee: + type: str required: false description: - Sets the assignee on create or transition operations. Note not all transitions will allow this. linktype: + type: str required: false description: - Set type of link, when action 'link' selected. inwardissue: + type: str required: false description: - Set issue from which link will be created. outwardissue: + type: str required: false description: - Set issue to which link will be created. fields: + type: dict required: false description: - This is a free-form data structure that can contain arbitrary data. This is passed directly to the JIRA REST API @@ -119,6 +136,7 @@ options: version_added: '0.2.0' timeout: + type: float required: false description: - Set timeout, in seconds, on requests to JIRA API. @@ -472,24 +490,24 @@ def main(): global module module = AnsibleModule( argument_spec=dict( - uri=dict(required=True), - operation=dict(choices=['create', 'comment', 'edit', 'update', 'fetch', 'transition', 'link', 'search'], + uri=dict(type='str', required=True), + operation=dict(type='str', choices=['create', 'comment', 'edit', 'update', 'fetch', 'transition', 'link', 'search'], aliases=['command'], required=True), - username=dict(required=True), - password=dict(required=True, no_log=True), - project=dict(), - summary=dict(), - description=dict(), - issuetype=dict(), - issue=dict(aliases=['ticket']), - comment=dict(), - status=dict(), - assignee=dict(), + username=dict(type='str', required=True), + password=dict(type='str', required=True, no_log=True), + project=dict(type='str', ), + summary=dict(type='str', ), + description=dict(type='str', ), + issuetype=dict(type='str', ), + issue=dict(type='str', aliases=['ticket']), + comment=dict(type='str', ), + status=dict(type='str', ), + assignee=dict(type='str', ), fields=dict(default={}, type='dict'), - linktype=dict(), - inwardissue=dict(), - outwardissue=dict(), - jql=dict(), + linktype=dict(type='str', ), + inwardissue=dict(type='str', ), + outwardissue=dict(type='str', ), + jql=dict(type='str', ), maxresults=dict(type='int'), timeout=dict(type='float', default=10), validate_certs=dict(default=True, type='bool'), diff --git a/plugins/modules/web_infrastructure/nginx_status_facts.py b/plugins/modules/web_infrastructure/nginx_status_facts.py index 4300d5c7f5..3a68f8da99 100644 --- a/plugins/modules/web_infrastructure/nginx_status_facts.py +++ b/plugins/modules/web_infrastructure/nginx_status_facts.py @@ -21,10 +21,12 @@ description: author: "René Moser (@resmo)" options: url: + type: str description: - URL of the nginx status. required: true timeout: + type: int description: - HTTP connection timeout in seconds. required: false diff --git a/plugins/modules/web_infrastructure/rundeck_acl_policy.py b/plugins/modules/web_infrastructure/rundeck_acl_policy.py index 28f287ac73..1caa159b1a 100644 --- a/plugins/modules/web_infrastructure/rundeck_acl_policy.py +++ b/plugins/modules/web_infrastructure/rundeck_acl_policy.py @@ -20,32 +20,39 @@ description: author: "Loic Blot (@nerzhul)" options: state: + type: str description: - Create or remove Rundeck project. choices: ['present', 'absent'] default: 'present' name: + type: str description: - Sets the project name. required: True url: + type: str description: - Sets the rundeck instance URL. required: True api_version: + type: int description: - Sets the API version used by module. - API version must be at least 14. default: 14 token: + type: str description: - Sets the token to authenticate against Rundeck API. required: True project: + type: str description: - Sets the project which receive the ACL policy. - If unset, it's a system ACL policy. policy: + type: str description: - Sets the ACL policy content. - ACL policy content is a YAML object as described in http://rundeck.org/docs/man5/aclpolicy.html. diff --git a/plugins/modules/web_infrastructure/rundeck_project.py b/plugins/modules/web_infrastructure/rundeck_project.py index 2097d4fc00..5c84648207 100644 --- a/plugins/modules/web_infrastructure/rundeck_project.py +++ b/plugins/modules/web_infrastructure/rundeck_project.py @@ -22,24 +22,29 @@ description: author: "Loic Blot (@nerzhul)" options: state: + type: str description: - Create or remove Rundeck project. choices: ['present', 'absent'] default: 'present' name: + type: str description: - Sets the project name. required: True url: + type: str description: - Sets the rundeck instance URL. required: True api_version: + type: int description: - Sets the API version used by module. - API version must be at least 14. default: 14 token: + type: str description: - Sets the token to authenticate against Rundeck API. required: True diff --git a/plugins/modules/web_infrastructure/supervisorctl.py b/plugins/modules/web_infrastructure/supervisorctl.py index 4aed046c96..5524beea98 100644 --- a/plugins/modules/web_infrastructure/supervisorctl.py +++ b/plugins/modules/web_infrastructure/supervisorctl.py @@ -16,32 +16,40 @@ description: - Manage the state of a program or group of programs running via supervisord options: name: + type: str description: - The name of the supervisord program or group to manage. - The name will be taken as group name when it ends with a colon I(:) - Group support is only available in Ansible version 1.6 or later. required: true config: + type: path description: - The supervisor configuration file path server_url: + type: str description: - URL on which supervisord server is listening username: + type: str description: - username to use for authentication password: + type: str description: - password to use for authentication state: + type: str description: - The desired state of program/group. required: true choices: [ "present", "started", "stopped", "restarted", "absent", "signalled" ] signal: + type: str description: - The signal to send to the program/group, when combined with the 'signalled' state. Required when l(state=signalled). supervisorctl_path: + type: path description: - path to supervisorctl executable notes: @@ -92,14 +100,14 @@ from ansible.module_utils.basic import AnsibleModule, is_executable def main(): arg_spec = dict( - name=dict(required=True), + name=dict(type='str', required=True), config=dict(required=False, type='path'), - server_url=dict(required=False), - username=dict(required=False), - password=dict(required=False, no_log=True), + server_url=dict(type='str', required=False), + username=dict(type='str', required=False), + password=dict(type='str', required=False, no_log=True), supervisorctl_path=dict(required=False, type='path'), - state=dict(required=True, choices=['present', 'started', 'restarted', 'stopped', 'absent', 'signalled']), - signal=dict(required=False) + state=dict(type='str', required=True, choices=['present', 'started', 'restarted', 'stopped', 'absent', 'signalled']), + signal=dict(type='str', required=False) ) module = AnsibleModule(argument_spec=arg_spec, supports_check_mode=True) diff --git a/plugins/modules/web_infrastructure/taiga_issue.py b/plugins/modules/web_infrastructure/taiga_issue.py index cf0f6d1ce9..ae8f31c0ef 100644 --- a/plugins/modules/web_infrastructure/taiga_issue.py +++ b/plugins/modules/web_infrastructure/taiga_issue.py @@ -18,49 +18,62 @@ description: - This module implements the creation or deletion of issues (not the update). options: taiga_host: + type: str description: - The hostname of the Taiga instance. default: https://api.taiga.io project: + type: str description: - Name of the project containing the issue. Must exist previously. required: True subject: + type: str description: - The issue subject. required: True issue_type: + type: str description: - The issue type. Must exist previously. required: True priority: + type: str description: - The issue priority. Must exist previously. default: Normal status: + type: str description: - The issue status. Must exist previously. default: New severity: + type: str description: - The issue severity. Must exist previously. default: Normal description: + type: str description: - The issue description. default: "" attachment: + type: path description: - Path to a file to be attached to the issue. attachment_description: + type: str description: - A string describing the file to be attached to the issue. default: "" tags: + type: list + elements: str description: - A lists of tags to be assigned to the issue. default: [] state: + type: str description: - Whether the issue should be present or not. choices: ["present", "absent"] @@ -233,18 +246,18 @@ def manage_issue(module, taiga_host, project_name, issue_subject, issue_priority def main(): module = AnsibleModule( argument_spec=dict( - taiga_host=dict(required=False, default="https://api.taiga.io"), - project=dict(required=True), - subject=dict(required=True), - issue_type=dict(required=True), - priority=dict(required=False, default="Normal"), - status=dict(required=False, default="New"), - severity=dict(required=False, default="Normal"), - description=dict(required=False, default=""), - attachment=dict(required=False, default=None), - attachment_description=dict(required=False, default=""), - tags=dict(required=False, default=[], type='list'), - state=dict(required=False, choices=['present', 'absent'], + taiga_host=dict(type='str', required=False, default="https://api.taiga.io"), + project=dict(type='str', required=True), + subject=dict(type='str', required=True), + issue_type=dict(type='str', required=True), + priority=dict(type='str', required=False, default="Normal"), + status=dict(type='str', required=False, default="New"), + severity=dict(type='str', required=False, default="Normal"), + description=dict(type='str', required=False, default=""), + attachment=dict(type='path', required=False, default=None), + attachment_description=dict(type='str', required=False, default=""), + tags=dict(required=False, default=[], type='list', elements='str'), + state=dict(type='str', required=False, choices=['present', 'absent'], default='present'), ), supports_check_mode=True diff --git a/tests/sanity/ignore-2.10.txt b/tests/sanity/ignore-2.10.txt index 427fdb39a4..f252b03838 100644 --- a/tests/sanity/ignore-2.10.txt +++ b/tests/sanity/ignore-2.10.txt @@ -1223,36 +1223,8 @@ plugins/modules/system/timezone.py pylint:blacklisted-name plugins/modules/system/vdo.py validate-modules:doc-required-mismatch plugins/modules/system/xfconf.py validate-modules:parameter-state-invalid-choice plugins/modules/system/xfconf.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:doc-choices-do-not-match-spec -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:no-default-for-required-parameter -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/apache2_module.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/apache2_module.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:doc-required-mismatch -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/gunicorn.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/gunicorn.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/htpasswd.py validate-modules:doc-choices-do-not-match-spec -plugins/modules/web_infrastructure/htpasswd.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_job.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_job_info.py validate-modules:doc-missing-type plugins/modules/web_infrastructure/jenkins_plugin.py use-argspec-type-path -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/jenkins_script.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jira.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jira.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jira.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/rundeck_acl_policy.py pylint:blacklisted-name -plugins/modules/web_infrastructure/rundeck_acl_policy.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/rundeck_project.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py validate-modules:doc-elements-mismatch plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py validate-modules:parameter-type-not-in-doc @@ -1270,11 +1242,6 @@ plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py validat plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py validate-modules:doc-elements-mismatch plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/supervisorctl.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/supervisorctl.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:parameter-list-no-elements -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:parameter-type-not-in-doc scripts/inventory/gce.py pylint:blacklisted-name tests/unit/plugins/modules/cloud/google/test_gcp_forwarding_rule.py future-import-boilerplate tests/unit/plugins/modules/cloud/google/test_gcp_forwarding_rule.py metaclass-boilerplate diff --git a/tests/sanity/ignore-2.11.txt b/tests/sanity/ignore-2.11.txt index 427fdb39a4..f252b03838 100644 --- a/tests/sanity/ignore-2.11.txt +++ b/tests/sanity/ignore-2.11.txt @@ -1223,36 +1223,8 @@ plugins/modules/system/timezone.py pylint:blacklisted-name plugins/modules/system/vdo.py validate-modules:doc-required-mismatch plugins/modules/system/xfconf.py validate-modules:parameter-state-invalid-choice plugins/modules/system/xfconf.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:doc-choices-do-not-match-spec -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:no-default-for-required-parameter -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/apache2_module.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/apache2_module.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:doc-required-mismatch -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/gunicorn.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/gunicorn.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/htpasswd.py validate-modules:doc-choices-do-not-match-spec -plugins/modules/web_infrastructure/htpasswd.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_job.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_job_info.py validate-modules:doc-missing-type plugins/modules/web_infrastructure/jenkins_plugin.py use-argspec-type-path -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/jenkins_script.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jira.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jira.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jira.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/rundeck_acl_policy.py pylint:blacklisted-name -plugins/modules/web_infrastructure/rundeck_acl_policy.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/rundeck_project.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group.py validate-modules:doc-elements-mismatch plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py validate-modules:parameter-type-not-in-doc @@ -1270,11 +1242,6 @@ plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py validat plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py validate-modules:doc-elements-mismatch plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/supervisorctl.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/supervisorctl.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:parameter-list-no-elements -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:parameter-type-not-in-doc scripts/inventory/gce.py pylint:blacklisted-name tests/unit/plugins/modules/cloud/google/test_gcp_forwarding_rule.py future-import-boilerplate tests/unit/plugins/modules/cloud/google/test_gcp_forwarding_rule.py metaclass-boilerplate diff --git a/tests/sanity/ignore-2.9.txt b/tests/sanity/ignore-2.9.txt index c134996aaa..7babf6522a 100644 --- a/tests/sanity/ignore-2.9.txt +++ b/tests/sanity/ignore-2.9.txt @@ -955,36 +955,10 @@ plugins/modules/system/selogin.py validate-modules:parameter-type-not-in-doc plugins/modules/system/syspatch.py validate-modules:parameter-type-not-in-doc plugins/modules/system/timezone.py pylint:blacklisted-name plugins/modules/system/xfconf.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:doc-choices-do-not-match-spec -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:no-default-for-required-parameter -plugins/modules/web_infrastructure/apache2_mod_proxy.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/apache2_module.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/apache2_module.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/deploy_helper.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/ejabberd_user.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/gunicorn.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/gunicorn.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/htpasswd.py validate-modules:doc-choices-do-not-match-spec -plugins/modules/web_infrastructure/htpasswd.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_job.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_job_info.py validate-modules:doc-missing-type plugins/modules/web_infrastructure/jenkins_plugin.py use-argspec-type-path -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jenkins_plugin.py validate-modules:undocumented-parameter -plugins/modules/web_infrastructure/jenkins_script.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jira.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/jira.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/jira.py validate-modules:undocumented-parameter plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:deprecation-mismatch -plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:doc-missing-type plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:invalid-documentation -plugins/modules/web_infrastructure/nginx_status_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/rundeck_acl_policy.py pylint:blacklisted-name -plugins/modules/web_infrastructure/rundeck_acl_policy.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/rundeck_project.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_aaa_group_info.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_ca_host_key_cert_info.py validate-modules:parameter-type-not-in-doc @@ -996,10 +970,6 @@ plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend.py validate-mod plugins/modules/web_infrastructure/sophos_utm/utm_proxy_frontend_info.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location.py validate-modules:parameter-type-not-in-doc plugins/modules/web_infrastructure/sophos_utm/utm_proxy_location_info.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/supervisorctl.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/supervisorctl.py validate-modules:parameter-type-not-in-doc -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:doc-missing-type -plugins/modules/web_infrastructure/taiga_issue.py validate-modules:parameter-type-not-in-doc scripts/inventory/gce.py pylint:blacklisted-name tests/unit/plugins/modules/cloud/google/test_gcp_forwarding_rule.py future-import-boilerplate tests/unit/plugins/modules/cloud/google/test_gcp_forwarding_rule.py metaclass-boilerplate