services/ui_backend_service/features.py (28 lines of code) (raw):
import os
FEATURE_ENV_PREFIX = 'FEATURE_'
def get_features():
"""
Get a dict of features that are enabled or disabled for the process
Returns
-------
Dict
example:
{
"FEATURE_SOME_FEAT": True
}
"""
features = {}
for key, val in os.environ.items():
if key.startswith(FEATURE_ENV_PREFIX):
val = val.lower()
features[key] = val != '0' and val != 'false' and val != 'f'
return features
FEATURES = get_features()
FEATURE_PREFETCH_DISABLE = FEATURES.get('FEATURE_PREFETCH_DISABLE', False)
FEATURE_CACHE_DISABLE = FEATURES.get('FEATURE_CACHE_DISABLE', False)
FEATURE_S3_DISABLE = FEATURES.get('FEATURE_S3_DISABLE', False)
FEATURE_REFINE_DISABLE = FEATURES.get('FEATURE_REFINE_DISABLE', False)
FEATURE_PREFETCH_ENABLE = not FEATURE_PREFETCH_DISABLE
FEATURE_CACHE_ENABLE = not FEATURE_CACHE_DISABLE
FEATURE_S3_ENABLE = not FEATURE_S3_DISABLE
FEATURE_REFINE_ENABLE = not FEATURE_REFINE_DISABLE
FEATURE_WS_DISABLE = FEATURES.get('FEATURE_WS_DISABLE', False)
FEATURE_DB_LISTEN_DISABLE = FEATURES.get('FEATURE_DB_LISTEN_DISABLE', False)
FEATURE_HEARTBEAT_DISABLE = FEATURES.get('FEATURE_HEARTBEAT_DISABLE', False)
FEATURE_WS_ENABLE = not FEATURE_WS_DISABLE
FEATURE_DB_LISTEN_ENABLE = not FEATURE_DB_LISTEN_DISABLE
FEATURE_HEARTBEAT_ENABLE = not FEATURE_HEARTBEAT_DISABLE
if FEATURE_S3_DISABLE:
os.environ["AWS_ACCESS_KEY_ID"] = "None"
os.environ["AWS_SECRET_ACCESS_KEY"] = "None"
os.environ["AWS_DEFAULT_REGION"] = "None"