
#/bin/sh
# File	: nao_vserver_destroy.sh
# By	: Maarten de Boer@Atos.net, 210629
# Subject	: Script to remove SVM from cDOT
#(0.2),220131	: Added USAGE
#(0.3),240104	: Some mod's, renamed from cdot_vserver_destroy.sh
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"
RCFILE="${HOME}/etc/${PGM}.rc"

CLUSTER="tlenlfas8040"
SFILTER=""

USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VER}"
  echo "  options       :"
  echo "    -c          : Clustername (${CLUSTER})"
  echo "    -s          : Svmname(filter) (${SFILTER})"
  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) CLUSTER="${2}"; shift ;;
    -s) SFILTER="${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}
echo "  Removing SVMs: CLUSTER=${CLUSTER} SFILTER=${SFILTER}"|tee -a ${LOG}
echo "Press [ENTER}"
read INPUT


${SSH} ${CLUSTER} "vserver show -vserver "*${SFILTER}*" -operational-state running -field vserver" |grep "${SFILTER}"|awk '{print $1}'|while read NAO_SVM_NAME
do
  echo "    NAO_SVM_NAME=${NAO_SVM_NAME}"|tee -a ${LOG}

  NAO_SVM_ROOT_VOLUME=`${SSH} ${CLUSTER} "set -showseparator \";\" ;vserver show -vserver ${NAO_SVM_NAME} -field rootvolume"|grep ${NAO_SVM_NAME}|awk -F\; '{print $2}'`


# Get & remove volumes from SVM
  ${SSH} ${CLUSTER} "set -showseparator \";\" ;volume show -vserver ${NAO_SVM_NAME} -field volume,type"|grep ${NAO_SVM_NAME}|grep -v ${NAO_SVM_ROOT_VOLUME}|awk -F\; '{print $2,$3}' | while read NAO_VOLUME NAO_VOL_TYPE
  do
    echo "    NAO_VOLUME=${NAO_VOLUME} (${NAO_VOL_TYPE})"|tee -a ${LOG}
    if [ "${NAO_VOL_TYPE}" == "LS" ]; then
      NAO_SRC_DEST=`${SSH} ${CLUSTER} "snapmirror show -vserver ${NAO_SVM_NAME} -destination-volume ${NAO_VOLUME} -type LS -field source-path,destination-path"|grep ${CLUSTER}`
      NAO_SRC_PATH=`echo ${NAO_SRC_DEST} |awk '{print $1}'`
      NAO_DEST_PATH=`echo ${NAO_SRC_DEST} |awk '{print $2}'`
      echo "      is a LS volume (${NAO_SRC_PATH} -> ${NAO_DEST_PATH})"|tee -a ${LOG}
      if [ "${NAO_DEST_PATH}" != "" ]; then
        ${SSH} ${CLUSTER} "snapmirror quiesce -destination-path ${NAO_DEST_PATH}"
        ${SSH} ${CLUSTER} "snapmirror abort -destination-path ${NAO_DEST_PATH}"
        ${SSH} ${CLUSTER} "snapmirror delete  -destination-path ${NAO_DEST_PATH}"
      fi  # NAO_DEST_PATH
    else
      ${SSH} ${CLUSTER} "volume unmount -vserver ${NAO_SVM_NAME} -volume ${NAO_VOLUME}"
    fi
    ${SSH} ${CLUSTER} "volume offline -vserver ${NAO_SVM_NAME} -volume ${NAO_VOLUME}"
#    ${SSH} ${CLUSTER} "volume destroy -vserver ${NAO_SVM_NAME} -volume ${NAO_VOLUME}"
  done  # NAO_VOLUME

# Remove ROOT-volume
  ${SSH} ${CLUSTER} "volume offline -vserver ${NAO_SVM_NAME} -volume ${NAO_SVM_ROOT_VOLUME}"
  ${SSH} ${CLUSTER} "volume destroy -vserver ${NAO_SVM_NAME} -volume ${NAO_SVM_ROOT_VOLUME}"
  sleep 1

# Remove SVM
  ${SSH} ${CLUSTER} "vserver delete -vserver ${NAO_SVM_NAME}"

done  # NAO_SVM_NAME

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

