Skip to content

Commit ad4be9e

Browse files
authored
Merge pull request #1318 from ainblockchain/feature/platfowner/feature
Support --kill-only option in incremental deploy scripts
2 parents f903837 + 0300b15 commit ad4be9e

10 files changed

+195
-163
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ You can override default port numbering system by setting `PORT` and `P2P_PORT`
4747
```
4848
gcloud init
4949
# For genesis deploy
50-
bash deploy_blockchain_genesis_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-only|--skip-kill]
50+
bash deploy_blockchain_genesis_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-job|--kill-only]
5151
# For incremental deploy
5252
bash deploy_blockchain_incremental_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data]
5353
```
@@ -130,7 +130,7 @@ BLOCKCHAIN_CONFIGS_DIR=blockchain-configs/afan-shard MIN_NUM_VALIDATORS=1 DEBUG=
130130
```
131131
gcloud init
132132
# For genesis deploy
133-
bash deploy_blockchain_genesis_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-only|--skip-kill]
133+
bash deploy_blockchain_genesis_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-job|--kill-only]
134134
# For incremental deploy
135135
bash deploy_blockchain_incremental_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data]
136136
```

copy_blockchain_data_gcp.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ function upload_data() {
146146

147147
# 2. Extract tgz file for node
148148
printf "\n\n<<< Extracting tgz file for node $node_index >>>\n\n"
149-
TGZ_CMD="gcloud compute ssh $node_target_addr --command 'cd /home; sudo mkdir -p ain_blockchain_data; sudo chown $GCP_USER:$GCP_USER ain_blockchain_data; sudo chmod 777 ain_blockchain_data; cd ain_blockchain_data; gzip -dc ~/ain_blockchain_data.tar.gz | tar xvf -' --project $PROJECT_ID --zone $node_zone"
149+
TGZ_CMD="gcloud compute ssh $node_target_addr --command 'cd /home; sudo mkdir -p ain_blockchain_data; sudo chown $GCP_USER:$GCP_USER ain_blockchain_data; sudo chmod 777 ain_blockchain_data; cd ain_blockchain_data; sudo rm -rf chains snapshots; gzip -dc ~/ain_blockchain_data.tar.gz | tar xvf -' --project $PROJECT_ID --zone $node_zone"
150150
printf "TGZ_CMD=$TGZ_CMD\n\n"
151151
eval $TGZ_CMD
152152

copy_blockchain_data_onprem.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ function upload_data() {
115115

116116
# 2. Extract tgz file for node
117117
printf "\n\n<<< Extracting tgz file for node $node_index >>>\n\n"
118-
TGZ_CMD="ssh $node_target_addr 'sudo -S ls -la; cd /home; sudo mkdir -p ${SEASON}/ain_blockchain_data; sudo chown $ONPREM_USER:$ONPREM_USER ${SEASON} ${SEASON}/ain_blockchain_data; sudo chmod 777 ${SEASON} ${SEASON}/ain_blockchain_data; cd ${SEASON}/ain_blockchain_data; gzip -dc ~/ain_blockchain_data.tar.gz | tar xvf -'"
118+
TGZ_CMD="ssh $node_target_addr 'sudo -S ls -la; cd /home; sudo mkdir -p ${SEASON}/ain_blockchain_data; sudo chown $ONPREM_USER:$ONPREM_USER ${SEASON} ${SEASON}/ain_blockchain_data; sudo chmod 777 ${SEASON} ${SEASON}/ain_blockchain_data; cd ${SEASON}/ain_blockchain_data; sudo rm -rf chains snapshots; gzip -dc ~/ain_blockchain_data.tar.gz | tar xvf -'"
119119
printf "TGZ_CMD=$TGZ_CMD\n\n"
120120
eval "echo ${node_login_pw} | sshpass -f <(printf '%s\n' ${node_login_pw}) ${TGZ_CMD}"
121121

deploy_blockchain_genesis_gcp.sh

Lines changed: 37 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
if [[ $# -lt 4 ]] || [[ $# -gt 10 ]]; then
4-
printf "Usage: bash deploy_blockchain_genesis_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-only|--skip-kill]\n"
4+
printf "Usage: bash deploy_blockchain_genesis_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-job|--kill-only]\n"
55
printf "Example: bash deploy_blockchain_genesis_gcp.sh dev 0 -1 4 --keystore --no-keep-code\n"
66
printf "Example: bash deploy_blockchain_genesis_gcp.sh dev 0 0 0 --keystore --keep-code\n"
77
printf "Example: bash deploy_blockchain_genesis_gcp.sh dev 0 -1 -1 --setup --keystore --no-keep-code\n"
@@ -72,17 +72,9 @@ function parse_options() {
7272
CHOWN_DATA_OPTION="$option"
7373
elif [[ $option = '--no-chown-data' ]]; then
7474
CHOWN_DATA_OPTION="$option"
75-
elif [[ $option = '--kill-only' ]]; then
76-
if [[ "$KILL_OPTION" ]]; then
77-
printf "You cannot use both --skip-kill and --kill-only\n"
78-
exit
79-
fi
75+
elif [[ $option = '--kill-job' ]]; then
8076
KILL_OPTION="$option"
81-
elif [[ $option = '--skip-kill' ]]; then
82-
if [[ "$KILL_OPTION" ]]; then
83-
printf "You cannot use both --skip-kill and --kill-only\n"
84-
exit
85-
fi
77+
elif [[ $option = '--kill-only' ]]; then
8678
KILL_OPTION="$option"
8779
else
8880
printf "Invalid options: $option\n"
@@ -97,7 +89,7 @@ KEEP_CODE_OPTION="--keep-code"
9789
KEEP_DATA_OPTION="--keep-data"
9890
SYNC_MODE_OPTION="--fast-sync"
9991
CHOWN_DATA_OPTION="--no-chown-data"
100-
KILL_OPTION=""
92+
KILL_OPTION="--kill-job"
10193

10294
ARG_INDEX=5
10395
while [ $ARG_INDEX -le $# ]; do
@@ -326,47 +318,43 @@ if [[ $KEEP_CODE_OPTION = "--no-keep-code" ]]; then
326318
fi
327319
fi
328320

329-
if [[ $KILL_OPTION = "--skip-kill" ]]; then
330-
printf "\nSkipping process kill...\n"
331-
else
332-
# kill any processes still alive
333-
printf "\nKilling tracker / blockchain node jobs...\n"
334-
335-
# Tracker server is killed with PARENT_NODE_INDEX_BEGIN = -1
336-
if [[ $PARENT_NODE_INDEX_BEGIN = -1 ]]; then
337-
printf "\n* >> Killing tracker job (${TRACKER_TARGET_ADDR}) *********************************************************\n\n"
338-
gcloud compute ssh $TRACKER_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $TRACKER_ZONE
339-
fi
340-
341-
begin_index=$PARENT_NODE_INDEX_BEGIN
342-
if [[ $begin_index -lt 0 ]]; then
343-
begin_index=0
344-
fi
345-
if [[ $begin_index -le $PARENT_NODE_INDEX_END ]] && [[ $PARENT_NODE_INDEX_END -ge 0 ]]; then
346-
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
347-
NODE_TARGET_ADDR=NODE_${node_index}_TARGET_ADDR
348-
NODE_ZONE=NODE_${node_index}_ZONE
321+
# kill any processes still alive
322+
printf "\nKilling tracker / blockchain node jobs...\n"
349323

350-
printf "\n* >> Killing node $node_index job (${!NODE_TARGET_ADDR}) *********************************************************\n\n"
351-
gcloud compute ssh ${!NODE_TARGET_ADDR} --command "sudo killall node" --project $PROJECT_ID --zone ${!NODE_ZONE}
352-
done
353-
fi
324+
# Tracker server is killed with PARENT_NODE_INDEX_BEGIN = -1
325+
if [[ $PARENT_NODE_INDEX_BEGIN = -1 ]]; then
326+
printf "\n* >> Killing tracker job (${TRACKER_TARGET_ADDR}) *********************************************************\n\n"
327+
gcloud compute ssh $TRACKER_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $TRACKER_ZONE
328+
fi
354329

355-
if [[ $NUM_SHARDS -gt 0 ]]; then
356-
for i in $(seq $NUM_SHARDS); do
357-
printf "shard #$i\n"
330+
begin_index=$PARENT_NODE_INDEX_BEGIN
331+
if [[ $begin_index -lt 0 ]]; then
332+
begin_index=0
333+
fi
334+
if [[ $begin_index -le $PARENT_NODE_INDEX_END ]] && [[ $PARENT_NODE_INDEX_END -ge 0 ]]; then
335+
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
336+
NODE_TARGET_ADDR=NODE_${node_index}_TARGET_ADDR
337+
NODE_ZONE=NODE_${node_index}_ZONE
358338

359-
SHARD_TRACKER_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-tracker-taiwan"
360-
SHARD_NODE_0_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-node-0-taiwan"
361-
SHARD_NODE_1_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-node-1-oregon"
362-
SHARD_NODE_2_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-node-2-singapore"
339+
printf "\n* >> Killing node $node_index job (${!NODE_TARGET_ADDR}) *********************************************************\n\n"
340+
gcloud compute ssh ${!NODE_TARGET_ADDR} --command "sudo killall node" --project $PROJECT_ID --zone ${!NODE_ZONE}
341+
done
342+
fi
363343

364-
gcloud compute ssh $SHARD_TRACKER_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $TRACKER_ZONE
365-
gcloud compute ssh $SHARD_NODE_0_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $NODE_0_ZONE
366-
gcloud compute ssh $SHARD_NODE_1_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $NODE_1_ZONE
367-
gcloud compute ssh $SHARD_NODE_2_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $NODE_2_ZONE
368-
done
369-
fi
344+
if [[ $NUM_SHARDS -gt 0 ]]; then
345+
for i in $(seq $NUM_SHARDS); do
346+
printf "shard #$i\n"
347+
348+
SHARD_TRACKER_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-tracker-taiwan"
349+
SHARD_NODE_0_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-node-0-taiwan"
350+
SHARD_NODE_1_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-node-1-oregon"
351+
SHARD_NODE_2_TARGET_ADDR="${GCP_USER}@${SEASON}-shard-${i}-node-2-singapore"
352+
353+
gcloud compute ssh $SHARD_TRACKER_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $TRACKER_ZONE
354+
gcloud compute ssh $SHARD_NODE_0_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $NODE_0_ZONE
355+
gcloud compute ssh $SHARD_NODE_1_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $NODE_1_ZONE
356+
gcloud compute ssh $SHARD_NODE_2_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $NODE_2_ZONE
357+
done
370358
fi
371359

372360
# If --kill-only, do not proceed any further

deploy_blockchain_genesis_onprem.sh

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
if [[ $# -lt 4 ]] || [[ $# -gt 10 ]]; then
4-
printf "Usage: bash deploy_blockchain_genesis_onprem.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-only|--skip-kill]\n"
4+
printf "Usage: bash deploy_blockchain_genesis_onprem.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <# of Shards> <Parent Node Index Begin> <Parent Node Index End> [--setup] [--keystore|--mnemonic|--private-key] [--keep-code|--no-keep-code] [--keep-data|--no-keep-data] [--full-sync|--fast-sync] [--chown-data|--no-chown-data] [--kill-job|--kill-only]\n"
55
printf "Example: bash deploy_blockchain_genesis_onprem.sh dev 0 -1 4 --keystore --no-keep-code\n"
66
printf "Example: bash deploy_blockchain_genesis_onprem.sh dev 0 0 0 --keystore --keep-code\n"
77
printf "Example: bash deploy_blockchain_genesis_onprem.sh dev 0 -1 -1 --setup --keystore --no-keep-code\n"
@@ -62,17 +62,9 @@ function parse_options() {
6262
CHOWN_DATA_OPTION="$option"
6363
elif [[ $option = '--no-chown-data' ]]; then
6464
CHOWN_DATA_OPTION="$option"
65-
elif [[ $option = '--kill-only' ]]; then
66-
if [[ "$KILL_OPTION" ]]; then
67-
printf "You cannot use both --skip-kill and --kill-only\n"
68-
exit
69-
fi
65+
elif [[ $option = '--kill-job' ]]; then
7066
KILL_OPTION="$option"
71-
elif [[ $option = '--skip-kill' ]]; then
72-
if [[ "$KILL_OPTION" ]]; then
73-
printf "You cannot use both --skip-kill and --kill-only\n"
74-
exit
75-
fi
67+
elif [[ $option = '--kill-only' ]]; then
7668
KILL_OPTION="$option"
7769
else
7870
printf "Invalid options: $option\n"
@@ -87,7 +79,7 @@ KEEP_CODE_OPTION="--keep-code"
8779
KEEP_DATA_OPTION="--keep-data"
8880
SYNC_MODE_OPTION="--fast-sync"
8981
CHOWN_DATA_OPTION="--no-chown-data"
90-
KILL_OPTION=""
82+
KILL_OPTION="--kill-job"
9183

9284
ARG_INDEX=5
9385
while [ $ARG_INDEX -le $# ]; do
@@ -100,6 +92,11 @@ if [[ $SETUP_OPTION = "--setup" ]] && [[ ! $KEEP_CODE_OPTION = "--no-keep-code"
10092
exit
10193
fi
10294

95+
if [[ $PARENT_NODE_INDEX_BEGIN -lt 0 ]]; then
96+
printf "Please use deploy_blockchain_incremental_gcp.sh instead for the tracker job.\n"
97+
exit
98+
fi
99+
103100
printf "SETUP_OPTION=$SETUP_OPTION\n"
104101
printf "ACCOUNT_INJECTION_OPTION=$ACCOUNT_INJECTION_OPTION\n"
105102
printf "KEEP_CODE_OPTION=$KEEP_CODE_OPTION\n"
@@ -218,7 +215,7 @@ function inject_account() {
218215
}
219216

220217
# deploy files
221-
#FILES_FOR_TRACKER="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ logger/ tracker-server/ traffic/ package.json setup_blockchain_ubuntu_onprem.sh start_tracker_genesis_gcp.sh start_tracker_incremental_gcp.sh"
218+
#FILES_FOR_TRACKER="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ logger/ tracker-server/ traffic/ package.json setup_blockchain_ubuntu_onprem.sh start_tracker_genesis_onprem.sh start_tracker_incremental_onprem.sh"
222219
FILES_FOR_NODE="blockchain/ blockchain-configs/ block-pool/ client/ common/ consensus/ db/ event-handler/ json_rpc/ logger/ node/ p2p/ tools/ traffic/ tx-pool/ package.json setup_blockchain_ubuntu_onprem.sh start_node_genesis_onprem.sh start_node_incremental_onprem.sh wait_until_node_sync.sh stop_local_blockchain.sh"
223220

224221
printf "###############################################################################\n"
@@ -300,32 +297,28 @@ if [[ $KEEP_CODE_OPTION = "--no-keep-code" ]]; then
300297
fi
301298
fi
302299

303-
if [[ $KILL_OPTION = "--skip-kill" ]]; then
304-
printf "\n\nSkipping process kill...\n"
305-
else
306-
# kill any processes still alive
307-
printf "\n\nKilling tracker / blockchain node jobs...\n"
300+
# kill any processes still alive
301+
printf "\n\nKilling tracker / blockchain node jobs...\n"
308302

309303
# # Tracker server is killed with PARENT_NODE_INDEX_BEGIN = -1
310304
# if [[ $PARENT_NODE_INDEX_BEGIN = -1 ]]; then
311305
# printf "\n* >> Killing tracker job (${TRACKER_TARGET_ADDR}) *********************************************************\n\n"
312306
# gcloud compute ssh $TRACKER_TARGET_ADDR --command "sudo killall node" --project $PROJECT_ID --zone $TRACKER_ZONE
313307
# fi
314308

315-
begin_index=$PARENT_NODE_INDEX_BEGIN
316-
if [[ $begin_index -lt 0 ]]; then
317-
begin_index=0
318-
fi
319-
if [[ $begin_index -le $PARENT_NODE_INDEX_END ]] && [[ $PARENT_NODE_INDEX_END -ge 0 ]]; then
320-
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
321-
NODE_TARGET_ADDR="${ONPREM_USER}@${NODE_IP_LIST[${node_index}]}"
322-
NODE_LOGIN_PW="${NODE_PW_LIST[${node_index}]}"
309+
begin_index=$PARENT_NODE_INDEX_BEGIN
310+
if [[ $begin_index -lt 0 ]]; then
311+
begin_index=0
312+
fi
313+
if [[ $begin_index -le $PARENT_NODE_INDEX_END ]] && [[ $PARENT_NODE_INDEX_END -ge 0 ]]; then
314+
for node_index in `seq $(( $begin_index )) $(( $PARENT_NODE_INDEX_END ))`; do
315+
NODE_TARGET_ADDR="${ONPREM_USER}@${NODE_IP_LIST[${node_index}]}"
316+
NODE_LOGIN_PW="${NODE_PW_LIST[${node_index}]}"
323317

324-
printf "\n* >> Killing node $node_index job (${NODE_TARGET_ADDR}) *********************************************************\n\n"
318+
printf "\n* >> Killing node $node_index job (${NODE_TARGET_ADDR}) *********************************************************\n\n"
325319

326-
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh ${NODE_TARGET_ADDR} "sudo -S pkill -f client/${SEASON}-ain-blockchain-index.js"
327-
done
328-
fi
320+
echo ${NODE_LOGIN_PW} | sshpass -f <(printf '%s\n' ${NODE_LOGIN_PW}) ssh ${NODE_TARGET_ADDR} "sudo -S pkill -f client/${SEASON}-ain-blockchain-index.js"
321+
done
329322
fi
330323

331324
# If --kill-only, do not proceed any further
@@ -340,7 +333,7 @@ else
340333
GO_TO_PROJECT_ROOT_CMD="cd \$(find /home/${SEASON}/ain-blockchain* -maxdepth 0 -type d)"
341334
fi
342335

343-
#START_TRACKER_CMD_BASE="$GO_TO_PROJECT_ROOT_CMD && . start_tracker_genesis_gcp.sh"
336+
#START_TRACKER_CMD_BASE="$GO_TO_PROJECT_ROOT_CMD && . start_tracker_genesis_onprem.sh"
344337
START_NODE_CMD_BASE="$GO_TO_PROJECT_ROOT_CMD && . start_node_genesis_onprem.sh"
345338
printf "\n"
346339
#printf "START_TRACKER_CMD_BASE=$START_TRACKER_CMD_BASE\n"

0 commit comments

Comments
 (0)