mirror of
https://github.com/samba-team/samba.git
synced 2025-01-25 06:04:04 +03:00
4940f191d3
Also update associated eventscript unit tests and ctdb stub. Signed-off-by: Martin Schwenke <martin@meltin.net> Reviewed-by: Amitay Isaacs <amitay@gmail.com>
79 lines
1.8 KiB
Bash
Executable File
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
|
|
|