#!/bin/sh
# Plugin to check Ironport Appliances
# Desarrollado por Claudio Saavedra (20080120)
# Translated to english by Steven Geerts (20080316)
# Added various extra checks by Steven Geerts (20080830)
# Added feature key checks by Paul Robinson paul@syntonic.com.au (20090711)
# Added extended feature keys check by Martin Eppler meppler@iplab-emea.de (20110331)
# Added feature keys check for IronPort M-Series Martin Eppler meppler@iplab-emea.de (20110405)

# input parameters
HOSTNAME=$1
USER=$2
PASSWORD=$3
ARGS=$4
PAR_WARN=$5
PAR_CRIT=$6


STATUSFILE=/tmp/status.`echo $RANDOM$RANDOM|cut -c1-4`

# Nagios return codes
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4

PROGNAME=`basename $0`

print_usage() {
  echo ""
  echo "Usage: $PROGNAME <hostname> <user> <password> <parameter> <warning_nro> <critical_nro>"
  echo ""
  echo "Notes:"
  echo " hostname  - Can be a hostname or IP address"
  echo " parameter - Can be one of the following:"
  echo "     (status based) status, cpu, ram, msgxhour, conn_in, conn_out, queue, workqueue,"
  echo "                    msgs_in_quarantine, disk_util, disk_usage, resourceconservation,"
  echo "		    release and oldmessage"
  echo "     (feature keys) of_license, sophos_license, ipspam_license, cm_license,"
  echo "	            mcafee_license, bv_license, encryption_license, receiving_license,"
  echo "	            dlp_license, multiscan_license, imageanalysis_license, "
  echo "	      	    emailtracking_license (post 7.2), emailreporting_license (post 7.2),"
  echo "		    configmanager_license, spamquarantine_license, webreporting_license, "
  echo "		    tracking_license (pre 7.2) and reporting_license (pre 7.2)"
        echo ""
        echo "parameters for STATUS and RELEASE are ignored but must be provided. The results for STATUS can be OK or critical, RELEASE always returns OK."
        echo "parameters for RESOURCECONSERVATION should be 1-60 (throttled) or 999 (listener suspended)."
	echo "parameters for *_license should reverse warning and critical values (since less days remaining is actually critical but script requires warning to be less than critical)."
}
# XML Parameter info:
# <system status="online" /> DONE
# <gauge name="ram_utilization" current="7" /> DONE
# <gauge name="total_utilization" current="1" /> DONE
# <gauge name="cpu_utilization" current="0" />
# <gauge name="av_utilization" current="0" /> 
# <gauge name="case_utilization" current="0" /> 
# <gauge name="bm_utilization" current="0" /> 
# <gauge name="disk_utilization" current="1" /> DONE
# <gauge name="resource_conservation" current="0" /> DONE
# <gauge name="log_used" current="24" /> 
# <gauge name="log_available" current="123G" /> 
# <gauge name="conn_in" current="5" /> DONE
# <gauge name="conn_out" current="1" /> DONE
# <gauge name="active_recips" current="70" /> 
# <gauge name="unattempted_recips" current="64" /> DONE 
# <gauge name="attempted_recips" current="6" /> DONE
# <gauge name="msgs_in_work_queue" current="0" /> DONE
# <gauge name="dests_in_memory" current="86" /> 
# <gauge name="kbytes_used" current="3458" />  DONE
# <gauge name="kbytes_free" current="71299710" /> DONE
# <gauge name="msgs_in_quarantine" current="24" /> DONE
# <gauge name="kbytes_in_quarantine" current="1616" /> 
# <gauge name="reporting_utilization" current="0" /> 
# <gauge name="quarantine_utilization" current="0" /> 

while test -n "$1"; do
        case "$1" in
                --help)
                        print_usage
                        exit $STATE_OK
                        ;;
                -h)
                        print_usage
                        exit $STATE_OK
                        ;;
        esac
        shift
done

# Check arguments for validity
if [ -z ${HOSTNAME} ]; then
        echo "Please specify the hostname!"
        print_usage
        exitstatus=$STATE_UNKNOWN
        exit $exitstatus
fi

if [ $PAR_WARN -ge $PAR_CRIT ]; then
  exitstatus=$STATE_UNKNOWN
        echo "The WARNING number can not be larger or equal to the CRITICAL number!"
        exit $exitstatus
