
#/bin/sh
# File	: cdot_volume_remove.sh
# By	: Maarten de Boer@Atos.net, 221230
# Subject	: Script to remove volumes at cDOT
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"
RCFILE="${HOME}/etc/${PGM}.rc"

DATAFILE="${HOME}/data/${PGM}.csv"
CFILTER="tlenlfas8040"
SFILTER="[?]*"
VFILTER="[?]*"

USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VER}"
  echo "  options       :"
  echo "    -c          : Cluster-filter (${CFILTER})"
  echo "    -d          : Datafile (${DATAFILE})"
  echo "    -s          : SVM-filter (${SFILTER})"
  echo "    -v          : Volume-filter (${VFILTER})"
  echo "    -h|--help   : this help"
  echo "    -V          : Version"
  echo "    -x          : set -x"
}
if [ -f ${RCFILE} ]; then
  echo "  RCFILE (${RCFILE}) found. Using it"
  . ${RCFILE}
fi  # RCFILE
while [ $# -gt 0 ]
  do
  case $1 in
    -c) CFILTER="${2}"; shift ;;
    -s) SFILTER="${2}"; shift ;;
    -v) VFILTER="${2}"; shift ;;
    -d) DATAFILE="${2}"; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VER}"; exit 2 ;;
    -x)  set -x ;;
    *)  echo "Option $1 not known."; USAGE; exit 1 ;;
  esac
    shift
done

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

if [ ! -f ${DATAFILE} ]; then
  echo "  DATAFILE (${DATAFILE}) NOT found. Exiting ..."
  exit 3
fi
echo "  Remove Volumes (1st: Unmount & Offline, 2nd: Delete) : CFILTER=${CFILTER} SFILTER=${SFILTER} VFILTER=${VFILTER} "
echo "Press [ENTER]"
read INPUT

# DATAFILE
#  cluster;vserver;volume;aggregate;size;snapshot-policy;comment;qtree;secu-style;quota(disk-limit);
#
cat ${DATAFILE}|grep -v ^#|grep "${CFILTER}"|grep "${SFILTER}"|grep "${VFILTER}"|while read LINE
do
  CLUSTER=`echo ${LINE}|awk -F\; '{print $1}'`
  VSERVER=`echo ${LINE}|awk -F\; '{print $2}'`
  VOLUME=`echo ${LINE}|awk -F\; '{print $3}'`

  echo "  CLUSTER=${CLUSTER} VSERVER=${VSERVER} VOLUME=${VOLUME}"|tee -a ${LOG}

  if [ "${VSERVER}" != "" ] && [ "${VOLUME}" != "" ]; then
# Remove offlined volumes 1st
    VOL_OFFLINE=`${SSH} ${CLUSTER} "volume show -vserver ${VSERVER} -state offline"|grep "${VOLUME}"`
    if [ "${VOL_OFFLINE}" != "" ]; then
      echo "    Deleting ${VOLUME} volume at ${VSERVER}"|tee -a ${LOG}
      ${SSH} ${CLUSTER} "volume delete -vserver ${VSERVER} -volume ${VOLUME}"
    fi  # VOL_ONLINE

# Umount & offline the volume
    VOL_ONLINE=`${SSH} ${CLUSTER} "volume show -vserver ${VSERVER} -state online"|grep "${VOLUME}"`
    if [ "${VOL_ONLINE}" != "" ]; then
      echo "    Unmounting & offlining volume ${VOLUME} at ${VSERVER}"|tee -a ${LOG}
      ${SSH} ${CLUSTER} "volume unmount -vserver ${VSERVER} -volume ${VOLUME}"
      ${SSH} ${CLUSTER} "volume offline -vserver ${VSERVER} -volume ${VOLUME}"
    fi  # VOL_ONLINE

  fi  # != ""

done  # DATAFILE

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

