"""Config file for lambda warmer.""" import logging import os from abacus_common_logic.utils.ssh import get_private_key from secrets_manager.lambda_ext import LambdaSecretsManager from commit_adjustment.sentry import init_for_lambda APPLICATION_NAME = 'lambda-royalties-adjustments-commit' DOMAIN = 'royalty_accounting' # AWS region configuration DEFAULT_AWS_REGION = 'us-east-1' AWS_REGION = os.environ.get('AWS_REGION', DEFAULT_AWS_REGION) # Environment setup DEV_ENVIRONMENT = 'dev' QA_ENVIRONMENT = 'qa' PROD_ENVIRONMENT = 'prod' ENVIRONMENT = os.environ.get('ENVIRONMENT', DEV_ENVIRONMENT) init_for_lambda(APPLICATION_NAME, ENVIRONMENT) LOGGING_LEVEL = os.environ.get('LOGGING_LEVEL', logging.DEBUG) for logger_name in ['snowflake.connector', 'botocore', 'boto3']: logger = logging.getLogger(logger_name) logger.setLevel(LOGGING_LEVEL) BATCH_SIZE = os.environ.get('BATCH_SIZE', 5000) # Snowflake configuration SNOWFLAKE_CONFIG = { 'role': os.environ.get('SNOWFLAKE_ROLE'), 'warehouse': os.environ.get('SNOWFLAKE_WAREHOUSE'), 'db': os.environ.get('SNOWFLAKE_DATABASE'), 'schema': os.environ.get('SNOWFLAKE_SCHEMA', ENVIRONMENT), 'user': os.environ.get('SNOWFLAKE_USER'), 'password': os.environ.get('SNOWFLAKE_PASSWORD'), 'account': os.environ.get('SNOWFLAKE_ACCOUNT'), 'private_key': None } # Snowflake SSH-Keypair access SNOWFLAKE_PRIVATE_KEY_PATH = os.environ.get('SNOWFLAKE_PRIVATE_KEY_PATH', '') SNOWFLAKE_KEY_PASSPHRASE = os.environ.get('SNOWFLAKE_KEY_PASSPHRASE', '') if ENVIRONMENT == DEV_ENVIRONMENT and SNOWFLAKE_KEY_PASSPHRASE: if not SNOWFLAKE_PRIVATE_KEY_PATH: SNOWFLAKE_PRIVATE_KEY_PATH = '{}/.ssh/snowflake/rsa_key.p8'.format( os.environ['HOME']) SNOWFLAKE_CONFIG['private_key'] = get_private_key( SNOWFLAKE_PRIVATE_KEY_PATH, SNOWFLAKE_KEY_PASSPHRASE) # Pull QA & Prod credentials from secrets manager if ENVIRONMENT in [QA_ENVIRONMENT, PROD_ENVIRONMENT]: client = LambdaSecretsManager( environment=ENVIRONMENT, service_name=APPLICATION_NAME) SNOWFLAKE_CONFIG['password'] = client.get_cred('SNOWFLAKE_PASSWORD') CONTRACT_ADJUSTMENTS_SQL = """ SELECT CONTRACT_ID, PAYEE_ID, CURRENCY_CODE, SUM(CURRENCY_AMOUNT) AS AMOUNT FROM $db.$schema.ACCOUNTING_RUN_ADJUSTMENTS WHERE ACCOUNTING_RUN_ID = $accounting_run_id GROUP BY CONTRACT_ID, PAYEE_ID, CURRENCY_CODE """