#!/bin/bash
#
# Check RHCS
#
#!/bin/bash
#
# Check RHCS
#

ERRORS=
STATUS=
MYHOST=`hostname`

check_cluster() {

        CLUSTERINFO=$(cman_tool status | egrep 'Cluster Name:|Node name:|Node ID:' |awk -F: {'print $2'})
        CLUSTERINFO=$(echo "$CLUSTERINFO" | tr '\n' ' ')
        #
        # [0] = 'Cluster Name' [1] = 'Node name' [2] = 'Node ID'
        #
        declare -a CLUARRAY=($CLUSTERINFO)


}

check_rgmanager() {

        rgmstatus=$(clustat | egrep "$MYHOST" | egrep -v 'service:'| egrep 'rgmanager' | wc -l)
        if [ $rgmstatus -eq '1' ]
        then
                STATUS=$(echo -n "$STATUS";echo -n "RGMANAGER:RUNNING;")

        elif [ $rgmstatus -lt '1' ]
        then
                ERRORS=$(echo -n "$ERRORS";echo -n "RGMANAGER:NOT_RUNNING;")
        fi
}


check_services() {

         SERVICELIST=$(clustat | egrep 'service:' | awk -F: {'print $2'} | awk {'print $1'})
         SERVICELIST=$(echo "$SERVICELIST" | tr '\n' ' ')
         declare -a SRVCARRAY=($SERVICELIST)

         # check service is in 'running' state
         for a in "${SRVCARRAY[@]}"
         do
                 svcstate=$(clustat -s $a | egrep 'service:'| awk {'print $NF'})
                 if [[ "$svcstate" =~ "started" ]]
                 then
                        STATUS=$(echo -n "$STATUS"; echo -n "$a:running;")
                 else
                        ERRORS=$(echo -n "$ERRORS"; echo -n "$a $svcstate;")
                 fi
        done

}


check_cluster
check_rgmanager
check_services

if [[ "$ERRORS" ]]
then
        echo "CRITICAL:$ERRORS:$STATUS"
        #echo "1"
        exit 1
else
        echo "OK:$STATUS"
        #echo "0"
        exit 0
fi

