From ecc3e7990f563b597d4770250da640d105c52f2d Mon Sep 17 00:00:00 2001 From: John Davison Date: Fri, 10 Jan 2020 14:40:51 +0000 Subject: [PATCH] set unix_socket config option if configured for sqlalchemy --- config.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/config.py b/config.py index 7e8fc23a..7cfc5098 100644 --- a/config.py +++ b/config.py @@ -17,11 +17,18 @@ class Config(object): GOOGLE_ANALYTICS = saq.CONFIG['gui'].getboolean('google_analytics') # also see lib/saq/database.py:initialize_database - SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{username}:{password}@{hostname}/{database}?charset=utf8mb4'.format( - username=saq.CONFIG.get('database_ace', 'username'), - password=saq.CONFIG.get('database_ace', 'password'), - hostname=saq.CONFIG.get('database_ace', 'hostname'), - database=saq.CONFIG.get('database_ace', 'database')) + if saq.CONFIG['database_ace'].get('unix_socket', fallback=None): + SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{username}:{password}@localhost/{database}?unix_socket={unix_socket}&charset=utf8mb4'.format( + username=saq.CONFIG.get('database_ace', 'username'), + password=saq.CONFIG.get('database_ace', 'password'), + unix_socket=saq.CONFIG.get('database_ace', 'unix_socket'), + database=saq.CONFIG.get('database_ace', 'database')) + else: + SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{username}:{password}@{hostname}/{database}?charset=utf8mb4'.format( + username=saq.CONFIG.get('database_ace', 'username'), + password=saq.CONFIG.get('database_ace', 'password'), + hostname=saq.CONFIG.get('database_ace', 'hostname'), + database=saq.CONFIG.get('database_ace', 'database')) SQLALCHEMY_POOL_TIMEOUT = 10 SQLALCHEMY_POOL_RECYCLE = 60 @@ -38,13 +45,13 @@ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # are we using SSL for MySQL connections? (you should be) - if 'ssl_ca' in saq.CONFIG['database_ace'] \ - or 'ssl_cert' in saq.CONFIG['database_ace'] \ - or 'ssl_key' in saq.CONFIG['database_ace']: + if saq.CONFIG['database_ace'].get('ssl_ca', fallback=None) \ + or saq.CONFIG['database_ace'].get('ssl_cert', fallback=None) \ + or saq.CONFIG['database_ace'].get('ssl_key', fallback=None): ssl_options = { 'ca': abs_path(saq.CONFIG['database_ace']['ssl_ca']) } - if 'ssl_cert' in saq.CONFIG['database_ace']: + if saq.CONFIG['database_ace'].get('ssl_cert', fallback=None): ssl_options['cert'] = abs_path(saq.CONFIG['database_ace']['ssl_cert']) - if 'ssl_key' in saq.CONFIG['database_ace']: + if saq.CONFIG['database_ace'].get('ssl_key', fallback=None): ssl_options['key'] = abs_path(saq.CONFIG['database_ace']['ssl_key']) self.SQLALCHEMY_DATABASE_OPTIONS['connect_args']['ssl'] = ssl_options