Skip to content

Commit 6e6ffdb

Browse files
authored
Merge pull request #1328 from ainblockchain/bugfix/platfowner/bugfix
Improve deploy-related scripts
2 parents c040808 + 8ecd02d commit 6e6ffdb

15 files changed

+158
-81
lines changed

config_client_api_ip_whitelist.sh

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,54 @@
22

33
function usage() {
44
printf "\n"
5-
printf "Usage: bash config_client_api_ip_whitelist.sh [dev|staging|sandbox|exp|spring|summer|mainnet] [get|add|remove] [<IP Address>]\n"
6-
printf "Example: bash config_client_api_ip_whitelist.sh dev get\n"
7-
printf "Example: bash config_client_api_ip_whitelist.sh dev add 32.190.239.181\n"
8-
printf "Example: bash config_client_api_ip_whitelist.sh dev add '*'\n"
9-
printf "Example: bash config_client_api_ip_whitelist.sh dev remove 32.190.239.181\n"
5+
printf "Usage: bash config_client_api_ip_whitelist.sh [dev|staging|sandbox|exp|spring|summer|mainnet] [gcp|onprem] [get|add|remove] [<IP Address>]\n"
6+
printf "Example: bash config_client_api_ip_whitelist.sh staging onprem get\n"
7+
printf "Example: bash config_client_api_ip_whitelist.sh staging onprem add 32.190.239.181\n"
8+
printf "Example: bash config_client_api_ip_whitelist.sh staging onprem add '*'\n"
9+
printf "Example: bash config_client_api_ip_whitelist.sh staging onprem remove 32.190.239.181\n"
1010
printf "\n"
1111
exit
1212
}
1313

14-
if [[ $# -lt 2 ]] || [[ $# -gt 3 ]]; then
14+
if [[ $# -lt 3 ]] || [[ $# -gt 4 ]]; then
1515
usage
1616
fi
1717
printf "\n[[[[[ config_client_api_ip_whitelist.sh ]]]]]\n\n"
1818

1919
if [[ "$1" = 'dev' ]] || [[ "$1" = 'staging' ]] || [[ "$1" = 'sandbox' ]] || [[ "$1" = 'exp' ]] || [[ "$1" = 'spring' ]] || [[ "$1" = 'summer' ]] || [[ "$1" = 'mainnet' ]]; then
2020
SEASON="$1"
2121
else
22-
printf "Invalid <Project/Season> argument: $1\n"
22+
printf "\nInvalid <Season> argument: $1\n"
2323
usage
2424
fi
2525
printf "SEASON=$SEASON\n"
2626

27-
if [[ "$2" = 'get' ]]; then
28-
COMMAND="$2"
29-
IP_ADDR="$3"
27+
if [[ "$2" = 'gcp' ]] || [[ "$2" = 'onprem' ]]; then
28+
BLOCKCHAIN_HOSTING="$2"
29+
else
30+
printf "\nInvalid <Blockchain Hosting> argument: $2\n"
31+
usage
32+
fi
33+
printf "BLOCKCHAIN_HOSTING=$BLOCKCHAIN_HOSTING\n"
34+
35+
COMMAND="$3"
36+
IP_ADDR=""
37+
if [[ $# = 4 ]]; then
38+
IP_ADDR="$4"
39+
fi
40+
41+
if [[ "$COMMAND" = 'get' ]]; then
3042
if [[ ! "$IP_ADDR" = "" ]]; then
31-
printf "\nInvalid argument: $IP_ADDR\n"
43+
printf "\nInvalid <IP Address> argument: $IP_ADDR\n"
3244
usage
3345
fi
34-
elif [[ "$2" = 'add' ]] || [[ "$2" = 'remove' ]]; then
35-
COMMAND="$2"
36-
IP_ADDR="$3"
46+
elif [[ "$COMMAND" = 'add' ]] || [[ "$COMMAND" = 'remove' ]]; then
3747
if [[ "$IP_ADDR" = "" ]]; then
3848
printf "\nInvalid <IP Address> argument: $IP_ADDR\n"
3949
usage
4050
fi
4151
else
42-
printf "Invalid <Command> argument: $2\n"
52+
printf "\nInvalid <Command> argument: $COMMAND\n"
4353
usage
4454
fi
4555
printf "COMMAND=$COMMAND\n"
@@ -65,7 +75,7 @@ else
6575
fi
6676

6777
# Read node urls
68-
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/$SEASON.txt
78+
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/${SEASON}_${BLOCKCHAIN_HOSTING}.txt
6979

7080
# Get keystore password
7181
printf "Enter keystore password: "
@@ -101,16 +111,17 @@ function config_node() {
101111
printf "\n\n<<< Configuring ip whitelist of node $node_index ($node_url) >>>\n\n"
102112

103113
KEYSTORE_FILE_PATH="$KEYSTORE_DIR/keystore_node_$node_index.json"
104-
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID keystore $KEYSTORE_FILE_PATH"
105-
if [[ ! $COMMAND = "get" ]]; then
106-
CONFIG_NODE_CMD="$CONFIG_NODE_CMD '$IP_ADDR'"
114+
if [[ $COMMAND = "get" ]]; then
115+
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID keystore $KEYSTORE_FILE_PATH"
116+
else
117+
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID $IP_ADDR keystore $KEYSTORE_FILE_PATH"
107118
fi
108119

109120
printf "\n"
110121
printf "CONFIG_NODE_CMD=$CONFIG_NODE_CMD\n\n"
111122
eval "echo $KEYSTORE_PW | $CONFIG_NODE_CMD"
112123
}
113124

114-
for j in `seq $(( 0 )) $(( 9 ))`; do
125+
for j in `seq $(( 0 )) $(( 4 ))`; do
115126
config_node "$j"
116127
done

config_node_param.sh

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,51 @@
22

33
function usage() {
44
printf "\n"
5-
printf "Usage: bash config_node_param.sh [dev|staging|sandbox|exp|spring|summer|mainnet] [get|add|remove] <Param> [<Value>]\n"
6-
printf "Example: bash config_node_param.sh dev get DEV_CLIENT_API_IP_WHITELIST\n"
7-
printf "Example: bash config_node_param.sh dev add DEV_CLIENT_API_IP_WHITELIST 32.190.239.181\n"
8-
printf "Example: bash config_node_param.sh dev add DEV_CLIENT_API_IP_WHITELIST '*'\n"
9-
printf "Example: bash config_node_param.sh dev remove DEV_CLIENT_API_IP_WHITELIST 32.190.239.181\n"
10-
printf "Example: bash config_node_param.sh dev set DEV_CLIENT_API_IP_WHITELIST '*'\n"
11-
printf "Example: bash config_node_param.sh dev get CORS_WHITELIST\n"
5+
printf "Usage: bash config_node_param.sh [dev|staging|sandbox|exp|spring|summer|mainnet] [gcp|onprem] [get|add|remove] <Param> [<Value>]\n"
6+
printf "Example: bash config_node_param.sh staging onprem get DEV_CLIENT_API_IP_WHITELIST\n"
7+
printf "Example: bash config_node_param.sh staging onprem add DEV_CLIENT_API_IP_WHITELIST 32.190.239.181\n"
8+
printf "Example: bash config_node_param.sh staging onprem add DEV_CLIENT_API_IP_WHITELIST '*'\n"
9+
printf "Example: bash config_node_param.sh staging onprem remove DEV_CLIENT_API_IP_WHITELIST 32.190.239.181\n"
10+
printf "Example: bash config_node_param.sh staging onprem set DEV_CLIENT_API_IP_WHITELIST '*'\n"
11+
printf "Example: bash config_node_param.sh staging onprem get CORS_WHITELIST\n"
1212
printf "\n"
1313
exit
1414
}
1515

16-
if [[ $# -lt 3 ]] || [[ $# -gt 4 ]]; then
16+
if [[ $# -lt 4 ]] || [[ $# -gt 5 ]]; then
1717
usage
1818
fi
1919
printf "\n[[[[[ config_node_param.sh ]]]]]\n\n"
2020

2121
if [[ "$1" = 'dev' ]] || [[ "$1" = 'staging' ]] || [[ "$1" = 'sandbox' ]] || [[ "$1" = 'exp' ]] || [[ "$1" = 'spring' ]] || [[ "$1" = 'summer' ]] || [[ "$1" = 'mainnet' ]]; then
2222
SEASON="$1"
2323
else
24-
printf "Invalid <Project/Season> argument: $1\n"
24+
printf "\nInvalid <Season> argument: $1\n"
2525
usage
2626
fi
2727
printf "SEASON=$SEASON\n"
2828

29-
if [[ "$2" = 'get' ]]; then
30-
COMMAND="$2"
31-
PARAM="$3"
32-
VALUE="$4"
29+
if [[ "$2" = 'gcp' ]] || [[ "$2" = 'onprem' ]]; then
30+
BLOCKCHAIN_HOSTING="$2"
31+
else
32+
printf "\nInvalid <Blockchain Hosting> argument: $2\n"
33+
usage
34+
fi
35+
printf "BLOCKCHAIN_HOSTING=$BLOCKCHAIN_HOSTING\n"
36+
37+
COMMAND="$3"
38+
PARAM="$4"
39+
VALUE=""
40+
if [[ $# = 5 ]]; then
41+
VALUE="$5"
42+
fi
43+
44+
if [[ "$COMMAND" = 'get' ]]; then
3345
if [[ ! "$VALUE" = "" ]]; then
34-
printf "\nInvalid argument: $VALUE\n"
46+
printf "\nInvalid <Value> argument: $VALUE\n"
3547
usage
3648
fi
37-
elif [[ "$2" = 'add' ]] || [[ "$2" = 'remove' ]] || [[ "$2" = 'set' ]]; then
38-
COMMAND="$2"
39-
PARAM="$3"
40-
VALUE="$4"
49+
elif [[ "$COMMAND" = 'add' ]] || [[ "$COMMAND" = 'remove' ]] || [[ "$COMMAND" = 'set' ]]; then
4150
if [[ "$PARAM" = "" ]]; then
4251
printf "\nInvalid <Param> argument: $PARAM\n"
4352
usage
@@ -47,7 +56,7 @@ elif [[ "$2" = 'add' ]] || [[ "$2" = 'remove' ]] || [[ "$2" = 'set' ]]; then
4756
usage
4857
fi
4958
else
50-
printf "Invalid <Command> argument: $2\n"
59+
printf "\nInvalid <Command> argument: $COMMAND\n"
5160
usage
5261
fi
5362
printf "COMMAND=$COMMAND\n"
@@ -74,7 +83,7 @@ else
7483
fi
7584

7685
# Read node urls
77-
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/$SEASON.txt
86+
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/${SEASON}_${BLOCKCHAIN_HOSTING}.txt
7887

7988
# Get keystore password
8089
printf "Enter keystore password: "
@@ -109,19 +118,20 @@ function config_node() {
109118
local node_index="$1"
110119
local node_url=${NODE_URL_LIST[${node_index}]}
111120

112-
printf "\n\n<<< Configuring ip whitelist of node $node_index ($node_url) >>>\n\n"
121+
printf "\n\n<<< Configuring node params of node $node_index ($node_url) >>>\n\n"
113122

114123
KEYSTORE_FILE_PATH="$KEYSTORE_DIR/keystore_node_$node_index.json"
115-
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID keystore $KEYSTORE_FILE_PATH $PARAM"
116-
if [[ ! $COMMAND = "get" ]]; then
117-
CONFIG_NODE_CMD="$CONFIG_NODE_CMD '$VALUE'"
124+
if [[ $COMMAND = "get" ]]; then
125+
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID $PARAM $VALUE keystore $KEYSTORE_FILE_PATH"
126+
else
127+
CONFIG_NODE_CMD="node tools/api-access/$COMMAND_NODE_JS_FILE $node_url $CHAIN_ID $PARAM $VALUE keystore $KEYSTORE_FILE_PATH"
118128
fi
119129

120130
printf "\n"
121131
printf "CONFIG_NODE_CMD=$CONFIG_NODE_CMD\n\n"
122132
eval "echo $KEYSTORE_PW | $CONFIG_NODE_CMD"
123133
}
124134

125-
for j in `seq $(( 0 )) $(( 9 ))`; do
135+
for j in `seq $(( 0 )) $(( 4 ))`; do
126136
config_node "$j"
127137
done

copy_blockchain_data_gcp.sh

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
#!/bin/bash
22

33
function usage() {
4-
printf "Usage: bash copy_blockchain_data_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <Node Index> [download|upload]\n"
4+
printf "Usage: bash copy_blockchain_data_gcp.sh [dev|staging|sandbox|exp|spring|summer|mainnet] <Node Index> [download|upload] [<Old Port Number> <New Port Number>]\n"
55
printf "Example: bash copy_blockchain_data_gcp.sh spring 0 download\n"
6-
printf "Example: bash copy_blockchain_data_gcp.sh spring 1 upload\n"
6+
printf "Example: bash copy_blockchain_data_gcp.sh spring 1 upload 8079 8080\n"
77
printf "\n"
88
exit
99
}
1010

11-
if [[ $# -lt 3 ]] || [[ $# -gt 3 ]]; then
11+
if [[ $# != 3 ]] && [[ $# != 5 ]]; then
1212
usage
1313
fi
1414

@@ -22,7 +22,7 @@ if [[ "$1" = 'dev' ]] || [[ "$1" = 'staging' ]] || [[ "$1" = 'sandbox' ]] || [[
2222
PROJECT_ID="testnet-$1-ground"
2323
fi
2424
else
25-
printf "Invalid <Project/Season> argument: $1\n"
25+
printf "Invalid <Season> argument: $1\n"
2626
exit
2727
fi
2828
printf "\n"
@@ -56,6 +56,28 @@ else
5656
fi
5757
printf "COMMAND=$COMMAND\n"
5858

59+
if [[ "$COMMAND" = 'download' ]]; then
60+
if [[ $# != 3 ]]; then
61+
printf "\n"
62+
printf "<Old Port Number> and <New Port Number> can be used only with 'upload' command.\n"
63+
printf "\n"
64+
usage
65+
fi
66+
OLD_PORT=""
67+
NEW_PORT=""
68+
else
69+
if [[ $# != 5 ]]; then
70+
printf "\n"
71+
printf "<Old Port Number> and <New Port Number> should be specified with 'upload' command.\n"
72+
printf "\n"
73+
usage
74+
fi
75+
OLD_PORT="$4"
76+
NEW_PORT="$5"
77+
fi
78+
printf "OLD_PORT=$OLD_PORT\n"
79+
printf "NEW_PORT=$NEW_PORT\n"
80+
5981
# Get confirmation.
6082
if [[ "$SEASON" = "mainnet" ]]; then
6183
printf "\n"
@@ -151,7 +173,13 @@ function upload_data() {
151173
printf "TGZ_CMD=$TGZ_CMD\n\n"
152174
eval $TGZ_CMD
153175

154-
# 3. Clean up tgz file for node
176+
# 3. Change port number directory
177+
printf "\n\n<<< Changing port number directory for node $node_index >>>\n\n"
178+
MV_CMD="gcloud compute ssh $node_target_addr --command 'mv /home/ain_blockchain_data/chains/${OLD_PORT} /home/ain_blockchain_data/chains/${NEW_PORT}; mv /home/ain_blockchain_data/snapshots/${OLD_PORT} /home/ain_blockchain_data/snapshots/${NEW_PORT}' --project $PROJECT_ID --zone $node_zone"
179+
printf "MV_CMD=$MV_CMD\n\n"
180+
eval $MV_CMD
181+
182+
# 4. Clean up tgz file for node
155183
printf "\n\n<<< Cleaning up tgz file for node $node_index >>>\n\n"
156184
CLEANUP_CMD="gcloud compute ssh $node_target_addr --command 'rm ~/ain_blockchain_data.tar.gz' --project $PROJECT_ID --zone $node_zone"
157185
printf "CLEANUP_CMD=$CLEANUP_CMD\n\n"

copy_blockchain_data_onprem.sh

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
#!/bin/bash
22

33
function usage() {
4-
printf "Usage: bash copy_blockchain_data_onprem.sh [staging|spring|mainnet] <Node Index> [download|upload]\n"
4+
printf "Usage: bash copy_blockchain_data_onprem.sh [staging|spring|mainnet] <Node Index> [download|upload] [<Old Port Number> <New Port Number>]\n"
55
printf "Example: bash copy_blockchain_data_onprem.sh staging 0 download\n"
6-
printf "Example: bash copy_blockchain_data_onprem.sh staging 1 upload\n"
6+
printf "Example: bash copy_blockchain_data_onprem.sh staging 1 upload 8080 8079\n"
77
printf "\n"
88
exit
99
}
1010

11-
if [[ $# -lt 3 ]] || [[ $# -gt 3 ]]; then
11+
if [[ $# != 3 ]] && [[ $# != 5 ]]; then
1212
usage
1313
fi
1414

1515
if [[ "$1" = 'staging' ]] || [[ "$1" = 'spring' ]] || [[ "$1" = 'mainnet' ]]; then
1616
SEASON="$1"
1717
else
18-
printf "Invalid <Project/Season> argument: $1\n"
18+
printf "Invalid <Season> argument: $1\n"
1919
exit
2020
fi
2121
printf "\n"
@@ -48,6 +48,28 @@ else
4848
fi
4949
printf "COMMAND=$COMMAND\n"
5050

51+
if [[ "$COMMAND" = 'download' ]]; then
52+
if [[ $# != 3 ]]; then
53+
printf "\n"
54+
printf "<Old Port Number> and <New Port Number> can be used only with 'upload' command.\n"
55+
printf "\n"
56+
usage
57+
fi
58+
OLD_PORT=""
59+
NEW_PORT=""
60+
else
61+
if [[ $# != 5 ]]; then
62+
printf "\n"
63+
printf "<Old Port Number> and <New Port Number> should be specified with 'upload' command.\n"
64+
printf "\n"
65+
usage
66+
fi
67+
OLD_PORT="$4"
68+
NEW_PORT="$5"
69+
fi
70+
printf "OLD_PORT=$OLD_PORT\n"
71+
printf "NEW_PORT=$NEW_PORT\n"
72+
5173
# Get confirmation.
5274
if [[ "$SEASON" = "mainnet" ]]; then
5375
printf "\n"
@@ -120,7 +142,13 @@ function upload_data() {
120142
printf "TGZ_CMD=$TGZ_CMD\n\n"
121143
eval "echo ${node_login_pw} | sshpass -f <(printf '%s\n' ${node_login_pw}) ${TGZ_CMD}"
122144

123-
# 3. Clean up tgz file for node
145+
# 3. Change port number directory
146+
printf "\n\n<<< Changing port number directory for node $node_index >>>\n\n"
147+
MV_CMD="ssh $node_target_addr 'mv /home/${SEASON}/ain_blockchain_data/chains/${OLD_PORT} /home/${SEASON}/ain_blockchain_data/chains/${NEW_PORT}; mv /home/${SEASON}/ain_blockchain_data/snapshots/${OLD_PORT} /home/${SEASON}/ain_blockchain_data/snapshots/${NEW_PORT}'"
148+
printf "MV_CMD=$MV_CMD\n\n"
149+
eval "sshpass -f <(printf '%s\n' ${node_login_pw}) ${MV_CMD}"
150+
151+
# 4. Clean up tgz file for node
124152
printf "\n\n<<< Cleaning up tgz file for node $node_index >>>\n\n"
125153
CLEANUP_CMD="ssh $node_target_addr 'rm ~/ain_blockchain_data.tar.gz'"
126154
printf "CLEANUP_CMD=$CLEANUP_CMD\n\n"

deploy_blockchain_genesis_gcp.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ if [[ "$1" = 'dev' ]] || [[ "$1" = 'staging' ]] || [[ "$1" = 'sandbox' ]] || [[
2323
PROJECT_ID="testnet-$1-ground"
2424
fi
2525
else
26-
printf "Invalid project/season argument: $1\n"
26+
printf "Invalid <Season> argument: $1\n"
2727
exit
2828
fi
2929
printf "SEASON=$SEASON\n"
@@ -162,7 +162,7 @@ fi
162162

163163
if [[ ! $KILL_OPTION = '--kill-only' ]]; then
164164
# Read node urls
165-
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/$SEASON.txt
165+
IFS=$'\n' read -d '' -r -a NODE_URL_LIST < ./ip_addresses/${SEASON}_gcp.txt
166166
if [[ "$ACCOUNT_INJECTION_OPTION" = "--keystore" ]]; then
167167
# Get keystore password
168168
printf "Enter keystore password: "

deploy_blockchain_genesis_onprem.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ printf "\n[[[[[ deploy_blockchain_genesis_onprem.sh ]]]]]\n\n"
1616
if [[ "$1" = 'staging' ]] || [[ "$1" = 'spring' ]] || [[ "$1" = 'mainnet' ]]; then
1717
SEASON="$1"
1818
else
19-
printf "Invalid project/season argument: $1\n"
19+
printf "Invalid <Season> argument: $1\n"
2020
exit
2121
fi
2222
printf "SEASON=$SEASON\n"

0 commit comments

Comments
 (0)