"""Application configuration.""" import logging import os import dotenv import newrelic.agent import pyraml.parser from sqlalchemy.pool import NullPool from sqlalchemy.pool import StaticPool # Load environment variables from .env. dotenv.load('../.env') # Database credentials ART_RELATIONS = { 'database': os.environ.get('AR_MYSQL_DATABASE'), 'host': os.environ.get('AR_MYSQL_HOST'), 'password': os.environ.get('AR_MYSQL_PASSWORD'), 'port': os.environ.get('AR_MYSQL_PORT'), 'user': os.environ.get('AR_MYSQL_USER') } DIRECT_DELIVERY = { 'database': os.environ.get('DD_MYSQL_DATABASE'), 'host': os.environ.get('DD_MYSQL_HOST'), 'password': os.environ.get('DD_MYSQL_PASSWORD'), 'post': os.environ.get('DD_MYSQL_PORT'), 'user': os.environ.get('DD_MYSQL_USER') } # Service information SERVICE_NAME = 'ows-images' 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') if ENVIRONMENT == TEST_ENVIRONMENT: AR_CONNECTION_URL = 'sqlite://' POOL_CLASS = StaticPool OWS_PRODUCT_URL = 'https://example.com' IMAGES_URL = 'https://images.example.com' WORKSTATION_URL = 'http://example.com' else: AR_CONNECTION_URL = ( 'mysql+pymysql://{user}:{password}@{host}/{db}'.format( user=ART_RELATIONS.get('user'), password=ART_RELATIONS.get('password'), host=ART_RELATIONS.get('host'), db=ART_RELATIONS.get('database'))) POOL_CLASS = NullPool OWS_PRODUCT_URL = os.environ.get('OWS_PRODUCT_URL') IMAGES_URL = os.environ.get('IMAGES_HOST_URL') # Workstation WORKSTATION_URL = os.environ.get('WORKSTATION_URL') # Errors and loggers SENTRY = os.environ.get('SENTRY_DSN') LOGGER_DSN = os.environ.get('LOGGER_DSN') LOGGER_LEVEL = logging.INFO LOGGER_NAME = 'ows1' # API definition API_DEFINITION = pyraml.parser.load( 'docs/api/ows-images-{version}.raml'.format( version=SERVICE_VERSION)) # Generic handlers HEALTH_CHECK = '/hello/'