You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
#!/usr/bin/sh |
|
# This script is simple wrapper around garbd, that parses startup configuration. |
|
# Its main purpose is to bridge the differences between initscript and systemd unit file. |
|
|
|
CONFIG_FILE=/etc/sysconfig/garb |
|
|
|
source $CONFIG_FILE |
|
|
|
# Check that node addresses and group name are configured |
|
if [ -z "$GALERA_NODES" ]; then |
|
echo "List of GALERA_NODES is not configured" >&2 |
|
exit 1 |
|
fi |
|
if [ -z "$GALERA_GROUP" ]; then |
|
echo "GALERA_GROUP name is not configured" >&2 |
|
exit 1 |
|
fi |
|
|
|
GALERA_PORT=${GALERA_PORT:-4567} |
|
|
|
# Find a working node |
|
for ADDRESS in ${GALERA_NODES} 0; do |
|
HOST=$(echo $ADDRESS | cut -d \: -f 1) |
|
PORT=$(echo $ADDRESS | cut -s -d \: -f 2) |
|
PORT=${PORT:-$GALERA_PORT} |
|
ncat --send-only --recv-only $HOST $PORT >/dev/null && break |
|
done |
|
if [ ${ADDRESS} == "0" ]; then |
|
echo "None of the nodes in GALERA_NODES is accessible" >&2 |
|
exit 1 |
|
fi |
|
|
|
OPTIONS="-a gcomm://$ADDRESS" |
|
[ -n "$GALERA_GROUP" ] && OPTIONS="$OPTIONS -g $GALERA_GROUP" |
|
[ -n "$GALERA_OPTIONS" ] && OPTIONS="$OPTIONS -o $GALERA_OPTIONS" |
|
[ -n "$LOG_FILE" ] && OPTIONS="$OPTIONS -l $LOG_FILE" |
|
|
|
exec /usr/sbin/garbd $OPTIONS
|
|
|