From edd7c12eae3d0ec3fe8d948dd566e88baa547910 Mon Sep 17 00:00:00 2001 From: John Gibson Date: Tue, 18 Apr 2023 14:31:25 -0400 Subject: [PATCH] Fix connect_params being ignored --- ...gresql_privs_fix_connect_params_being_ignored.yml | 2 ++ plugins/modules/postgresql_privs.py | 12 +++--------- 2 files changed, 5 insertions(+), 9 deletions(-) create mode 100644 changelogs/fragments/451-postgresql_privs_fix_connect_params_being_ignored.yml diff --git a/changelogs/fragments/451-postgresql_privs_fix_connect_params_being_ignored.yml b/changelogs/fragments/451-postgresql_privs_fix_connect_params_being_ignored.yml new file mode 100644 index 00000000..c9b1dedb --- /dev/null +++ b/changelogs/fragments/451-postgresql_privs_fix_connect_params_being_ignored.yml @@ -0,0 +1,2 @@ +bugfixes: +- postgresql_privs - fix connect_params being ignored (https://github.com/ansible-collections/community.postgresql/issues/450). diff --git a/plugins/modules/postgresql_privs.py b/plugins/modules/postgresql_privs.py index 4aba56c1..a7c7c8df 100644 --- a/plugins/modules/postgresql_privs.py +++ b/plugins/modules/postgresql_privs.py @@ -441,7 +441,7 @@ pg_quote_identifier, check_input, ) -from ansible_collections.community.postgresql.plugins.module_utils.postgres import postgres_common_argument_spec +from ansible_collections.community.postgresql.plugins.module_utils.postgres import postgres_common_argument_spec, get_conn_params from ansible.module_utils._text import to_native VALID_PRIVS = frozenset(('SELECT', 'INSERT', 'UPDATE', 'DELETE', 'TRUNCATE', @@ -507,19 +507,13 @@ def __init__(self, params, module): "ca_cert": "sslrootcert" } - kw = dict((params_map[k], getattr(params, k)) for k in params_map - if getattr(params, k) != '' and getattr(params, k) is not None) - - # If a login_unix_socket is specified, incorporate it here. - is_localhost = "host" not in kw or kw["host"] == "" or kw["host"] == "localhost" - if is_localhost and params.login_unix_socket != "": - kw["host"] = params.login_unix_socket + conn_params = get_conn_params(module, module.params, warn_db_default=False) sslrootcert = params.ca_cert if psycopg2.__version__ < '2.4.3' and sslrootcert is not None: raise ValueError('psycopg2 must be at least 2.4.3 in order to user the ca_cert parameter') - self.connection = psycopg2.connect(**kw) + self.connection = psycopg2.connect(**conn_params) self.cursor = self.connection.cursor() self.pg_version = self.connection.server_version