ipvsadm/tests/run_tests.sh
2023-07-10 09:21:46 +02:00

162 lines
3.0 KiB
Bash
Executable File

#!/bin/sh
set -o pipefail
echo -ne "[debug]: getting IP address ... "
IP_ADDR=$( ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1 )
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
echo -ne "[debug]: adding virtual service ${IP_ADDR}:80 ... "
ipvsadm -A -t ${IP_ADDR}:80 -s rr
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
for i in {1..3}; do
echo -ne "[debug]: adding real server 192.168.100.10${i}:80 ... "
ipvsadm -a -t ${IP_ADDR}:80 -r 192.168.100.10${i}:80 -w 1 -m
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
done
echo -ne "[debug]: checking ipvs is populated ... "
ipvsadm -l -n | grep -q -E "(${IP_ADDR}|192.168.100.10)"
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
for mod in ip_vs_rr ip_vs; do
echo -ne "[debug]: checking for module ${mod} ... "
grep -q "^${mod} " /proc/modules
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
done
echo -ne "[debug]: saving ipvsadm configuration ... "
ipvsadm-save -n > /etc/sysconfig/ipvsadm
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
echo -ne "[debug]: clearing ipvsadm configuration ... "
ipvsadm -C
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
echo -ne "[debug]: checking ipvs is clear ... "
ipvsadm -l -n | grep -E "(${IP_ADDR}|192.168.100.10)"
if [ $? -eq 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
for mod in ip_vs_rr ip_vs; do
echo -ne "[debug]: removing module ${mod} ... "
modprobe -r ${mod}
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
done
for mod in ip_vs_rr ip_vs; do
echo -ne "[debug]: checking for no ${mod} module ... "
grep -q "^${mod} " /proc/modules
if [ $? -eq 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
done
echo -ne "[debug]: restoring ipvsadm configuration ... "
ipvsadm-restore < /etc/sysconfig/ipvsadm
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
echo -ne "[debug]: checking ipvs is populated ... "
ipvsadm -l -n | grep -q -E "(${IP_ADDR}|192.168.100.10)"
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
for mod in ip_vs_rr ip_vs; do
echo -ne "[debug]: checking for module ${mod} ... "
grep -q "^${mod} " /proc/modules
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
done
for i in {3..1}; do
echo -ne "[debug]: removing real server 192.168.100.10${i}:80 ... "
ipvsadm -d -t ${IP_ADDR}:80 -r 192.168.100.10${i}:80
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
done
echo -ne "[debug]: removing virtual service ${IP_ADDR}:80 ... "
ipvsadm -D -t ${IP_ADDR}:80
if [ $? -ne 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
echo -ne "[debug]: checking ipvs is clear ... "
ipvsadm -l -n | grep -E "(${IP_ADDR}|192.168.100.10)"
if [ $? -eq 0 ] ; then
echo "FAIL"
exit 1
else
echo "OK"
fi
exit 0