2018-11-11 08:19:04 -08:00
#!/usr/bin/env bash
set -e
2018-11-05 13:21:34 -08:00
cd " $( dirname " $0 " ) " /..
if [ [ -z $BUILDKITE ] ] ; then
echo BUILDKITE not defined
exit 1
fi
2018-11-06 07:24:49 -08:00
if [ [ -z $SOLANA_METRICS_PARTIAL_CONFIG ] ] ; then
2018-11-06 19:23:20 -08:00
echo SOLANA_METRICS_PARTIAL_CONFIG not defined
2018-11-05 13:21:34 -08:00
exit 1
fi
if [ [ -z $TESTNET ] ] ; then
TESTNET = $( buildkite-agent meta-data get "testnet" --default "" )
fi
if [ [ -z $TESTNET_OP ] ] ; then
TESTNET_OP = $( buildkite-agent meta-data get "testnet-operation" --default "" )
fi
if [ [ -z $TESTNET || -z $TESTNET_OP ] ] ; then
(
cat <<EOF
steps:
- block: "Manage Testnet"
fields:
- select : "Network"
key: "testnet"
options:
- label: "testnet"
value: "testnet"
- label: "testnet-perf"
value: "testnet-perf"
2018-11-06 19:23:20 -08:00
- label: "testnet-edge"
value: "testnet-edge"
- label: "testnet-edge-perf"
value: "testnet-edge-perf"
- label: "testnet-beta"
value: "testnet-beta"
- label: "testnet-beta-perf"
value: "testnet-beta-perf"
2019-04-26 09:02:23 -07:00
- label: "testnet-demo"
value: "testnet-demo"
2018-11-05 13:21:34 -08:00
- select : "Operation"
key: "testnet-operation"
default: "sanity-or-restart"
options:
2019-04-26 22:08:58 -07:00
- label: "Create testnet and then start software. If the testnet already exists it will be deleted and re-created"
2019-04-26 09:02:23 -07:00
value: "create-and-start"
2019-04-26 22:08:58 -07:00
- label: "Create testnet, but do not start software. If the testnet already exists it will be deleted and re-created"
2019-04-26 09:02:23 -07:00
value: "create"
2019-04-27 07:41:21 -07:00
- label: "Start network software on an existing testnet. If software is already running it will be restarted"
2018-11-05 13:21:34 -08:00
value: "start"
2019-04-26 09:02:23 -07:00
- label: "Stop network software without deleting testnet nodes"
2018-11-05 13:21:34 -08:00
value: "stop"
2019-04-26 09:02:23 -07:00
- label: "Update the network software. Restart network software on failure"
value: "update-or-restart"
- label: "Sanity check. Restart network software on failure"
value: "sanity-or-restart"
2018-11-05 13:21:34 -08:00
- label: "Sanity check only"
value: "sanity"
2019-04-27 07:41:21 -07:00
- label: "Delete the testnet"
2019-04-26 09:02:23 -07:00
value: "delete"
2019-04-27 07:41:21 -07:00
- label: "Enable/unlock the testnet"
2019-04-26 13:26:05 -07:00
value: "enable"
2019-04-27 07:41:21 -07:00
- label: "Delete and then lock the testnet from further operation until it is re-enabled"
2019-04-26 13:26:05 -07:00
value: "disable"
2018-11-05 13:21:34 -08:00
- command: " ci/ $( basename " $0 " ) "
agents:
- " queue= $BUILDKITE_AGENT_META_DATA_QUEUE "
EOF
) | buildkite-agent pipeline upload
exit 0
fi
2019-04-25 11:44:58 -07:00
ci/channel-info.sh
eval " $( ci/channel-info.sh) "
2019-05-05 09:44:01 -07:00
EC2_ZONES = (
us-west-1a
us-west-2a
us-east-1a
us-east-2a
sa-east-1a
eu-west-1a
eu-west-2a
eu-central-1a
ap-northeast-2a
ap-southeast-2a
ap-south-1a
ca-central-1a
)
2019-04-28 19:50:02 -07:00
# GCE zones with _lots_ of quota
2019-04-27 16:52:03 -07:00
GCE_ZONES = (
2019-04-28 19:50:02 -07:00
us-west1-a
us-central1-a
us-east1-b
europe-west4-a
us-west1-b
us-central1-b
us-east1-c
europe-west4-b
us-west1-c
us-east1-d
europe-west4-c
)
# GCE zones with enough quota for one CPU-only fullnode
GCE_LOW_QUOTA_ZONES = (
asia-east2-a
asia-northeast1-b
asia-northeast2-b
asia-south1-c
asia-southeast1-b
australia-southeast1-b
europe-north1-a
europe-west2-b
europe-west3-c
europe-west6-a
northamerica-northeast1-a
southamerica-east1-b
2019-04-27 16:52:03 -07:00
)
2019-04-25 11:44:58 -07:00
case $TESTNET in
testnet-edge| testnet-edge-perf)
CHANNEL_OR_TAG = edge
CHANNEL_BRANCH = $EDGE_CHANNEL
; ;
testnet-beta| testnet-beta-perf)
CHANNEL_OR_TAG = beta
CHANNEL_BRANCH = $BETA_CHANNEL
; ;
2019-04-26 20:12:27 -07:00
testnet)
2019-04-25 11:44:58 -07:00
CHANNEL_OR_TAG = $STABLE_CHANNEL_LATEST_TAG
CHANNEL_BRANCH = $STABLE_CHANNEL
2019-04-26 23:23:42 -07:00
: " ${ EC2_NODE_COUNT : =10 } "
: " ${ GCE_NODE_COUNT : = } "
2019-04-25 11:44:58 -07:00
; ;
2019-04-26 20:12:27 -07:00
testnet-perf)
CHANNEL_OR_TAG = $STABLE_CHANNEL_LATEST_TAG
CHANNEL_BRANCH = $STABLE_CHANNEL
; ;
2019-04-26 09:02:23 -07:00
testnet-demo)
2019-04-26 23:23:42 -07:00
CHANNEL_OR_TAG = beta
CHANNEL_BRANCH = $BETA_CHANNEL
2019-04-29 10:36:00 -07:00
: " ${ GCE_NODE_COUNT : =150 } "
: " ${ GCE_LOW_QUOTA_NODE_COUNT : =70 } "
2019-04-26 09:02:23 -07:00
; ;
2019-04-25 11:44:58 -07:00
*)
echo " Error: Invalid TESTNET= $TESTNET "
exit 1
; ;
esac
2019-04-26 22:08:58 -07:00
EC2_ZONE_ARGS = ( )
for val in " ${ EC2_ZONES [@] } " ; do
EC2_ZONE_ARGS += ( " -z $val " )
done
GCE_ZONE_ARGS = ( )
for val in " ${ GCE_ZONES [@] } " ; do
GCE_ZONE_ARGS += ( " -z $val " )
done
2019-04-28 19:50:02 -07:00
GCE_LOW_QUOTA_ZONE_ARGS = ( )
for val in " ${ GCE_LOW_QUOTA_ZONES [@] } " ; do
GCE_LOW_QUOTA_ZONE_ARGS += ( " -z $val " )
done
2019-04-26 22:08:58 -07:00
2019-03-26 14:03:03 -07:00
if [ [ -n $TESTNET_DB_HOST ] ] ; then
SOLANA_METRICS_PARTIAL_CONFIG = " host= $TESTNET_DB_HOST , $SOLANA_METRICS_PARTIAL_CONFIG "
fi
2018-11-06 07:24:49 -08:00
export SOLANA_METRICS_CONFIG = " db= $TESTNET , $SOLANA_METRICS_PARTIAL_CONFIG "
echo " SOLANA_METRICS_CONFIG: $SOLANA_METRICS_CONFIG "
2019-01-04 17:36:14 -08:00
source scripts/configure-metrics.sh
2018-11-06 07:24:49 -08:00
2019-04-09 13:00:45 -07:00
if [ [ -n $TESTNET_TAG ] ] ; then
CHANNEL_OR_TAG = $TESTNET_TAG
else
2019-04-26 09:02:23 -07:00
2019-06-06 12:20:47 -07:00
if [ [ $CI_BRANCH != " $CHANNEL_BRANCH " ] ] ; then
2019-04-09 13:00:45 -07:00
(
cat <<EOF
2018-11-05 13:21:34 -08:00
steps:
- trigger: " $BUILDKITE_PIPELINE_SLUG "
async: true
build:
message: " $BUILDKITE_MESSAGE "
branch: " $CHANNEL_BRANCH "
env:
TESTNET: " $TESTNET "
TESTNET_OP: " $TESTNET_OP "
2019-03-26 14:22:08 -07:00
TESTNET_DB_HOST: " $TESTNET_DB_HOST "
2019-04-07 11:21:42 -07:00
EC2_NODE_COUNT: " $EC2_NODE_COUNT "
GCE_NODE_COUNT: " $GCE_NODE_COUNT "
2019-04-28 19:50:02 -07:00
GCE_LOW_QUOTA_NODE_COUNT: " $GCE_LOW_QUOTA_NODE_COUNT "
2018-11-05 13:21:34 -08:00
EOF
2019-04-09 13:00:45 -07:00
) | buildkite-agent pipeline upload
exit 0
fi
2018-11-05 13:21:34 -08:00
fi
sanity( ) {
echo " --- sanity $TESTNET "
case $TESTNET in
2018-11-06 19:23:20 -08:00
testnet-edge)
2018-11-05 13:21:34 -08:00
(
2018-12-22 11:57:47 -08:00
set -x
2019-06-05 15:31:29 -07:00
NO_INSTALL_CHECK = 1 \
2019-04-17 15:19:30 -07:00
NO_LEDGER_VERIFY = 1 \
ci/testnet-sanity.sh edge-testnet-solana-com ec2 us-west-1a
2018-11-06 19:23:20 -08:00
)
; ;
testnet-edge-perf)
(
2018-12-22 11:57:47 -08:00
set -x
REJECT_EXTRA_NODES = 1 \
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
ci/testnet-sanity.sh edge-perf-testnet-solana-com ec2 us-west-2b
2018-11-06 19:23:20 -08:00
)
; ;
testnet-beta)
(
2018-12-22 11:57:47 -08:00
set -x
2019-06-05 15:31:29 -07:00
NO_INSTALL_CHECK = 1 \
2019-04-26 23:23:42 -07:00
NO_LEDGER_VERIFY = 1 \
ci/testnet-sanity.sh beta-testnet-solana-com ec2 us-west-1a
2018-11-06 19:23:20 -08:00
)
; ;
testnet-beta-perf)
(
2018-12-22 11:57:47 -08:00
set -x
REJECT_EXTRA_NODES = 1 \
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
ci/testnet-sanity.sh beta-perf-testnet-solana-com ec2 us-west-2b
2018-11-05 13:21:34 -08:00
)
; ;
testnet)
(
2018-12-22 11:57:47 -08:00
set -x
2019-04-26 23:23:42 -07:00
ok = true
if [ [ -n $EC2_NODE_COUNT ] ] ; then
NO_LEDGER_VERIFY = 1 \
ci/testnet-sanity.sh testnet-solana-com ec2 " ${ EC2_ZONES [0] } " || ok = false
elif [ [ -n $GCE_NODE_COUNT ] ] ; then
NO_LEDGER_VERIFY = 1 \
ci/testnet-sanity.sh testnet-solana-com gce " ${ GCE_ZONES [0] } " || ok = false
else
echo "Error: no EC2 or GCE nodes"
ok = false
fi
$ok
2018-11-05 13:21:34 -08:00
)
; ;
testnet-perf)
(
2018-12-22 11:57:47 -08:00
set -x
REJECT_EXTRA_NODES = 1 \
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
ci/testnet-sanity.sh perf-testnet-solana-com gce us-west1-b
2018-11-07 10:48:21 -08:00
#ci/testnet-sanity.sh perf-testnet-solana-com ec2 us-east-1a
2018-11-05 13:21:34 -08:00
)
; ;
2019-04-26 22:08:58 -07:00
testnet-demo)
(
set -x
ok = true
if [ [ -n $GCE_NODE_COUNT ] ] ; then
NO_LEDGER_VERIFY = 1 \
2019-04-29 21:38:03 -07:00
NO_VALIDATOR_SANITY = 1 \
2019-04-27 21:31:36 -07:00
ci/testnet-sanity.sh demo-testnet-solana-com gce " ${ GCE_ZONES [0] } " -f || ok = false
2019-04-26 22:08:58 -07:00
else
echo "Error: no GCE nodes"
ok = false
fi
$ok
)
; ;
2018-11-05 13:21:34 -08:00
*)
echo " Error: Invalid TESTNET= $TESTNET "
exit 1
; ;
esac
}
2019-04-26 09:02:23 -07:00
deploy( ) {
declare maybeCreate = $1
declare maybeStart = $2
declare maybeStop = $3
declare maybeDelete = $4
2018-11-05 13:21:34 -08:00
2019-04-26 20:12:27 -07:00
echo " --- deploy \" $maybeCreate \" \" $maybeStart \" \" $maybeStop \" \" $maybeDelete \" "
2019-04-26 09:02:23 -07:00
# Create or recreate the nodes
if [ [ -z $maybeCreate ] ] ; then
skipCreate = skip
else
skipCreate = ""
fi
# Start or restart the network software on the nodes
if [ [ -z $maybeStart ] ] ; then
skipStart = skip
2018-11-05 13:21:34 -08:00
else
2019-04-26 09:02:23 -07:00
skipStart = ""
fi
2018-11-05 13:21:34 -08:00
case $TESTNET in
2018-11-06 19:23:20 -08:00
testnet-edge)
2018-11-05 13:21:34 -08:00
(
2018-12-22 11:57:47 -08:00
set -x
2019-04-15 08:14:00 -07:00
ci/testnet-deploy.sh -p edge-testnet-solana-com -C ec2 -z us-west-1a \
-t " $CHANNEL_OR_TAG " -n 3 -c 0 -u -P -a eipalloc-0ccd4f2239886fa94 \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-26 09:02:23 -07:00
${ skipStart : +-s } \
${ maybeStop : +-S } \
2019-06-06 12:49:46 -07:00
${ maybeDelete : +-D }
2018-11-06 19:23:20 -08:00
)
; ;
testnet-edge-perf)
(
2018-12-22 11:57:47 -08:00
set -x
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
2019-04-09 10:39:31 -07:00
RUST_LOG = solana = warn \
2019-04-05 11:10:54 -07:00
ci/testnet-deploy.sh -p edge-perf-testnet-solana-com -C ec2 -z us-west-2b \
2018-12-22 11:57:47 -08:00
-g -t " $CHANNEL_OR_TAG " -c 2 \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-26 09:02:23 -07:00
${ skipStart : +-s } \
${ maybeStop : +-S } \
2019-06-06 12:49:46 -07:00
${ maybeDelete : +-D }
2018-11-06 19:23:20 -08:00
)
; ;
testnet-beta)
(
2018-12-22 11:57:47 -08:00
set -x
2019-04-26 23:23:42 -07:00
NO_VALIDATOR_SANITY = 1 \
ci/testnet-deploy.sh -p beta-testnet-solana-com -C ec2 -z us-west-1a \
-t " $CHANNEL_OR_TAG " -n 3 -c 0 -u -P -a eipalloc-0f286cf8a0771ce35 \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-26 09:02:23 -07:00
${ skipStart : +-s } \
${ maybeStop : +-S } \
2019-06-06 12:49:46 -07:00
${ maybeDelete : +-D }
2018-11-06 19:23:20 -08:00
)
; ;
testnet-beta-perf)
(
2018-12-22 11:57:47 -08:00
set -x
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
2019-04-09 10:39:31 -07:00
RUST_LOG = solana = warn \
2019-04-05 11:10:54 -07:00
ci/testnet-deploy.sh -p beta-perf-testnet-solana-com -C ec2 -z us-west-2b \
2018-12-22 11:57:47 -08:00
-g -t " $CHANNEL_OR_TAG " -c 2 \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-26 09:02:23 -07:00
${ skipStart : +-s } \
${ maybeStop : +-S } \
2019-06-06 12:49:46 -07:00
${ maybeDelete : +-D }
2018-11-05 13:21:34 -08:00
)
; ;
testnet)
(
2018-12-22 11:57:47 -08:00
set -x
2019-04-26 23:23:42 -07:00
if [ [ -n $GCE_NODE_COUNT ] ] || [ [ -n $skipStart ] ] ; then
maybeSkipStart = "skip"
fi
# shellcheck disable=SC2068
ci/testnet-deploy.sh -p testnet-solana-com -C ec2 ${ EC2_ZONE_ARGS [@] } \
2019-05-05 09:44:01 -07:00
-t " $CHANNEL_OR_TAG " -n " $EC2_NODE_COUNT " -c 0 -u -P -f -a eipalloc-0fa502bf95f6f18b2 \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-26 23:23:42 -07:00
${ maybeSkipStart : +-s } \
${ maybeStop : +-S } \
2019-06-12 08:40:56 -07:00
${ maybeDelete : +-D }
2019-04-26 23:23:42 -07:00
if [ [ -n $GCE_NODE_COUNT ] ] ; then
# shellcheck disable=SC2068
ci/testnet-deploy.sh -p testnet-solana-com -C gce ${ GCE_ZONE_ARGS [@] } \
2019-05-05 09:44:01 -07:00
-t " $CHANNEL_OR_TAG " -n " $GCE_NODE_COUNT " -c 0 -P -f \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-26 09:02:23 -07:00
${ skipStart : +-s } \
${ maybeStop : +-S } \
2019-04-26 23:23:42 -07:00
${ maybeDelete : +-D } \
2019-06-12 08:40:56 -07:00
-x
2019-04-26 23:23:42 -07:00
fi
2018-11-05 13:21:34 -08:00
)
; ;
testnet-perf)
(
2018-12-22 11:57:47 -08:00
set -x
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
2019-04-09 10:39:31 -07:00
RUST_LOG = solana = warn \
2019-04-05 11:10:54 -07:00
ci/testnet-deploy.sh -p perf-testnet-solana-com -C gce -z us-west1-b \
2019-04-18 15:12:35 -07:00
-G "--machine-type n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100" \
2018-12-22 11:57:47 -08:00
-t " $CHANNEL_OR_TAG " -c 2 \
-d pd-ssd \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-26 09:02:23 -07:00
${ skipStart : +-s } \
${ maybeStop : +-S } \
2019-06-06 12:49:46 -07:00
${ maybeDelete : +-D }
2018-11-05 13:21:34 -08:00
)
; ;
2019-04-26 09:02:23 -07:00
testnet-demo)
(
set -x
2019-04-28 19:50:02 -07:00
if [ [ -n $GCE_LOW_QUOTA_NODE_COUNT ] ] || [ [ -n $skipStart ] ] ; then
maybeSkipStart = "skip"
fi
# shellcheck disable=SC2068
2019-04-29 21:38:03 -07:00
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
ci/testnet-deploy.sh -p demo-testnet-solana-com -C gce ${ GCE_ZONE_ARGS [@] } \
2019-04-30 09:21:07 -07:00
-t " $CHANNEL_OR_TAG " -n " $GCE_NODE_COUNT " -c 0 -P -u -f -w \
2019-04-29 21:38:03 -07:00
-a demo-testnet-solana-com \
2019-04-28 19:50:02 -07:00
${ skipCreate : +-e } \
2019-04-29 21:38:03 -07:00
${ maybeSkipStart : +-s } \
2019-04-26 22:08:58 -07:00
${ maybeStop : +-S } \
2019-06-06 12:49:46 -07:00
${ maybeDelete : +-D }
2019-04-29 21:38:03 -07:00
if [ [ -n $GCE_LOW_QUOTA_NODE_COUNT ] ] ; then
# shellcheck disable=SC2068
NO_LEDGER_VERIFY = 1 \
NO_VALIDATOR_SANITY = 1 \
ci/testnet-deploy.sh -p demo-testnet-solana-com2 -C gce ${ GCE_LOW_QUOTA_ZONE_ARGS [@] } \
2019-04-30 09:57:03 -07:00
-t " $CHANNEL_OR_TAG " -n " $GCE_LOW_QUOTA_NODE_COUNT " -c 0 -P -f -x -w \
2019-04-29 21:38:03 -07:00
${ skipCreate : +-e } \
${ skipStart : +-s } \
${ maybeStop : +-S } \
2019-06-06 12:49:46 -07:00
${ maybeDelete : +-D }
2019-04-26 22:08:58 -07:00
fi
2019-04-26 09:02:23 -07:00
)
; ;
2018-11-05 13:21:34 -08:00
*)
echo " Error: Invalid TESTNET= $TESTNET "
exit 1
; ;
esac
}
2019-04-26 10:22:23 -07:00
ENABLED_LOCKFILE = " ${ HOME } / ${ TESTNET } .is_enabled "
2019-04-26 09:02:23 -07:00
create-and-start( ) {
deploy create start
}
create( ) {
deploy create
}
start( ) {
2019-04-26 21:36:20 -07:00
deploy "" start
2019-04-26 09:02:23 -07:00
}
2018-11-05 13:21:34 -08:00
stop( ) {
2019-04-26 09:02:23 -07:00
deploy "" ""
}
delete( ) {
deploy "" "" "" delete
2019-04-26 10:22:23 -07:00
}
enable_testnet( ) {
touch " ${ ENABLED_LOCKFILE } "
2019-04-26 20:12:27 -07:00
echo " +++ $TESTNET now enabled "
2019-04-26 10:22:23 -07:00
}
disable_testnet( ) {
rm -f " ${ ENABLED_LOCKFILE } "
2019-04-26 20:12:27 -07:00
echo " +++ $TESTNET now disabled "
2019-04-26 10:22:23 -07:00
}
is_testnet_enabled( ) {
if [ [ ! -f ${ ENABLED_LOCKFILE } ] ] ; then
2019-04-26 21:36:20 -07:00
echo " +++ ${ TESTNET } is currently disabled. Enable ${ TESTNET } by running ci/testnet-manager.sh with \$TESTNET_OP=enable, then re-run with current settings. "
2019-04-26 10:22:23 -07:00
exit 0
fi
2018-11-05 13:21:34 -08:00
}
case $TESTNET_OP in
2019-04-26 10:22:23 -07:00
enable )
enable_testnet
; ;
disable)
disable_testnet
2019-04-26 20:12:27 -07:00
delete
2019-04-26 10:22:23 -07:00
; ;
2019-04-26 09:02:23 -07:00
create-and-start)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2019-04-26 09:02:23 -07:00
create-and-start
; ;
create)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2019-04-26 09:02:23 -07:00
create
2018-11-05 13:21:34 -08:00
; ;
start)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2018-11-05 13:21:34 -08:00
start
; ;
stop)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2018-11-05 13:21:34 -08:00
stop
; ;
2019-04-26 09:02:23 -07:00
sanity)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2019-04-26 09:02:23 -07:00
sanity
; ;
delete)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2019-04-26 09:02:23 -07:00
delete
; ;
2019-01-08 14:29:24 -08:00
update-or-restart)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2019-04-26 09:02:23 -07:00
if start; then
2019-01-08 14:29:24 -08:00
echo Update successful
else
echo "+++ Update failed, restarting the network"
$metricsWriteDatapoint "testnet-manager update-failure=1"
2019-04-26 10:22:23 -07:00
create-and-start
2019-01-08 14:29:24 -08:00
fi
; ;
2018-11-05 13:21:34 -08:00
sanity-or-restart)
2019-04-26 10:22:23 -07:00
is_testnet_enabled
2018-11-05 13:21:34 -08:00
if sanity; then
echo Pass
else
2019-01-08 14:29:24 -08:00
echo "+++ Sanity failed, updating the network"
2019-01-04 17:36:14 -08:00
$metricsWriteDatapoint "testnet-manager sanity-failure=1"
2019-04-15 09:50:52 -07:00
# TODO: Restore attempt to restart the cluster before recreating it
# See https://github.com/solana-labs/solana/issues/3774
if false; then
2019-04-26 09:02:23 -07:00
if start; then
2019-04-15 09:50:52 -07:00
echo Update successful
else
echo "+++ Update failed, restarting the network"
$metricsWriteDatapoint "testnet-manager update-failure=1"
2019-04-26 10:22:23 -07:00
create-and-start
2019-04-15 09:50:52 -07:00
fi
2019-01-08 14:29:24 -08:00
else
2019-04-26 10:22:23 -07:00
create-and-start
2019-01-08 14:29:24 -08:00
fi
2018-11-05 13:21:34 -08:00
fi
; ;
2019-04-26 09:02:23 -07:00
*)
echo " Error: Invalid TESTNET_OP= $TESTNET_OP "
exit 1
; ;
2018-11-05 13:21:34 -08:00
esac
echo --- fin
exit 0