From 7d2a8340c5e997bf4ca43ca537a91e8f0962df1f Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Thu, 24 Mar 2022 09:59:53 -0400 Subject: [PATCH] feat: Update how some settings are read in production.py settings files. Most settings in the production.py files fall back to their values in common.py if they aren't set in the yaml config files but some historically didn't. Update them so that they are more in-line with the rest of the settings in this file. --- cms/envs/production.py | 18 +++++++++--------- lms/envs/production.py | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/cms/envs/production.py b/cms/envs/production.py index 28895ba74f..dcbf702014 100644 --- a/cms/envs/production.py +++ b/cms/envs/production.py @@ -170,7 +170,7 @@ ENTERPRISE_CONSENT_API_URL = ENV_TOKENS.get('ENTERPRISE_CONSENT_API_URL', LMS_IN # Studio. Only applies to IDA for which the social auth flow uses DOT (Django OAuth Toolkit). IDA_LOGOUT_URI_LIST = ENV_TOKENS.get('IDA_LOGOUT_URI_LIST', []) -SITE_NAME = ENV_TOKENS['SITE_NAME'] +SITE_NAME = ENV_TOKENS.get('SITE_NAME', SITE_NAME) ALLOWED_HOSTS = [ # TODO: bbeggs remove this before prod, temp fix to get load testing running @@ -178,10 +178,10 @@ ALLOWED_HOSTS = [ CMS_BASE, ] -LOG_DIR = ENV_TOKENS['LOG_DIR'] +LOG_DIR = ENV_TOKENS.get('LOG_DIR', LOG_DIR) DATA_DIR = path(ENV_TOKENS.get('DATA_DIR', DATA_DIR)) -CACHES = ENV_TOKENS['CACHES'] +CACHES = ENV_TOKENS.get('CACHES', CACHES) # Cache used for location mapping -- called many times with the same key/value # in a given request. if 'loc_cache' not in CACHES: @@ -274,7 +274,7 @@ for app in ENV_TOKENS.get('ADDL_INSTALLED_APPS', []): INSTALLED_APPS.append(app) LOGGING = get_logger_config(LOG_DIR, - logging_env=ENV_TOKENS['LOGGING_ENV'], + logging_env=ENV_TOKENS.get('LOGGING_ENV', LOGGING_ENV), service_variant=SERVICE_VARIANT) # The following variables use (or) instead of the default value inside (get). This is to enforce using the Lazy Text @@ -315,11 +315,11 @@ CMS_SEGMENT_KEY = AUTH_TOKENS.get('SEGMENT_KEY') SECRET_KEY = AUTH_TOKENS['SECRET_KEY'] -AWS_ACCESS_KEY_ID = AUTH_TOKENS["AWS_ACCESS_KEY_ID"] +AWS_ACCESS_KEY_ID = AUTH_TOKENS.get("AWS_ACCESS_KEY_ID", AWS_ACCESS_KEY_ID) if AWS_ACCESS_KEY_ID == "": AWS_ACCESS_KEY_ID = None -AWS_SECRET_ACCESS_KEY = AUTH_TOKENS["AWS_SECRET_ACCESS_KEY"] +AWS_SECRET_ACCESS_KEY = AUTH_TOKENS.get("AWS_SECRET_ACCESS_KEY", AWS_SECRET_ACCESS_KEY) if AWS_SECRET_ACCESS_KEY == "": AWS_SECRET_ACCESS_KEY = None @@ -357,7 +357,7 @@ if COURSE_METADATA_EXPORT_BUCKET: else: COURSE_METADATA_EXPORT_STORAGE = DEFAULT_FILE_STORAGE -DATABASES = AUTH_TOKENS['DATABASES'] +DATABASES = AUTH_TOKENS.get('DATABASES', DATABASES) # The normal database user does not have enough permissions to run migrations. # Migrations are run with separate credentials, given as DB_MIGRATION_* @@ -385,8 +385,8 @@ XBLOCK_FIELD_DATA_WRAPPERS = ENV_TOKENS.get( XBLOCK_FIELD_DATA_WRAPPERS ) -CONTENTSTORE = AUTH_TOKENS['CONTENTSTORE'] -DOC_STORE_CONFIG = AUTH_TOKENS['DOC_STORE_CONFIG'] +CONTENTSTORE = AUTH_TOKENS.get('CONTENTSTORE', CONTENTSTORE) +DOC_STORE_CONFIG = AUTH_TOKENS.get('DOC_STORE_CONFIG', DOC_STORE_CONFIG) ############################### BLOCKSTORE ##################################### BLOCKSTORE_API_URL = ENV_TOKENS.get('BLOCKSTORE_API_URL', None) # e.g. "https://blockstore.example.com/api/v1/" diff --git a/lms/envs/production.py b/lms/envs/production.py index 1e54dca63a..e74cff6b58 100644 --- a/lms/envs/production.py +++ b/lms/envs/production.py @@ -150,7 +150,7 @@ EMAIL_FILE_PATH = ENV_TOKENS.get('EMAIL_FILE_PATH', None) EMAIL_HOST = ENV_TOKENS.get('EMAIL_HOST', 'localhost') # django default is localhost EMAIL_PORT = ENV_TOKENS.get('EMAIL_PORT', 25) # django default is 25 EMAIL_USE_TLS = ENV_TOKENS.get('EMAIL_USE_TLS', False) # django default is False -SITE_NAME = ENV_TOKENS['SITE_NAME'] +SITE_NAME = ENV_TOKENS.get('SITE_NAME', SITE_NAME) SESSION_COOKIE_DOMAIN = ENV_TOKENS.get('SESSION_COOKIE_DOMAIN') SESSION_COOKIE_HTTPONLY = ENV_TOKENS.get('SESSION_COOKIE_HTTPONLY', True) @@ -205,7 +205,7 @@ if ENV_TOKENS.get('SESSION_COOKIE_NAME', None): # By default, it's set to the same thing as the SESSION_COOKIE_DOMAIN, but we want to make it overrideable. SHARED_COOKIE_DOMAIN = ENV_TOKENS.get('SHARED_COOKIE_DOMAIN', SESSION_COOKIE_DOMAIN) -CACHES = ENV_TOKENS['CACHES'] +CACHES = ENV_TOKENS.get('CACHES', CACHES) # Cache used for location mapping -- called many times with the same key/value # in a given request. if 'loc_cache' not in CACHES: @@ -315,11 +315,11 @@ for app in ENV_TOKENS.get('ADDL_INSTALLED_APPS', []): local_loglevel = ENV_TOKENS.get('LOCAL_LOGLEVEL', 'INFO') -LOG_DIR = ENV_TOKENS['LOG_DIR'] +LOG_DIR = ENV_TOKENS.get('LOG_DIR', LOG_DIR) DATA_DIR = path(ENV_TOKENS.get('DATA_DIR', DATA_DIR)) LOGGING = get_logger_config(LOG_DIR, - logging_env=ENV_TOKENS['LOGGING_ENV'], + logging_env=ENV_TOKENS.get('LOGGING_ENV', LOGGING_ENV), local_loglevel=local_loglevel, service_variant=SERVICE_VARIANT) @@ -444,11 +444,11 @@ LMS_SEGMENT_KEY = AUTH_TOKENS.get('SEGMENT_KEY') SECRET_KEY = AUTH_TOKENS['SECRET_KEY'] -AWS_ACCESS_KEY_ID = AUTH_TOKENS["AWS_ACCESS_KEY_ID"] +AWS_ACCESS_KEY_ID = AUTH_TOKENS.get("AWS_ACCESS_KEY_ID", AWS_ACCESS_KEY_ID) if AWS_ACCESS_KEY_ID == "": AWS_ACCESS_KEY_ID = None -AWS_SECRET_ACCESS_KEY = AUTH_TOKENS["AWS_SECRET_ACCESS_KEY"] +AWS_SECRET_ACCESS_KEY = AUTH_TOKENS.get("AWS_SECRET_ACCESS_KEY", AWS_SECRET_ACCESS_KEY) if AWS_SECRET_ACCESS_KEY == "": AWS_SECRET_ACCESS_KEY = None @@ -468,7 +468,7 @@ else: # If there is a database called 'read_replica', you can use the use_read_replica_if_available # function in util/query.py, which is useful for very large database reads -DATABASES = AUTH_TOKENS['DATABASES'] +DATABASES = AUTH_TOKENS.get('DATABASES', DATABASES) # The normal database user does not have enough permissions to run migrations. # Migrations are run with separate credentials, given as DB_MIGRATION_* @@ -484,7 +484,7 @@ for name, database in DATABASES.items(): 'PORT': os.environ.get('DB_MIGRATION_PORT', database['PORT']), }) -XQUEUE_INTERFACE = AUTH_TOKENS['XQUEUE_INTERFACE'] +XQUEUE_INTERFACE = AUTH_TOKENS.get('XQUEUE_INTERFACE', XQUEUE_INTERFACE) # Get the MODULESTORE from auth.json, but if it doesn't exist, # use the one from common.py