blob: 845b4b50fdb564158c59a9558a9bb52babfac6b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
#!/usr/bin/env bash
# Verify that an interface is deleted when all IPs on it are deleted
. "${TEST_SCRIPTS_DIR}/integration.bash"
set -e
ctdb_test_init
select_test_node_and_ips
# Find interfaces on test node
try_command_on_node $test_node "$CTDB ifaces -X"
ifaces=$(awk -F'|' 'NR > 1 { print $2 }' "$outfile")
echo "Node ${test_node} has interfaces: ${ifaces}"
# Delete all IPs on each interface... deleting IPs from one interface
# can cause other interfaces to disappear, so we need to be careful...
for i in $ifaces ; do
try_command_on_node $test_node "$CTDB ifaces -X"
info=$(awk -F'|' -v iface="$i" '$2 == iface { print $0 }' "$outfile")
if [ -z "$info" ] ; then
echo "Interface ${i} missing... assuming already deleted!"
continue
fi
echo "Deleting IPs on interface ${i}, with this information:"
echo " $info"
try_command_on_node $test_node "$CTDB ip -v -X | tail -n +2"
awk -F'|' -v i="$i" \
'$6 == i { print $2 }' "$outfile" |
while read ip ; do
echo " $ip"
try_command_on_node $test_node "$CTDB delip $ip"
done
try_command_on_node $test_node "$CTDB ipreallocate"
try_command_on_node $test_node "$CTDB ifaces -X"
info=$(awk -F'|' -v iface="$i" '$2 == iface { print $0 }' "$outfile")
if [ -z "$info" ] ; then
echo "GOOD: Interface ${i} has been garbage collected"
else
echo "BAD: Interface ${i} still exists"
echo "$out"
exit 1
fi
done
|