
#!/bin/ksh
# File	: upd_models.sh
# By	: Maarten.deBoer@Atos.net, 2015-03-14
# Subject	: Script to process filer-release input to web-pages
#(0.3)	: Mod FONT
#(0.4)	: Add COntact
#(0.5)	: Mod dir's & added LOG
#(0.6)	: Added BASEDIR, Mod: html/versions.html
#(0.7)	: From proc_versions.sh
#(0.2)	: Add COUNTRY
#(0.3)	: Mod IN-file
#(0.4)	: Update modelcolors
#(0.5)	: Mod. When no SerNR no usage, Model change SerNr
#(0.6)	: If FILER="", the FILER="<noname>", USAGE -> LAST_ASUP. No BIOS versions
#(0.7)	: Added asup-ack
#(0.8)	: Some mod.s
#(0.9)	: Mod is no MODEL
#(0.10)	: Added if [ "${EOSYEAR}" != "" ]; then
#(0.11)	: Add Overall status of last ASUP. FOr beeing used at upd_dashboard. Added DASHBOARDFILE,DASHBOARDASUPCOL
#(0.12)	: Remove "Ack DaTi:", Rem ${LOC}
#(0.13)	: Mod. ASUP colors
#(0.14),160725	: Add DFM-server & Last DFM-update & DB_READ
#(0.15),160726	: Added REMARS & REMCOL & Removed (#-ed) ACK
#(0.16),170419	: Added DASHBOARDASUPCOL at botom/Legenda:
#(0.17),170508	: Upd OSCOL
#(0.18),170509	: Upd OSCOL
# set -x
PGM="`basename $0|cut -d\. -f1`"
VER="0.18"
TMP="/tmp/${PGM}.$$"

#BASEDIR="/appl/mdr/afsp/NL"
BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"

LOG="${BASEDIR}/log/${PGM}.log"

FLU="${BASEDIR}/etc/filer-location-usage.csv"
IN="${BASEDIR}/data/model-version/filer-name-loc-model-os-fw-sn-partner.csv"
OUT="${BASEDIR}/html/models.html"

COUNTRY="`echo ${BASEDIR}| cut -d\/ -f6`"
MAKEFLU=""
#ASUPACKDIR="/appl/mdr/mdrglob/asup-ack/"

DASHBOARDFILE="/appl/mdr/mdrglob/afsp/${COUNTRY}/data/dashboard.asc"
touch ${DASHBOARDFILE}

# Filer End Of Support
FILEREOS="/appl/mdr/mdrglob/afsp/glob/etc/filer-end-of-hw-support.csv"

# IF no FLU then mark as make-FLU
if [ ! -f ${FLU} ]; then
  MAKEFLU=1
fi  # FLU

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

# Read Functions file
source ./afsp-db_functions.sh
DB_FUNC_VER


