1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

postgresql_set: allow to pass an empty string as a value (#776)

* postgresql_set: allow to pass an empty string as a value

* add check_mode to CI for the case

* add changelog fragment

* add pause

* fix

* fix ci

* fix

* fix

* add suggested
This commit is contained in:
Andrew Klychkov 2020-08-14 22:46:45 +03:00 committed by GitHub
parent 4e56347fc1
commit 05556dc671
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 59 additions and 5 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- postgresql_set - allow to pass an empty string to the ``value`` parameter (https://github.com/ansible-collections/community.general/issues/775).

View file

@ -314,10 +314,10 @@ def main():
if value[:-2].isdigit() and unit in value[-2:]: if value[:-2].isdigit() and unit in value[-2:]:
value = value.upper() value = value.upper()
if value and reset: if value is not None and reset:
module.fail_json(msg="%s: value and reset params are mutually exclusive" % name) module.fail_json(msg="%s: value and reset params are mutually exclusive" % name)
if not value and not reset: if value is None and not reset:
module.fail_json(msg="%s: at least one of value or reset param must be specified" % name) module.fail_json(msg="%s: at least one of value or reset param must be specified" % name)
conn_params = get_conn_params(module, module.params, warn_db_default=False) conn_params = get_conn_params(module, module.params, warn_db_default=False)
@ -388,8 +388,8 @@ def main():
kw['restart_required'] = restart_required kw['restart_required'] = restart_required
module.exit_json(**kw) module.exit_json(**kw)
# Set param: # Set param (value can be an empty string):
if value and value != current_value: if value is not None and value != current_value:
changed = param_set(cursor, module, name, value, context) changed = param_set(cursor, module, name, value, context)
kw['value_pretty'] = value kw['value_pretty'] = value

View file

@ -1,3 +1,3 @@
# Initial CI tests of postgresql_initial module # Initial CI tests of postgresql_initial module
- include_tasks: postgresql_set_initial.yml - include_tasks: postgresql_set_initial.yml
when: postgres_version_resp.stdout is version('9.4', '>=') when: postgres_version_resp.stdout is version('9.6', '>=')

View file

@ -321,3 +321,55 @@
that: that:
- result is failed - result is failed
- result.msg is search('is potentially dangerous') - result.msg is search('is potentially dangerous')
###############################################################################
# Bugfix of https://github.com/ansible-collections/community.general/issues/775
- name: postgresql_set - turn on archive mode
<<: *task_parameters
postgresql_set:
<<: *pg_parameters
name: archive_mode
value: 'on'
- name: Restart PostgreSQL
become: yes
service:
name: "{{ postgresql_service }}"
state: restarted
- name: postgresql_set - set empty string as value
<<: *task_parameters
postgresql_set:
<<: *pg_parameters
name: archive_command
value: ''
register: result
- assert:
that:
- result is changed
- name: postgresql_set - set empty string as value again
<<: *task_parameters
postgresql_set:
<<: *pg_parameters
name: archive_command
value: ''
register: result
- assert:
that:
- result is not changed
- name: postgresql_set - set empty string as value again in check mode
<<: *task_parameters
postgresql_set:
<<: *pg_parameters
name: archive_command
value: ''
register: result
check_mode: yes
- assert:
that:
- result is not changed