
#!/bin/sh
# File	: dfm-alarm2mail.sh
# By	: Maarten.deBoer@Atos.net, 100928. 161216, 170125
# Subject	: Script to send DFM infot via mail
# Copied from dfm-alarm2nagios.sh
#(0.2),170413   : Added (ONTAPARCH) [<arch>] ([7mode] | [cdot]) for IPcenter to the string MSGTEXTSTR
#(0.3),170511	: Added dfm event detail DFM_EVENT_ID
#(0.4),170524	: Added EXCLUDES
PGM="`basename $0|cut -d\. -f1`"
VER="0.4"
TMP="/tmp/${PGM}.$$.asc"
HOSTNAME="`basename $0|cut -d\. -f1`"
PWD="`pwd`"
APPLDIR="/home/nl19471"
LOG="${APPLDIR}/log/${PGM}.log"
HOSTNAME="`hostname|cut -d\. -f1`"
MAILTO="maarten.deboer@atos.net paul.distel@atos.net"
EXCLUDES="${APPLDIR}/etc/${PGM}.excludes"

ONTAPARCH="[7mode]"

if [ ! -f ${EXCLUDES} ]; then
  touch ${EXCLUDES}
fi


touch ${TMP}
echo "* `/bin/date +'%Y-%m-%d %H:%M:%S'`" >> ${TMP}
echo "${DFM_EVENT_NAME_GUI} ${DFM_SOURCE_NAME} (${DFM_EVENT_SEVERITY})" >> ${TMP}
echo "" >> ${TMP}
echo "DFM_ALARM_ID: $DFM_ALARM_ID" >> ${TMP}
echo "DFM_EVENT_ID: $DFM_EVENT_ID" >> ${TMP}
echo "DFM_EVENT_NAME_CLI: $DFM_EVENT_NAME_CLI" >> ${TMP}
echo "DFM_EVENT_NAME_GUI: $DFM_EVENT_NAME_GUI" >> ${TMP}
echo "DFM_EVENT_SEVERITY: $DFM_EVENT_SEVERITY" >> ${TMP}
echo "DFM_EVENT_TIMESTAMP: $DFM_EVENT_TIMESTAMP" >> ${TMP}
echo "DFM_LINK_EVENT: $DFM_LINK_EVENT" >> ${TMP}
echo "DFM_SERIAL_NUMBER: $DFM_SERIAL_NUMBER" >> ${TMP}
echo "DFM_SOURCE_ID: $DFM_SOURCE_ID" >> ${TMP}
echo "DFM_SOURCE_NAME: $DFM_SOURCE_NAME" >> ${TMP}
echo "DFM_SOURCE_TYPE: $DFM_SOURCE_TYPE" >> ${TMP}
echo "DFM_HOST_ID: $DFM_HOST_ID" >> ${TMP}
echo "DFM_HOST_NAME: $DFM_HOST_NAME" >> ${TMP}
echo "DFM_HOST_TYPE: $DFM_HOST_TYPE" >> ${TMP}

# If no DFM_HOST_NAME, use DFM-server-name
if [ "${DFM_HOST_NAME}" = "" ]; then
  CI=${HOSTNAME}
else
  CI="`echo ${DFM_HOST_NAME}|cut -d\. -f1`"
fi
MSGTEXTSTR="CI=${CI} ${ONTAPARCH} ${DFM_EVENT_NAME_GUI} ${DFM_SOURCE_NAME} DFM_EVENT_ID=${DFM_EVENT_ID}"

SEV=" "
case ${DFM_EVENT_SEVERITY} in
  Emergency)  SEV="FATAL" ;;
  Critical)  SEV="CRITICAL" ;;
  Error)  SEV="CRITICAL" ;;
  Warning)  SEV="WARNING" ;;
  Information)  SEV="" ;;
  Normal)  SEV="NORMAL" ;;
esac
echo "`date` SEV=${SEV} (MSGTEXTSTR=${MSGTEXTSTR}) .."|tee -a ${LOG}

# Add EVENT-DETAIL
/usr/bin/dfm event detail ${DFM_EVENT_ID}|grep event >> ${TMP}

# When SEV then mail
if [ "${SEV}" != "" ]; then
  # Excluding:
  # Check if excluded? (EC=0), for <DFM_SOURCE_NAME>:<DFM_EVENT_NAME_CLI>
  grep "${DFM_SOURCE_NAME}:${DFM_EVENT_NAME_CLI}" ${EXCLUDES}
  EC=${?}
  if [ ${EC} -eq 0 ]; then
    echo "`date`: Excluded = ${DFM_SOURCE_NAME}:${DFM_EVENT_NAME_CLI} (${MSGTEXTSTR})" >> ${LOG}
  else
    echo "`date`"|/usr/bin/mailx -a ${TMP} -s "${SEV}: ${MSGTEXTSTR}" "${MAILTO}"
    echo "`date` Mailed to ${MAILTO} ${SEV} (MSGTEXTSTR=${MSGTEXTSTR}) .."|tee -a ${LOG}
    sleep 1
  fi  # EXCLUDE
#  echo "${PGM} v${VER}" | mailx -s "check" "${MAILTO}"
fi  # SEV

rm ${TMP}
exit 0

