
#!/bin/ksh
# File	: upd_asup_status.sh
# By	: Maarten.deBoer@Atos.net, 2015-08-05
# Subject	: Script to update web-file for ASUP status
# set -x
#(0.2)	:With some coloring
#(0.3)	: Some more coloring
#(0.4)	: Added ASUP ack DaTi
#(0.5)	: Added search for COUNTRY in DATABASE
#(0.6)	: Added file country-asup-data.csv (in stead of TMP)
#(0.7)	: Mod country
#(0.8)	: Mode AFSP & ASUP country
#(0.9)	: Add Legenda
#(0.10)	: CNT empty DB-country
#(0.11) : Mod. ASUP colors
#set -x
PGM="`basename $0|cut -d\. -f1`"
VER="0.11"
TMP="/tmp/${PGM}.$$"

BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
LOG="${BASEDIR}/log/${PGM}.log"
ASUPDATADIR="${BASEDIR}/data/asup"

IN="${BASEDIR}/data/asup-data.csv"
OUT="${BASEDIR}/html/asup-status.html"
OUT="/appl/mdr/www/afsp/asup-status.html"

#ASUPACKDIR="/appl/mdr/mdrglob/asup-ack/"
ASUPACKDIR="/appl/asup/ack/"

COUNTRYAFSP="${BASEDIR}/data/country-afsp-data.csv"
COUNTRYASUP="${BASEDIR}/data/country-asup-data.csv"

COUNTRY="`echo ${BASEDIR}| cut -d\/ -f6`"

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


