Remove the params option from jenkns_plugin and yum_repository (#32708)

* Remove the params option from jenkns_plugin and yum_repository

It was decided that these options which override Ansible module options
from a generic, unchecked dict are an antipattern for Ansible Modules
and must be removed:

https://meetbot.fedoraproject.org/ansible-meeting/2017-09-28/ansible_dev_meeting.2017-09-28-15.00.log.html

Fixes #30874
This commit is contained in:
Toshio Kuratomi 2017-11-08 13:59:59 -08:00 committed by GitHub
parent 80967380d3
commit facbf7f14d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 29 deletions

View file

@ -29,6 +29,8 @@ Ansible Changes By Release
* Added support to `become` `NT AUTHORITY\System`, `NT AUTHORITY\LocalService`, and `NT AUTHORITY\NetworkService` on Windows hosts
* Fixed `become` to work with async on Windows hosts
* Improved `become` elevation process to work on standard Administrator users without disabling UAC on Windows hosts
* The jenkins_plugin and yum_repository plugins had their `params` option
removed due to circumventing Ansible's option processing.
### New Plugins

View file

@ -241,12 +241,6 @@ options:
- Unique repository ID.
- This parameter is only required if I(state) is set to C(present) or
C(absent).
params:
required: false
default: null
description:
- Option used to allow the user to overwrite any of the other options.
To remove an option, set the value of the option to C(null).
password:
required: false
default: null
@ -391,6 +385,8 @@ notes:
- The repo file will be automatically deleted if it contains no repository.
- When removing a repository, beware that the metadata cache may still remain
on disk until you run C(yum clean all). Use a notification handler for this.
- "The C(params) parameter was removed in Ansible 2.5 due to circumventing Ansible's parameter
handling"
'''
EXAMPLES = '''
@ -699,11 +695,11 @@ def main():
supports_check_mode=True,
)
# Update module parameters by user's parameters if defined
if 'params' in module.params and isinstance(module.params['params'], dict):
module.params.update(module.params['params'])
# Remove the params
module.params.pop('params', None)
# 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 yum_repository was removed in Ansible 2.5"
"since it circumvents Ansible's option handling")
name = module.params['name']
state = module.params['state']

View file

@ -46,14 +46,6 @@ options:
default: jenkins
description:
- Name of the Jenkins user on the OS.
params:
required: false
default: null
description:
- Option used to allow the user to overwrite any of the other options. To
remove an option, set the value of the option to C(null).
- Changed in 2.5.0, 2.4.1, 2.3.3 to raise an error if C(url_password) is specified in params.
Use the actual C(url_password) argument instead.
state:
required: false
choices: [absent, present, pinned, unpinned, enabled, disabled, latest]
@ -120,6 +112,8 @@ 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"
'''
EXAMPLES = '''
@ -762,16 +756,11 @@ def main():
supports_check_mode=True,
)
# Update module parameters by user's parameters if defined
if 'params' in module.params and isinstance(module.params['params'], dict):
if 'url_password' in module.params['params']:
# The params argument should be removed eventually. Until then, raise an error if
# url_password is specified there as it can lead to the password being logged
module.fail_json(msg='Do not specify url_password in params as it may get logged')
module.params.update(module.params['params'])
# Remove the params
module.params.pop('params', None)
# 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