Skip to content

Commit a90ec52

Browse files
authored
Feature/activefailover docker (#243)
* Add activefailover docker mode * Fix typo * Fix typo * Fix typo * Add SERVER_FULL_VERSION export
1 parent 95a5568 commit a90ec52

File tree

3 files changed

+95
-54
lines changed

3 files changed

+95
-54
lines changed

Diff for: jenkins/helper/adjust_port.inc

+16-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
1-
if [[ -v ARANGO_MODE && $ARANGO_MODE == "cluster" ]]
2-
then
3-
ports=(`./oskar/jenkins/helper/port.sh --cluster`)
4-
export ARANGO_PORTS="${ports[1]} ${ports[5]} ${ports[9]}"
5-
else
6-
ports=(`./oskar/jenkins/helper/port.sh`)
7-
export ARANGO_PORTS="${ports[1]}"
8-
fi
1+
test ! -v ARANGO_MODE && ARANGO_MODE="singleserver"
2+
3+
case "$ARANGO_MODE" in
4+
"cluster")
5+
ports=(`./oskar/jenkins/helper/port.sh --cluster`)
6+
export ARANGO_PORTS="${ports[1]} ${ports[5]} ${ports[9]}"
7+
;;
8+
"activefailover")
9+
ports=(`./oskar/jenkins/helper/port.sh --activefailover`)
10+
export ARANGO_PORTS="${ports[1]} ${ports[4]} ${ports[7]}"
11+
;;
12+
"singleserver")
13+
ports=(`./oskar/jenkins/helper/port.sh --singleserver`)
14+
export ARANGO_PORTS="${ports[1]}"
15+
;;
16+
esac
917

1018
trap "$(trap -p | grep EXIT | sed "s/.*-- '\(.*\)'.EXIT/\1;/g")./oskar/jenkins/helper/port.sh --clean ${ports[*]}" EXIT
1119
echo "Using ports ${ports[*]}"

Diff for: jenkins/helper/port.sh

+65-33
Original file line numberDiff line numberDiff line change
@@ -24,39 +24,71 @@ INCR=1
2424

2525
find $PORTDIR -type f -cmin +$TIMEOUT -exec rm "{}" ";"
2626

27-
if test "$1" == "--cluster" ; then
28-
shift
29-
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
30-
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports &&\
31-
date > $PORTDIR/`expr $port + 2` && echo "$PORTDIR/`expr $port + 2`" >> ./ports &&\
32-
date > $PORTDIR/`expr $port + 3` && echo "$PORTDIR/`expr $port + 3`" >> ./ports &&\
33-
date > $PORTDIR/`expr $port + 10` && echo "$PORTDIR/`expr $port + 10`" >> ./ports &&\
34-
date > $PORTDIR/`expr $port + 11` && echo "$PORTDIR/`expr $port + 11`" >> ./ports &&\
35-
date > $PORTDIR/`expr $port + 12` && echo "$PORTDIR/`expr $port + 12`" >> ./ports &&\
36-
date > $PORTDIR/`expr $port + 13` && echo "$PORTDIR/`expr $port + 13`" >> ./ports &&\
37-
date > $PORTDIR/`expr $port + 20` && echo "$PORTDIR/`expr $port + 20`" >> ./ports &&\
38-
date > $PORTDIR/`expr $port + 21` && echo "$PORTDIR/`expr $port + 21`" >> ./ports &&\
39-
date > $PORTDIR/`expr $port + 22` && echo "$PORTDIR/`expr $port + 22`" >> ./ports &&\
40-
date > $PORTDIR/`expr $port + 23` && echo "$PORTDIR/`expr $port + 23`" >> ./ports) 2> /dev/null)
41-
do
42-
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports
43-
rm -f ./ports
44-
port=`expr $port + $INCR`
45-
done
27+
rm -f ./ports
4628

47-
echo -n "$port `expr $port + 1` `expr $port + 2` `expr $port + 3`\
48-
`expr $port + 10` `expr $port + 11` `expr $port + 12` `expr $port + 13`\
49-
`expr $port + 20` `expr $port + 21` `expr $port + 22` `expr $port + 23`"
50-
else
51-
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
52-
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports) 2> /dev/null)
53-
do
54-
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports
55-
rm -f ./ports
56-
port=`expr $port + $INCR`
57-
done
29+
case "$1" in
5830

