1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-23 06:50:21 +03:00

scripts: Use $CTDB_SCRIPT_DEBUGLEVEL instead of something more complex

The current logic is horrible and creates an unnecessary file.  Let's
make the script debug level independent of ctddb's debug level.

* Have debug() use $CTDB_SCRIPT_DEBUGLEVEL directly

* Remove ctdb_set_current_debuglevel()

* Remove the "getdebug" command from ctdb stub in eventscript unit
  tests

* Update relevant eventscript unit tests to use
  $CTDB_SCRIPT_DEBUGLEVEL

Signed-off-by: Martin Schwenke <martin@meltin.net>

(This used to be ctdb commit 85efa446c7f5c5af1c3a960001aa777775ae562f)
This commit is contained in:
Martin Schwenke 2013-04-17 13:12:32 +10:00
parent f54dab03d5
commit 100a0eed90
6 changed files with 6 additions and 64 deletions

View File

@ -88,11 +88,6 @@ case "$1" in
update_config_from_tdb &
;;
monitor)
# Inherit the debug level from ctdbd on each monitor run. If
# there's a more urgent need then override CTDB_CURRENT_DEBUGLEVEL
# using a file in $CTDB_BASE/rc.local.d/.
ctdb_set_current_debuglevel create
# We should never enter swap, so SwapTotal == SwapFree.
[ "$CTDB_CHECK_SWAP_IS_NOT_USED" = "yes" ] && {
if [ -n "`grep '^Swap\(Total\|Free\)' /proc/meminfo | uniq -s 10 -u`" ]; then

View File

@ -42,39 +42,12 @@ loadconfig () {
}
##############################################################
# make sure CTDB_CURRENT_DEBUGLEVEL is set to the desired debug level
# (integer)
#
# If it is already set then do nothing, since it might have been set
# via a file in rc.local.d/. If it is not set then set it by sourcing
# /var/ctdb/eventscript_debuglevel. If this file does not exist then
# create it using output from "ctdb getdebug". If the option 1st arg
# is "create" then don't source an existing file but create a new one
# instead - this is useful for creating the file just once in each
# event run in 00.ctdb. If there's a problem getting the debug level
# from ctdb then it is silently set to 0 - no use spamming logs if our
# debug code is broken...
ctdb_set_current_debuglevel ()
{
[ -z "$CTDB_CURRENT_DEBUGLEVEL" ] || return 0
_f="$CTDB_VARDIR/eventscript_debuglevel"
if [ "$1" = "create" -o ! -r "$_f" ] ; then
_t=$(ctdb getdebug -Y 2>/dev/null)
# get last field of output
_t="${_t%:}"
_t="${_t##*:}"
# Defaults to 0
echo "export CTDB_CURRENT_DEBUGLEVEL=\"${_t:-0}\"" >"$_f"
fi
. "$_f"
}
# CTDB_SCRIPT_DEBUGLEVEL can be overwritten by setting it in a
# configuration file.
debug ()
{
if [ $CTDB_CURRENT_DEBUGLEVEL -ge 4 ] ; then
if [ ${CTDB_SCRIPT_DEBUGLEVEL:-2} -ge 4 ] ; then
# If there are arguments then echo them. Otherwise expect to
# use stdin, which allows us to pass lots of debug using a
# here document.
@ -1513,11 +1486,6 @@ update_tickles ()
done
}
# We'll call this here to ensure $CTDB_CURRENT_DEBUGLEVEL is set.
# This gives us a chance to override the debug level using a file in
# $CTDB_BASE/rc.local.d/.
ctdb_set_current_debuglevel
script_name="${0##*/}" # basename
service_name="$script_name" # default is just the script name
service_fail_limit=1

View File

@ -4,8 +4,7 @@
define_test "port 139 down, default tcp checker, debug"
# This has to go before the setup, otherwise it will write a dud file.
export CTDB_DEBUGLEVEL=4
export CTDB_SCRIPT_DEBUGLEVEL=4
setup_samba
tcp_port_down 139

View File

@ -6,8 +6,7 @@ define_test "port 139 down, ctdb checktcpport not implemented, debug"
ctdb_not_implemented "checktcpport"
# This has to go before the setup, otherwise it will write a dud file.
export CTDB_DEBUGLEVEL=4
export CTDB_SCRIPT_DEBUGLEVEL=4
setup_nmap_output_filter

View File

@ -7,8 +7,7 @@ define_test "port 139 down, ctdb checktcpport/nmap not implemented, debug"
ctdb_not_implemented "checktcpport"
export FAKE_NMAP_NOT_FOUND="yes"
# This has to go before the setup, otherwise it will write a dud file.
export CTDB_DEBUGLEVEL=4
export CTDB_SCRIPT_DEBUGLEVEL=4
setup_nmap_output_filter

View File

@ -274,24 +274,6 @@ case "$1" in
exit 1
esac
;;
getdebug)
case "${CTDB_DEBUGLEVEL:-0}" in
-3) _t="EMERG" ;;
-2) _t="ALERT" ;;
-1) _t="CRIT" ;;
0) _t="ERR" ;;
1) _t="WARNING" ;;
2) _t="NOTICE" ;;
3) _t="INFO" ;;
4) _t="DEBUG" ;;
*) _t="ERR" ;;
esac
cat<<EOF
:Name:Level:
:${_t}:${CTDB_DEBUGLEVEL}:
EOF
;;
checktcpport)
for _i in $FAKE_TCP_LISTEN ; do
if [ "$2" = "${_i##*:}" ] ; then