summaryrefslogtreecommitdiff
path: root/ctdb/tests/simple/15_ctdb_statisticsreset.sh
blob: 1dce7b39965500a514c83c55b151eba487735671 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/bash

test_info()
{
    cat <<EOF
Verify that 'ctdb statisticsreset' works as expected.

This is pretty superficial.  It just checks that a few particular
items reduce.

Prerequisites:

* An active CTDB cluster with at least 2 active nodes.

Steps:

1. Verify that the status on all of the ctdb nodes is 'OK'.
2. Run 'ctdb statisticsreset' on all nodes and verify that it executes
   successfully.

Expected results:

* 'ctdb statisticsreset' executes successfully.
EOF
}

. "${TEST_SCRIPTS_DIR}/integration.bash"

ctdb_test_init

set -e

cluster_is_healthy

try_command_on_node 0 "$CTDB listnodes | wc -l"
num_nodes="$out"

get_stat ()
{
	local label="$1"

	cat "$outfile" |
	sed -rn -e "s@^[[:space:]]+${label}[[:space:]]+([[:digit:]])@\1@p" |
	head -1
}

check_reduced ()
{
    local label="$1"
    local before="$2"
    local after="$3"

    if [ $after -lt $before ] ; then
	echo "GOOD: ${label} reduced from ${before} to ${after}"
    else
	die "BAD: ${label} did not reduce from ${before} to ${after}"
    fi
}

n=0
while [ $n -lt $num_nodes ] ; do
    echo "Getting initial statistics for node ${n}..."

    try_command_on_node -v $n $CTDB statistics

    before_req_control=$(get_stat "req_control")
    before_reply_control=$(get_stat "reply_control")
    before_node_packets_recv=$(get_stat "node_packets_recv")

    try_command_on_node $n $CTDB statisticsreset

    try_command_on_node -v $n $CTDB statistics

    after_req_control=$(get_stat "req_control")
    after_reply_control=$(get_stat "reply_control")
    after_node_packets_recv=$(get_stat "node_packets_recv")

    check_reduced "req_control" "$before_req_control" "$after_req_control"
    check_reduced "reply_control" "$before_reply_control" "$after_reply_control"
    check_reduced "node_packets_recv" "$before_node_packets_recv" "$after_node_packets_recv"

    n=$(($n + 1))
done