# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # # This file is included in the final Docker image and SHOULD be overridden when # deploying the image to prod. Settings configured here are intended for use in local # development environments. Also note that superset_config_docker.py is imported # as a final step as a means to override "defaults" configured here # import logging import os logger = logging.getLogger() def get_env_variable(var_name, default=None): """Get the environment variable or raise exception.""" try: return os.environ[var_name] except KeyError: if default is not None: return default else: error_msg = "The environment variable {} was missing, abort...".format( var_name ) raise EnvironmentError(error_msg) POSTGRES_USER = get_env_variable("POSTGRES_USER") POSTGRES_PASSWORD = get_env_variable("POSTGRES_PASSWORD") POSTGRES_HOST = get_env_variable("POSTGRES_HOST") POSTGRES_PORT = get_env_variable("POSTGRES_PORT") POSTGRES_DB = get_env_variable("POSTGRES_DB") # The SQLAlchemy connection string. SQLALCHEMY_DATABASE_URI = "postgresql://%s:%s@%s:%s/%s" % ( POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB, ) REDIS_HOST = get_env_variable("REDIS_HOST") REDIS_PORT = get_env_variable("REDIS_PORT") class CeleryConfig(object): BROKER_URL = "redis://%s:%s/0" % (REDIS_HOST, REDIS_PORT) CELERY_IMPORTS = ("superset.sql_lab",) CELERY_RESULT_BACKEND = "redis://%s:%s/1" % (REDIS_HOST, REDIS_PORT) CELERY_ANNOTATIONS = {"tasks.add": {"rate_limit": "10/s"}} CELERY_TASK_PROTOCOL = 1 CELERY_CONFIG = CeleryConfig # # Optionally import superset_config_docker.py (which will have been included on # the PYTHONPATH) in order to allow for local settings to be overridden # try: from superset_config_docker import * # noqa import superset_config_docker logger.info( f"Loaded your Docker configuration at " f"[{superset_config_docker.__file__}]" ) except ImportError: logger.info("Using default Docker config...")