dynamoDb/scripts/cohortItemsStatusUpdate.bash (16 lines of code) (raw):

#!/bin/bash # # ===================================================================== # Updates the cohort table processingStage attribute, # for a given list of subscriptions. # # Example usage: # cohortItemsStatusUpdate.bash Cohort1 ../subs.txt # # Arg 1: Cohort name # Arg 2: path to a file containing line-separated subscription numbers # ===================================================================== # Arg 1: Cohort name # Arg 2: Deployment stage: DEV, CODE or PROD # Arg 3: New processingStage # Arg 4: Subscription number function update() { aws dynamodb update-item --region eu-west-1 --profile membership \ --table-name "PriceMigration-$2-$1" \ --key "{\"subscriptionNumber\": {\"S\": \"$4\"}}" \ --update-expression "SET #P = :p" \ --expression-attribute-names "{\"#P\": \"processingStage\"}" \ --expression-attribute-values "{\":p\": {\"S\": \"$3\"}}" \ --return-values UPDATED_OLD } # Update this value for different stages # (This isn't a program parameter to make it more difficult to make a mistake). stage=DEV # Update this value for different processing statuses # (This isn't a program parameter to make it more difficult to make a mistake). status=EstimationComplete while read -r line; do sub=$(echo "$line" | tr -cd "[:print:]") echo "Updating $stage $sub to status $status"; update "$1" "$stage" "$status" "$sub"; done <"$2"