The tests can now be run as root. This is most likely required in some cases and it should not break things if they are run as root (e.g. inside a VM with no other users). NPM prevents the use of the root user (due to modules getting root access) and uses an unprivileged user to install the modules. As maxctrl has to generate the version information at install time, running `npm install` as root will fail due to missing privileges to the current working directory. To work around this, an explicit step was added. Also changed the maxadmin checks to maxctrl to remove the dependency on the socket file location being writable by non-root users (/var/run/maxscale/ might not be accessible to all users).
56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# This script is run before each test block. It starts two MaxScales and waits
|
|
# for them to become responsive.
|
|
#
|
|
|
|
maxscaledir=$MAXSCALE_DIR
|
|
|
|
test -z "$MAXSCALE_DIR" && exit 1
|
|
|
|
# Create directories for both MaxScales
|
|
|
|
rm -r $maxscaledir/lib/maxscale
|
|
rm -r $maxscaledir/cache/maxscale
|
|
rm -r $maxscaledir/run/maxscale
|
|
rm -r $maxscaledir/secondary/lib/maxscale
|
|
rm -r $maxscaledir/secondary/cache/maxscale
|
|
rm -r $maxscaledir/secondary/run/maxscale
|
|
test -f /tmp/maxadmin.sock && rm /tmp/maxadmin.sock
|
|
test -f /tmp/maxadmin2.sock && rm /tmp/maxadmin2.sock
|
|
|
|
mkdir -m 0755 -p $maxscaledir/lib/maxscale/maxscale.cnf.d
|
|
mkdir -m 0755 -p $maxscaledir/cache/maxscale
|
|
mkdir -m 0755 -p $maxscaledir/run/maxscale
|
|
mkdir -m 0755 -p $maxscaledir/log/maxscale
|
|
mkdir -m 0755 -p $maxscaledir/secondary/lib/maxscale/maxscale.cnf.d
|
|
mkdir -m 0755 -p $maxscaledir/secondary/cache/maxscale
|
|
mkdir -m 0755 -p $maxscaledir/secondary/run/maxscale
|
|
mkdir -m 0755 -p $maxscaledir/secondary/log/maxscale
|
|
|
|
if [ "`whoami`" == "root" ]
|
|
then
|
|
user_opt="-U root"
|
|
fi
|
|
|
|
# Start MaxScale
|
|
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale.cnf &>> $maxscaledir/maxscale1.output
|
|
|
|
# Wait for the first MaxScale to start
|
|
for ((i=0;i<150;i++))
|
|
do
|
|
$maxscaledir/bin/maxctrl list servers >& /dev/null && break
|
|
sleep 0.1
|
|
done
|
|
|
|
# Start a second maxscale
|
|
$maxscaledir/bin/maxscale $user_opt -f $maxscaledir/maxscale_secondary.cnf &>> $maxscaledir/maxscale2.output
|
|
|
|
# Wait for the second MaxScale to start
|
|
for ((i=0;i<150;i++))
|
|
do
|
|
$maxscaledir/bin/maxctrl --hosts 127.0.0.1:8990 list servers >& /dev/null && break
|
|
sleep 0.1
|
|
done
|