import yaml from random import SystemRandom def generate_secret_key(): cryptogen = SystemRandom() return str(cryptogen.getrandbits(256)) def add_enterprise_config_defaults(config_obj, current_secret_key, hostname): """ Adds/Sets the config defaults for enterprise registry config. """ # These have to be false. config_obj['TESTING'] = False config_obj['USE_CDN'] = False # Default features that are on. config_obj['FEATURE_USER_LOG_ACCESS'] = config_obj.get('FEATURE_USER_LOG_ACCESS', True) config_obj['FEATURE_USER_CREATION'] = config_obj.get('FEATURE_USER_CREATION', True) # Default features that are off. config_obj['FEATURE_MAILING'] = config_obj.get('FEATURE_MAILING', False) config_obj['FEATURE_BUILD_SUPPORT'] = config_obj.get('FEATURE_BUILD_SUPPORT', False) # Default auth type. if not 'AUTHENTICATION_TYPE' in config_obj: config_obj['AUTHENTICATION_TYPE'] = 'Database' # Default secret key. if not 'SECRET_KEY' in config_obj: config_obj['SECRET_KEY'] = current_secret_key # Default storage configuration. if not 'DISTRIBUTED_STORAGE_CONFIG' in config_obj: config_obj['DISTRIBUTED_STORAGE_PREFERENCE'] = ['local'] config_obj['DISTRIBUTED_STORAGE_CONFIG'] = { 'local': ['LocalStorage', {'storage_path': '/datastorage/registry'}] } config_obj['USERFILES_LOCATION'] = 'local' config_obj['USERFILES_PATH'] = 'userfiles/' if not 'SERVER_HOSTNAME' in config_obj: config_obj['SERVER_HOSTNAME'] = hostname # Misc configuration. config_obj['PREFERRED_URL_SCHEME'] = config_obj.get('PREFERRED_URL_SCHEME', 'http') config_obj['ENTERPRISE_LOGO_URL'] = config_obj.get('ENTERPRISE_LOGO_URL', '/static/img/quay-logo.png')