# Collect data from all filers and mail
rm ${IN}
cat ${ASUPDATADIR}/*.csv >> ${TMP}
cat ${TMP}|sort >> ${IN}
#date|mailx -a ${IN} -s "[${PGM} v${VER}]" maarten.deboer@atos.net


echo "<!DOCTYPE html>" > ${OUT}
echo "<HTML>" >> ${OUT}
echo "<HEAD>" >> ${OUT}
echo "<META charset='UTF-8'>" >> ${OUT}
echo "<META content=Maarten de Boer name=AUTHOR>" >> ${OUT}
echo "<TITLE>AFSP:asup-status</TITLE>" >> ${OUT}
echo "<basefont face='verdana'>" >> ${OUT}
echo "</HEAD>" >> ${OUT}

echo "<BODY aLink=red bgColor=#D3D0D3 link=red text=#000000 vLink=#ff0000>" >> ${OUT}

echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${OUT}

echo "<TR WIDTH=100% HEIGHT=40px>" >> ${OUT}
echo "  <TD bgColor=#0066A1>" >> ${OUT}
echo "    <FONT COLOR=white face='verdana' size='5'> <B> <A HREF="index.html">Filer</A> ASUP (by mail/smtp) status of global:</B> </FONT>" >> ${OUT}
echo "    <BR>" >> ${OUT}
echo "    <FONT COLOR=white face='verdana' size='1'> Done by adding mdrglob@msssyscol01.bcklan.ao-srv.com at 'options autosupport.partner.to' </FONT>" >> ${OUT}
echo "    <DIV align=left><FONT COLOR=white face='verdana' size='-3'> Update: `date` </FONT></DIV>" >> ${OUT}
echo "    <DIV align=right>" >> ${OUT}
echo "    <FONT COLOR=white face='verdana' size='-3'> For internal use. (c) Atos BTN 2015 </B> </FONT>" >> ${OUT}
echo "    </DIV>" >> ${OUT}
echo "  <TD>" >> ${OUT}
echo "</TR>" >> ${OUT}

echo "<TR>" >> ${OUT}

#echo "  <TABLE BORDER=1 WIDTH='100%'>" >> ${OUT}
echo "  <TABLE BORDER=1>" >> ${OUT}

echo "<TR>" >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Name:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Serial Number:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Last ASUP DaTi:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>ASUP Ack DaTi:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>OS Version:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Partner:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>SNMP location:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>SNMP contact:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>AFSP DB Country:</B> </TD> " >> ${OUT}
echo "</TR>" >> ${OUT}

echo "Collecting of all countries; hostname & ser.nr ..."
echo "# COUNTRY;DB_CONTROLER_NAME;DB_SERIAL_NUMBER;DB_SYSTEM_ID;" > ${COUNTRYAFSP}
echo "# COUNTRY;DB_CONTROLER_NAME;DB_SERIAL_NUMBER;DB_SYSTEM_ID;" > ${COUNTRYASUP}

for COUNTRY in `cd /appl/mdr/mdrglob/afsp/; ls -1d ??`
do
  for DBFILE in `ls -1 /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database/*.asc`
  do
    DB_SERIAL_NUMBER="`grep ^SERIAL_NUMBER ${DBFILE}|awk -F\= '{print $2}'`"
    DB_CONTROLER_NAME="`grep ^CONTROLER_NAME ${DBFILE}|awk -F\= '{print $2}'`"
    DB_SYSTEM_ID="`grep ^SYSTEM_ID ${DBFILE}|awk -F\= '{print $2}'`"
	echo "${COUNTRY};${DB_CONTROLER_NAME};${DB_SERIAL_NUMBER};${DB_SYSTEM_ID};" >> ${COUNTRYAFSP}
  done  # DBFILE
done  # COUNTRY

EMPTY_DB_CNT=0
cat ${IN}|sort|grep -v ^#|while read LINE
do
  FILER="`echo ${LINE}| awk -F\; '{print $1}'`"
  LOC="`echo ${LINE}|awk -F\, '{print $2}'|cut -d' ' -f1`"
  USAGE="`echo ${LINE}|awk -F\, '{print $2}'|cut -d\[ -f2|cut -d\] -f1`"
  OSVERSION="`echo ${LINE}|awk -F\; '{print $4}'`"
  FWVERSION="`echo ${LINE}|awk -F\; '{print $5}'|sed 's/ //g'`"
  SERNR="`echo ${LINE}|awk -F\; '{print $6}'|sed 's/ //g'`"
  PARTNER="`echo ${LINE}|awk -F\; '{print $7}'|sed 's/ //g'`"
  SNMPLOC="`echo ${LINE}|awk -F\; '{print $2}'`"
  SNMPCONTACT="`echo ${LINE}|awk -F\; '{print $8}'|sed 's/ //g'`"
  LASTASUPDATI="`echo ${LINE}|awk -F\; '{print $9}'`"

# ASUP-Ack's
# Get the filename of the last Ack
  FILE="`grep -i hostname ${ASUPACKDIR}/*| grep ${FILER}|cut -d\: -f1|sort|tail -1`"
# Get the date&time of the last ack-file
  ACKFILEDATI=""
  if [ "${FILE}" != "" ]; then
    ACKFILEDATI="`stat -c %y ${FILE}|cut -d\. -f1`"
  fi

  DATICOL=""
  YEAR="`date +%Y`"
  ANSW="`echo "${LASTASUPDATI}"|grep \" ${YEAR}\"`"
  if [ "${ANSW}" = "" ]; then
    DATICOL="red"
  fi
  ANSW="`echo "${LASTASUPDATI}"|grep \" ${YEAR}\"`"
  if [ "${ANSW}" != "" ]; then
    DATICOL="orange"
  fi
  MONTH="`date +%b`"
  ANSW="`echo "${LASTASUPDATI}"|grep \" ${YEAR}\"|grep \" ${MONTH}\"`"
  if [ "${ANSW}" != "" ]; then
    DATICOL="yellow"
  fi
  DAY="`date +%d`"
  ANSW="`echo "${LASTASUPDATI}"|grep \" ${YEAR}\"|grep \" ${MONTH}\"|grep \" ${DAY}\"`"
  if [ "${ANSW}" != "" ]; then
    DATICOL="green"
  fi

  # Get country
  if [ "${FILER}" != "" ]; then
    FILERCOUNTRY="`grep ${FILER} ${COUNTRYAFSP}|awk -F\; '{print $1}'|sort -u`"
  fi  # HOSTNAME
  CTRYCOL=""
  if [ "${FILERCOUNTRY}" = "" ]; then
    CTRYCOL="yellow"
	let "EMPTY_DB_CNT= ${EMPTY_DB_CNT} + 1"
  else
  # Country found. So can be witten in ASUP-country file
	echo "${FILERCOUNTRY};${FILER};DB_SERIAL_NUMBER;DB_SYSTEM_ID;" >> ${COUNTRYASUP}
  fi

  echo "${FILER} = ${LASTASUPDATI} = ${ACKFILEDATI} = ${FILERCOUNTRY} ..."

  echo "<TR>" >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${FILER} </FONT> </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${SERNR} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${DATICOL}> <FONT face='verdana' size=1> ${LASTASUPDATI} </FONT> </TD> " >> ${OUT}
  echo "  <TD > <FONT face='verdana' size=1> ${ACKFILEDATI} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${OSCOL}> <FONT face='verdana' size=1> ${OSVERSION} </FONT> </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${PARTNER} </FONT> </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${SNMPLOC} </FONT> </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${SNMPCONTACT} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${CTRYCOL}> <FONT face='verdana' size=1> ${FILERCOUNTRY} </FONT> </TD> " >> ${OUT}
  echo "</TR>" >> ${OUT}


done

echo "<TR>" >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Name:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Serial Number:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Last ASUP DaTi:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>ASUP Ack DaTi:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>OS Version:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Partner:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>SNMP location:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>SNMP contact:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>ASUP DB Country:</B> </TD> " >> ${OUT}
echo "</TR>" >> ${OUT}


COUNT="`cat ${IN}|grep -v '^#'|wc -l|awk '{print $1}'`"
echo "  ${COUNT} filer(s) found"|tee -a ${LOG}
echo "<TR>" >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${COUNT} filers </FONT> </TD> " >> ${OUT}
  echo "  <TD></TD> " >> ${OUT}
  echo "  <TD></TD> " >> ${OUT}
  echo "  <TD></TD> " >> ${OUT}
  echo "  <TD></TD> " >> ${OUT}
  echo "  <TD></TD> " >> ${OUT}
  echo "  <TD></TD> " >> ${OUT}
  echo "  <TD></TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${EMPTY_DB_CNT} empty </FONT> </TD> " >> ${OUT}
echo "</TR>" >> ${OUT}

echo "<P>" >> ${OUT}
echo "</TABLE>" >> ${OUT}

# Legenda:
echo "  <TABLE>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>Legenda: </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>Last ASUP: </TD>" >> ${OUT}
echo "      <TD> <FONT face= 'verdana' size=2>No information</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=red> <FONT face= 'verdana' size=2>Not this year</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=orange> <FONT face= 'verdana' size=2>This year</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=yellow> <FONT face= 'verdana' size=2>This month</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=green> <FONT face= 'verdana' size=2>This day</FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>AFSP DB Country: </TD>" >> ${OUT}
echo "      <TD BGCOLOR=yellow> <FONT face= 'verdana' size=2>New to AFSP</FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "  </TABLE>" >> ${OUT}


# --- footer

echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${OUT}
echo "<TR WIDTH=100% > " >> ${OUT}
echo "  <TD bgColor=#0066A1 > " >> ${OUT}
echo "    <FONT COLOR=white face='Verdana' size='1'>" >> ${OUT}
echo "      <CENTER>" >> ${OUT}
echo "Contact: |Content Owner: <A HREF="mailto:Maarten.deBoer@Atos.net">Maarten de Boer</A> |Last Update: `date`<BR>" >> ${OUT}
echo "For internal use (c) Atos S.A. 2015 all rights reserved. Reproduction in whole or in part is prohibited without the written consent of Atos SA." >> ${OUT}
echo "      </CENTER>" >> ${OUT}
echo "    </FONT>" >> ${OUT}
echo "  </TD>" >> ${OUT}
echo "</TR>" >> ${OUT}
echo "</TABLE>" >> ${OUT}

echo "</BODY>" >> ${OUT}
echo "</HTML>" >> ${OUT}

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

