1
0
Fork 0

Store parameters of startLocalCluster.sh (#3593)

Store parameters of startLocalCluster.sh

This should help you to bring the cluster up again when you
continue to work after some time without investigating the
port numbers.

Restore parameters if no arguments are given
This commit is contained in:
Jan Christoph Uhde 2017-11-08 11:26:54 +01:00 committed by Max Neunhöffer
parent e13ebbb128
commit 27460a92e1
3 changed files with 78 additions and 24 deletions

View File

@ -47,7 +47,8 @@ JWT_SECRET=""
PORT_OFFSET=0
SRC_DIR="."
while [[ ${1} ]]; do
parse_args(){
while [[ -n "$1" ]]; do
case "${1}" in
-a|--agency-size)
NRAGENTS=${2}
@ -125,3 +126,4 @@ while [[ ${1} ]]; do
return 1
fi
done
}

View File

@ -1,21 +1,37 @@
#!/bin/bash
params=("$@")
. `dirname $0`/cluster-run-common.sh
lib="$(dirname $(readlink -f ${BASH_SOURCE[0]}))/cluster-run-common.sh"
if [[ -f "$lib" ]]; then
. "$lib"
else
echo "could not source $lib"
exit 1
fi
if [[ -f cluster/startup_parameters ]];then
if [[ -z "${params[@]}" ]]; then
string="$(< cluster/startup_parameters)"
params=( $string )
fi
fi
parse_args "${params[@]}"
echo Number of Agents: $NRAGENTS
echo Number of DBServers: $NRDBSERVERS
echo Number of Coordinators: $NRCOORDINATORS
if [ -z "$ONGOING_PORTS" ] ; then
CO_BASE=$(( $PORT_OFFSET + 8530 ))
DB_BASE=$(( $PORT_OFFSET + 8629 ))
AG_BASE=$(( $PORT_OFFSET + 4001 ))
SE_BASE=$(( $PORT_OFFSET + 8729 ))
CO_BASE=$(( PORT_OFFSET + 8530 ))
DB_BASE=$(( PORT_OFFSET + 8629 ))
AG_BASE=$(( PORT_OFFSET + 4001 ))
SE_BASE=$(( PORT_OFFSET + 8729 ))
else
CO_BASE=$(( $PORT_OFFSET + 8530 ))
DB_BASE=$(( $PORT_OFFSET + 8530 + $NRCOORDINATORS ))
AG_BASE=$(( $PORT_OFFSET + 8530 + $NRCOORDINATORS + $NRDBSERVERS ))
SE_BASE=$(( $PORT_OFFSET + 8530 + $NRCOORDINATORS + $NRDBSERVERS + $NRAGENTS ))
CO_BASE=$(( PORT_OFFSET + 8530 ))
DB_BASE=$(( PORT_OFFSET + 8530 + NRCOORDINATORS ))
AG_BASE=$(( PORT_OFFSET + 8530 + NRCOORDINATORS + NRDBSERVERS ))
SE_BASE=$(( PORT_OFFSET + 8530 + NRCOORDINATORS + NRDBSERVERS + NRAGENTS ))
fi
LOCALHOST="[::1]"
@ -72,7 +88,7 @@ testServerDown() {
$CURL GET $PROT://$LOCALHOST:$PORT/_api/version >/dev/null 2>/dev/null
if [ "$?" != "0" ] ; then
pid=$(ps -eaf|grep data$PORT|grep -v grep|awk '{print $2}')
if [ -z $pid ]; then
if [ -z "$pid" ]; then
break
fi
fi

View File

@ -1,6 +1,44 @@
#!/bin/bash
params=("$@")
. `dirname $0`/cluster-run-common.sh
rm -rf cluster
if [ -d cluster-init ];then
echo "== creating cluster directory from existing cluster-init directory"
cp -a cluster-init cluster
else
echo "== creating fresh directory"
mkdir -p cluster || { echo "failed to create cluster directory"; exit 1; }
#if we want to restart we should probably store the parameters line wise
fi
lib="$(dirname $(readlink -f ${BASH_SOURCE[0]}))/cluster-run-common.sh"
if [[ -f "$lib" ]]; then
. "$lib"
else
echo "could not source $lib"
exit 1
fi
if [[ -f cluster/startup_parameters ]];then
string="$(< cluster/startup_parameters)"
if [[ -z "${params[@]}" ]]; then
params=( $string )
else
if ! [[ "$*" == "$string" ]]; then
echo "stored and given params do not match:"
echo "given: ${params[@]}"
echo "stored: $string"
fi
fi
else
#store parmeters
if [[ -n "${params[@]}" ]]; then
echo "${params[@]}" > cluster/startup_parameters
fi
fi
parse_args "${params[@]}"
if [ "$POOLSZ" == "" ] ; then
POOLSZ=$NRAGENTS
@ -13,14 +51,18 @@ else
fi
DEFAULT_REPLICATION=""
if [[ $NRAGENTS -le 0 ]]; then
echo "you need as least one agent currently you have $NRAGENTS"
exit 1
fi
printf "Starting agency ... \n"
printf " # agents: %s," "$NRAGENTS"
printf "== Starting agency ... \n"
printf " # agents: %s," "$NRAGENTS"
printf " # db servers: %s," "$NRDBSERVERS"
printf " # coordinators: %s," "$NRCOORDINATORS"
printf " transport: %s\n" "$TRANSPORT"
if [[ $(( $NRAGENTS % 2 )) == 0 ]]; then
if (( $NRAGENTS % 2 == 0)) ; then
echo "**ERROR: Number of agents must be odd! Bailing out."
exit 1
fi
@ -43,12 +85,6 @@ NATH=$(( $NRDBSERVERS + $NRCOORDINATORS + $NRAGENTS ))
ENDPOINT=[::]
ADDRESS=${ADDRESS:-[::1]}
rm -rf cluster
if [ -d cluster-init ];then
cp -a cluster-init cluster
fi
mkdir -p cluster
if [ -z "$JWT_SECRET" ];then
AUTHENTICATION="--server.authentication false"
AUTHORIZATION_HEADER=""
@ -80,7 +116,7 @@ else
CO_ARANGOD=$ARANGOD
fi
echo Starting agency ...
echo == Starting agency ...
for aid in `seq 0 $(( $NRAGENTS - 1 ))`; do
port=$(( $AG_BASE + $aid ))
AGENCY_ENDPOINTS+="--cluster.agency-endpoint $TRANSPORT://$ADDRESS:$port "
@ -131,7 +167,7 @@ start() {
TYPE=$1
PORT=$2
mkdir cluster/data$PORT cluster/apps$PORT
echo Starting $TYPE on port $PORT
echo == Starting $TYPE on port $PORT
$CMD \
-c none \
--database.directory cluster/data$PORT \
@ -189,7 +225,7 @@ for p in `seq $CO_BASE $PORTTOPCO` ; do
testServer $p
done
echo Done, your cluster is ready at
echo == Done, your cluster is ready at
for p in `seq $CO_BASE $PORTTOPCO` ; do
echo " ${BUILD}/bin/arangosh --server.endpoint $TRANSPORT://[::1]:$p"
done