fi

wget --http-user=$USER --http-password=$PASSWORD --no-check-certificate --no-proxy https://$HOSTNAME/xml/status --output-document=$STATUSFILE  >> /dev/null 2>&1
#wget --http-user=$USER --http-password=$PASSWORD --no-check-certificate https://$HOSTNAME/xml/status --output-document=$STATUSFILE  >> /dev/null 2>&1



if [ $? -ne 0 ]; then
  exitstatus=${STATE_UNKNOWN}
  echo ""
  echo "Can't collect data from an Ironpor appliance Ironport. Verify hostname, userID and password!"
  rm -rf $STATUSFILE
  exit $exitstatus
else 
  exitstatus=${STATE_OK}
fi

case "$ARGS" in

# <system status="online" /> DONE
# <gauge name="ram_utilization" current="7" /> DONE

 status)
                IPORTPAR=`grep "system status" $STATUSFILE | cut -d\" -f 2`
                if [ $IPORTPAR = online ]; then
                   exitstatus=${STATE_OK}
                   echo "Status OK: $IPORTPAR"
                else
                   exitstatus=${STATE_CRITICAL}
                   echo "Status CRITICAL: $IPORTPAR"
                fi
                ;;
  
  cpu)
                IPORTPAR=`grep total_utilization $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "CPU CRITICAL: $IPORTPAR%"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "CPU WARNING: $IPORTPAR%"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "CPU OK: $IPORTPAR%"
                fi
                ;;

  ram)
                IPORTPAR=`grep ram_utilization $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "RAM CRITICAL: $IPORTPAR%"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "RAM WARNING: $IPORTPAR%"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "RAM OK: $IPORTPAR%"
                fi
                ;;

  		
  msgxhour)
                IPORTPAR=`grep -A 3 "rate name=\"inj_msgs" $STATUSFILE | grep last_15_min | cut -d\" -f 2  `
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Mail rate CRITICAL: $IPORTPAR msgs/hr"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Mail rate WARNING: $IPORTPAR msgs/hr"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Mail rate OK: $IPORTPAR msgs/hr"
                fi
                ;;

  conn_in)
                IPORTPAR=`grep conn_in  $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Incoming Connections CRITICAL: $IPORTPAR connections"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Incoming Connections WARNING: $IPORTPAR connections"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Incoming Connections OK: $IPORTPAR connections"
                fi
                ;;

  conn_out)
                IPORTPAR=`grep conn_out  $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Outgoing Connections CRITICAL: $IPORTPAR connections"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Outgoing Connections WARNING: $IPORTPAR connections"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Outgoing Connections OK: $IPORTPAR connections"
                fi
                ;;
                  
  queue)
               IPORTPAR1=`grep \"attempted_recips $STATUSFILE | cut -d\" -f 4`
               IPORTPAR2=`grep unattempted_recips $STATUSFILE | cut -d\" -f 4`
               IPORTPAR=`expr $IPORTPAR1 + $IPORTPAR2`
               if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Active Recipients CRITICAL: $IPORTPAR"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Active Recipients WARNING: $IPORTPAR"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Active Recipients OK: $IPORTPAR"
                fi
                ;;

  workqueue)
                IPORTPAR=`grep msgs_in_work_queue $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Workqueue CRITICAL: $IPORTPAR msgs"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Workqueue WARNING: $IPORTPAR msgs"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Workqueue OK: $IPORTPAR msgs"
                fi
                ;;

   resourceconservation)
                IPORTPAR=`grep resource_conservation $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Resource conservation mode CRITICAL: $IPORTPAR "
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Resource conservation mode WARNING: $IPORTPAR "
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Resource conservation mode OK: $IPORTPAR "
                fi
                ;;
  disk_util)
                IPORTPAR=`grep disk_utilization $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Disk Utilization CRITICAL: $IPORTPAR "
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Disk Utilization WARNING: $IPORTPAR "
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Disk Utilization OK: $IPORTPAR "
                fi
                ;;

  msgs_in_quarantine)
              IPORTPAR=`grep msgs_in_quarantine $STATUSFILE | cut -d\" -f 4`
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "MSG In Quarantine CRITICAL: $IPORTPAR "
                        else
                                exitstatus=${STATE_WARNING}
                                echo "MSG In Quarantine WARNING: $IPORTPAR "
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "MSG In Quarantine OK: $IPORTPAR "
                fi
                ;;

  queuedisk_usage) 
               IPORTPAR1=`grep kbytes_free $STATUSFILE | cut -d\" -f 4`
               IPORTPAR2=`grep kbytes_used $STATUSFILE | cut -d\" -f 4`
               IPORTPAR3="$(( $IPORTPAR1 / 100 ))"
               IPORTPAR="$(( $IPORTPAR2 / $IPORTPAR3 ))"
                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "QueueDisk Usage CRITICAL: $IPORTPAR%"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "QueueDisk Usage WARNING: $IPORTPAR% "
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "QueueDisk Usage OK: $IPORTPAR% "
                fi
                ;;

  release)
                IPORTPAR=`grep build $STATUSFILE | cut -d\" -f 2`
                        exitstatus=${STATE_OK}
                        echo "AsyncOS Release: $IPORTPAR"
                ;;

  uptime)
                IPORTPAR=`grep birth_time $STATUSFILE | cut -d\" -f 2`
                        exitstatus=${STATE_OK}
                        echo "Uptime: $IPORTPAR"
                ;;


  oldmessage)
		IPORTPAR=`grep "oldest_message" $STATUSFILE | cut -d\" -f 2`
		IPORTPAR2=`grep "oldest_message" $STATUSFILE | cut -d\" -f 4`
		PAR_WARN="$(( $PAR_WARN * 3600 ))"
		PAR_CRIT="$(( $PAR_CRIT * 3600 ))"
		HUMAN_PAR="$(( $IPORTPAR / 3600 ))"

                if [ $IPORTPAR -ge $PAR_WARN ]; then
                        if [ $IPORTPAR -ge $PAR_CRIT ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Oldest Message CRITICAL: $HUMAN_PAR hours, MID: $IPORTPAR2"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Oldest Message WARNING: $HUMAN_PAR hours, MID: $IPORTPAR2"
                        fi
                        else
                        exitstatus=${STATE_OK}
                        echo "Oldest Message OK: $HUMAN_PAR hours"
                fi
                ;;


  of_license)
		IPORTPAR=`grep "Outbreak Filters" $STATUSFILE | cut -d\" -f 4`
		PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
		PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
		HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Outbreak Filters License CRITICAL: Expired"
                        else
     
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Outbreak License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Outbreak License WARNING: $HUMAN_PAR days remaining"
                        fi
                                       else
                        exitstatus=${STATE_OK}
                        echo "Outbreak License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;
                
  ipspam_license)
                IPORTPAR=`grep "IronPort Anti-Spam" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "IronPort Anti-Spam License CRITICAL: Expired"
                        else
                     
                
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "IronPort Anti-Spam License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "IronPort Anti-Spam License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "IronPort Anti-Spam License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;
                
  sophos_license)
                IPORTPAR=`grep "Sophos" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Sophos License CRITICAL: Expired"
                       else
          
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Sophos License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Sophos Outbreak License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Sophos License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;
  cm_license)
                IPORTPAR=`grep "Central Mgmt" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centalized Management License CRITICAL: Expired"
                       else

                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Central Mgmt License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Central Mgmt License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Central Mgmt License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;


  mcafee_license)
                IPORTPAR=`grep "McAfee" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "McAfee License CRITICAL: Expired"
                        else
                        	

                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "McAfee License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "McAfee License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "McAfee License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;

  cloudmark_license)
                IPORTPAR=`grep "Cloudmark SP" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Cloudmark SP License CRITICAL: Expired"
                       else
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Cloudmark SP License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Cloudmark SP License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Cloudmark License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;


  imageanalysis_license)
                IPORTPAR=`grep "IronPort Image Analysis" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "IronPort Image Analysis License CRITICAL: Expired"
                       else

                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "IronPort Image Analysis License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "IronPort Image Analysis License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "IronPort Image Analysis License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;



  encryption_license)
                IPORTPAR=`grep "IronPort Email Encryption" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"
                
		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "IronPort Email Encryption License CRITICAL: Expired"
                       else

                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "IronPort Email Encryption License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "IronPort Email Encryption License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "IronPort Email Encryption License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;

  dlp_license)
                IPORTPAR=`grep "RSA Email Data Loss Prevention" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "RSA Email Data Loss Prevention License CRITICAL: Expired"
                       else
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "RSA Email Data Loss Prevention License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "RSA Email Data Loss Prevention License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "RSA Email Data Loss Prevention License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;

  bv_license)
                IPORTPAR=`grep "Bounce Verification" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Bounce Verification License OK: Perpetual"
                                                              
		else
		  
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Bounce Verification License CRITICAL: Expired"
                       else


                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Bounce Verification License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Bounce Verification License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Bounce Verification License OK: $HUMAN_PAR days remaining"
                fi
		fi
                fi
                ;;
                



  receiving_license)
                IPORTPAR=`grep "Receiving" $STATUSFILE | cut -d\" -f 4`
		if [ $IPORTPAR = "" ]; then
		IPORTPAR=`grep "Incoming Mail Handling" $STATUSFILE | cut -d\" -f 4`
		fi

                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Receiving License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Receiving License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Receiving License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Receiving License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Receiving License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;

  multiscan_license)
                IPORTPAR=`grep "Intelligent Multi-Scan" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Intelligent Multi-Scan License CRITICAL: Expired"
                       else
               

                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Intelligent Multi-Scan License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Intelligent Multi-Scan License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Intelligent Multi-Scan License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;

  tracking_license)
                IPORTPAR=`grep "Centralized Tracking" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Tracking License CRITICAL: Expired"
                       else
               

                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Tracking License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Tracking License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Tracking License OK: $HUMAN_PAR days remaining"
                fi
                fi
                ;;


  reporting_license)
                IPORTPAR=`grep "Centralized Reporting" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Centralized Reporting License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Reporting License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Reporting License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Reporting License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Reporting License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;

  tracking_license)
                IPORTPAR=`grep "Centralized Tracking" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Centralized Tracking License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Tracking License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Tracking License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Tracking License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Tracking License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;


  emailtracking_license)
                IPORTPAR=`grep "Centralized Email Message Tracking" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Centralized Email Tracking License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Email Tracking License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Email Tracking License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Email Tracking License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Email Tracking License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;

  emailreporting_license)
                IPORTPAR=`grep "Centralized Email Reporting" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Centralized Email Reporting License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Email Reporting License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Email Reporting License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Email Reporting License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Email Reporting License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;

  webreporting_license)
                IPORTPAR=`grep "Centralized Web Reporting" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Centralized Web Reporting License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Web Reporting License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Web Reporting License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Web Reporting License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Web Reporting License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;

  configmanager_license)
                IPORTPAR=`grep "Centralized Configuration Manager" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Centralized Configuration Manager License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Configuration Manager License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Configuration Manager License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Configuration Manager License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Configuration Manager License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;

  spamquarantine_license)
                IPORTPAR=`grep "Centralized Spam Quarantine" $STATUSFILE | cut -d\" -f 4`
                PAR_WARN="$(( $PAR_WARN * 3600 * 24 ))"
                PAR_CRIT="$(( $PAR_CRIT * 3600 * 24 ))"

                if [ $IPORTPAR = Dormant/Perpetual ]; then
                        exitstatus=${STATE_OK}
                        echo "Centralized Spam Quarantine License OK: Perpetual"
                else
                                                                
                HUMAN_PAR="$(( $IPORTPAR / 24 / 3600 ))"

		if [ $IPORTPAR -le 0 ]; then
		        	exitstatus=${STATE_CRITICAL}
                                echo "Centralized Spam Quarantine License CRITICAL: Expired"
                       else
               
                if [ $IPORTPAR -le $PAR_CRIT ]; then
                        if [ $IPORTPAR -le $PAR_WARN ]; then
                                exitstatus=${STATE_CRITICAL}
                                echo "Centralized Spam Quarantine Manager License CRITICAL: $HUMAN_PAR days remaining"
                        else
                                exitstatus=${STATE_WARNING}
                                echo "Centralized Spam Quarantine License WARNING: $HUMAN_PAR days remaining"
                        fi
                else
                        exitstatus=${STATE_OK}
                        echo "Centralized Spam Quarantine License OK: $HUMAN_PAR days remaining"
                fi
		fi
		fi
                ;;

  

  *)
    print_usage
    exit $STATE_OK
esac

rm -rf $STATUSFILE

exit $exitstatus


