]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-tests: Improve test quality
authorMartin Schwenke <martin@meltin.net>
Thu, 5 Mar 2020 09:42:01 +0000 (20:42 +1100)
committerAmitay Isaacs <amitay@samba.org>
Wed, 22 Jul 2020 02:42:38 +0000 (02:42 +0000)
Select test node with IPs instead of using a fixed node.  Remove
unnecessary code, use more modern commands, code
improvements (shellcheck).

Signed-off-by: Martin Schwenke <martin@meltin.net>
ctdb/tests/INTEGRATION/failover/pubips.040.NoIPTakeover.sh

index 058d7febf5f628d40f253a43a53979ce209b6948..e99a265e19874e41771acd7385d728ae58f4da42 100755 (executable)
@@ -8,19 +8,19 @@ set -e
 
 ctdb_test_init
 
-try_command_on_node 0 "$CTDB listnodes | wc -l"
-num_nodes="$out"
+ctdb_get_all_pnns
+# out is set above
+# shellcheck disable=SC2154
+num_nodes=$(echo "$out" | wc -l | tr -d '[:space:]')
 echo "There are $num_nodes nodes..."
 
-if [ $num_nodes -lt 2 ] ; then
+if [ "$num_nodes" -lt 2 ] ; then
     echo "Less than 2 nodes!"
     exit 1
 fi
 
+select_test_node_and_ips
 
-echo "Wait until the ips are reallocated"
-sleep_for 30
-try_command_on_node 0 "$CTDB ipreallocate"
 
 # sets: num
 count_ips_on_node ()
@@ -41,33 +41,31 @@ count_ips_on_node ()
        echo "Number of addresses on node ${node}: ${num}"
 }
 
-count_ips_on_node 1
+
+# test_node is set by select_test_node_and_ips() above
+# shellcheck disable=SC2154
+count_ips_on_node "$test_node"
 
 echo "Turning on NoIPTakeover on all nodes"
-try_command_on_node all "$CTDB setvar NoIPTakeover 1"
-try_command_on_node 1 "$CTDB ipreallocate"
+ctdb_onnode all "setvar NoIPTakeover 1"
+ctdb_onnode "$test_node" ipreallocate
 
-echo Disable node 1
-try_command_on_node 1 "$CTDB disable"
-try_command_on_node 1 "$CTDB ipreallocate"
+echo "Disable node ${test_node}"
+ctdb_onnode "$test_node" disable
 
-count_ips_on_node 1
+count_ips_on_node "$test_node"
 if [ "$num" != "0" ] ; then
        test_fail "BAD: node 1 still hosts IP addresses"
 fi
 
 
 echo "Enable node 1 again"
-try_command_on_node 1 "$CTDB enable"
-sleep_for 30
-try_command_on_node 1 "$CTDB ipreallocate"
-try_command_on_node 1 "$CTDB ipreallocate"
+ctdb_onnode "$test_node" enable
 
-count_ips_on_node 1
+count_ips_on_node "$test_node"
 if [ "$num" != "0" ] ; then
        test_fail "BAD: node 1 took over IP addresses"
 fi
 
 
-echo "OK. ip addresses were not taken over"
-exit 0
+echo "OK: IP addresses were not taken over"