mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-04-25 03:41:26 -07:00
Add methods to retrieve connector name and version
This commit is contained in:
parent
3229ce4e55
commit
16676373fa
1 changed files with 41 additions and 1 deletions
|
@ -34,7 +34,47 @@ mysql_driver_fail_msg = ('A MySQL module is required: for Python 2.7 either PyMy
|
||||||
'Consider setting ansible_python_interpreter to use '
|
'Consider setting ansible_python_interpreter to use '
|
||||||
'the intended Python version.')
|
'the intended Python version.')
|
||||||
|
|
||||||
from ansible_collections.community.mysql.plugins.module_utils.database import mysql_quote_identifier
|
|
||||||
|
def get_driver_name(mysql_driver):
|
||||||
|
""" (class) -> str
|
||||||
|
Return the name of the driver (pymysql or mysqlclient (MySQLdb))
|
||||||
|
or 'Unknown' if the driver name is not pymysql or MySQLdb. When adding a
|
||||||
|
connector here, also modify get_driver_version.
|
||||||
|
"""
|
||||||
|
if mysql_driver is None or not hasattr(mysql_driver, '__name__'):
|
||||||
|
return 'Unknown'
|
||||||
|
|
||||||
|
if mysql_driver.__name__ not in ['pymysql', 'MySQLdb']:
|
||||||
|
return 'Unknown'
|
||||||
|
|
||||||
|
return mysql_driver.__name__
|
||||||
|
|
||||||
|
|
||||||
|
def get_driver_version(mysql_driver):
|
||||||
|
""" (class) -> str
|
||||||
|
Return the version of pymysql or mysqlclient (MySQLdb).
|
||||||
|
If the driver name is unknown, this method also return 'Unknown'
|
||||||
|
"""
|
||||||
|
|
||||||
|
if mysql_driver is None:
|
||||||
|
return 'Unknown'
|
||||||
|
|
||||||
|
driver_name = get_driver_name(mysql_driver)
|
||||||
|
|
||||||
|
if driver_name == 'Unknown':
|
||||||
|
return 'Unknown'
|
||||||
|
|
||||||
|
if driver_name == 'pymysql':
|
||||||
|
# pymysql has two methods:
|
||||||
|
# - __version__ that returns the string: 0.7.11.None
|
||||||
|
# - VERSION that returns the tupple (0, 7, 11, None)
|
||||||
|
v = mysql_driver.VERSION[:3]
|
||||||
|
return '.'.join(map(str, v))
|
||||||
|
|
||||||
|
if driver_name == 'MySQLdb':
|
||||||
|
# version_info returns the tuple (2, 1, 1, 'final', 0)
|
||||||
|
v = mysql_driver.version_info[:3]
|
||||||
|
return '.'.join(map(str, v))
|
||||||
|
|
||||||
|
|
||||||
def parse_from_mysql_config_file(cnf):
|
def parse_from_mysql_config_file(cnf):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue