"""Application configuration.""" import logging import os import newrelic.agent import sqlalchemy as sqlalchemy SERVICE_NAME = 'ows-product-film' SERVICE_VERSION = '1.0.0' # Production environment PROD_ENVIRONMENT = 'prod' DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' TEST_ENVIRONMENT = 'test' ENVIRONMENT = os.environ.get('Environment', DEV_ENVIRONMENT) if ENVIRONMENT == PROD_ENVIRONMENT: newrelic.agent.initialize('newrelic.ini') # Errors and loggers SENTRY = os.environ.get('SENTRY_DSN') or None LOGGER_DSN = os.environ.get('LOGGER_DSN') LOGGER_LEVEL = logging.INFO LOGGER_NAME = 'ows1' # Database credentials MYSQL_CHARSET = 'utf8' DB_ENGINE_ENCODING = 'utf-8' DB_CONNECTION_POOL_RECYCLE_TIMEOUT = int( os.environ.get('DB_CONNECTION_POOL_RECYCLE_TIMEOUT') or 3600) if ENVIRONMENT == TEST_ENVIRONMENT: POOL_CLASS = sqlalchemy.pool.StaticPool DB_URL = 'sqlite://' else: # DB Pool starts with specified pool size, but will temporarly increase # if there is a surge of requests. POOL_CLASS = sqlalchemy.pool.QueuePool # We must explicitly set utf8 encoding for MySQL connections DB_URL = ( 'mysql+pymysql://{user}:{password}@{host}/{db_name}?charset={charset}' .format( user=os.environ.get('AR_MYSQL_USER'), password=os.environ.get('AR_MYSQL_PASSWORD'), host=os.environ.get('AR_MYSQL_HOST'), db_name=os.environ.get('AR_MYSQL_DATABASE'), charset=MYSQL_CHARSET)) # Generic handlers HEALTH_CHECK = '/hello/' # Swagger documentation path SWAGGER_FILE_PATH = 'spec/ows_product_film-1.0.0.yaml' BASE_URL = os.environ.get('BASE_URL')