From c8d93c796ff28702cb6c46d2e090ccdd0f4e499e Mon Sep 17 00:00:00 2001 From: "R.Sicart" Date: Mon, 1 Nov 2021 16:07:37 +0100 Subject: [PATCH] Re-raise InvalidPrivsError when granting privileges --- plugins/module_utils/user.py | 5 ++++- .../targets/test_mysql_user/tasks/test_priv_append.yml | 2 +- .../integration/targets/test_mysql_user/tasks/test_privs.yml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/module_utils/user.py b/plugins/module_utils/user.py index 5630753..fb36326 100644 --- a/plugins/module_utils/user.py +++ b/plugins/module_utils/user.py @@ -644,7 +644,10 @@ def privileges_grant(cursor, user, host, db_table, priv, tls_requires, maria_rol if 'GRANT' in priv: query.append("WITH GRANT OPTION") query = ' '.join(query) - cursor.execute(query, params) + try: + cursor.execute(query, params) + except (mysql_driver.ProgrammingError, mysql_driver.OperationalError, mysql_driver.InternalError) as e: + raise InvalidPrivsError("Error granting privileges, invalid priv string: %s" % priv_string) from e def convert_priv_dict_to_str(priv): diff --git a/tests/integration/targets/test_mysql_user/tasks/test_priv_append.yml b/tests/integration/targets/test_mysql_user/tasks/test_priv_append.yml index 7a7da24..7464f3c 100644 --- a/tests/integration/targets/test_mysql_user/tasks/test_priv_append.yml +++ b/tests/integration/targets/test_mysql_user/tasks/test_priv_append.yml @@ -112,7 +112,7 @@ assert: that: - "result.changed == false" - - "'Illegal privilege' in result.msg or 'You have an error in your SQL syntax;' in result.msg" + - "'Error granting privileges' in result.msg" when: enable_check_mode == 'no' ########## diff --git a/tests/integration/targets/test_mysql_user/tasks/test_privs.yml b/tests/integration/targets/test_mysql_user/tasks/test_privs.yml index ec25cbf..be043ce 100644 --- a/tests/integration/targets/test_mysql_user/tasks/test_privs.yml +++ b/tests/integration/targets/test_mysql_user/tasks/test_privs.yml @@ -193,7 +193,7 @@ assert: that: - "result.changed == false" - - "'Illegal privilege' in result.msg or 'You have an error in your SQL syntax;' in result.msg" + - "'Error granting privileges' in result.msg" - name: remove username mysql_user: