From 7b4e1b63f4488fcca754ecc9e1020a50a77f5a8a Mon Sep 17 00:00:00 2001 From: Adrien Waksberg Date: Fri, 22 Oct 2021 10:26:56 +0200 Subject: [PATCH] fix: pg_hba when multiple users or multiple databases --- CHANGELOG.md | 1 + molecule/default/converge.yml | 4 +++- molecule/default/tests/test_default.py | 3 +-- templates/pg_hba.conf.j2 | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d7e15d..c6db349 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ Which is based on [Keep A Changelog](http://keepachangelog.com/) ### Fixed - fix replication database in pg_hba +- fix pg_hba when multiple users or multiple databases ## v1.0.0 - 2021-09-10 diff --git a/molecule/default/converge.yml b/molecule/default/converge.yml index 9e95d41..0898a3a 100644 --- a/molecule/default/converge.yml +++ b/molecule/default/converge.yml @@ -2,7 +2,7 @@ - name: Converge hosts: all roles: - - ansible-role-postgresql + - postgresql vars: postgresql_use_official_repository: true postgresql_primary: true @@ -12,11 +12,13 @@ - type: hostssl databases: - myappli + - myappli2 users: all subnet: samenet method: md5 postgresql_databases: - name: myappli + - name: myappli2 postgresql_users: - name: myuser database: myappli diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py index ecdb51f..da7904f 100644 --- a/molecule/default/tests/test_default.py +++ b/molecule/default/tests/test_default.py @@ -21,8 +21,7 @@ def test_hba_file(host): assert path.user == 'root' assert path.group == 'root' assert path.mode == 0o644 - assert path.contains('hostssl "myappli" all samenet md5') - + assert path.contains('hostssl "myappli","myappli2" all samenet md5') def test_service(host): service = host.service('postgresql@13-main') diff --git a/templates/pg_hba.conf.j2 b/templates/pg_hba.conf.j2 index 2f94a90..5f3f632 100644 --- a/templates/pg_hba.conf.j2 +++ b/templates/pg_hba.conf.j2 @@ -2,5 +2,5 @@ local all postgres peer {% for conn in postgresql_hba %} -{{ conn.type }} {% if conn.databases in ['all', 'replication'] %}{{ conn.databases }}{% else %}"{{ conn.databases|join('",') }}"{% endif %} {% if conn.users == 'all' %}all{% else %}"{{ conn.users|join('",') }}"{% endif %}{% if conn.type != 'local' %} {{ conn.subnet }}{%endif %} {{ conn.method }} +{{ conn.type }} {% if conn.databases in ['all', 'replication'] %}{{ conn.databases }}{% else %}"{{ conn.databases|join('","') }}"{% endif %} {% if conn.users == 'all' %}all{% else %}"{{ conn.users|join('","') }}"{% endif %}{% if conn.type != 'local' %} {{ conn.subnet }}{%endif %} {{ conn.method }} {% endfor %}