#!/bin/sh
# Nico Schottelius, 2018-02-22
# Copyright ungleich glarus ag

if [ $# -ne 1 ]; then
    echo "$0: to monitor"
    echo "f.i. osd.17 or mon.server4"
    exit 1
fi

to_monitor=$1

set -e

depends="cephrundir"
osd=""
conf="/etc/monit/conf.d/$to_monitor"

if echo $to_monitor | grep ^osd; then
    depends="${depends}, ${to_monitor}-whoami"
    osd="yes"
    osdid=$(echo $to_monitor | cut -d. -f2)
fi


cat > "$conf" <<EOF
# Generated by $0
check process ${to_monitor} with pidfile /var/run/ceph/${to_monitor}.pid
   start program = "/etc/init.d/ceph start ${to_monitor}" with timeout 60 seconds
   stop program  = "/etc/init.d/ceph stop ${to_monitor}"

   group ceph
   depends on $depends
EOF

if [ "$osd" ]; then
    cat >> "$conf" <<EOF
check file ${to_monitor}-whoami with path /var/lib/ceph/osd/ceph-${osdid}/whoami
 if content != "${osdid}" then alert
EOF

fi

/etc/init.d/monit restart
# monit reload
sleep 1
monit start "${to_monitor}"