#!/bin/bash
# Author: asperber
# Date:   2013-03-11
# Reason: 14029950 

PROGPATH=/usr/lib/nagios/plugins
. $PROGPATH/utils.sh

host="$1"
key="$2"
check="$3"

if [ $# -lt 3 ]
then
 echo " Error!"
 echo " "
 echo " Usage: $0 [HOSTNAME] [KEY] \"[FEATURENAME or support]\""
 echo " "
 exit 3
fi

#LIZurl="/api/?type=op&cmd=<request><license><info></info></license></request>&key="
LIZurl="/api/?type=op&cmd=%3Crequest%3E%3Clicense%3E%3Cinfo%3E%3C/info%3E%3C/license%3E%3C/request%3E&key="
#SUPurl="/api/?type=op&cmd=<request><support><info></info></support></request>&key="
SUPurl="/api/?type=op&cmd=%3Crequest%3E%3Csupport%3E%3Cinfo%3E%3C/info%3E%3C/support%3E%3C/request%3E&key="
dwarn=30
dcrit=14

# dont change below here :)

today=$(date +%s)
resultmsg="Nothing checked! Please check Arguments!"
result=$STATE_UNKNOWN
export IFS=$'\t\n'

if [ "$check" = "support" ]
then
 site="$(curl "https://${host}${SUPurl}${key}" -k -s)"
 expires="`echo $site|awk 'BEGIN {FS="</ExpiryDate>"} { print $1 }' |awk 'BEGIN {FS="<ExpiryDate>"} { print $2 }'`"
 dateexp=`date -d"$expires" +%s`
 counter=$(( ($dateexp - $today) / 86400 ))
 resultmsg="Support is"
 if [ $counter -lt $dcrit ]
 then
  result=$STATE_CRITICAL
  resultmsg="$resultmsg CRITICAL! Expires in $counter days!"
 else
  if [ $counter -lt $dwarn ]
  then
   result=$STATE_WARNING
   resultmsg="$resultmsg WARNING! Expires in $counter days!"
  else
   result=$STATE_OK
   resultmsg="$resultmsg OK! Expires in $counter days!"
  fi
 fi
else
 site="$(curl https://${host}${LIZurl}${key} -k -s)"
 for i in `echo $site |awk 'BEGIN {FS="<entry>"} {for (i=2;i<=NF;i++) printf ("\"%s\"\n", $i) }'`
 do
  feature="`echo $i |awk 'BEGIN {FS="</feature>"} { print $1 }' |awk 'BEGIN {FS="<feature>"} { print $2 }'`"
  if [ "$feature" = "$check" ]
  then
   expires="`echo $i |awk 'BEGIN {FS="</expires>"} { print $1 }' |awk 'BEGIN {FS="<expires>"} { print $2 }'`"
   # expired="`echo $i |awk 'BEGIN {FS="</expired>"} { print $1 }' |awk 'BEGIN {FS="<expired>"} { print $2 }'`"   # falls es mal interessant wird
   dateexp=`date -d"$expires" +%s`
   counter=$(( ($dateexp - $today) / 86400 ))
   resultmsg="$feature is"
   if [ $counter -lt $dcrit ]
   then
    result=$STATE_CRITICAL
    resultmsg="$resultmsg CRITICAL! Expires in $counter days!"
   else
    if [ $counter -lt $dwarn ]
    then
     result=$STATE_WARNING
     resultmsg="$resultmsg WARNING! Expires in $counter days!"
    else
     result=$STATE_OK
     resultmsg="$resultmsg OK! Expires in $counter days!"
    fi
   fi
  fi
 done
fi

echo "$resultmsg"
exit $result

