
#!/bin/bash
# File	: upd_de-carbon.sh
# By	: Maarten.deBoer, 201019
# Subject	: Script to update the de-carbon website
#(0.2),201020	: Add unknown systems in 1st row
PGM="`basename $0|cut -d\. -f1`"
VER="0.2"
TMP="/tmp/${PGM}.$$.asc"
BASEDIR="/appl/netapp/de-carbon"
LOG="${BASEDIR}/log/${PGM}.log"
RCFILE="${BASEDIR}/etc/${PGM}.rc"
UP_DATI=`date +%Y-%m-%d-%H-%M-%S`
MAIL=1
MAILTO="maarten.deboer@atos.net"

DATE=`date +%Y-%m-%d`

DATADIR="${BASEDIR}/data"
ETCDIR="${BASEDIR}/etc"

PAGEDIR="/appl/netapp/html/de-carbon"
TITLE="De-Carbon Dashboard"

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

if [ -f ${RCFILE} ]; then
  echo "  RCFILE(${RCFILE}) found. Using it ..."|tee -a ${LOG}
  . ${RCFILE}
fi
SYS2COUNTRY2VENDOR="${ETCDIR}/systems2country2vendor.csv"
PAGE="${PAGEDIR}/index.html"

echo "PGM=${PGM}"
echo "VER=${VER}"
echo "LOG=${LOG}"
echo "DATADIR=${DATADIR}"
echo "PAGEDIR=${PAGEDIR}"
echo "PAGE=${PAGE}"
echo "TITLE=${TITLE}"
sleep 1

if [ ! -f ${SYS2COUNTRY2VENDOR} ]; then
  echo "  NO System2Country2Vendor-file (${SYS2COUNTRY2VENDOR}) found. Exiting ..."|tee -a ${LOG}
  exit 3
fi

touch ${PAGE}

echo "<!DOCTYPE html>" > ${PAGE}
echo "<HTML>" >> ${PAGE}
echo "<HEAD>" >> ${PAGE}
echo "<META charset='UTF-8'>" >> ${PAGE}
echo "<META name='author' content='Maarten de Boer' />" >> ${PAGE}
echo "<META name='author' content='Maarten de Boer' />" >> ${PAGE}
echo "<META name='generator' content='${PGM} v${VER}' />">> ${PAGE}
echo "<META name='up-dati' content='${UP_DATI}' />">> ${PAGE}
echo "<TITLE>${TITLE}</TITLE>" >> ${PAGE}
echo "<basefont face='verdana'>" >> ${PAGE}
echo "</HEAD>" >> ${PAGE}
echo "<BODY aLink=red bgColor=#D3D0D3 link=red text=#000000 vLink=red>" >> ${PAGE}
echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${PAGE}
echo "<TR HEIGHT=40px>" >> ${PAGE}
echo "  <TD BGCOLOR=#5BC3FC>" >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='8'> <B>${TITLE}</B> </FONT>" >> ${PAGE}
echo "    <BR>" >> ${PAGE}
echo "    <DIV align=left>" >> ${PAGE}
echo "    <FONT COLOR=black face='verdana' size='3'>For systems in country => </A>  </FONT> " >> ${PAGE}
echo "     </B> </FONT> " >> ${PAGE}
echo "    <DIV align=right>" >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='-3'>At `hostname` </B> </FONT>" >> ${PAGE}
echo "    </DIV>" >> ${PAGE}
echo "  </TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}


echo "<TABLE BORDER=1 WIDTH='100%' cellspacing='0'>" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD>" >>  ${PAGE}
echo "      <FONT COLOR=black face='verdana' size='2'><B>Unknown</FONT>" >> ${PAGE}
echo "    </TD>" >>  ${PAGE}

# Find the last DATAFILE file
DATAFILE=`ls -1tr ${DATADIR}/country-system-tb_*.csv|tail -1`
echo "  DATAFILE=${DATAFILE}"
UNKNOWN=`ls -1tr ${DATADIR}/unknown-system-tb_*.csv|tail -1`

# Countries
cat ${SYS2COUNTRY2VENDOR}|grep -v ^#|awk -F\; '{print $1}'|sort -u|while read COUNTRY REST
do
  echo "  ${COUNTRY} "
  echo "    <TD>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='2'><B><CENTER>${COUNTRY}</FONT>" >> ${PAGE}
  echo "    </TD>" >>  ${PAGE}
done  # ${SYS2COUNTRY}
echo "  </TR>" >> ${PAGE}

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

echo "    <TD>" >>  ${PAGE}
#    echo "    <FONT COLOR=black face='verdana' size='3'> <B> UNKNOWN : </FONT> <BR>" >> ${PAGE}
if [ -f ${UNKNOWN} ]; then
  cat ${UNKNOWN}|grep -v ^#|awk -F\; '{print $2}'|sort| while read SYSNAME REST
  do
    echo "    <FONT COLOR=blue face='verdana' size='2'> ${SYSNAME} </FONT> <BR>" >> ${PAGE}
  done  # SYSNAME

