2021-08-19 18:29:41 +02:00
|
|
|
#! /bin/bash
|
2021-07-19 23:30:04 +02:00
|
|
|
|
|
|
|
set -u
|
|
|
|
set -e
|
|
|
|
|
2021-08-19 18:29:41 +02:00
|
|
|
contract_migration_complete=0
|
|
|
|
retry_count=0
|
|
|
|
retry_sleep=30 #seconds
|
|
|
|
retry_limit="$((${TIMEOUT_MINUTES:-10}*60/2))"
|
|
|
|
while [[ $contract_migration_complete -ne 1 ]]
|
|
|
|
do
|
|
|
|
if [[ -f "$CIC_DATA_DIR/.env" ]] && grep -q CIC_DECLARATOR_ADDRESS $CIC_DATA_DIR/.env
|
|
|
|
then
|
|
|
|
echo "🤜💥🤛 data-seeding found the output of contract-migration!"
|
|
|
|
source /tmp/cic/config/.env
|
|
|
|
env
|
|
|
|
contract_migration_complete=1
|
|
|
|
elif [[ $retry_count -ge $retry_limit ]]
|
|
|
|
then
|
|
|
|
echo "😢 data-seeding timeout waiting for contract migration to finish." >&2
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo "⏳ data-seeding waiting for contract-migration output $retry_count:$retry_limit ..."
|
|
|
|
((retry_count= $retry_count + $retry_sleep))
|
|
|
|
sleep $retry_sleep
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-19 23:30:04 +02:00
|
|
|
while getopts ":n:o:g:" opt; do
|
|
|
|
case $opt in
|
|
|
|
n) NUMBER_OF_USERS="$OPTARG"
|
|
|
|
;;
|
|
|
|
o) OUT_DIR="$OPTARG"
|
|
|
|
;;
|
|
|
|
\?) echo "Invalid option -$OPTARG" >&2
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
# using timeout because the timeout flag for celery inspect does not work
|
|
|
|
timeout 5 celery inspect ping -b $CELERY_BROKER_URL
|
|
|
|
if [[ $? -eq 124 ]]
|
|
|
|
then
|
|
|
|
>&2 echo "Celery workers not available. Is the CELERY_BROKER_URL ($CELERY_BROKER_URL) correct?"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ -d $OUT_DIR ]]
|
|
|
|
then
|
|
|
|
echo "found existing OUT_DIR cleaning up..."
|
|
|
|
rm -rf $OUT_DIR
|
|
|
|
mkdir -p $OUT_DIR
|
|
|
|
else
|
|
|
|
echo "OUT_DIR does not exist creating it."
|
|
|
|
mkdir -p $OUT_DIR
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "creating accounts"
|
|
|
|
|
|
|
|
python create_import_users.py --dir $OUT_DIR $NUMBER_OF_USERS
|
|
|
|
|
|
|
|
echo "purging existing ussd tasks..."
|
|
|
|
|
|
|
|
celery -A cic_ussd.import_task purge -Q cic-import-ussd --broker $CELERY_BROKER_URL -f
|
|
|
|
|
|
|
|
|
|
|
|
echo "running import_balance in the background..."
|
|
|
|
|
|
|
|
python cic_ussd/import_balance.py -v -c config -p $ETH_PROVIDER \
|
|
|
|
-r $CIC_REGISTRY_ADDRESS --token-symbol $TOKEN_SYMBOL -y $KEYSTORE_FILE_PATH $OUT_DIR 2>&1 &
|
|
|
|
|
|
|
|
echo "import_balance pid: $!"
|
|
|
|
|
|
|
|
echo "importing accounts"
|
|
|
|
|
|
|
|
python cic_ussd/import_users.py -vv -c config --ussd-host $USER_USSD_HOST --ussd-port $USER_USSD_PORT --ussd-no-ssl out
|