
#!/bin/ksh
# File	: upd_disk-firmware.sh
# By	: Maarten.deBoer@Atos.net, 2015-03-14
# Subject	: Script to process disk-firmware
# set -x
#(0.2)	: Mod; COUNTRY
#(0.3)	: Mod; Location -> Model
#(0.4)	: Mod; Count status #'s -> ksh, Ser.Nr added
PGM="`basename $0|cut -d\. -f1`"
VER="0.4"
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"
OUT="${BASEDIR}/html/disk-firmware.html"

COUNTRY="`echo ${BASEDIR}| cut -d\/ -f6`"
#IN="${BASEDIR}/data/firmware/${COUNTRY}-disk-model-firmware-vendor-status.csv"
IN="${BASEDIR}/data/firmware/${COUNTRY}-disk-model-firmware-vendor-more.csv"
AFSPDB="${BASEDIR}/data/database"

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

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

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:disk-firmware</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 HEIGHT=40px>" >> ${OUT}
echo "    <TD bgColor=#0066A1>" >> ${OUT}
echo "      <FONT COLOR=white face='Verdana' size='5'> <B> <A HREF="index.html">Filer</A> disk-firmware 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 "</TABLE>" >> ${OUT}

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

echo "<TABLE BORDER=1 >" >> ${OUT}
echo "  <TR>" >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Filer:</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>Diskmodel:</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>(curr.)Firmware:</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Count:</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Patchlevel NetApp (to be):</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Patchlevel IBM (to be):</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Status:</B> </TD> " >> ${OUT}
echo "  </TR>" >> ${OUT}

# DISKMODEL;FILER;DISKFW;DISKVENDOR;CNT;PATCHLEVEL1;PATCHLEVEL2;PATCHSTATUS;

TTLCNT0=0
TTLCNT1=0
TTLCNT2=0
TTLCNT3=0

cat ${IN}|grep -v ^#|sort -t';' -k 9 -r -k 2|while read LINE
do
  DISKMODEL="`echo ${LINE}|awk -F\; '{print $1}'`"
  FILER="`echo ${LINE}|awk -F\; '{print $2}'`"
  DISKFW="`echo ${LINE}|awk -F\; '{print $3}'`"
  CNT="`echo ${LINE}|awk -F\; '{print $5}'`"
  PATCHLEVEL1="`echo ${LINE}|awk -F\; '{print $6}'`"
  PATCHLEVEL2="`echo ${LINE}|awk -F\; '{print $7}'`"
  STATUS="`echo ${LINE}|awk -F\; '{print $8}'`"
  STATUSNR="`echo ${LINE}|awk -F\; '{print $9}'`"

#  LOC="`grep ${FILER} ${FLU} |awk -F\; '{print $2}'|sed 's/ //g'`"
#  USAGE="`grep ${FILER} ${FLU} |awk -F\; '{print $3}'|sed 's/ //g'`"

  DBFILE="`grep CONTROLER_NAME=${FILER} ${AFSPDB}/*.asc|cut -d\: -f1`"
  FILERMODEL="?"
  if [ -f ${DBFILE} ]; then
    DB_READ ${DBFILE}
    FILERMODEL="${DB_MODEL_NAME}"
    FILERSERNR="${DB_SERIAL_NUMBER}"
  fi


  case ${STATUSNR} in
    0) let "TTLCNT0= ${TTLCNT0} + ${CNT}"; DISKCOL="green" ;;
    1) let "TTLCNT1= ${TTLCNT1} + ${CNT}"; DISKCOL="yellow" ;;
    2) let "TTLCNT2= ${TTLCNT2} + ${CNT}"; DISKCOL="orange" ;;
    3) let "TTLCNT3= ${TTLCNT3} + ${CNT}"; DISKCOL="red" ;;
  esac
  if [ "${STATUS}" = "" ]; then
    DISKCOL=""
  fi

  echo "${DISKMODEL};${FILER};(${FILERSERNR});(${FILERMODEL});${DISKFW};${CNT};${PATCHLEVEL1};${PATCHLEVEL2};${STATUS};${STATUSNR}; ..."


