Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "chore: fix script + test" #1757

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
44 changes: 13 additions & 31 deletions dataeng/resources/secrets-manager.sh
@@ -1,38 +1,20 @@
#!/bin/bash
#!/usr/bin/env bash
secret_to_call="$1"
secret_name="$2"
set +x

extract_value_from_json() {
local json="$1"
local key="$2"
local value=$(echo "$json" | jq -r ".$key")
}
SECRET_JSON=$(aws secretsmanager get-secret-value --secret-id $secret_to_call --region "us-east-1" --output json)
# Check the exit status of the AWS CLI command

fetch_whole_secret() {
local secret_name="$1"
local variable_name="$2"
local secret_value=$(aws secretsmanager get-secret-value --secret-id "$secret_name" --query "SecretString" --output text)
#set whole file as env var
declare "${secret_name%=*}=${secret_value}"
}
extract_and_store_secret_value() {

fetch_specific_key() {
local secret_name="$1"
local key="$2"
local secret_value=$(aws secretsmanager get-secret-value --secret-id "$secret_name" --query "SecretString" --output text)
local extracted_value=$(extract_value_from_json "$secret_value" "$key")
declare "${key%=*}=${extracted_value}"
value=$(echo "$SECRET_JSON" | jq -r ".SecretString | fromjson.$secret_name" 2>/dev/null)
eval "$secret_name"='$value'
}

# Main script
if [[ "$1" == "-w" ]]; then
if [ $# -ne 3 ]; then
echo "Usage: $0 -w <name_of_file> <name_of_variable>"
exit 1
fi
fetch_whole_secret "$2" "$3"
if [ $? -eq 0 ]; then
# Use jq to extract the values from the JSON response
extract_and_store_secret_value $SECRET_JSON $secret_name
else
if [ $# -ne 2 ]; then
echo "Usage: $0 <name_of_file> <name_of_key>"
exit 1
fi
fetch_specific_key "$1" "$2"
echo "AWS CLI command failed"
fi
17 changes: 8 additions & 9 deletions dataeng/resources/snowflake-refresh-snowpipe.sh
Expand Up @@ -14,20 +14,19 @@ make requirements
source $WORKSPACE/secrets-manager.sh
# Fetch the secrets from AWS
set +x


secrets-manager.sh -w analytics-secure/job-configs/SNOWFLAKE_REFRESH_SNOWPIPE_JOB_EXTRA_VARS snowflake/rsa_key_snowpipe_user.p8
secrets-manager.sh -w analytics-secure/job-configs/SNOWFLAKE_REFRESH_SNOWPIPE_JOB_EXTRA_VARS snowflake/rsa_key_passphrase_snowpipe_user

get_secret_value analytics-secure/job-configs/SNOWFLAKE_REFRESH_SNOWPIPE_JOB_EXTRA_VARS KEY_PATH
get_secret_value analytics-secure/job-configs/SNOWFLAKE_REFRESH_SNOWPIPE_JOB_EXTRA_VARS PASSPHRASE_PATH
get_secret_value analytics-secure/job-configs/SNOWFLAKE_REFRESH_SNOWPIPE_JOB_EXTRA_VARS USER
get_secret_value analytics-secure/job-configs/SNOWFLAKE_REFRESH_SNOWPIPE_JOB_EXTRA_VARS ACCOUNT
set -x

python refresh_snowpipe.py \
--user 'SNOWPIPE' \
--key_path $WORKSPACE/analytics-secure/$KEY_PATH \
--passphrase_path $WORKSPACE/analytics-secure/$PASSPHRASE_PATH \
--user $USER \
--schema $SCHEMA \
--account 'edx.us-east-1' \
--account $ACCOUNT \
--pipe_name $PIPE_NAME \
--table_name $TABLE_NAME \
--delay $DELAY \
--limit $LIMIT
--key_file $KEY_PATH \
--passphrase_file $PASSPHRASE_PATH