mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
85 lines
2.5 KiB
YAML
85 lines
2.5 KiB
YAML
|
# Copyright: (c) 2019, Andrew Klychkov (@Andersson007) <aaklychkov@mail.ru>
|
||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||
|
# Preparation for further tests of postgresql_subscription module.
|
||
|
|
||
|
- vars:
|
||
|
task_parameters: &task_parameters
|
||
|
become_user: '{{ pg_user }}'
|
||
|
become: yes
|
||
|
register: result
|
||
|
pg_parameters: &pg_parameters
|
||
|
login_user: '{{ pg_user }}'
|
||
|
login_db: '{{ test_db }}'
|
||
|
|
||
|
block:
|
||
|
- name: postgresql_publication - create test db
|
||
|
<<: *task_parameters
|
||
|
postgresql_db:
|
||
|
login_user: '{{ pg_user }}'
|
||
|
login_port: '{{ master_port }}'
|
||
|
maintenance_db: '{{ db_default }}'
|
||
|
name: '{{ test_db }}'
|
||
|
|
||
|
- name: postgresql_publication - create test role
|
||
|
<<: *task_parameters
|
||
|
postgresql_user:
|
||
|
<<: *pg_parameters
|
||
|
login_port: '{{ master_port }}'
|
||
|
name: '{{ replication_role }}'
|
||
|
password: '{{ replication_pass }}'
|
||
|
role_attr_flags: LOGIN,REPLICATION
|
||
|
|
||
|
- name: postgresql_publication - create test table
|
||
|
<<: *task_parameters
|
||
|
postgresql_table:
|
||
|
<<: *pg_parameters
|
||
|
login_port: '{{ master_port }}'
|
||
|
name: '{{ test_table1 }}'
|
||
|
columns:
|
||
|
- id int
|
||
|
|
||
|
- name: Master - dump schema
|
||
|
<<: *task_parameters
|
||
|
shell: pg_dumpall -p '{{ master_port }}' -s > /tmp/schema.sql
|
||
|
|
||
|
- name: Replicat restore schema
|
||
|
<<: *task_parameters
|
||
|
shell: psql -p '{{ replica_port }}' -f /tmp/schema.sql
|
||
|
|
||
|
- name: postgresql_publication - create publication
|
||
|
<<: *task_parameters
|
||
|
postgresql_publication:
|
||
|
<<: *pg_parameters
|
||
|
login_port: '{{ master_port }}'
|
||
|
name: '{{ test_pub }}'
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- result is changed
|
||
|
- result.exists == true
|
||
|
- result.queries == ["CREATE PUBLICATION \"{{ test_pub }}\" FOR ALL TABLES"]
|
||
|
- result.owner == '{{ pg_user }}'
|
||
|
- result.alltables == true
|
||
|
- result.tables == []
|
||
|
- result.parameters.publish != {}
|
||
|
|
||
|
- name: postgresql_publication - create one more publication
|
||
|
<<: *task_parameters
|
||
|
postgresql_publication:
|
||
|
<<: *pg_parameters
|
||
|
login_port: '{{ master_port }}'
|
||
|
name: '{{ test_pub2 }}'
|
||
|
|
||
|
- name: postgresql_publication - check the publication was created
|
||
|
<<: *task_parameters
|
||
|
postgresql_query:
|
||
|
<<: *pg_parameters
|
||
|
login_port: '{{ master_port }}'
|
||
|
query: >
|
||
|
SELECT * FROM pg_publication WHERE pubname = '{{ test_pub }}'
|
||
|
AND pubowner = '10' AND puballtables = 't'
|
||
|
|
||
|
- assert:
|
||
|
that:
|
||
|
- result.rowcount == 1
|