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.
55 lines
1.3 KiB
55 lines
1.3 KiB
#!/bin/bash |
|
set -x -e |
|
|
|
ZOO_CONF=/etc/zookeeper |
|
ZOO_BIN=/usr/share/zookeeper/bin |
|
ZOO_TMP_DIR=$(mktemp -d /tmp/ZOO-TMP-XXXXX) |
|
ZOOKEEPER_STARTED=0 |
|
|
|
mkdir $ZOO_TMP_DIR/bin |
|
|
|
function clean_exit(){ |
|
local error_code="$?" |
|
if [ -d $ZOO_CONF ] && [ $ZOOKEEPER_STARTED -eq 1 ]; then |
|
stop_zookeeper_server |
|
fi |
|
rm -rf ${ZOO_TMP_DIR} |
|
return $error_code |
|
} |
|
|
|
|
|
function start_zookeeper_server(){ |
|
# Copy zookeeper scripts in temporary directory |
|
cp $ZOO_BIN/* $ZOO_TMP_DIR/bin |
|
|
|
# Copy zookeeper conf and set dataDir variable to the zookeeper temporary |
|
# directory |
|
cp $ZOO_CONF/conf/zoo.cfg $ZOO_TMP_DIR |
|
sed -i -r "s@(dataDir *= *).*@\1$ZOO_TMP_DIR@" $ZOO_TMP_DIR/zoo.cfg |
|
|
|
# Replace some variables by the zookeeper temporary directory |
|
sed -i -r "s@(ZOOCFGDIR *= *).*@\1$ZOO_TMP_DIR@" $ZOO_TMP_DIR/bin/zkEnv.sh |
|
|
|
mkdir $ZOO_TMP_DIR/log |
|
sed -i -r "s@(ZOO_LOG_DIR *= *).*@\1$ZOO_TMP_DIR/log@" $ZOO_TMP_DIR/bin/zkEnv.sh |
|
|
|
$ZOO_TMP_DIR/bin/zkServer.sh start |
|
} |
|
|
|
|
|
function stop_zookeeper_server(){ |
|
$ZOO_TMP_DIR/bin/zkServer.sh stop |
|
} |
|
|
|
trap "clean_exit" EXIT |
|
|
|
if [ -d $ZOO_CONF ]; then |
|
start_zookeeper_server |
|
if [ $? -eq 0 ]; then |
|
ZOOKEEPER_STARTED=1 |
|
fi |
|
fi |
|
|
|
export TOOZ_TEST_ZOOKEEPER_URL="kazoo://127.0.0.1:2181?timeout=5" |
|
# Yield execution to venv command |
|
$*
|
|
|