diff --git a/plugins/module_utils/mysql.py b/plugins/module_utils/mysql.py index b95d20d..5f463bd 100644 --- a/plugins/module_utils/mysql.py +++ b/plugins/module_utils/mysql.py @@ -194,6 +194,16 @@ def mysql_common_argument_spec(): ) +def get_server_type(cursor): + """ Return MySQL or MariaDB after quering the server + using SELECT VERSION()""" + srv_ver = get_server_version(cursor) + if 'mariadb' in srv_ver.lower(): + return "mariadb" + else: + return "mysql" + + def get_server_version(cursor): """Returns a string representation of the server version.""" cursor.execute("SELECT VERSION() AS version") diff --git a/plugins/module_utils/user.py b/plugins/module_utils/user.py index 44c6a0d..9276dd4 100644 --- a/plugins/module_utils/user.py +++ b/plugins/module_utils/user.py @@ -16,6 +16,7 @@ from ansible.module_utils.six import iteritems from ansible_collections.community.mysql.plugins.module_utils.mysql import ( mysql_driver, + get_server_type, ) @@ -883,8 +884,8 @@ def limit_resources(module, cursor, user, host, resource_limits, check_mode): def get_impl(cursor): global impl - cursor.execute("SELECT VERSION()") - if 'mariadb' in cursor.fetchone()[0].lower(): + + if get_server_type(cursor) == 'mariadb': from ansible_collections.community.mysql.plugins.module_utils.implementations.mariadb import user as mariauser impl = mariauser else: diff --git a/plugins/modules/mysql_role.py b/plugins/modules/mysql_role.py index e892093..a13ed96 100644 --- a/plugins/modules/mysql_role.py +++ b/plugins/modules/mysql_role.py @@ -305,7 +305,8 @@ from ansible_collections.community.mysql.plugins.module_utils.mysql import ( mysql_connect, mysql_driver, mysql_driver_fail_msg, - mysql_common_argument_spec + mysql_common_argument_spec, + get_server_type ) from ansible_collections.community.mysql.plugins.module_utils.user import ( convert_priv_dict_to_str, @@ -407,9 +408,7 @@ class DbServer(): Returns: library: Depending on a server type (MySQL or MariaDB). """ - self.cursor.execute("SELECT VERSION()") - - if 'mariadb' in self.cursor.fetchone()[0].lower(): + if get_server_type(cursor) == 'mariadb': import ansible_collections.community.mysql.plugins.module_utils.implementations.mariadb.role as role_impl else: import ansible_collections.community.mysql.plugins.module_utils.implementations.mysql.role as role_impl