"""Config.""" import logging import os from secrets_manager.python_ext import PythonSecretsManager from sqlalchemy.pool import StaticPool # Service information SERVICE_NAME = 'ows-territories' SERVICE_VERSION = '0.0.1' # Production environment PROD_ENVIRONMENT = 'prod' DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' TEST_ENVIRONMENT = 'test' ENVIRONMENT = os.environ.get('Environment', DEV_ENVIRONMENT) secrets_manager_client = PythonSecretsManager( environment=ENVIRONMENT, service_name=SERVICE_NAME) # Errors and loggers SENTRY_DSN = os.environ.get('SENTRY_DSN') LOGGER_LEVEL = logging.INFO LOGGER_NAME = 'ows1' logging.getLogger('ddtrace').setLevel(logging.WARNING) # Health check HEALTH_CHECK = '/hello/' DB_CONNECTION_STRING = 'sqlite://' DB_POOLCLASS = StaticPool TERRITORIES_CSV = 'territories/data/territory.csv' TERRITORY_RELATIONS_CSV = 'territories/data/territory_relationship.csv' # Feature flags RDS_OWS_TERRITORIES = int(os.environ.get('RDS_OWS_TERRITORIES', 0)) if RDS_OWS_TERRITORIES == 1: if ENVIRONMENT == TEST_ENVIRONMENT: DB_CONNECTION_STRING = 'sqlite://' else: OWS_TERRITORIES_DB_MYSQL_USER = os.environ.get( 'OWS_TERRITORIES_DB_MYSQL_USER') OWS_TERRITORIES_DB_MYSQL_DATABASE = os.environ.get( 'OWS_TERRITORIES_DB_MYSQL_DATABASE') if ENVIRONMENT == DEV_ENVIRONMENT: OWS_TERRITORIES_DB_MYSQL_PASSWORD = os.environ.get( 'OWS_TERRITORIES_DB_MYSQL_PASSWORD') OWS_TERRITORIES_DB_MYSQL_HOST = os.environ.get( 'OWS_TERRITORIES_DB_MYSQL_HOST') else: OWS_TERRITORIES_DB_MYSQL_PASSWORD = \ secrets_manager_client.get_cred( 'OWS_TERRITORIES_DB_MYSQL_PASSWORD') OWS_TERRITORIES_DB_MYSQL_HOST = \ os.environ.get('OWS_TERRITORIES_DB_MYSQL_HOST') assert OWS_TERRITORIES_DB_MYSQL_USER assert OWS_TERRITORIES_DB_MYSQL_PASSWORD assert OWS_TERRITORIES_DB_MYSQL_HOST assert OWS_TERRITORIES_DB_MYSQL_DATABASE # We must explicitly set utf8 encoding for MySQL connections DB_CONNECTION_STRING = ( 'mysql+pymysql://' '{user}:{password}@{host}/{db_name}?charset={charset}' .format( user=OWS_TERRITORIES_DB_MYSQL_USER, password=OWS_TERRITORIES_DB_MYSQL_PASSWORD, host=OWS_TERRITORIES_DB_MYSQL_HOST, db_name=OWS_TERRITORIES_DB_MYSQL_DATABASE, charset='utf8'))