ctdb-tests: Create 91.lvs.sh
[samba.git] / ctdb / tests / eventscripts / scripts / 91.lvs.sh
1 setup_ctdb_lvs ()
2 {
3         lvs_state_dir="${EVENTSCRIPTS_TESTS_VAR_DIR}/lvs"
4         mkdir -p "$lvs_state_dir"
5
6         export FAKE_LVS_STATE_DIR="${lvs_state_dir}/state"
7         mkdir "$FAKE_LVS_STATE_DIR"
8
9         lvs_header=$(ipvsadm -l -n)
10
11         export CTDB_LVS_PUBLIC_IP="$1"
12         export CTDB_LVS_PUBLIC_IFACE="$2"
13
14         [ -n "$CTDB_LVS_PUBLIC_IP" ] || return 0
15         [ -n "$CTDB_LVS_PUBLIC_IFACE" ] || return 0
16
17         export CTDB_LVS_NODES=$(mktemp --tmpdir="$lvs_state_dir")
18         export FAKE_CTDB_LVS_MASTER=""
19
20         # Read from stdin
21         _pnn=0
22         while read _ip _opts ; do
23                 case "$_opts" in
24                 master)
25                         FAKE_CTDB_LVS_MASTER="$_pnn"
26                         echo "$_ip"
27                         ;;
28                 slave-only)
29                         printf "%s\tslave-only\n" "$_ip"
30                         ;;
31                 *)
32                         echo "$_ip"
33                         ;;
34                 esac
35                 _pnn=$(($_pnn + 1))
36         done >"$CTDB_LVS_NODES"
37 }
38
39 check_ipvsadm ()
40 {
41         if [ "$1" = "NULL" ] ; then
42                 required_result 0 <<EOF
43 $lvs_header
44 EOF
45         else
46                 required_result 0 <<EOF
47 $lvs_header
48 $(cat)
49 EOF
50         fi
51
52         simple_test_command ipvsadm -l -n
53 }
54
55 check_lvs_ip ()
56 {
57         _scope="$1"
58
59         if [ "$_scope" = "NULL" ] ; then
60                 required_result 0 <<EOF
61 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
62     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
63 EOF
64         else
65                 required_result 0 <<EOF
66 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
67     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
68     inet ${CTDB_LVS_PUBLIC_IP}/32 scope ${_scope} lo
69        valid_lft forever preferred_lft forever
70 EOF
71         fi
72
73         simple_test_command ip addr show dev lo
74 }