"""Splitio client.""" import logging from backend import config from secrets_manager.python_ext import PythonSecretsManager from splitio import get_factory SPLIT_BLOCK_UNTIL_READY_TIMEOUT = 60 APPLICATION = 'split' API_KEY_SECRET = 'API_KEY' logger = logging.getLogger(__name__) def fetch_api_key_from_secrets_manager(): try: secrets_manager_client = PythonSecretsManager( environment=config.ENVIRONMENT, service_name=APPLICATION ) # `get_cred` returns 'None' if the key is not found api_key = secrets_manager_client.get_cred(API_KEY_SECRET) if api_key: logger.info("ows-track: SecretsManager client found split.io API_KEY secret.") return api_key except Exception: logger.warning( f"ows-track: SecretsManager client cannot fetch split.io API_KEY secret:" f" {config.ENVIRONMENT}/{APPLICATION}/{API_KEY_SECRET}. Error: {str(Exception)}" ) raise Exception('Secret manager client cannot fetch splitio API KEY.') splitio_api_key = fetch_api_key_from_secrets_manager() splitio_factory = get_factory( splitio_api_key ) splitio_client = '' if splitio_factory: splitio_client = splitio_factory.client()