Skip to content
This repository has been archived by the owner on Mar 17, 2022. It is now read-only.

Commit

Permalink
set unix_socket config option if configured for sqlalchemy
Browse files Browse the repository at this point in the history
  • Loading branch information
unixfreak0037 committed Jan 10, 2020
1 parent ae90ecf commit ecc3e79
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

Expand Down

0 comments on commit ecc3e79

Please sign in to comment.