
#!/bin/sh
# File	: compare-filer-lists.sh
# By	: Maarten.deBoer@atos.net, 150914
# Subject	: Script to compare the NetApp-filer-list with the Atos-filer-list
#set -x
#(0.2)	: Mod `grep -vi WORLDLINE`
#(0.3)	: Mod; Check ASUP by filername in stead of ser.nr
#(0.4)	: Add Lovercase CONTROLERNAME
PGM="`basename $0|cut -d\. -f1`" 
VER="0.4"
TMP="/tmp/${PGM}.$$"

BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
NETAPPHOME="/appl/mdr/mdrglob/afsp/netapp"
LOG="${BASEDIR}/log/${PGM}.log"

MAILTO="maarten.deboer@atos.net"

# Input
NETAPPLIST1="/appl/mdr/mdrglob/afsp/netapp/data/netapp-filer-list_2014-03-25.csv"
NETAPPLIST2="/appl/mdr/mdrglob/afsp/netapp/data/netapp-filer-list_2015-03-09.csv"
ASUPLIST="/appl/mdr/mdrglob/afsp/glob/data/asup-data.csv"

# Output
ATOSLIST="/appl/mdr/mdrglob/afsp/glob/data/atos-filer-list.csv"
OUT="/appl/mdr/mdrglob/afsp/glob/data/compare-filer-list.csv"

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

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

DB_FUNC_VER

if [ ! -f ${NETAPPLIST1} ]; then
  echo "NO ${NETAPPLIST1} found. So exiting ..."|tee -a ${LOG}
  exit 2
fi
if [ ! -f ${NETAPPLIST2} ]; then
  echo "NO ${NETAPPLIST2} found. So exiting ..."|tee -a ${LOG}
  exit 2
fi
if [ ! -f ${ASUPLIST} ]; then
  echo "NO ${ASUPLIST} found. So exiting ..."|tee -a ${LOG}
  exit 2
fi


echo "  Atos-list generated from countries"|tee -a ${LOG}
echo "# Atos-list generated from countries `date`" > ${ATOSLIST}


for COUNTRY in `cd /appl/mdr/mdrglob/afsp/; ls -1d ??`
do
  echo "${COUNTRY} ..."
  # If database, then cd to database
  if [ -d /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database ]; then
    cd /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database
	ls -1 | while read DBFILE
	do
	  DB_READ ${DBFILE}
      echo "${DB_CONTROLER_NAME};${DB_SERIAL_NUMBER};${DB_MODEL_NAME};${DB_OS_VERSION};${COUNTRY}; " >> ${ATOSLIST}
	done  # FILE
  fi  # database
  if [ -f /appl/mdr/mdrglob/afsp/${COUNTRY}/data/model-version/dfm-filer-name-loc-model-os-fw-sn-partner.csv ]; then
    cat /appl/mdr/mdrglob/afsp/${COUNTRY}/data/model-version/dfm-filer-name-loc-model-os-fw-sn-partner.csv|grep -v ^#|while read LINE
	do
# With lowercase
	  CONTROLERNAME="`echo ${LINE}|awk -F\; '{print $1}'|tr '[A-Z]' '[a-z]'`"
	  MODEL="`echo ${LINE}|awk -F\; '{print $3}'`"
	  OSVERSION="`echo ${LINE}|awk -F\; '{print $4}'`"
	  SERIALNUMBER="`echo ${LINE}|awk -F\; '{print $6}'`"

      echo "${CONTROLERNAME};${SERIALNUMBER};${MODEL};${OSVERSION};${COUNTRY}; " >> ${ATOSLIST}
	done  # cat
  fi  # FILE
  if [ -f /appl/mdr/mdrglob/afsp/${COUNTRY}/data/model-version/filer-name-loc-model-os-fw-sn-partner.csv ]; then
    cat /appl/mdr/mdrglob/afsp/${COUNTRY}/data/model-version/filer-name-loc-model-os-fw-sn-partner.csv|grep -v ^#|while read LINE
	do
	  CONTROLERNAME="`echo ${LINE}|awk -F\; '{print $1}'|tr '[A-Z]' '[a-z]'`"
	  MODEL="`echo ${LINE}|awk -F\; '{print $3}'`"
	  OSVERSION="`echo ${LINE}|awk -F\; '{print $4}'`"
	  SERIALNUMBER="`echo ${LINE}|awk -F\; '{print $6}'`"

      echo "${CONTROLERNAME};${SERIALNUMBER};${MODEL};${OSVERSION};${COUNTRY}; " >> ${ATOSLIST}
	done  # cat
  fi  # FILE
