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:
parent
80967380d3
commit
facbf7f14d
3 changed files with 16 additions and 29 deletions
|
@ -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
|
* 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
|
* 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
|
* 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
|
### New Plugins
|
||||||
|
|
||||||
|
|
|
@ -241,12 +241,6 @@ options:
|
||||||
- Unique repository ID.
|
- Unique repository ID.
|
||||||
- This parameter is only required if I(state) is set to C(present) or
|
- This parameter is only required if I(state) is set to C(present) or
|
||||||
C(absent).
|
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:
|
password:
|
||||||
required: false
|
required: false
|
||||||
default: null
|
default: null
|
||||||
|
@ -391,6 +385,8 @@ notes:
|
||||||
- The repo file will be automatically deleted if it contains no repository.
|
- The repo file will be automatically deleted if it contains no repository.
|
||||||
- When removing a repository, beware that the metadata cache may still remain
|
- 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.
|
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 = '''
|
EXAMPLES = '''
|
||||||
|
@ -699,11 +695,11 @@ def main():
|
||||||
supports_check_mode=True,
|
supports_check_mode=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Update module parameters by user's parameters if defined
|
# Params was removed
|
||||||
if 'params' in module.params and isinstance(module.params['params'], dict):
|
# https://meetbot.fedoraproject.org/ansible-meeting/2017-09-28/ansible_dev_meeting.2017-09-28-15.00.log.html
|
||||||
module.params.update(module.params['params'])
|
if module.params['params']:
|
||||||
# Remove the params
|
module.fail_json(msg="The params option to yum_repository was removed in Ansible 2.5"
|
||||||
module.params.pop('params', None)
|
"since it circumvents Ansible's option handling")
|
||||||
|
|
||||||
name = module.params['name']
|
name = module.params['name']
|
||||||
state = module.params['state']
|
state = module.params['state']
|
||||||
|
|
|
@ -46,14 +46,6 @@ options:
|
||||||
default: jenkins
|
default: jenkins
|
||||||
description:
|
description:
|
||||||
- Name of the Jenkins user on the OS.
|
- 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:
|
state:
|
||||||
required: false
|
required: false
|
||||||
choices: [absent, present, pinned, unpinned, enabled, disabled, latest]
|
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)
|
- 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
|
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.
|
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 = '''
|
EXAMPLES = '''
|
||||||
|
@ -762,16 +756,11 @@ def main():
|
||||||
supports_check_mode=True,
|
supports_check_mode=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Update module parameters by user's parameters if defined
|
# Params was removed
|
||||||
if 'params' in module.params and isinstance(module.params['params'], dict):
|
# https://meetbot.fedoraproject.org/ansible-meeting/2017-09-28/ansible_dev_meeting.2017-09-28-15.00.log.html
|
||||||
if 'url_password' in module.params['params']:
|
if module.params['params']:
|
||||||
# The params argument should be removed eventually. Until then, raise an error if
|
module.fail_json(msg="The params option to jenkins_plugin was removed in Ansible 2.5"
|
||||||
# url_password is specified there as it can lead to the password being logged
|
"since it circumvents Ansible's option handling")
|
||||||
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)
|
|
||||||
|
|
||||||
# Force basic authentication
|
# Force basic authentication
|
||||||
module.params['force_basic_auth'] = True
|
module.params['force_basic_auth'] = True
|
||||||
|
|
Loading…
Reference in a new issue