import logging import os root_dir = os.path.abspath(os.path.dirname(__file__)) DEFAULT_DATA_DIR = os.path.join('/mnt/data') DEFAULT_DB_PORT = '5432' DEFAULT_DOMAIN = 'localhost' DEFAULT_LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S' DEFAULT_LOG_FILE = os.path.join(root_dir, 'nopaqued.log') DEFAULT_LOG_FORMAT = ('[%(asctime)s] %(levelname)s in %(pathname)s ' '(function: %(funcName)s, line: %(lineno)d): ' '%(message)s') DEFAULT_LOG_LEVEL = 'ERROR' DEFAULT_MAIL_USE_SSL = 'False' DEFAULT_MAIL_USE_TLS = 'False' DEFAULT_PROTOCOL = 'http' class Config: ''' ### Database ### ''' DB_HOST = os.environ.get('NOPAQUE_DB_HOST') DB_NAME = os.environ.get('NOPAQUE_DB_NAME') DB_PASSWORD = os.environ.get('NOPAQUE_DB_PASSWORD') DB_PORT = os.environ.get('NOPAQUE_DB_PORT', DEFAULT_DB_PORT) DB_USERNAME = os.environ.get('NOPAQUE_DB_USERNAME') SQLALCHEMY_DATABASE_URI = 'postgresql://{}:{}@{}:{}/{}'.format( DB_USERNAME, DB_PASSWORD, DB_HOST, DB_PORT, DB_NAME) ''' ### SMTP ### ''' SMTP_DEFAULT_SENDER = os.environ.get('NOPAQUE_SMTP_DEFAULT_SENDER') SMTP_PASSWORD = os.environ.get('NOPAQUE_SMTP_PASSWORD') SMTP_PORT = os.environ.get('NOPAQUE_SMTP_PORT') SMTP_SERVER = os.environ.get('NOPAQUE_SMTP_SERVER') SMTP_USERNAME = os.environ.get('NOPAQUE_SMTP_USERNAME') SMTP_USE_SSL = os.environ.get('NOPAQUE_SMTP_USE_SSL', DEFAULT_MAIL_USE_SSL).lower() == 'true' SMTP_USE_TLS = os.environ.get('NOPAQUE_SMTP_USE_TLS', DEFAULT_MAIL_USE_TLS).lower() == 'true' ''' ### General ### ''' DATA_DIR = os.environ.get('NOPAQUE_DATA_DIR', DEFAULT_DATA_DIR) DOMAIN = os.environ.get('NOPAQUE_DOMAIN', DEFAULT_DOMAIN) PROTOCOL = os.environ.get('NOPAQUE_PROTOCOL', DEFAULT_PROTOCOL) ''' ### Logging ### ''' LOG_DATE_FORMAT = os.environ.get('NOPAQUE_LOG_DATE_FORMAT', DEFAULT_LOG_DATE_FORMAT) LOG_FILE = os.environ.get('NOPAQUE_DAEMON_LOG_FILE', DEFAULT_LOG_FILE) LOG_FORMAT = os.environ.get('NOPAQUE_LOG_FORMAT', DEFAULT_LOG_FORMAT) LOG_LEVEL = os.environ.get('NOPAQUE_LOG_LEVEL', DEFAULT_LOG_LEVEL) def init_app(self): # Configure logging according to the corresponding (LOG_*) config # entries logging.basicConfig(datefmt=self.LOG_DATE_FORMAT, filename=self.LOG_FILE, format=self.LOG_FORMAT, level=self.LOG_LEVEL)