#!/bin/sh
# pstorage metadata server monitor script
###
# chkconfig: 2345 48 80
# description: pstorage metadata server monitor
###

### BEGIN INIT INFO
# required-start: $network $remote_fs $local_fs
# required-stop:
# Default-Start: 2 3 5
# Default-Stop:
### END INIT INFO

SERVICE="mds"
SERVICE_VERSION=1
SERVICE_DESCR="pstorage metadata server"
CONTROL_DIR="."

# source libraries
source /usr/libexec/pstorage/service-lib.sh

mon_prestart_hook() {
	true
}

mon_check_dirty_hook() {
	if [ -f "$DAEMON_DIR/.monitor.dirty" ]; then
		local id=NA
		[ -f "$DAEMON_DIR/id" ] && id=$(cat "$DAEMON_DIR/id")
		/usr/bin/pstorage -q -c "$CLUSTER_NAME" --timeout=30 put-event -w -s monitor "MDS#$id restarted after abnormal termination (node crash)" &
	fi
}

mon_create_dirty_hook() {
	# use dd for synced touch
	dd of="$DAEMON_DIR/.monitor.dirty" count=0 conv=fsync 2>/dev/null
}

mon_remove_dirty_hook() {
	rm -f "$DAEMON_DIR/.monitor.dirty"
}

handle_service "$@"