59-
echo -n "$port `expr $port + 1`"
60-
fi
31+
"--cluster")
32+
shift
33+
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
34+
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports &&\
35+
date > $PORTDIR/`expr $port + 2` && echo "$PORTDIR/`expr $port + 2`" >> ./ports &&\
36+
date > $PORTDIR/`expr $port + 3` && echo "$PORTDIR/`expr $port + 3`" >> ./ports &&\
37+
date > $PORTDIR/`expr $port + 10` && echo "$PORTDIR/`expr $port + 10`" >> ./ports &&\
38+
date > $PORTDIR/`expr $port + 11` && echo "$PORTDIR/`expr $port + 11`" >> ./ports &&\
39+
date > $PORTDIR/`expr $port + 12` && echo "$PORTDIR/`expr $port + 12`" >> ./ports &&\
40+
date > $PORTDIR/`expr $port + 13` && echo "$PORTDIR/`expr $port + 13`" >> ./ports &&\
41+
date > $PORTDIR/`expr $port + 20` && echo "$PORTDIR/`expr $port + 20`" >> ./ports &&\
42+
date > $PORTDIR/`expr $port + 21` && echo "$PORTDIR/`expr $port + 21`" >> ./ports &&\
43+
date > $PORTDIR/`expr $port + 22` && echo "$PORTDIR/`expr $port + 22`" >> ./ports &&\
44+
date > $PORTDIR/`expr $port + 23` && echo "$PORTDIR/`expr $port + 23`" >> ./ports) 2> /dev/null)
45+
do
46+
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports
47+
rm -f ./ports
48+
port=`expr $port + $INCR`
49+
done
6150
62-
rm -f ./ports
51+
echo -n "$port `expr $port + 1` `expr $port + 2` `expr $port + 3`\
52+
`expr $port + 10` `expr $port + 11` `expr $port + 12` `expr $port + 13`\
53+
`expr $port + 20` `expr $port + 21` `expr $port + 22` `expr $port + 23`"
54+
;;
55+
56+
"--activefailover")
57+
shift
58+
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
59+
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports &&\
60+
date > $PORTDIR/`expr $port + 2` && echo "$PORTDIR/`expr $port + 2`" >> ./ports &&\
61+
date > $PORTDIR/`expr $port + 10` && echo "$PORTDIR/`expr $port + 10`" >> ./ports &&\
62+
date > $PORTDIR/`expr $port + 11` && echo "$PORTDIR/`expr $port + 11`" >> ./ports &&\
63+
date > $PORTDIR/`expr $port + 12` && echo "$PORTDIR/`expr $port + 12`" >> ./ports &&\
64+
date > $PORTDIR/`expr $port + 20` && echo "$PORTDIR/`expr $port + 20`" >> ./ports &&\
65+
date > $PORTDIR/`expr $port + 21` && echo "$PORTDIR/`expr $port + 21`" >> ./ports &&\
66+
date > $PORTDIR/`expr $port + 22` && echo "$PORTDIR/`expr $port + 22`" >> ./ports) 2> /dev/null)
67+
do
68+
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports
69+
rm -f ./ports
70+
port=`expr $port + $INCR`
71+
done
72+
73+
echo -n "$port `expr $port + 1` `expr $port + 2`\
74+
`expr $port + 10` `expr $port + 11` `expr $port + 12`\
75+
`expr $port + 20` `expr $port + 21` `expr $port + 22`"
76+
;;
77+
78+
"--singleserver")
79+
while ! ((set -o noclobber ; date > $PORTDIR/$port && echo "$PORTDIR/$port" > ./ports &&\
80+
date > $PORTDIR/`expr $port + 1` && echo "$PORTDIR/`expr $port + 1`" >> ./ports) 2> /dev/null)
81+
do
82+
[ -e "./ports" ] && while read -r line; do rm -f "$line"; done < ./ports
83+
rm -f ./ports
84+
port=`expr $port + $INCR`
85+
done
86+
87+
echo -n "$port `expr $port + 1`"
88+
;;
89+
90+
*)
91+
echo "Unknown mode as the first parameter! Should be: --single, --activefailover or --cluster."
92+
exit 1
93+
;;
94+
esac

Diff for: jenkins/helper/server.inc

+14-13
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,7 @@ docker kill $ARANGO_DOCKER_NAME > /dev/null 2>&1 || true
4545
docker rm -fv $ARANGO_DOCKER_NAME > /dev/null 2>&1 || true
4646
docker pull $DOCKER_IMAGE
4747
docker run --rm --cap-add SYS_NICE $DOCKER_IMAGE arangosh --version | tee ./${ARANGO_DOCKER_NAME}.txt
48-
export SERVER_VERSION=$(cat ./${ARANGO_DOCKER_NAME}.txt | grep -oP '^server-version: \K[0-9].[0-9]')
49-
50-
#if [ 1 -eq $(echo "${SERVER_VERSION} >= 3.7" | bc) ]
51-
#then
52-
# echo 'Add --all.server.allow-deprecated-storage-engine because $MAJOR_VERSION.$MINOR_VERSION >= 3.7'
53-
# MMFILES_DEPRECATED_OPTION="--all.server.allow-deprecated-storage-engine=true"
54-
#fi
48+
export SERVER_FULL_VERSION=$(cat ./${ARANGO_DOCKER_NAME}.txt | grep -oP '^server-version: \K.*$')
5549

5650
OUTDIR="`pwd`/output"
5751
rm -rf $OUTDIR
@@ -72,14 +66,21 @@ if [ "$ARANGO_AUTH" == "auth" ]; then
7266
STARTER_AUTH="--auth.jwt-secret /jwtsecret/geheim"
7367
fi
7468

75-
if [ "$ARANGO_MODE" == "cluster" ]; then
76-
STARTER_MODE="--starter.mode cluster --starter.port ${ARANGO_STARTER_PORT}"
77-
elif [ "$ARANGO_MODE" == "singleserver" ]; then
78-
STARTER_MODE="--starter.mode single --starter.port ${ARANGO_STARTER_PORT}"
79-
else
69+
case "$ARANGO_MODE" in
70+
"cluster")
71+
STARTER_MODE="--starter.mode cluster --starter.port ${ARANGO_STARTER_PORT}"
72+
;;
73+
"activefailover")
74+
STARTER_MODE="--starter.mode activefailover --starter.port ${ARANGO_STARTER_PORT}"
75+
;;
76+
"singleserver")
77+
STARTER_MODE="--starter.mode single --starter.port ${ARANGO_STARTER_PORT}"
78+
;;
79+
*)
8080
echo "unknown mode $ARANGO_MODE"
8181
exit 1
82-
fi
82+
;;
83+
esac
8384

8485
cat > $OUTDIR/starter.sh << 'EOF'
8586
#!/bin/sh

0 commit comments

Comments
 (0)