
#!/bin/sh
# File	: upd_rac_info.sh
# By	: Maarten.deBoer@Atos.net, 240213,250710
# Subject	: Script to update the Dell iDRAC Web-page
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
RCFILE="${HOME}/etc/${PGM}.rc"
SSH="/usr/bin/ssh -n"
USER="nl19471"
RAC_PWD="${HOME}/etc/dell.pwd"
FS_1=5
FS_H=5
HEADER="<A HREF='/techlab'>TechLab:</A> Dell/iDRAC page"

WEBUPD=1
BASEDIR=""
WEBDIR="/var/www/html/techlab/idrac"
HTML="${BASEDIR}/${WEBDIR}/index.html"
EXTURL="http://10.90.32.23/techlab/idrac/"
TITLE="TechLab: Dell/iDRAC page"
RAC_DIR="/iDRAC-info"


SYSTEMS="${HOME}/etc/dell.hosts"
FILTER="[?]*"

if [ "${1}" != "" ]; then
  FILTER="${1}"
fi

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
if [ "${RCFILE}" != "" ] && [ -f ${RCFILE} ]; then
  echo "  RCFILE (${RCFILE}) found. Using ..."|tee -a ${LOG}
  . ${RCFILE}
fi
echo "  BASEDIR=${BASEDIR}"
echo "  FILTER(1)=${FILTER}"
echo "  SYSTEMS=${SYSTEMS}"
echo "  WEBUPD=${WEBUPD}"
echo "  WEBDIR=${WEBDIR}"
echo "  HTML=${HTML}"
echo "  TITLE=${TITLE}"
echo "  HEADER=${HEADER}"
sleep 1

touch ${TMP}

if [ ! -f ${SYSTEMS} ]; then
  echo "  NO SYSTEMS (${SYSTEMS}) found. Exiting ..."|tee -a ${LOG}
  exit 4
fi
if [ ${WEBUPD} ] && [ ! -d ${WEBDIR} ]; then
  echo "  NO WEBDIR (${WEBDIR}) found. Exiting ..."|tee -a ${LOG}
  exit 5
fi
if [ ${WEBUPD} ]; then
echo "<!DOCTYPE html>" > ${HTML}
echo "<HTML>" >> ${HTML}
echo "<HEAD>" >> ${HTML}
echo "<META charset='UTF-8'>" >> ${HTML}
echo "<META content=Maarten de Boer name=AUTHOR>" >> ${HTML}
echo "<TITLE> ${TITLE} </TITLE>" >> ${HTML}
echo "<basefont face='verdana'>" >> ${HTML}
echo "</HEAD>" >> ${HTML}
echo "<BODY aLink=red bgColor=#D3D0D3 link=red text=#000000 vLink=#ff0000>" >> ${HTML}

echo "<TABLE BORDER=0 WIDTH='100%' cellspacing='0'>" >> ${HTML}
echo "<TR WIDTH=100% HEIGHT=40px>" >> ${HTML}
echo "  <TD bgColor=#0066A1>" >> ${HTML}
echo "    <FONT COLOR=white face='verdana' size=${FS_H}> ${HEADER} <BR> </FONT>" >> ${HTML}
echo "    <DIV align=right>" >> ${HTML}
echo "      <FONT COLOR=white face='verdana' size='-3'> For internal use. (c) Atos `date +%Y` </B> </FONT>" >> ${HTML}
echo "    </DIV>" >> ${HTML}
echo "  </TD>" >> ${HTML}
echo "</TR>" >> ${HTML}
echo "</TABLE>" >> ${HTML}

echo "<TABLE BORDER=1 WIDTH='100%' cellspacing='0'>" >> ${HTML}

echo "  <TR WIDTH=100% >" >> ${HTML}
echo "    <TH><FONT SIZE=${FS_1}> IP-ADDR (Name): </TH>" >> ${HTML}
echo "    <TH><FONT SIZE=${FS_1}> Power state: </TH>" >> ${HTML}
echo "    <TH><FONT SIZE=${FS_1}> System Model: </TH>" >> ${HTML}
echo "    <TH><FONT SIZE=${FS_1}> Service Tag: </TH>" >> ${HTML}
echo "    <TH><FONT SIZE=${FS_1}> DNS RAC Name: </TH>" >> ${HTML}
echo "    <TH><FONT SIZE=${FS_1}> iDRAC(FirmWare) version: </TH>" >> ${HTML}
echo "    <TH><FONT SIZE=${FS_1}> (OS) Hostname: </TH>" >> ${HTML}
echo "  </TR>" >> ${HTML}
fi  # WEBUPD


