def assertMigrated(self, old_setting): """ Migrates the given setting and checks whether it correctly converted to an ordered list of stores within Mixed. """ # pass a copy of the old setting since the migration modifies the given setting new_mixed_setting = convert_module_store_setting_if_needed(copy.deepcopy(old_setting)) # check whether the configuration is encapsulated within Mixed. self.assertEqual(new_mixed_setting["default"]["ENGINE"], "xmodule.modulestore.mixed.MixedModuleStore") # check whether the stores are in an ordered list new_stores = get_mixed_stores(new_mixed_setting) self.assertIsInstance(new_stores, list) return new_mixed_setting, new_stores[0]
"DATABASES", default={ "default": { "ENGINE": DATABASE_ENGINE, "HOST": DATABASE_HOST, "PORT": DATABASE_PORT, "NAME": DATABASE_NAME, "USER": DATABASE_USER, "PASSWORD": DATABASE_PASSWORD, } }, formatter=json.loads, ) # Configure the MODULESTORE MODULESTORE = convert_module_store_setting_if_needed( config("MODULESTORE", default=MODULESTORE, formatter=json.loads)) MONGODB_PASSWORD = config("MONGODB_PASSWORD", default="") MONGODB_HOST = config("MONGODB_HOST", default="mongodb") MONGODB_PORT = config("MONGODB_PORT", default=27017, formatter=int) MONGODB_NAME = config("MONGODB_NAME", default="edxapp") MONGODB_USER = config("MONGODB_USER", default=None) MONGODB_SSL = config("MONGODB_SSL", default=False, formatter=bool) MONGODB_REPLICASET = config("MONGODB_REPLICASET", default=None) # Accepted read_preference value can be found here https://github.com/mongodb/mongo-python-driver/blob/2.9.1/pymongo/read_preferences.py#L54 MONGODB_READ_PREFERENCE = config("MONGODB_READ_PREFERENCE", default="PRIMARY") DOC_STORE_CONFIG = config( "DOC_STORE_CONFIG", default={ "collection": "modulestore",
# If Segment.io key specified, load it and turn on Segment.io if the feature flag is set # Note that this is the Studio key. There is a separate key for the LMS. SEGMENT_IO_KEY = AUTH_TOKENS.get('SEGMENT_IO_KEY') if SEGMENT_IO_KEY: FEATURES['SEGMENT_IO'] = ENV_TOKENS.get('SEGMENT_IO', False) AWS_ACCESS_KEY_ID = AUTH_TOKENS["AWS_ACCESS_KEY_ID"] if AWS_ACCESS_KEY_ID == "": AWS_ACCESS_KEY_ID = None AWS_SECRET_ACCESS_KEY = AUTH_TOKENS["AWS_SECRET_ACCESS_KEY"] if AWS_SECRET_ACCESS_KEY == "": AWS_SECRET_ACCESS_KEY = None DATABASES = AUTH_TOKENS['DATABASES'] MODULESTORE = convert_module_store_setting_if_needed(AUTH_TOKENS.get('MODULESTORE', MODULESTORE)) CONTENTSTORE = AUTH_TOKENS['CONTENTSTORE'] DOC_STORE_CONFIG = AUTH_TOKENS['DOC_STORE_CONFIG'] # Datadog for events! DATADOG = AUTH_TOKENS.get("DATADOG", {}) DATADOG.update(ENV_TOKENS.get("DATADOG", {})) # TODO: deprecated (compatibility with previous settings) if 'DATADOG_API' in AUTH_TOKENS: DATADOG['api_key'] = AUTH_TOKENS['DATADOG_API'] # Celery Broker CELERY_ALWAYS_EAGER = ENV_TOKENS.get("CELERY_ALWAYS_EAGER", False) CELERY_BROKER_TRANSPORT = ENV_TOKENS.get("CELERY_BROKER_TRANSPORT", "") CELERY_BROKER_HOSTNAME = ENV_TOKENS.get("CELERY_BROKER_HOSTNAME", "") CELERY_BROKER_VHOST = ENV_TOKENS.get("CELERY_BROKER_VHOST", "")
database.update({ 'ENGINE': os.environ.get('DB_MIGRATION_ENGINE', database['ENGINE']), 'USER': os.environ.get('DB_MIGRATION_USER', database['USER']), 'PASSWORD': os.environ.get('DB_MIGRATION_PASS', database['PASSWORD']), 'NAME': os.environ.get('DB_MIGRATION_NAME', database['NAME']), 'HOST': os.environ.get('DB_MIGRATION_HOST', database['HOST']), 'PORT': os.environ.get('DB_MIGRATION_PORT', database['PORT']), }) MODULESTORE = convert_module_store_setting_if_needed( AUTH_TOKENS.get('MODULESTORE', MODULESTORE)) MODULESTORE_FIELD_OVERRIDE_PROVIDERS = ENV_TOKENS.get( 'MODULESTORE_FIELD_OVERRIDE_PROVIDERS', MODULESTORE_FIELD_OVERRIDE_PROVIDERS) XBLOCK_FIELD_DATA_WRAPPERS = ENV_TOKENS.get('XBLOCK_FIELD_DATA_WRAPPERS', XBLOCK_FIELD_DATA_WRAPPERS) CONTENTSTORE = AUTH_TOKENS['CONTENTSTORE'] DOC_STORE_CONFIG = AUTH_TOKENS['DOC_STORE_CONFIG'] # Datadog for events! DATADOG = AUTH_TOKENS.get("DATADOG", {}) DATADOG.update(ENV_TOKENS.get("DATADOG", {})) # TODO: deprecated (compatibility with previous settings)
AUTH_TOKENS = convert_tokens(AUTH_TOKENS) vars().update(AUTH_TOKENS) ########################################## # Manipulate imported settings with code # if AWS_ACCESS_KEY_ID == "": AWS_ACCESS_KEY_ID = None if AWS_SECRET_ACCESS_KEY == "": AWS_SECRET_ACCESS_KEY = None MODULESTORE = convert_module_store_setting_if_needed(MODULESTORE) # TODO: deprecated (compatibility with previous settings) if 'DATADOG_API' in AUTH_TOKENS: DATADOG['api_key'] = AUTH_TOKENS['DATADOG_API'] BROKER_URL = "{0}://{1}:{2}@{3}/{4}".format(CELERY_BROKER_TRANSPORT, CELERY_BROKER_USER, CELERY_BROKER_PASSWORD, CELERY_BROKER_HOSTNAME, CELERY_BROKER_VHOST) ######################## CUSTOM COURSES for EDX CONNECTOR ###################### if FEATURES.get('CUSTOM_COURSES_EDX'): INSTALLED_APPS += ('openedx.core.djangoapps.ccxcon',)
DATABASES = config( "DATABASES", default={ "default": { "ENGINE": "django.db.backends.mysql", "HOST": "mysql", "PORT": "3306", "NAME": "edxapp", "USER": "******", "PASSWORD": "******", } }, ) # Configure the MODULESTORE MODULESTORE = convert_module_store_setting_if_needed( config("MODULESTORE", default=MODULESTORE)) DOC_STORE_CONFIG = config("DOC_STORE_CONFIG", default={ "db": "edxapp", "host": "mongodb" }) MODULESTORE_FIELD_OVERRIDE_PROVIDERS = config( "MODULESTORE_FIELD_OVERRIDE_PROVIDERS", default=MODULESTORE_FIELD_OVERRIDE_PROVIDERS) XBLOCK_FIELD_DATA_WRAPPERS = config("XBLOCK_FIELD_DATA_WRAPPERS", default=XBLOCK_FIELD_DATA_WRAPPERS) CONTENTSTORE = config(
AUTH_TOKENS = convert_tokens(AUTH_TOKENS) vars().update(AUTH_TOKENS) ########################################## # Manipulate imported settings with code # if AWS_ACCESS_KEY_ID == "": AWS_ACCESS_KEY_ID = None if AWS_SECRET_ACCESS_KEY == "": AWS_SECRET_ACCESS_KEY = None MODULESTORE = convert_module_store_setting_if_needed(MODULESTORE) # TODO: deprecated (compatibility with previous settings) if 'DATADOG_API' in AUTH_TOKENS: DATADOG['api_key'] = AUTH_TOKENS['DATADOG_API'] BROKER_URL = "{0}://{1}:{2}@{3}/{4}".format(CELERY_BROKER_TRANSPORT, CELERY_BROKER_USER, CELERY_BROKER_PASSWORD, CELERY_BROKER_HOSTNAME, CELERY_BROKER_VHOST) BROKER_USE_SSL = ENV_TOKENS.get('CELERY_BROKER_USE_SSL', False) ######################## CUSTOM COURSES for EDX CONNECTOR ###################### if FEATURES.get('CUSTOM_COURSES_EDX'): INSTALLED_APPS += ('openedx.core.djangoapps.ccxcon', )