import os import logging from flask import Flask from data import database, model from util.config.superusermanager import SuperUserManager from util.ipresolver import NoopIPResolver from config_app._init_config import ROOT_DIR, IS_KUBERNETES from config_app.config_util.config import get_config_provider from util.security.instancekeys import InstanceKeys app = Flask(__name__) logger = logging.getLogger(__name__) OVERRIDE_CONFIG_DIRECTORY = os.path.join(ROOT_DIR, 'config_app/conf/stack') INIT_SCRIPTS_LOCATION = '/conf/init/' is_testing = 'TEST' in os.environ is_kubernetes = IS_KUBERNETES logger.debug('Configuration is on a kubernetes deployment: %s' % IS_KUBERNETES) config_provider = get_config_provider(OVERRIDE_CONFIG_DIRECTORY, 'config.yaml', 'config.py', testing=is_testing) if is_testing: from test.testconfig import TestConfig logger.debug('Loading test config.') app.config.from_object(TestConfig()) else: from config import DefaultConfig logger.debug('Loading default config.') app.config.from_object(DefaultConfig()) app.teardown_request(database.close_db_filter) # Load the override config via the provider. config_provider.update_app_config(app.config) superusers = SuperUserManager(app) ip_resolver = NoopIPResolver() instance_keys = InstanceKeys(app) model.config.app_config = app.config