echo "BASEDIR=${BASEDIR}"

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> models </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="../${COUNTRY}-overview.html">Filer</A> models (& ontap levels / OS-versions) of ${COUNTRY} </B> </FONT>" >> ${OUT}
echo "    <BR>" >> ${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>Model:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>OS Version:</B> </TD> " >> ${OUT}
#echo "  <TD> <FONT face='verdana' size=1> <B>BIOS 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>Usage:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Last ASUP:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>DFM-servername:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Last DFM <BR> update:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Remarks:</B> </TD> " >> ${OUT}
echo "</TR>" >> ${OUT}


DASHBOARDASUPCOL=""

cat ${IN}|sort|grep -v ^#|while read LINE
do
  FILERCOL=""
  SERNRCOL=""
  REMCOL=""

  SERNR="`echo ${LINE}|awk -F\; '{print $6}'|sed 's/ //g'`"
  if [ "${SERNR}" != "" ]; then

  FILER="`echo ${LINE}| awk -F\; '{print $1}'`"
  if [ "${FILER}" = "" ]; then
    FILER="<noname>"
  fi  # FILER
#  LOC="`echo ${LINE}|awk -F\, '{print $2}'|cut -d' ' -f1`"
#  LOC="`grep ${FILER} ${FLU} |awk -F\; '{print $2}'|sed 's/ //g'`"

#  USAGE="`echo ${LINE}|awk -F\, '{print $2}'|cut -d\[ -f2|cut -d\] -f1`"
#  USAGE="`grep ${FILER} ${FLU} |awk -F\; '{print $3}'|sed 's/ //g'`"

  MODEL="`echo ${LINE}|awk -F\; '{print $3}'|sed 's/ //g'`"
  OSVERSION="`echo ${LINE}|awk -F\; '{print $4}'|sed 's/^ //g'`"
  FWVERSION="`echo ${LINE}|awk -F\; '{print $5}'|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'`"
  if [ ${MAKEFLU} ]; then 
    echo "${FILER};${SNMPLOC};;${SNMPCONTACT};" >> ${FLU}
  fi

  # Look for Last ASUP & DFM in database
  DBFILE="${BASEDIR}/data/database/${SERNR}.asc"
  if [ -f ${DBFILE} ]; then 
    DB_READ ${DBFILE}
    LAST_ASUP="${DB_ASUP_GENERATED_ON}"
    SYSTEMID="${DB_SYSTEM_ID}"
    DFM_SERVERNAME="${DB_DFM_SERVERNAME}"
    DFM_UPDATE_DATE="${DB_DFM_UPDATE_DATE}"
    REMARKS="${DB_REMARKS}"
  fi

#echo "${DBFILE} : DFM = ${DB_DFM_SERVERNAME} UPD = ${DB_DFM_UPDATE_DATE}"

# ASUP-ACK
# Get the filename of the last Ack
#  FILE="`grep 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

#    OSVERSION="`grep \"\;${SERNR}\;\" ${MONTH}/*.csv|awk -F\; '{print $4}'|awk '{print $1,$2}'|sort -u`"
echo -n "${OSVERSION};" >> ${TMP}

OSCOL=""
#  OSPART="`echo ${OSVERSION}|cut -d' ' -f1|cut -d'P' -f1|cut -d\. -f1,2`"
#  case ${OSPART} in
case ${OSVERSION} in
7.2*) OSCOL="red" ;;
7.3*) OSCOL="orange" ;;
8.0*) OSCOL="orange" ;;
8.1*) OSCOL="yellow" ;;
8.2*) OSCOL="yellow" ;;
8.3*) OSCOL="lightgreen" ;;
9.*) OSCOL="green" ;;
esac

echo "OSVERSION=${OSVERSION} | OSCOL=${OSCOL} ... "


#  OSCOL=""
#  OSPART="`echo ${OSVERSION}|cut -d' ' -f1|cut -d'P' -f1|cut -d\. -f1,2`"
#  case ${OSPART} in
#    "7.2") OSCOL="red" ;;
#    "7.3") OSCOL="orange" ;;
#    "8.0") OSCOL="orange" ;;
#    "8.1") OSCOL="yellow" ;;
#    "8.2") OSCOL="green" ;;
#    "8.3") OSCOL="green" ;;
#    "9") OSCOL="lightblue" ;;
#	*) OSCOL="purple" ;;
#  esac

#  OSMODE="`echo ${OSVERSION}| cut -d' ' -f2`"
#  case ${OSMODE} in
#    "Cluster-Mode") OSCOL="lightblue" ;;
#  esac

  echo ${OSVERSION}|grep 'RC' 1> /dev/null
  RC=${?}
  if [ ${RC} -eq 0 ]; then
    OSCOL="red"
  fi

  # -- Coloring
  # is model = know. color
  if [ "${MODEL}" != "" ]; then
    MODELCOL=""
    THISYEAR=`date +%Y`
    EOSYEAR="`grep ${MODEL} ${FILEREOS}|grep -v ^#|awk -F\; '{print $2}'|sort -u|cut -d\- -f1`"
	if [ "${EOSYEAR}" != "" ]; then
      let "SUPYEARS= ${EOSYEAR} - ${THISYEAR}"
      if [ ${EOSYEAR} -gt 0 ] && [ ${SUPYEARS} -lt 1 ]; then
        MODELCOL="orange"
      fi
      if [ ${EOSYEAR} -gt 0 ] && [ ${SUPYEARS} -lt 0 ]; then
        MODELCOL="red"
      fi
      if [ ${EOSYEAR} -gt 0 ] && [ ${SUPYEARS} -ge 1 ]; then
        MODELCOL="yellow"
      fi
      if [ ${EOSYEAR} -gt 0 ] && [ ${SUPYEARS} -ge 3 ]; then
        MODELCOL="green"
      fi
	fi  # "${EOSYEAR}
	if [ "${MODEL}" = "model?" ]; then
      MODELCOL="lightblue"
	fi
  else
    MODELCOL="lightblue"
  fi  # MODEL

