#!/bin/sh

# SUBMIT_CHECK_RESULT
# Written by Ethan Galstad (egalstad@nagios.org)
# Last Modified: 02-18-2002
#
# This script will write a command to the Nagios command
# file to cause Nagios to process a passive service check
# result. Note: This script is intended to be run on the
# same host that is running Nagios. If you want to
# submit passive check results from a remote machine, look
# at using the nsca addon.
#
# Arguments:
# $1 = host_name (Short name of host that the service is
# associated with)
# $2 = svc_description (Description of the service)
# $3 = return_code (An integer that determines the state
# of the service check, 0=OK, 1=WARNING, 2=CRITICAL,
# 3=UNKNOWN).
# $4 = plugin_output (A text string that should be used
# as the plugin output for the service check)
#
 
echocmd="/bin/echo"
 
CommandFile="/var/spool/nagios/cmd/nagios.cmd"
 
# get the current date/time in seconds since UNIX epoch
datetime=`date +%s`

name=$4
name=${name#*name: }
name=${name%%','*}
name=`echo -n $name`
 
state=$4
state=${state#*state:}
state=${state%%','*}
state=`echo -n $state`

status="UNKNOWN"

# check state
case "$state" in
        normal| on | off)
            #echo "OK"
            status=0
            ;;

        warning | 'low warning' | 'high warning')
            #echo "WARNING"
            status=1
            ;;

        alarm | 'low alarm' | 'high alarm')
            #echo "CRITICAL"
            status=2
            ;;

        *)
            #echo "UNKNOWN"
            status=3

esac

# check test and reset to OK
if [[ $4 =~ "test message" ]] ; then 
    #echo "OK"
    status=0 
fi

# create the command line to add to the command file
cmdline="[$datetime] PROCESS_SERVICE_CHECK_RESULT;$1;$name;$status;$4" #$2;$3;$4"
 


# append the command to the end of the command file
`$echocmd $cmdline >> $CommandFile`
