1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-25 06:04:04 +03:00
Martin Schwenke 4940f191d3 ctdb-scripts: Update eventscripts to use ctdb -X instead of ctdb -Y
Also update associated eventscript unit tests and ctdb stub.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
2014-12-05 21:02:39 +01:00

79 lines
1.8 KiB
Bash
Executable File

#!/bin/sh
# event script to integrate with gpfs cnfs
[ -n "$CTDB_BASE" ] || \
export CTDB_BASE=$(cd -P $(dirname "$0") ; dirname "$PWD")
. $CTDB_BASE/functions
loadconfig
ctdb_setup_service_state_dir "gpfs"
check_if_healthy() {
mkdir -p "$service_state_dir/fs"
[ -f "$service_state_dir/gpfsnoquorum" ] && {
logger No GPFS quorum. Node is UNHEALTHY
$CTDB_BASE/events.d/62.cnfs unhealthy "No GPFS quorum. Nodfe is UNHEALTHY."
exit 0
}
logger All required GPFS resources are available. CNFS part is healthy.
$CTDB_BASE/events.d/62.cnfs healthy
}
case "$1" in
startup)
check_if_healthy
;;
gpfsquorumreached)
rm -f "$service_state_dir/gpfsnoquorum"
logger "GPFS quorum has been reached."
check_if_healthy
;;
gpfsquorumloss)
touch "$service_state_dir/gpfsnoquorum"
logger "GPFS quorum has been lost."
$CTDB_BASE/events.d/62.cnfs unhealthy "GPFS quorum was lost! Marking node as UNHEALTHY."
;;
unhealthy)
# Mark the node as UNHEALTHY which means all public addresses
# will be migrated off the node.
shift
echo "$*" | ctdb_setstatus unhealthy -
# force a monitor event so we pick up immediately that this script
# will now fail and make the node unhealthy.
ctdb eventscript monitor
# Wait until we no longer serve any ip addresses at all
PNN=`ctdb pnn | cut -d: -f2`
while `ctdb -X ip | cut -d'|' -f3 | egrep "^$PNN$" >/dev/null`; do
sleep 1
done
;;
healthy)
# mark the node as healthy
ctdb_setstatus healthy
;;
monitor)
ctdb_checkstatus
exit $?
;;
*)
ctdb_standard_event_handler "$@"
;;
esac
exit 0