
#!/bin/sh
# File	":
# By	: Maarten.deBoer@Atos.net, 200827
# Subject	: Script to check diff between AFSP and CMDB in CSV-file
#
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
TMP="/tmp/${PGM}.$$"

BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
LOG="${BASEDIR}/log/${PGM}.log"
DATADIR="${BASEDIR}/data"
ALLCOUNRIESFILE="/tmp/${PGM}.all"
HOSTNAME=`hostname |cut -d\. -f1`

INDIR="${HOME}/afsp-cmdb"
CSV_IN="${INDIR}/NetApp-Install-Base-EOSLXv0.8_SB.csv"
IN_AFSP="/tmp/${PGM}_in-afsp_`date +%Y-%m-%d`.csv"
NOT_IN_AFSP="/tmp/${PGM}_not-in-afsp_`date +%Y-%m-%d`.csv"

MAIL=""
MAILTO="maarten.deboer@atos.net"
MAIL=1

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

if [ ! -f ${CSV_IN} ]; then
  echo "  NO CSV_IN (${CSV_IN}). So, exiting ..."|tee -a ${LOG}
  exit 3
fi

touch ${TMP}

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

if [ ! -f ${ALLCOUNRIESFILE} ]; then
  echo "  Collecting of all countries; hostname & ser.nr"|tee -a ${LOG}
  echo "  And filling ALLCOUNRIESFILE (${ALLCOUNRIESFILE}) for re-usage"|tee -a ${LOG}
  echo "# {COUNTRY};{DB_CONTROLER_NAME};{DB_SERIAL_NUMBER};{DB_SYSTEM_ID};" > ${ALLCOUNRIESFILE}

  for COUNTRY in `cd /appl/mdr/mdrglob/afsp/; ls -1d ??`
  do
    echo -n " ${COUNTRY} "
    for DBFILE in `ls -1 /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database/*.asc`
    do
      DB_READ ${DBFILE}
      echo "${COUNTRY};${DB_CONTROLER_NAME};${DB_SERIAL_NUMBER};${DB_SYSTEM_ID};" >> ${ALLCOUNRIESFILE}
    done  # DBFILE
  done  # COUNTRY
  echo ""
else
  echo "  ALLCOUNRIESFILE (${ALLCOUNRIESFILE}) found. Re-using this"|tee -a ${LOG}
fi  # -f ${ALLCOUNRIESFILE}

# 1st line of CSV_IN
FIRST_LINE=`head -1 ${CSV_IN}`
echo ${FIRST_LINE}
echo ${FIRST_LINE} > ${IN_AFSP}
echo ${FIRST_LINE} > ${NOT_IN_AFSP} 
sleep 1

echo "  Readding CSV (${CSV_IN}) ..."
cat ${CSV_IN}|grep -v ^#|while read LINE
do
#  echo "${LINE}"
#  echo -n "."
  CSV_SER_NR=`echo ${LINE}|awk -F\; '{print $1}'`
  CSV_COUNTRY=`echo ${LINE}|awk -F\; '{print $6}'`
  CSV_CONTR_NAME=`echo ${LINE}|awk -F\; '{print $11}'`

  grep "${CSV_CONTR_NAME}\;${CSV_SER_NR}" ${ALLCOUNRIESFILE} > /dev/null
  EC=${?}
  if [ ${EC} -eq 0 ]; then
    echo "${CSV_CONTR_NAME}|${CSV_SER_NR}|${CSV_COUNTRY}|"
    if [ "${LINE}" != "" ]; then
      echo "${LINE}"|tee -a ${IN_AFSP}
    fi
  else
    if [ "${LINE}" != "" ]; then
      echo "${LINE}"|tee -a ${NOT_IN_AFSP}
    fi
  fi

#  echo "|${CSV_SER_NR}|${CSV_CONTR_NAME}|${CSV_COUNTRY}|"

done  # read LINE
#echo ""

if [ ${MAIL} ]; then
  echo "# `date` by ${PGM} v${VER} at ${HOSTNAME}" >> ${IN_AFSP}
  echo "# `date` by ${PGM} v${VER} at ${HOSTNAME}" >> ${NOT_IN_AFSP}
  echo "# `date` by ${PGM} v${VER} at ${HOSTNAME}" | mailx -a ${IN_AFSP} -a ${NOT_IN_AFSP} -s "In or not in AFSP [${PGM} v${VER}]" ${MAILTO}
  echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
fi  # MAIL



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