cat ${SYSTEMS}|grep -v ^#|egrep "${FILTER}"|while read LINE
do
  IP_ADDR=`echo ${LINE}|awk '{print $1}'`
  NAME=`echo ${LINE}|awk '{print $2}'`
  COMMENTS=`echo ${LINE}|cut -d\# -f2-`
  echo "  NAME=${NAME} IP_ADDR=${IP_ADDR} COMMENTS=${COMMENTS}"

  DNS_RAC_NAME=`grep "DNS RAC Name" ${RAC_DIR}/${NAME}/*getsysinfo*|cut -d\= -f2|tail -1`
  PWR_STATE=`grep "Power Status" ${RAC_DIR}/${NAME}/*getsysinfo*|cut -d\= -f2|tail -1|awk '{print $1}'`
  FW_VERSION=`grep "Firmware Version" ${RAC_DIR}/${NAME}/*getsysinfo*|cut -d\= -f2|tail -1`

  SYSTEM_MODEL=`grep "System Model" ${RAC_DIR}/${NAME}/*getsysinfo*|cut -d\= -f2|tail -1`
  SYSTEM_BIOS=`grep "System BIOS Version" ${RAC_DIR}/${NAME}/*getsysinfo*|cut -d\= -f2|tail -1`
  SERVICE_TAG=`grep "Service Tag" ${RAC_DIR}/${NAME}/*getsysinfo*|cut -d\= -f2|tail -1`
  HOST_NAME=`grep "Host Name" ${RAC_DIR}/${NAME}/*getsysinfo*|cut -d\= -f2|tail -1`


  IP_BGC=""
  if [ "${PWR_STATE}" == "ON" ]; then
    IP_BGC="lightgreen"
  fi
  if [ "${PWR_STATE}" == "OFF" ]; then
    IP_BGC="yellow"
  fi
  if [ "${IP_ADDR}" == "" ]; then
    IP_BGC="yellow"
  fi

  if [ ${WEBUPD} ]; then
    echo "  <TR WIDTH=100% >" >> ${HTML}
#    echo "    <TD BGCOLOR=${IP_BGC}><FONT SIZE=${FS_1}> ${NAME} (<A HREF=\"//${IP_ADDR}/\" target="_blank">${IP_ADDR}</A>) -- ${COMMENTS} </FONT></TD>" >> ${HTML}
    echo "    <TD BGCOLOR=${IP_BGC}><FONT SIZE=${FS_1}> <A HREF=\"//${IP_ADDR}/\" target="_blank">${IP_ADDR}</A> (${NAME}) </FONT></TD>" >> ${HTML}
    echo "    <TD BGCOLOR=${IP_BGC}><FONT SIZE=${FS_1}> ${PWR_STATE} </FONT></TD>" >> ${HTML}
    echo "    <TD><FONT SIZE=${FS_1}> ${SYSTEM_MODEL} </FONT></TD>" >> ${HTML}
    echo "    <TD><FONT SIZE=${FS_1}> ${SERVICE_TAG} </FONT></TD>" >> ${HTML}
    echo "    <TD><FONT SIZE=${FS_1}> ${DNS_RAC_NAME} </FONT></TD>" >> ${HTML}
    echo "    <TD><FONT SIZE=${FS_1}> ${FW_VERSION} </FONT></TD>" >> ${HTML}
    echo "    <TD><FONT SIZE=${FS_1}> ${HOST_NAME} </FONT></TD>" >> ${HTML}
    echo "  </TR>" >> ${HTML}
  fi  # WEBUPD

  echo "  ${NAME} (${IP_ADDR}) = ${INFO}"

done  # LINE

if [ ${WEBUPD} ]; then
echo "</TABLE>" >> ${HTML}

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

echo "</BODY>" >> ${HTML}
echo "</HTML>" >> ${HTML}
fi  # WEBUPD



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