# Last Asup
  LASTASUPOCOL=""
  YEAR="`date +%Y`"
  ANSW="`echo "${LAST_ASUP}"| grep \" ${YEAR}\"`"
  if [ "${ANSW}" = "" ]; then
    LASTASUPCOL="red"
  fi
  ANSW="`echo "${LAST_ASUP}"| grep \" ${YEAR}\"`"
  if [ "${ANSW}" != "" ]; then
    LASTASUPCOL="orange"
  fi
  MONTH="`date +%b`"
  ANSW="`echo ${LAST_ASUP}| grep \" ${YEAR}\"|grep \" ${MONTH}\"`"
  if [ "${ANSW}" != "" ]; then
    LASTASUPCOL="yellow"
  fi
  DAY="`date +%d`"
  ANSW="`echo ${LAST_ASUP}| grep \" ${YEAR}\"|grep \" ${MONTH}\"|grep \" ${DAY}\"`"
  if [ "${ANSW}" != "" ]; then
    LASTASUPCOL="green"
  fi
  if [ "${LAST_ASUP}" = "" ]; then
    LASTASUPCOL="lightblue"
	DASHBOARDASUPCOL="lightblue"
  fi
  echo "LAST_ASUP=${LAST_ASUP} DAY=${DAY} MONTH=${MONTH} YEAR=${YEAR} ANSW=${ANSW} LASTASUPCOL=${LASTASUPCOL}"

  case "${LASTASUPCOL}" in
    "") 
      DASHBOARDASUPCOL="lightblue"
	;;
    "orange")
      if [ "${DASHBOARDASUPCOL}" = "" ] || [ "${DASHBOARDASUPCOL}" = "green" ] || [ "${DASHBOARDASUPCOL}" = "yellow" ]; then
        DASHBOARDASUPCOL="orange"
      fi
	;;
    "yellow")
      if [ "${DASHBOARDASUPCOL}" = "" ] || [ "${DASHBOARDASUPCOL}" = "green" ]; then
        DASHBOARDASUPCOL="yellow"
      fi
	;;
    "green")
      if [ "${DASHBOARDASUPCOL}" = "" ]; then
        DASHBOARDASUPCOL="green"
      fi
	;;
  esac

# DFM -server & last update
# DFM_SERVERNAME
# DFM_UPDATE_DATE

  if [ "${DFM_SERVERNAME}" != "" ]; then
    DFMCOL="lightgreen"
  else
    DFMCOL="lightblue"
  fi
  CURDATE="`date +%Y-%m-%d`"
  if [ "${DFM_UPDATE_DATE}" = "" ]; then
    LASTDFMCOL="lightblue"
  fi
  if [ "${DFM_UPDATE_DATE}" = "${CURDATE}" ]; then
    LASTDFMCOL="green"
  fi
  if [ "${REMARKS}" != "" ]; then
    REMCOL="yellow"
  fi
