"""Config.""" import os from royalties.private_key import get_private_key env = os.environ.get('Environment') sf_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'), '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 env == 'dev' and SNOWFLAKE_KEY_PASSPHRASE: if not SNOWFLAKE_PRIVATE_KEY_PATH: SNOWFLAKE_PRIVATE_KEY_PATH = '{}/.ssh/snowflake/rsa_key.p8'.format( os.environ['HOME']) sf_config['private_key'] = get_private_key( SNOWFLAKE_PRIVATE_KEY_PATH, SNOWFLAKE_KEY_PASSPHRASE) aws = { 'access_key': os.environ.get('AWS_ACCESS_KEY_ID'), 'access_secret': os.environ.get('AWS_SECRET_ACCESS_KEY') } default_port = 3306 ar_config = { 'host': os.environ.get('ART_RELATIONS_READ_HOST'), 'user': os.environ.get('ART_RELATIONS_READ_USER'), 'passwd': os.environ.get('ART_RELATIONS_READ_PASS'), 'db': os.environ.get('ART_RELATIONS_READ_NAME', 'art_relations'), 'port': os.environ.get('ART_RELATIONS_READ_PORT', False) or default_port } ar_config['port'] = int(ar_config['port']) ar_read_write_config = { 'host': os.environ.get('ART_RELATIONS_READ_WRITE_HOST', None), 'user': os.environ.get('ART_RELATIONS_READ_WRITE_USER', None), 'passwd': os.environ.get('ART_RELATIONS_READ_WRITE_PASS', None), 'db': os.environ.get('ART_RELATIONS_READ_WRITE_NAME', 'art_relations'), 'port': os.environ.get('ART_RELATIONS_READ_WRITE_PORT', '3306') } ar_read_write_config['port'] = int(ar_read_write_config['port']) period_id = os.environ.get('PERIOD_ID') staging_table = os.environ.get('STAGING_TABLE_NAME', 'staging_fact_sales') s3_bucket = '{env}-staging-dim-imports'.format(env=env) s3_key = ( 'staging_fact_sales/processed_dig_sales_{period_id}.txt.gz').format( period_id=period_id) s3_path = os.path.join('s3://', s3_bucket, s3_key) jv_s3 = { 'bucket': os.environ.get('S3_BUCKET', ''), 'path': os.environ.get('S3_SUBFOLDER', ''), } # here we assume that there will be a shared mount-point between mysql box # and the host running this very script. So mysql_outfile_path and # app_file_path are going to point to the same file from different sides mysql_outfile_path = '{dir}/processed_dig_sales_{period_id}.csv'.format( dir=os.environ.get('SQL_OUTFILE_DIR', ''), period_id=period_id) app_file_path = '{dir}/processed_dig_sales_{period_id}.csv'.format( dir=os.environ.get('APP_FILE_DIR', ''), period_id=period_id)