mirror of
				https://github.com/ansible-collections/community.mysql.git
				synced 2025-10-25 05:24:01 -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