mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-08-05 21:54:22 -07:00
[stable-1] Various backports from community.postgres (#1789)
* postgresql modules: various backports from community.postgresql * Add postgresql_set community/postgresql/pull/52 backport * Fix * Update plugins/modules/database/postgresql/postgresql_set.py Co-authored-by: Felix Fontein <felix@fontein.de> * Update plugins/modules/database/postgresql/postgresql_set.py Co-authored-by: Felix Fontein <felix@fontein.de> * Update changelogs/fragments/1-community-postgresql_backports.yml Co-authored-by: Felix Fontein <felix@fontein.de> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
91acc44c34
commit
3a2e614071
10 changed files with 296 additions and 32 deletions
|
@ -532,3 +532,68 @@
|
|||
- assert:
|
||||
that:
|
||||
- result is failed
|
||||
|
||||
#############################################################################
|
||||
# Issue https://github.com/ansible-collections/community.postgresql/issues/45
|
||||
- name: Create table containing a decimal value
|
||||
become_user: '{{ pg_user }}'
|
||||
become: true
|
||||
postgresql_query:
|
||||
login_user: '{{ pg_user }}'
|
||||
db: postgres
|
||||
query: CREATE TABLE blabla (id int, num decimal)
|
||||
|
||||
- name: Insert data
|
||||
become_user: '{{ pg_user }}'
|
||||
become: true
|
||||
postgresql_query:
|
||||
login_user: '{{ pg_user }}'
|
||||
db: postgres
|
||||
query: INSERT INTO blabla (id, num) VALUES (1, 1::decimal)
|
||||
|
||||
- name: Get data
|
||||
become_user: '{{ pg_user }}'
|
||||
become: true
|
||||
postgresql_query:
|
||||
login_user: '{{ pg_user }}'
|
||||
db: postgres
|
||||
query: SELECT * FROM blabla
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result.rowcount == 1
|
||||
|
||||
#############################################################################
|
||||
# Issue https://github.com/ansible-collections/community.postgresql/issues/47
|
||||
- name: Get datetime.timedelta value
|
||||
become_user: '{{ pg_user }}'
|
||||
become: true
|
||||
postgresql_query:
|
||||
login_user: '{{ pg_user }}'
|
||||
db: postgres
|
||||
query: "SELECT EXTRACT(epoch from make_interval(secs => 3))"
|
||||
register: result
|
||||
when: postgres_version_resp.stdout is version('10', '>=')
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result.rowcount == 1
|
||||
- result.query_result[0]["date_part"] == 3
|
||||
when: postgres_version_resp.stdout is version('10', '>=')
|
||||
|
||||
- name: Get interval value
|
||||
become_user: '{{ pg_user }}'
|
||||
become: true
|
||||
postgresql_query:
|
||||
login_user: '{{ pg_user }}'
|
||||
db: postgres
|
||||
query: "SELECT make_interval(secs => 3)"
|
||||
register: result
|
||||
when: postgres_version_resp.stdout is version('10', '>=')
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result.rowcount == 1
|
||||
- result.query_result[0]["make_interval"] == "0:00:03"
|
||||
when: postgres_version_resp.stdout is version('10', '>=')
|
||||
|
|
|
@ -6,3 +6,6 @@
|
|||
# Initial CI tests of postgresql_initial module
|
||||
- include_tasks: postgresql_set_initial.yml
|
||||
when: postgres_version_resp.stdout is version('9.6', '>=')
|
||||
|
||||
- include_tasks: options_coverage.yml
|
||||
when: postgres_version_resp.stdout is version('9.6', '>=')
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
# Test code for the postgresql_set module
|
||||
# Copyright: (c) 2021, Andrew Klychkov (@Andersson007) <aaklychkov@mail.ru>
|
||||
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
- vars:
|
||||
task_parameters: &task_parameters
|
||||
become_user: '{{ pg_user }}'
|
||||
become: yes
|
||||
pg_parameters: &pg_parameters
|
||||
login_user: '{{ pg_user }}'
|
||||
login_db: postgres
|
||||
|
||||
block:
|
||||
- name: Define a test setting map
|
||||
set_fact:
|
||||
setting_map:
|
||||
allow_system_table_mods: on
|
||||
archive_command: /bin/true
|
||||
archive_timeout: 10min
|
||||
autovacuum_work_mem: '-1'
|
||||
backend_flush_after: 0
|
||||
autovacuum_vacuum_scale_factor: 0.5
|
||||
client_encoding: UTF-8
|
||||
bgwriter_delay: 400
|
||||
maintenance_work_mem: 32mb
|
||||
effective_cache_size: 1024kB
|
||||
shared_buffers: 1GB
|
||||
stats_temp_directory: pg_stat_tmp
|
||||
wal_level: replica
|
||||
log_statement: mod
|
||||
track_functions: none
|
||||
|
||||
# Check mode:
|
||||
- name: Set settings in check mode
|
||||
<<: *task_parameters
|
||||
postgresql_set:
|
||||
<<: *pg_parameters
|
||||
name: '{{ item.key }}'
|
||||
value: '{{ item.value }}'
|
||||
check_mode: yes
|
||||
with_dict: '{{ setting_map }}'
|
||||
|
||||
# Actual mode:
|
||||
- name: Set settings in actual mode
|
||||
<<: *task_parameters
|
||||
postgresql_set:
|
||||
<<: *pg_parameters
|
||||
name: '{{ item.key }}'
|
||||
value: '{{ item.value }}'
|
||||
with_dict: '{{ setting_map }}'
|
|
@ -373,3 +373,70 @@
|
|||
- assert:
|
||||
that:
|
||||
- result is not changed
|
||||
|
||||
- name: Pass non-existent parameter
|
||||
<<: *task_parameters
|
||||
postgresql_set:
|
||||
<<: *pg_parameters
|
||||
name: Timezone
|
||||
value: utc
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result is failed
|
||||
- result.msg is search('No such parameter')
|
||||
|
||||
#######################################################################
|
||||
# https://github.com/ansible-collections/community.postgresql/issues/48
|
||||
- name: Pass a parameter containing b in check_mode
|
||||
<<: *task_parameters
|
||||
postgresql_set:
|
||||
<<: *pg_parameters
|
||||
name: archive_command
|
||||
value: '/usr/bin/touch %f'
|
||||
register: result
|
||||
check_mode: yes
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Pass a parameter containing b
|
||||
<<: *task_parameters
|
||||
postgresql_set:
|
||||
<<: *pg_parameters
|
||||
name: archive_command
|
||||
value: '/usr/bin/touch %f'
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Pass another parameter containing B in check_mode
|
||||
<<: *task_parameters
|
||||
postgresql_set:
|
||||
<<: *pg_parameters
|
||||
name: track_activity_query_size
|
||||
value: '4096B'
|
||||
register: result
|
||||
check_mode: yes
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
||||
- name: Pass another parameter containing b in check_mode
|
||||
<<: *task_parameters
|
||||
postgresql_set:
|
||||
<<: *pg_parameters
|
||||
name: track_activity_query_size
|
||||
value: '2048b'
|
||||
register: result
|
||||
check_mode: yes
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- result is changed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue