Generalize testnet deployment scripts
This commit is contained in:
@ -22,27 +22,39 @@ if [[ -z $SOLANA_SNAP_CHANNEL ]]; then
|
|||||||
SOLANA_SNAP_CHANNEL=edge
|
SOLANA_SNAP_CHANNEL=edge
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Select default network URL based on SOLANA_SNAP_CHANNEL if SOLANA_NET_URL is
|
||||||
|
# unspecified
|
||||||
|
if [[ -z $SOLANA_NET_URL ]]; then
|
||||||
case $SOLANA_SNAP_CHANNEL in
|
case $SOLANA_SNAP_CHANNEL in
|
||||||
edge)
|
edge)
|
||||||
publicUrl=master.testnet.solana.com
|
SOLANA_NET_URL=master.testnet.solana.com
|
||||||
publicIp=$(dig +short $publicUrl | head -n1)
|
|
||||||
;;
|
;;
|
||||||
beta)
|
beta)
|
||||||
publicUrl=testnet.solana.com
|
SOLANA_NET_URL=testnet.solana.com
|
||||||
publicIp="" # Use default value
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo Error: Unknown SOLANA_SNAP_CHANNEL=$SOLANA_SNAP_CHANNEL
|
echo Error: Unknown SOLANA_SNAP_CHANNEL=$SOLANA_SNAP_CHANNEL
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
resourcePrefix=${publicUrl//./-}
|
echo "+++ Configuration"
|
||||||
vmlist=("$resourcePrefix":us-west1-b) # Leader is hard coded as the first entry
|
publicUrl="$SOLANA_NET_URL"
|
||||||
validatorNamePrefix=$resourcePrefix-validator-
|
if [[ $publicUrl = testnet.solana.com ]]; then
|
||||||
|
publicIp="" # Use default value
|
||||||
|
else
|
||||||
|
publicIp=$(dig +short $publicUrl | head -n1)
|
||||||
|
fi
|
||||||
|
|
||||||
echo "--- Available validators for $publicUrl"
|
echo "Network entrypoint URL: $publicUrl ($publicIp)"
|
||||||
filter="name~^$validatorNamePrefix"
|
echo "Snap channel: $SOLANA_SNAP_CHANNEL"
|
||||||
|
|
||||||
|
leaderName=${publicUrl//./-}
|
||||||
|
vmlist=()
|
||||||
|
|
||||||
|
findVms() {
|
||||||
|
declare filter="$1"
|
||||||
gcloud compute instances list --filter="$filter"
|
gcloud compute instances list --filter="$filter"
|
||||||
while read -r vmName vmZone status; do
|
while read -r vmName vmZone status; do
|
||||||
if [[ $status != RUNNING ]]; then
|
if [[ $status != RUNNING ]]; then
|
||||||
@ -51,6 +63,7 @@ while read -r vmName vmZone status; do
|
|||||||
fi
|
fi
|
||||||
vmlist+=("$vmName:$vmZone")
|
vmlist+=("$vmName:$vmZone")
|
||||||
done < <(gcloud compute instances list --filter="$filter" --format 'value(name,zone,status)')
|
done < <(gcloud compute instances list --filter="$filter" --format 'value(name,zone,status)')
|
||||||
|
}
|
||||||
|
|
||||||
wait_for_node() {
|
wait_for_node() {
|
||||||
declare pid=$1
|
declare pid=$1
|
||||||
@ -64,6 +77,16 @@ wait_for_node() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo "Leader node:"
|
||||||
|
findVms "name=$leaderName"
|
||||||
|
[[ ${#vmlist[@]} = 1 ]] || {
|
||||||
|
echo "Unable to find $leaderName"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Validator nodes:"
|
||||||
|
findVms "name~^$leaderName-validator-"
|
||||||
|
|
||||||
if ! $ROLLING_UPDATE; then
|
if ! $ROLLING_UPDATE; then
|
||||||
count=1
|
count=1
|
||||||
for info in "${vmlist[@]}"; do
|
for info in "${vmlist[@]}"; do
|
||||||
@ -87,7 +110,7 @@ if ! $ROLLING_UPDATE; then
|
|||||||
wait
|
wait
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "--- Refreshing leader for $publicUrl"
|
echo "--- Refreshing leader"
|
||||||
leader=true
|
leader=true
|
||||||
pids=()
|
pids=()
|
||||||
count=1
|
count=1
|
||||||
|
@ -6,19 +6,25 @@
|
|||||||
cd "$(dirname "$0")/.."
|
cd "$(dirname "$0")/.."
|
||||||
source multinode-demo/common.sh
|
source multinode-demo/common.sh
|
||||||
|
|
||||||
TESTNET=$1
|
NET_URL=$1
|
||||||
if [[ -z $TESTNET ]]; then
|
if [[ -z $NET_URL ]]; then
|
||||||
TESTNET=testnet.solana.com
|
NET_URL=testnet.solana.com
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "--- $TESTNET: wallet sanity"
|
EXPECTED_NODE_COUNT=$2
|
||||||
multinode-demo/test/wallet-sanity.sh $TESTNET
|
if [[ -z $EXPECTED_NODE_COUNT ]]; then
|
||||||
|
EXPECTED_NODE_COUNT=50
|
||||||
|
fi
|
||||||
|
|
||||||
echo "--- $TESTNET: node count"
|
|
||||||
if [[ $TESTNET = testnet.solana.com ]]; then
|
echo "--- $NET_URL: wallet sanity"
|
||||||
|
multinode-demo/test/wallet-sanity.sh $NET_URL
|
||||||
|
|
||||||
|
echo "--- $NET_URL: node count"
|
||||||
|
if [[ $NET_URL = testnet.solana.com ]]; then
|
||||||
echo "TODO: Remove this block when a release > 0.7.0 is deployed"
|
echo "TODO: Remove this block when a release > 0.7.0 is deployed"
|
||||||
else
|
else
|
||||||
$solana_client_demo $TESTNET 50 -c # <-- Expect to see at least 50 nodes
|
$solana_client_demo $NET_URL $EXPECTED_NODE_COUNT -c
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
Reference in New Issue
Block a user