mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-04-24 11:21: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 '
|
||||
'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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue