"""Config file for lambda function.""" import os from secrets_manager.lambda_ext import LambdaSecretsManager APPLICATION_NAME = 'lambda-upload-hfa-request-files' # 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' TEST_ENVIRONMENT = 'test' ENVIRONMENT = os.environ.get('Environment', QA_ENVIRONMENT) FTP_PATH = os.environ.get('FTP_PATH') SECRET_SERVICE_NAME = 'lambda-publishing-hfa' secrets_manager_client = LambdaSecretsManager( environment=ENVIRONMENT, service_name=SECRET_SERVICE_NAME ) S3_BUCKET_NAME = os.getenv('S3_BUCKET_NAME', '{}-orcdbucket'.format(ENVIRONMENT)) EMAIL_RECIPIENTS = os.environ.get('EMAIL_RECIPIENTS', '').split(',') SUCCESS_EMAIL_RECIPIENTS = os.environ.get('SUCCESS_EMAIL_RECIPIENTS', '').split(',') EMAIL_SENDER = os.environ.get('EMAIL_SENDER') if ENVIRONMENT == QA_ENVIRONMENT: ftp_secrets_manager_client = LambdaSecretsManager( environment=PROD_ENVIRONMENT, service_name='orcd-sftp' ) FTP_CREDENTIALS = { 'host': os.environ.get('HFA_FTP_HOST'), 'username': os.environ.get('HFA_FTP_USER'), 'password': ftp_secrets_manager_client.get_cred('qa_hfa_publish')['Password'], 'port': int(os.environ.get('HFA_FTP_PORT', 22)) } elif ENVIRONMENT == PROD_ENVIRONMENT: FTP_CREDENTIALS = { 'host': os.environ.get('HFA_FTP_HOST'), 'username': secrets_manager_client.get_cred('HFA_FTP_USER'), 'password': secrets_manager_client.get_cred('HFA_FTP_PASSWORD'), 'port': int(os.environ.get('HFA_FTP_PORT', 22)) } else: FTP_CREDENTIALS = { 'host': os.environ.get('HFA_FTP_HOST'), 'username': os.environ.get('HFA_FTP_USER'), 'password': os.environ.get('HFA_FTP_PASS'), 'port': int(os.environ.get('HFA_FTP_PORT', 22)) } # PUBLISHING database connection setup. if ENVIRONMENT == TEST_ENVIRONMENT: PB_DB_CREDENTIALS = {'sqlite://': 'test'} elif ENVIRONMENT == DEV_ENVIRONMENT: PB_DB_CREDENTIALS = { 'database': os.environ.get('PUBLISHING_MYSQL_DATABASE'), 'host': os.environ.get('PUBLISHING_MYSQL_HOST'), 'password': os.environ.get('PUBLISHING_MYSQL_PASSWORD'), 'port': int(os.environ.get('PUBLISHING_MYSQL_PORT')), 'user': os.environ.get('PUBLISHING_MYSQL_USER') } else: PB_DB_CREDENTIALS = { 'database': os.environ.get('PUBLISHING_MYSQL_DATABASE'), 'host': os.environ.get('PUBLISHING_MYSQL_HOST'), 'password': secrets_manager_client.get_cred('PUBLISHING_MYSQL_PASSWORD'), 'port': int(os.environ.get('PUBLISHING_MYSQL_PORT', 3306)), 'user': secrets_manager_client.get_cred('PUBLISHING_MYSQL_USER') } if ENVIRONMENT == TEST_ENVIRONMENT: PUBLISHING_DB_URL = 'sqlite://' else: PUBLISHING_DB_URL = ( 'mysql+pymysql://{user}:{password}@{host}/{name}?charset=utf8'.format( user=PB_DB_CREDENTIALS.get('user'), password=PB_DB_CREDENTIALS.get('password'), host=PB_DB_CREDENTIALS.get('host'), name=PB_DB_CREDENTIALS.get('database') ) ) S3_REQUEST_FILE_DIR = os.getenv('S3_REQUEST_FILE_DIR', 'hfa/requestFiles/') S3_REQUEST_ZIP_DIR = os.getenv('S3_REQUEST_ZIP_DIR', 'HFA/Requests//')