change handling of mysql connection parameters
paulfantom committed
Sep 17, 2016 at 18:49 UTC
c2678142030ece5da3b2810046229793024c30ab
1 file changed
+11
-22
python.d/mysql.chart.py
+11
-22
@@ -317,40 +317,29 @@ class Service(SimpleService):
317
:param configuration: dict
318
:return: dict
319
"""
320
+ parameters = {}
321
if self.name is None:
322
self.name = 'local'
322
- if 'user' not in configuration:
323
- self.configuration['user'] = 'root'
324
- if 'pass' not in configuration:
325
- self.configuration['pass'] = ''
323
+ if 'user' in configuration:
324
+ parameters['user'] = self.configuration['user']
325
+ if 'pass' in configuration:
326
+ parameters['passwd'] = self.configuration['pass']
327
if 'my.cnf' in configuration:
327
- self.configuration['socket'] = ''
328
- self.configuration['host'] = ''
329
- self.configuration['port'] = 0
328
+ parameters['read_default_file'] = self.configuration['my.cnf']
329
elif 'socket' in configuration:
331
- self.configuration['my.cnf'] = ''
332
- self.configuration['host'] = ''
333
- self.configuration['port'] = 0
330
+ parameters['unix_socket'] = self.configuration['socket']
331
elif 'host' in configuration:
335
- self.configuration['my.cnf'] = ''
336
- self.configuration['socket'] = ''
332
+ parameters['host'] = self.configuration['host']
333
if 'port' in configuration:
338
- self.configuration['port'] = int(configuration['port'])
339
- else:
340
- self.configuration['port'] = 3306
334
+ parameters['port'] = self.configuration['port']
335
+ self.connection_parameters = parameters
336
337
def _connect(self):
338
"""
339
Try to connect to MySQL server
340
"""
341
try:
347
- self.connection = MySQLdb.connect(user=self.configuration['user'],
348
- passwd=self.configuration['pass'],
349
- read_default_file=self.configuration['my.cnf'],
350
- unix_socket=self.configuration['socket'],
351
- host=self.configuration['host'],
352
- port=self.configuration['port'],
353
- connect_timeout=self.update_every)
342
+ self.connection = MySQLdb.connect(connect_timeout=self.update_every, **self.connection_parameters)
343
except MySQLdb.OperationalError as e:
344
self.error("Cannot establish connection to MySQL.")
345
self.debug(str(e))