#echo "    <FONT COLOR=green face='verdana' size='2'><B> SSD TiB</FONT> <BR>" >> ${PAGE}
#echo "    <FONT COLOR=orange face='verdana' size='2'><B> HDD TiB</FONT> <BR>" >> ${PAGE}
#echo "    <FONT COLOR=red face='verdana' size='2'><B> 7mode TiB</FONT> <BR>" >> ${PAGE}


fi  # UNKNOWN

echo "    </TD>" >>  ${PAGE}

cat ${SYS2COUNTRY2VENDOR}|grep -v ^#|awk -F\; '{print $1}'|sort -u|while read COUNTRY REST
do
  echo "  ${COUNTRY} "
  echo "    <TD>" >>  ${PAGE}

  cat ${DATAFILE}|grep "^${COUNTRY};"|sort|grep -v ^#|sort|awk -F\; '{print $2}'|while read SYSNAME REST
  do
    echo "   ${SYSNAME} "

# When a SYStemNAME, then process for html-PAGE
    if [ "${SYSNAME}" != "" ]; then

      SSD=`grep "${COUNTRY};" ${DATAFILE}|grep "${SYSNAME};"|grep -v ^#|sort|awk -F\; '{print $3}'`
      HDD=`grep "${COUNTRY};" ${DATAFILE}|grep "${SYSNAME};"|grep -v ^#|sort|awk -F\; '{print $4}'`
      SMD=`grep "${COUNTRY};" ${DATAFILE}|grep "${SYSNAME};"|grep -v ^#|sort|awk -F\; '{print $5}'`
      echo "     ${SSD} ${HDD} ${SMD} "
  
      echo "      <TABLE BORDER=0 width='0%' cellspacing='0'>" >> ${PAGE}
      echo "        <TR>" >> ${PAGE}

# Calculate PCT for "bar"-graph
      TTL=`expr ${SSD} + ${HDD} + ${SMD}`
      if [ ${TTL} -gt 0 ]; then
        PCT1=`expr ${SSD} \* 100 / ${TTL}`
        PCT2=`expr ${HDD} \* 100 / ${TTL}`
        PCT3=`expr ${SMD} \* 100 / ${TTL}`
      else
        PCT1=0
        PCT2=0
        PCT3=0
      fi
      echo "${PCT1} ${PCT2} ${PCT3} / ${TTL}"
      VENDOR=`grep "${SYSNAME}" ${SYS2COUNTRY2VENDOR}|grep -v ^#|awk -F\; '{print $3}'`
      V=""
      if [ "${VENDOR}" = "netapp" ]; then
        V="N"
      fi
echo "VENDOR=${VENDOR} V=${V}"
      echo "          <TD WIDTH='1%'><FONT COLOR=black face='verdana' size='2'>(${V}):${SYSNAME}:</FONT> </TD>" >> ${PAGE}
      echo "          <TD WIDTH=${PCT1}% BGCOLOR=green><FONT COLOR=black face='verdana' size='2'>${SSD}</FONT> </TD>" >> ${PAGE}
      echo "          <TD WIDTH=${PCT2}% BGCOLOR=orange><FONT COLOR=black face='verdana' size='2'>${HDD}</FONT> </TD>" >> ${PAGE}
      echo "          <TD WIDTH=${PCT3}% BGCOLOR=red><FONT COLOR=black face='verdana' size='2'>${SMD}</FONT> </TD>" >> ${PAGE}

      echo "        </TR>" >> ${PAGE}
      echo "      </TABLE>" >> ${PAGE}

    fi  # SYSNAME <> ""

  done  # SYSNAME

  echo "    </TD>" >>  ${PAGE}
done  # ${DATAFILE}

echo "  </TR>" >> ${PAGE}

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

echo "<TABLE BORDER=0>" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD BGCOLOR=green><FONT COLOR=black face='verdana' size='2'>SSD TiB</FONT> </TD>" >> ${PAGE}
echo "    <TD BGCOLOR=orange><FONT COLOR=black face='verdana' size='2'>HDD TiB</FONT> </TD>" >> ${PAGE}
echo "    <TD BGCOLOR=red><FONT COLOR=black face='verdana' size='2'>7mode TiB</FONT> </TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${PAGE}
echo "<TR>" >> ${PAGE}
echo "  <TD bgColor=#0066A1 >" >> ${PAGE}
echo "    <FONT COLOR=white face='Verdana' size='1'>" >> ${PAGE}
echo "      <CENTER>" >> ${PAGE}
echo "Contact & Content Owner: <A HREF=mailto:Maarten.deBoer@Atos.net>Maarten de Boer</A> |Last Update: `date` [${PGM} v${VER}] <BR>" >> ${PAGE}
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." >> ${PAGE}
echo "      </CENTER>" >> ${PAGE}
echo "    </FONT>" >> ${PAGE}
echo "  </TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}
echo "</BODY>" >> ${PAGE}
echo "</HTML>" >> ${PAGE}


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