#  case ${LOC} in
#    "NL-Eindhoven-HWU") LOCCOL="orange" ;;
#    "NL-Eindhoven-Hurk") LOCCOL="yellow" ;;
#    "NL-Eindhoven-Best") LOCCOL="green" ;;
#    "NL-Amsterdam-NRW") LOCCOL="lightblue" ;;
#    *) LOCCOL="grey";;
#  esac

  

  echo "<TR>" >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${FILER} </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${FILERSERNR} </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${FILERMODEL} </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${DISKMODEL} </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${DISKFW} </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${CNT} </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${PATCHLEVEL1} </TD> " >> ${OUT}
  echo "  <TD> <FONT face='verdana' size=1> ${PATCHLEVEL2} </TD> " >> ${OUT}
  echo "  <TD BGCOLOR=${DISKCOL}> <FONT face='verdana' size=1> ${STATUS} </TD> " >> ${OUT}
  echo "</TR>" >> ${OUT}

done  # cat ${IN}

# Last row
echo "  <TR>" >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Filer:</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>Diskmodel:</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>(curr.)Firmware:</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Count:</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Patchlevel NetApp (to be):</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Patchlevel IBM (to be):</B> </TD> " >> ${OUT}
echo "    <TD> <FONT face='verdana' size=1> <B>Status:</B> </TD> " >> ${OUT}
echo "  </TR>" >> ${OUT}

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

# Calculate %
TOTALTTL=${TTLCNT0}
let "TOTALTTL= ${TOTALTTL} + ${TTLCNT1}"
let "TOTALTTL= ${TOTALTTL} + ${TTLCNT2}"
let "TOTALTTL= ${TOTALTTL} + ${TTLCNT3}"
let "PERCCNT0= ${TTLCNT0} * 100 / ${TOTALTTL}"
let "PERCCNT1= ${TTLCNT1} * 100 / ${TOTALTTL}"
let "PERCCNT2= ${TTLCNT2} * 100 / ${TOTALTTL}"
let "PERCCNT3= ${TTLCNT3} * 100 / ${TOTALTTL}"

# 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>Status:</TD>" >> ${OUT}
echo "      <TD BGCOLOR=green> <FONT face= 'verdana' size=2> Patchlevel OK </FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=yellow> <FONT face= 'verdana' size=2> No (NetApp- / IBM-) patchlevel </FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=orange> <FONT face= 'verdana' size=2> Patchlevel less (-1) then OK </FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=red> <FONT face= 'verdana' size=2> Patchlevel to (-2) low </FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}

echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2> Disks:</TD>" >> ${OUT}
echo "      <TD BGCOLOR=green> <FONT face= 'verdana' size=2> ${TTLCNT0} = ${PERCCNT0} % </FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=yellow> <FONT face= 'verdana' size=2> ${TTLCNT1} = ${PERCCNT1} % </FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=orange> <FONT face= 'verdana' size=2> ${TTLCNT2} = ${PERCCNT2} % </FONT> </TD>" >> ${OUT}
echo "      <TD BGCOLOR=red> <FONT face= 'verdana' size=2> ${TTLCNT3} = ${PERCCNT3} % </FONT> </TD>" >> ${OUT}
echo "      <TD > <FONT face= 'verdana' size=2> ${TOTALTTL} = 100 % </FONT> </TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}

echo "    <TR>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2> Remarks:</TD>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2> The amount of disks may be devided by 2 <BR> (in case of HA-pairs).</TD>" >> ${OUT}
echo "      <TD><FONT face= 'verdana' size=2> The percentage (%) is correct.</TD>" >> ${OUT}
echo "    </TR>" >> ${OUT}

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

echo "<P>" >> ${OUT}
 
#echo "</TR>" >> ${OUT}

echo "<TABLE WIDTH=100% > " >> ${OUT}
echo "  <TR> " >> ${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}


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

