ctdb-tests: Drop passing of test arguments to ctdb_test_init()
[vlendec/samba-autobuild/.git] / ctdb / tests / simple / 18_ctdb_reloadips.sh
1 #!/bin/bash
2
3 test_info()
4 {
5     cat <<EOF
6 Verify that IPs can be rearrranged using 'ctdb reloadips'.
7
8 Various sub-tests that remove addresses from the public_addresses file
9 on a node or delete the entire contents of the public_addresses file.
10
11 Prerequisites:
12
13 * An active CTDB cluster with at least 2 active nodes.
14
15 Expected results:
16
17 * When addresses are deconfigured "ctdb ip" no longer reports them and
18   when added they are seen again.
19 EOF
20 }
21
22 . "${TEST_SCRIPTS_DIR}/integration.bash"
23
24 ctdb_test_init
25
26 set -e
27
28 cluster_is_healthy
29
30 select_test_node_and_ips
31
32 echo "Emptying public addresses file on $test_node"
33
34 try_command_on_node $test_node $CTDB_TEST_WRAPPER ctdb_base_show
35 addresses="${out}/public_addresses"
36 echo "Public addresses file on node $test_node is \"$addresses\""
37 backup="${addresses}.$$"
38
39 restore_public_addresses ()
40 {
41     try_command_on_node $test_node "mv $backup $addresses >/dev/null 2>&1 || true"
42 }
43 ctdb_test_exit_hook_add restore_public_addresses
44
45 try_command_on_node $test_node "mv $addresses $backup && touch $addresses"
46
47 try_command_on_node any $CTDB reloadips all
48
49 echo "Getting list of public IPs on node $test_node"
50 try_command_on_node $test_node "$CTDB ip | tail -n +2"
51
52 if [ -n "$out" ] ; then
53     cat <<EOF
54 BAD: node $test_node still has ips:
55 $out
56 EOF
57     exit 1
58 fi
59
60 echo "GOOD: no IPs left on node $test_node"
61
62 try_command_on_node any $CTDB sync
63
64 echo "Restoring addresses"
65 restore_public_addresses
66
67 try_command_on_node any $CTDB reloadips all
68
69 echo "Getting list of public IPs on node $test_node"
70 try_command_on_node $test_node "$CTDB ip | tail -n +2"
71
72 if [ -z "$out" ] ; then
73     echo "BAD: node $test_node has no ips"
74     exit 1
75 fi
76
77 cat <<EOF
78 GOOD: node $test_node has these addresses:
79 $out
80 EOF
81
82 try_command_on_node any $CTDB sync
83
84 echo "Removing IP $test_ip from node $test_node"
85
86 try_command_on_node $test_node "mv $addresses $backup && grep -v '^${test_ip}/' $backup >$addresses"
87
88 try_command_on_node any $CTDB reloadips all
89
90 try_command_on_node $test_node $CTDB ip
91
92 if grep "^${test_ip} " <<<"$out" ; then
93     cat <<EOF
94 BAD: node $test_node can still host IP $test_ip:
95 $out
96 EOF
97     exit 1
98 fi
99
100 cat <<EOF
101 GOOD: node $test_node is no longer hosting IP $test_ip:
102 $out
103 EOF