
#!/bin/sh
# File	: cdot_get_vservers.sh
# By	: Maarten.deBoer@Atos.net, 160111
# Subject	: Get all SVMs (vservers) from all clusters & place them in a .CSV-file
PGM="`basename $0|cut -d\. -f1`"
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
MAILTO="maarten.deboer@atos.net"
HOSTNAME="`hostname`"
MAIL=""
CLUSTERS="${HOME}/etc/clusters"
CSV="fsod-clusters-vservers.csv"
LIST=""
LISTFILE="${HOME}/export/${CSV}"
SUBJECT="@${HOSTNAME}: FSOD clusters-vserver(SVM)s-list [${PGM} v${VER}]"
SSH="/usr/bin/ssh -n"

USAGE()
{
  echo "Usage: ${PGM} <options> "
  echo "  Version: ${VER}"
  echo "  options       :"
  echo "    -e          : Etc-file (${ETC})"
  echo "    -h          : this help"
  echo "    -l | --list : produce/export list as ${LISTFILE}"
  echo "    --export    : produce/export list as ${LISTFILE}"
  echo "    -m | --mail : do send mail"
  echo "    -x          : set -x"
  echo "    -V          : Version"
  echo "    --mailto    : do send mail (${MAILTO}) "
  echo "    --help      : this help"
}

# Check options
while [ $# -gt 0 ]
  do
  case $1 in
    -e) ETC=${2}; shift ;;
    -l | --list | --export) LIST=1 ;;
    -m | --mail) MAIL=1 ;;
    --mailto) MAIL=1; MAILTO=${2}; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option $1 not known."; USAGE; exit 1 ;;
  esac
    shift
done

touch ${TMP}

echo "`date` ${PGM} (MAIL=${MAIL} MAILTO=${MAILTO} TOLL=${TOLL} SUBJECT=${SUBJECT}) started"|tee -a ${LOG}

echo "# cluster ; # SVM (vserver); # Status" > ${TMP}

for CLUSTER in `cat ${CLUSTERS}|grep -v \^#|sort`
do
  echo "${CLUSTER}:"
  ${SSH} ${CLUSTER} "vserver show -field vserver,admin-state"|grep  nlnafs|awk '{print $1,$2}'|while read VSERVER STATUS REST
  do
    echo "${CLUSTER};${VSERVER};${STATUS}; " | tee -a ${TMP}
  done  # SSH
done  # for

echo "#" >> ${TMP}
echo "# Produced ; by ${PGM} (v${VER}) at `date` at ${HOSTNAME}" >> ${TMP}

if [ ${LIST} ]; then
  cp ${TMP} ${LISTFILE}
fi

if [ ${MAIL} ]; then
  cp ${TMP} /tmp/${CSV}
  chmod 777 /tmp/${CSV}
  date|mailx -a /tmp/${CSV} -s "${SUBJECT}" ${MAILTO}
  echo "`date` Mailed to ${MAILTO}."|tee -a ${LOG}
  rm /tmp/${CSV}
fi

rm ${TMP}
exit 0