done  # ${COUNTRY}


echo "  Processing NetApp & ASUP-list ..."|tee -a ${LOG}

# Creating grandlist with FILERNAME, SERNR 
echo "# `date` ${PGM} v${VER} " > ${TMP}
cat ${ATOSLIST}grep -v ^#|awk -F\; '{print $2";"$1";"}' >>  ${TMP}
cat ${ASUPLIST}|grep -v ^#|awk -F\; '{print $6";"$1";"}' >>  ${TMP}
# Get Ser.Nr & filernames. And lowercase those
cat ${NETAPPLIST1}|grep -v ^#|grep -vi WORLDLINE|awk -F\; '{print $3";"$4";"}'|tr '[A-Z]' '[a-z]' >>  ${TMP}
cat ${NETAPPLIST2}|grep -v ^#|grep -vi WORLDLINE|awk -F\; '{print $5";"$8";"}'|tr '[A-Z]' '[a-z]' >>  ${TMP}

echo "# SERNR;CONTROLERNAME;ATOSFOUND;COUNTRY0;ASUPFOUND;NETAPP1FOUND;COUNTRY1;NETAPP2FOUND;COUNTRY2;" > ${OUT}
cat ${TMP}|grep -v ^#|sort -u| while read LINE
do
#  echo ${LINE}
  SERNR="`echo ${LINE}|awk -F\; '{print $1}'`"
  if [ "${SERNR}" = "" ]; then
    SERNR="*"
  fi
  CONTROLERNAME="`echo ${LINE}|awk -F\; '{print $2}'|tr '[A-Z]' '[a-z]'`"
  if [ "${CONTROLERNAME}" = "unknown" ]; then
    CONTROLERNAME="*"
  fi

  ASUPFOUND="`grep -i ${CONTROLERNAME} ${ASUPLIST}|grep -i ${CONTROLERNAME}`"
  if [ "${ASUPFOUND}" != "" ]; then
    ASUPFOUND="x"
  fi
  COUNTRY0=""
  ATOSFOUND="`grep ${SERNR} ${ATOSLIST}|grep -i ${CONTROLERNAME}`"
  if [ "${ATOSFOUND}" != "" ]; then
    ATOSFOUND="x"
    COUNTRY0="`grep ${SERNR} ${ATOSLIST}|awk -F\; '{print $5}'|head -1`"
  fi
  COUNTRY1=""
  NETAPP1FOUND="`grep ${SERNR} ${NETAPPLIST1}|grep -i ${CONTROLERNAME}`"
  if [ "${NETAPP1FOUND}" != "" ]; then
    NETAPP1FOUND="x"
    COUNTRY1="`grep ${SERNR} ${NETAPPLIST1}|awk -F\; '{print $12}'|head -1`"
  fi
  COUNTRY2=""
  NETAPP2FOUND="`grep ${SERNR} ${NETAPPLIST2}|grep -i ${CONTROLERNAME}`"
  if [ "${NETAPP2FOUND}" != "" ]; then
    NETAPP2FOUND="x"
    COUNTRY2="`grep ${SERNR} ${NETAPPLIST2}|awk -F\; '{print $12}'|head -1`"
  fi

#  echo "${SERNR};${CONTROLERNAME};${ATOSFOUND};${COUNTRY0};${ASUPFOUND};${NETAPP1FOUND};${COUNTRY1};${NETAPP2FOUND};${COUNTRY2};" >> ${OUT}
  echo "${SERNR};${CONTROLERNAME};${COUNTRY0};${ASUPFOUND};${COUNTRY1};${COUNTRY2};"|tee -a ${OUT}

done  # LINE

date | mailx -a ${OUT} -s "AFSP: [${PGM} v${VER}]" ${MAILTO}

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