# if no more information, maybe filer need to be removed
  if [ "${LAST_ASUP}" = "" ] && [ "${DFM_SERVERNAME}" = "" ] && [ "${DFM_UPDATE_DATE}" = "" ] && [ "${REMARKS}" = "" ]; then
    FILERCOL="orange"
    SERNRCOL="orange"
  fi

  echo "${FILER} ($SERNR) | EOSYEAR=${EOSYEAR} SUPYEARS=${SUPYEARS} => ${MODELCOL}, LastASUP=${LASTASUPCOL} (${DASHBOARDASUPCOL}) ..."

  echo "<TR>" >> ${OUT}
  echo "  <TD BGCOLOR=${FILERCOL}> <FONT face='verdana' size=1> ${FILER} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${SERNRCOL}> <FONT face='verdana' size=1> ${SERNR} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${MODELCOL}> <FONT face='verdana' size=1> ${MODEL} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${OSCOL}> <FONT face='verdana' size=1> ${OSVERSION} </FONT> </TD> " >> ${OUT}
#  echo "  <TD> <FONT face='verdana' size=1> ${FWVERSION} </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> <FONT face='verdana' size=1> ${USAGE} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${LASTASUPCOL}> <FONT face='verdana' size=1> ${LAST_ASUP} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${DFMCOL}> <FONT face='verdana' size=1> ${DFM_SERVERNAME} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${LASTDFMCOL}> <FONT face='verdana' size=1> ${DFM_UPDATE_DATE} </FONT> </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${REMCOL}> <FONT face='verdana' size=1> ${REMARKS} </FONT> </TD> " >> ${OUT}
#  echo "  <TD > <FONT face='verdana' size=1> ${ACKFILEDATI} </FONT> </TD> " >> ${OUT}
  echo "</TR>" >> ${OUT}

  fi  # No SERNR
done

echo "DASHBOARDASUPCOL=${DASHBOARDASUPCOL}"|tee ${DASHBOARDFILE}

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>Model:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>OS Version:</B> </TD> " >> ${OUT}
#echo "  <TD> <FONT face='verdana' size=1> <B>BIOS 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>Usage:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Last ASUP:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>DFM-servername:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Last DFM <BR> update:</B> </TD> " >> ${OUT}
echo "  <TD> <FONT face='verdana' size=1> <B>Remarks:</B> </TD> " >> ${OUT}
echo "</TR>" >> ${OUT}


COUNT="`cat ${IN}|grep -v '^#'|wc -l|awk '{print $1}'`"
echo "<TR>" >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${COUNT} filers </FONT> </TD> " >> ${OUT}
echo "</TR>" >> ${OUT}

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

#echo "Processed at `date` @${HOSTNAME} by ${PGM} v${VER} <P>" >> ${OUT}
#echo "<P>" >> ${OUT}

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

echo "  <TABLE>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>Color legenda: </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>Name & Serial Number: </TD>" >> ${OUT}
echo "      <TD> <FONT face= 'verdana' size=2></FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=orange> <FONT face= 'verdana' size=2>No ASUP & DFM info</FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>Model: </TD>" >> ${OUT}
echo "      <TD BGCOLOR=red> <FONT face= 'verdana' size=2>NO support </FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=orange> <FONT face= 'verdana' size=2>Support < 1 yr</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=yellow> <FONT face= 'verdana' size=2>Support >= 1 yr</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=green> <FONT face= 'verdana' size=2>Support >= 3 yr</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=lightblue> <FONT face= 'verdana' size=2>No info</FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>OS Version: </TD>" >> ${OUT}
echo "      <TD BGCOLOR=red> <FONT face= 'verdana' size=2>Oldest (7.2 / RC)</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=orange> <FONT face= 'verdana' size=2>Older (8.0 / 7.3)</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=yellow> <FONT face= 'verdana' size=2>Old (8.1 /8.2)</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=lightgreen> <FONT face= 'verdana' size=2>Fair 8.3 (cDOT)</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=green> <FONT face= 'verdana' size=2>Latest 9.x (cDOT)</FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2>Last ASUP: </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 "      <TD BGCOLOR=lightblue> <FONT face= 'verdana' size=2>No information</FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=${DASHBOARDASUPCOL}> <FONT face= 'verdana' size=2>DASHBOARDASUPCOL=${DASHBOARDASUPCOL}</FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}
echo "  </TABLE>" >> ${OUT}


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. `date +%Y` 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

