
#!/bin/sh
# File	: cdot_chk_ntp-time.sh
# By	: Maarten.deBoer@atos.net, 221121
# Subject	: Script to chk (NTP-)time
#set -x
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
TMP="/tmp/${PGM}.$$"
ASC="/tmp/${PGM}.$$.asc"
INCIFILE="/tmp/${PGM}.$$.inci"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"
CLUSTERS="${HOME}/etc/clusters"
HOSTNAME=`hostname |cut -d\. -f1`
MAIL=""
MAILTO="maarten.deboer@atos.net"
CFILTER="nlnaf108"

INCI=1
ESB=""
ORG="Atos Netherlands"
REQ_TYPE="Incident"
REQ_AREA="Storage;Storage;Other"
GROUP="NL.Storage.FSOD"
#GROUP="RO.Storage.FSOD"
ESB_QUEUE="${HOME}/imi2esb/queue"
ESB_USER="sdp"
IMI_UPLOAD="${HOME}/imi2esb/bin/imi_upload.sh"
#ESBSTAT_URL="https://btndev.sapart.atos-srv.net/ART/esbstat.pl?action=info"
ESBSTAT_URL="https://btn.sapart.atos-srv.net/ART/esbstat.pl?action=info"
W_SEC=30


SEND_TO_ESB()
# $1=CI, $2=TYPE, $3=text
{
  EXT_REF="${ESB_USER}_`date +%Y%m%d%H%M%S`"
  TICKET="${ESB_QUEUE}/${EXT_REF}.imi"
  echo "@PROXYUSER:${ESB_USER}" > ${TICKET}
  echo "@EXTERNALREFERENCE:${EXT_REF}" >> ${TICKET}
  echo "@REQUESTTYPE:${2}" >> ${TICKET}
  echo "@SEVERITY:3" >> ${TICKET}
  echo "@REQUESTAREA:${REQ_AREA}" >> ${TICKET}
  echo "@GROUP:${GROUP}" >> ${TICKET}
  echo "@ORGANISATION:${ORG}" >> ${TICKET}
  echo "@CI:${1}" >> ${TICKET}
  cat ${3} >> ${TICKET}
  echo "" >> ${TICKET}
  echo "" >> ${TICKET}
  echo "externalreference=${EXT_REF}" >> ${TICKET}
  echo "" >> ${TICKET}
  echo "@ENDOFUSDMESSAGE:" >> ${TICKET}
  echo "  Created IMI file ${TICKET}"|tee -a ${LOG}
  cp ${TICKET} ${TMP}.ticket
  sleep 1
  echo "  Sending to ESB"|tee -a ${LOG} ${TMP}
  ${IMI_UPLOAD}
  echo "  Waiting (${W_SEC}sec.) for ticket info ..."
  sleep ${W_SEC}
#  wget -q --no-proxy --no-check-certificate -O ${TMP}.func ${ESBSTAT_URL}
  wget -q --no-check-certificate -O ${TMP}.func ${ESBSTAT_URL}
  TICKET_INFO=`grep ${EXT_REF} ${TMP}.func`
  echo "  Ticket info return: ${TICKET_INFO}"|tee -a ${LOG} ${TMP}
  rm ${TMP}.func
  
  if [ ${MAIL} ]; then
    cat ${TMP}.ticket| mailx -s ":${HOSTNAME}: ESB (ticket-)message ${TICKET_INFO} [${PGM} v${VER}]" ${MAILTO}
  fi
  rm ${TMP}.ticket
}  # ESB


echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}

touch ${TMP}
for CLUSTER in `cat ${CLUSTERS}|grep -v ^#|grep "${CFILTER}"`
do
  echo "${CLUSTER} ..."|tee ${TMP}

# date +%a' '%b' '%d' '%H:%M:%S' '%Y
  SDATE=`date -u +%a' '%b' '%d' '%H:%M:%S' '%Y`
  CDATE=`${SSH} ${CLUSTER} "date -u"|grep ${CLUSTER}| awk '{print $2,$3,$4,$5,$6}'|head -1`
  echo "  System-date=${SDATE}, Cluster-date=${CDATE}"|tee -a ${TMP}
  ANSW=`echo ${CDATE}|grep "${SDATE}"`
  if [ "${ANSW}" = "" ]; then
# Not the same time. Check again
    SDATE=`date -u +%a' '%b' '%d' '%H:%M:%S' '%Y`
    CDATE=`${SSH} ${CLUSTER} "date -u"|grep ${CLUSTER}| awk '{print $2,$3,$4,$5,$6}'|head -1`
    echo "  2nd System-date=${SDATE}, Cluster-date=${CDATE}" |tee -a ${TMP}
    ANSW2=`echo ${CDATE}|grep "${SDATE}"`
    if [ "${ANSW2}" = "" ]; then
      INCI_TXT="Management (${HOSTNAME}) System-date & Cluster-date (${CLUSTER}) should be the same. Are now ${SDATE} vs ${CDATE}."
      echo "${CLUSTER} => ${INCI_TXT} " > ${INCIFILE}
      echo "${CLUSTER} => ${INCI_TXT} "|tee -a ${TMP} ${ASC}
    fi  # ANSW2
  fi  # ANSW

  if [ ${INCI} ]; then
set -x
    SEND_TO_ESB "${CLUSTER}-PLF" "Incident" ${INCIFILE}
set +x
  fi  # INCI

done  # for CLUSTER

if [ "${MAILTO}" != "" ] && [ -s ${ASC} ]; then
  clear
  echo "=========================================================="
  cat ${ASC}
  date |mailx -a ${ASC} -s ":${HOSTNAME}: cDOT time ERRORs [${PGM} v${VER}]" ${MAILTO}
  echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
  rm ${ASC}
fi

rm ${TMP} 
echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

