
#!/bin/sh
# File	: mail_afsp-eos.sh
# By	: Maarten.deBoer@atos.net, 191004
# Subject	: Script to mail AFSP(EOS) info /country
PGM="`basename $0|cut -d\. -f1`" 
VER="0.1"
TMP="/tmp/${PGM}.$$"
HOSTNAME=`hostname|cut -d\. -f1`

BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
LOG="${BASEDIR}/log/${PGM}.log"
RCFILE="${BASEDIR}/etc/${PGM}.rc"
DATI=`date +%Y-%m-%d-%H-%M-%S`
CSV="AFSP-EOS_${DATI}.csv"
MAILTO="maarten.deboer@atos.net"
MAILHOST="nlxnetapp02.bcklan.ao-srv.com"
FILTER="nl"

# Filer End Of Support
FILEREOS="/appl/mdr/mdrglob/afsp/glob/etc/filer-end-of-hw-support.csv"
FILEREOSSW="/appl/mdr/mdrglob/afsp/glob/etc/filer-end-of-sw-support.csv"

echo "`date` ${PGM} v${VER} Started."|tee -a ${LOG}
touch ${TMP}
if [ -f ${RCFILE} ]; then
  echo "  RCFILE (${RCFILE}) found. Reading it"|tee -a ${LOG}
  . ${RCFILE}
fi  # RCFILE

echo "ASUPDBDIR=${ASUPDBDIR}"
echo "BASEDIR=${BASEDIR}"
echo "COUNTRYDIR=${COUNTRYDIR}"
echo "COUNTRY2ASUP=${COUNTRY2ASUP}"
echo "FILEREOS=${FILEREOS}"
echo "FILEREOSSW=${FILEREOSSW}"
echo "LOG=${LOG}"
echo "RCFILE=${RCFILE}"
sleep 1

if [ -f ${FILEREOS} ]; then
  echo "  FILEREOS(${FILEREOS}) found."|tee -a ${LOG}
fi
if [ -f ${FILEREOSSW} ]; then
  echo "  FILEREOSSW(${FILEREOSSW}) found."|tee -a ${LOG}
fi

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

for COUNTRY in `cd /appl/mdr/mdrglob/afsp/; ls -1d ??|grep ${FILTER}`
do
  echo "${COUNTRY} ..."
  echo "# COUNTRY;DB_CONTROLER_NAME;DB_SERIAL_NUMBER;DB_MODEL_NAME;FILEREOSDATE;DB_OS_VERSION;FILEREOSSWDATE;DB_SNMP_LOCATION;DB_SNMP_CONTACT;DB_ASUP_GENERATED_ON;DB_CONTRACT_NAME;DB_SITE_NAME;DB_CONTACT_NAME;DB_REMARKS;" > ${TMP}
  # 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
      echo -n "."
	  DB_READ ${DBFILE}

# If FIler EOS file found AND there is a MODEL-name, then get EOS-date
      FILEREOSDATE=""
      if [ -f ${FILEREOS} ] && [ "${DB_MODEL_NAME}" != "" ]; then
        FILEREOSDATE=`grep "${DB_MODEL_NAME}" ${FILEREOS}|grep -v ^#|awk -F\; '{print $2}'|sort -u|head -1`
      fi  # FILEREOS

# OS_VERSION = whole version nr with P & without 7-mode
# OS_RELEASE = Only the 2 digits (are in filer-end-of-sw-support.csv)
      OS_VERSION=`echo ${DB_OS_VERSION}|awk '{print $1}'`
      OS_RELEASE=`echo ${DB_OS_VERSION}|awk '{print $1}'|awk -F\. '{print $1"."$2}'|cut -d\P -f1`
      FILEREOSSWDATE=""
      if [ -f ${FILEREOSSW} ] && [ "${OS_RELEASE}" != "" ]; then
# Get the right ONTAP-version. Exclude some P's
        FILEREOSSWDATE=`grep "^${OS_VERSION}" ${FILEREOSSW}|grep -v ^#|awk -F\; '{print $2}'|head -1`
        if [ "${FILEREOSSWDATE}" = "" ]; then
          FILEREOSSWDATE=`grep "^${OS_RELEASE}" ${FILEREOSSW}|grep -v ^#|head -1|awk -F\; '{print $2}'`
        fi  # = ""
#        echo "  ${DB_CONTROLER_NAME}: ${OS_RELEASE} = ${FILEREOSSWDATE}"
      fi  # FILEREOSSW
      INT_CUR_DATE=`date +%Y%m%d`   
      INT_FILEREOSSWDATE=`echo ${FILEREOSSWDATE}|sed 's/-//g'`
      if [ "${INT_FILEREOSSWDATE}" -lt "${INT_CUR_DATE}" ]; then
        echo "  EOS: ${DB_CONTROLER_NAME}: ${OS_RELEASE} = ${FILEREOSSWDATE}"
        echo "${COUNTRY};${DB_CONTROLER_NAME};${DB_SERIAL_NUMBER};${DB_MODEL_NAME};${FILEREOSDATE};${OS_VERSION};${FILEREOSSWDATE};${DB_SNMP_LOCATION};${DB_SNMP_CONTACT};${DB_ASUP_GENERATED_ON};${DB_CONTRACT_NAME};${DB_SITE_NAME};${DB_CONTACT_NAME};${DB_REMARKS}; " >> ${TMP}
      fi

	done  # FILE
  fi  # database
# Create file & mail /country. Because responsibility is /country
  echo "#" >> ${TMP}
  echo "# `date` by ${PGM} v${VER} at ${HOSTNAME}" >> ${TMP}
  CSV="AFSP-EOS-SW_${COUNTRY}_${DATI}.csv"
  cp ${TMP} /tmp/${CSV}
  MAILTO="atos_afsp@${MAILHOST}"
  date | mailx -a /tmp/${CSV} -s "AFSP export with EOS SW for ${COUNTRY} [${PGM} v${VER}]" ${MAILTO}
  echo "  Mailed to ${MAILTO} ..."|tee -a ${LOG}
done  # ${COUNTRY}

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

