From 862355a09377010fb8f9318d5d6e9794aee83ce3 Mon Sep 17 00:00:00 2001 From: Kaveh Vahedipour Date: Tue, 20 Sep 2016 09:13:42 +0200 Subject: [PATCH] enterprise scripts for agency --- scripts/startStandAloneAgency.sh | 148 ++++++++++++++++++++----------- 1 file changed, 95 insertions(+), 53 deletions(-) diff --git a/scripts/startStandAloneAgency.sh b/scripts/startStandAloneAgency.sh index a4e7a1f5f0..23156a6143 100755 --- a/scripts/startStandAloneAgency.sh +++ b/scripts/startStandAloneAgency.sh @@ -1,89 +1,131 @@ #!/bin/bash +function help() { + echo "USAGE: scripts/startStandAloneAgency.sh [options]" + echo "" + echo "OPTIONS:" + echo " -a/--agency-size Agency size (odd integer default: 3))" + echo " -p/--pool-size Pool size (>= agency size default: [agency size])" + echo " -t/--transport Protocol (ssl|tcp default: tcp)" + echo " -l/--log-level Log level (INFO|DEBUG|TRACE default: INFO)" + echo "" + echo "EXAMPLES:" + echo " scripts/startStandaloneAgency.sh" + echo " scripts/startStandaloneAgency.sh -a 5 -p 10 -t ssl" + echo " scripts/startStandaloneAgency.sh --agency-size 3 --pool-size 5" + +} + NRAGENTS=3 POOLSZ="" TRANSPORT="tcp" LOG_LEVEL="INFO" -while getopts ":a:p:t:l:" opt; do - case $opt in - a) NRAGENTS="$OPTARG" - ;; - p) POOLSZ="$OPTARG" - ;; - t) TRANSPORT="$OPTARG" - ;; - l) LOG_LEVEL="$OPTARG" - ;; - \?) echo "Invalid option -$OPTARG" >&2 - ;; +while [[ ${1} ]]; do + case "${1}" in + -a|--agency-size) + NRAGENTS=${2} + shift + ;; + -p|--pool-size) + POOLSZ=${2} + shift + ;; + -t|--transport) + TRANSPORT=${2} + shift + ;; + -l|--log-level) + LOG_LEVEL=${2} + shift + ;; + -h|--help) + help + exit 1 + ;; + *) + echo "Unknown parameter: ${1}" >&2 + help + exit 1 + ;; esac + + if ! shift; then + echo 'Missing parameter argument.' >&2 + return 1 + fi done if [ "$POOLSZ" == "" ] ; then - POOLSZ=$NRAGENTS + POOLSZ=$NRAGENTS fi if [ "$TRANSPORT" == "ssl" ]; then - SSLKEYFILE="--ssl.keyfile UnitTests/server.pem" + SSLKEYFILE="--ssl.keyfile UnitTests/server.pem" + CURL="curl --insecure -ks https://" else - SSLKEYFILE="" + SSLKEYFILE="" + CURL="curl -s http://" fi -printf "agency-size: %s\n" "$NRAGENTS" -printf "pool-size: %s\n" "$POOLSZ" -printf "transport: %s\n" "$TRANSPORT" -printf "log-level: %s\n" "$LOG_LEVEL" +printf "Starting agency ... \n" +printf " agency-size: %s," "$NRAGENTS" +printf " pool-size: %s," "$POOLSZ" +printf " transport: %s," "$TRANSPORT" +printf " log-level: %s\n" "$LOG_LEVEL" if [ ! -d arangod ] || [ ! -d arangosh ] || [ ! -d UnitTests ] ; then - echo Must be started in the main ArangoDB source directory. - exit 1 + echo Must be started in the main ArangoDB source directory. + exit 1 fi if [[ $(( $NRAGENTS % 2 )) == 0 ]]; then - echo Number of agents must be odd. - exit 1 + echo Number of agents must be odd. + exit 1 fi MINP=0.5 MAXP=2.0 SFRE=2.5 COMP=1000 -BASE=5001 +BASE=5000 rm -rf agency mkdir -p agency -echo -n "Starting agency ... " +PIDS="" for aid in `seq 0 $(( $POOLSZ - 1 ))`; do - port=$(( $BASE + $aid )) - build/bin/arangod \ - -c none \ - --agency.activate true \ - --agency.election-timeout-min $MINP \ - --agency.election-timeout-max $MAXP \ - --agency.endpoint $TRANSPORT://localhost:$BASE \ - --agency.my-address $TRANSPORT://localhost:$port \ - --agency.compaction-step-size $COMP \ - --agency.pool-size $POOLSZ \ - --agency.size $NRAGENTS \ - --agency.supervision true \ - --agency.supervision-frequency $SFRE \ - --agency.wait-for-sync false \ - --database.directory agency/data$port \ - --javascript.app-path ./js/apps \ - --javascript.startup-directory ./js \ - --javascript.v8-contexts 1 \ - --log.file agency/$port.log \ - --log.force-direct true \ - --log.level agency=$LOG_LEVEL \ - --server.authentication false \ - --server.endpoint $TRANSPORT://localhost:$port \ - --server.statistics false \ - $SSLKEYFILE \ - > agency/$port.stdout 2>&1 & + port=$(( $BASE + $aid )) + build/bin/arangod \ + -c none \ + --agency.activate true \ + --agency.election-timeout-min $MINP \ + --agency.election-timeout-max $MAXP \ + --agency.endpoint $TRANSPORT://localhost:$BASE \ + --agency.my-address $TRANSPORT://localhost:$port \ + --agency.compaction-step-size $COMP \ + --agency.pool-size $POOLSZ \ + --agency.size $NRAGENTS \ + --agency.supervision true \ + --agency.supervision-frequency $SFRE \ + --agency.wait-for-sync false \ + --database.directory agency/data$port \ + --javascript.app-path ./js/apps \ + --javascript.startup-directory ./js \ + --javascript.v8-contexts 1 \ + --log.file agency/$port.log \ + --log.force-direct true \ + --log.level agency=$LOG_LEVEL \ + --server.authentication false \ + --server.endpoint $TRANSPORT://localhost:$port \ + --server.statistics false \ + $SSLKEYFILE \ + > agency/$port.stdout 2>&1 & + PIDS+=$! + PIDS+=" " done -echo "done." -echo "Your agents are ready at port $BASE onward" +echo " done. Your agents are ready at port $BASE onward." +#echo "Process ids: $PIDS" +echo "Try ${CURL}localhost:5000/_api/agency/config."