mirror of
https://github.com/samba-team/samba.git
synced 2025-01-27 14:04:05 +03:00
Eventscript functions: new function ctdb_check_counter().
This should eventually be able to replace ctdb_check_counter_limit() and ctdb_check_counter_equal(), although it doesn't issue warnings like the former. It takes 4 optional arguments: 1. _msg - If "error" then over limit causes an error message and and exit 1. Anything else fails silently but the function returns 1. Default is "error". 2. _op - An integer operator supported by test (e.g. -eq, -ge, -gt). Default is -ge. 3. _limit - Limit for the counter to be used in comparison. Default is $service_fail_limit. 4. _service_name - Used to identify the counter. Default is $service_name. For example: ctdb_check_counter error -ge 5 foo will print a message and exit 1 if the counter for foo is >= 5, whereas ctdb_check_counter check -ge 5 foo will just return 1 if the counter for foo is >= 5, and ctdb_counter_check with print a message and exit 1 if the counter for $service_name is >= $service_fail_limit. Signed-off-by: Martin Schwenke <martin@meltin.net> (This used to be ctdb commit 5b01b7233515669e995e037205796e265643b176)
This commit is contained in:
parent
219c6fd55b
commit
2a14f91722
@ -545,6 +545,24 @@ ctdb_check_counter_equal () {
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
ctdb_check_counter () {
|
||||
_msg="${1:-error}" # "error" - anything else is silent on fail
|
||||
_op="${2:--ge}" # an integer operator supported by test
|
||||
_limit="${3:-${service_fail_limit}}"
|
||||
shift 3
|
||||
_ctdb_counter_common "$1"
|
||||
|
||||
# unary counting!
|
||||
_size=$(stat -c "%s" "$_counter_file" 2>/dev/null || echo 0)
|
||||
if [ $_size $_op $_limit ] ; then
|
||||
if [ "$_msg" = "error" ] ; then
|
||||
echo "ERROR: $_limit consecutive failures for $_service_name, marking node unhealthy"
|
||||
exit 1
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
########################################################
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user