
#/bin/sh
# File	: noc_vserver_destroy.sh
# By	: Maarten de Boer@Atos.net, 210629
# Subject	: Script to remove SVM from cDOT
#(0.2),220131	: Added USAGE
#(0.3),230120	: Added --force
#(0.4),240124	: Renamed from cdot_vserver_destroy.sh, mod. state
#(0.5),240206	: Mod's
#(0.6),240206	: add --stop1st
#(0.7),240228	: Mod's
#(0.8),260319	: Add delete CIFS-server -forced
PGM=`basename $0|cut -d\. -f1`
VER="0.8"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"
RCFILE="${HOME}/etc/${PGM}.rc"

STOP_1ST=""

CLUSTER="fas8040"
SFILTER="nlttnl99"

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 "    --stop_1st  : STOP svm 1st"
  echo "    -V          : Version"
  echo "    -x          : set -x"
  echo "    --force     : to FORCE the remove with entry in the data file"
}
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) VSERVER="${2}"; shift ;;
    --force | --stop_1st) STOP_1ST=1 ;;
    -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/vserver (NEED to be stopped 1st):"
echo "  CLUSTER=${CLUSTER}"
echo "  VSERVER=${VSERVER}"
echo "Press [ENTER]"
read INPUT

if [ ${STOP_1ST} ]; then
  echo "  Stopping vserver/SVM ${CLUSTER}:${VSERVER}"|tee -a ${LOG}
  ${SSH} ${CLUSTER} "vserver stop -vserver ${VSERVER} "
fi  # STOP_1ST

echo "Running vservers:"
${SSH} ${CLUSTER} "vserver show -operational-state running -field vserver" |grep "${VSERVER}"

${SSH} ${CLUSTER} "vserver show -operational-state stopped -field vserver" |grep "${VSERVER}"|awk '{print $1}'|while read NAO_VSERVER_NAME
do
  echo "  NAO_VSERVER_NAME=${NAO_VSERVER_NAME}|"
  sleep 2

# Check if CIFS server is running?
  CIFS_SERVER_RUNNING=`${SSH} ${CLUSTER} "vserver cifs show -vserver ${VSERVER}  -field domain"| grep ${VSERVER}`
  if [ "${CIFS_SERVER_RUNNING}" != "" ]; then
    echo "    CIFS-server running : ${CIFS_SERVER_RUNNING} . Will (foreced) remove..."|tee -a ${LOG}
    ${SSH} ${CLUSTER} "set -privilege advanced; vserver cifs delete -vserver ${VSERVER} -skip-ad-account-delete true"
  fi 

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

# Get & remove volumes from SVM
  ${SSH} ${CLUSTER} "set -showseparator \";\" ;volume show -vserver ${NAO_VSERVER_NAME} -field volume"|grep ${NAO_VSERVER_NAME}|grep -v ${NAO_VSERVER_ROOT_VOLUME}|awk -F\; '{print $2}' | while read NAO_VOLUME
  do
    echo "  NAO_VOLUME=${NAO_VOLUME}|"
    if [ "${NAO_VOLUME}" != "" ]; then
      sleep 1
      ${SSH} ${CLUSTER} "volume unmount -vserver ${NAO_VSERVER_NAME} -volume ${NAO_VOLUME}"
      sleep 1
      ${SSH} ${CLUSTER} "volume offline -vserver ${NAO_VSERVER_NAME} -volume ${NAO_VOLUME}"
      sleep 1
      ${SSH} ${CLUSTER} "volume destroy -vserver ${NAO_VSERVER_NAME} -volume ${NAO_VOLUME}"
    fi  # 
  done  # NA_VOLUME

# Remove ROOT-volume
  echo "    NAO_VSERVER_ROOT_VOLUME=${NAO_VSERVER_ROOT_VOLUME}|"
  if [ "${NAO_VSERVER_ROOT_VOLUME}" != "" ]; then
    ${SSH} ${CLUSTER} "volume offline -vserver ${NAO_VSERVER_NAME} -volume ${NAO_VSERVER_ROOT_VOLUME}"
    sleep 1
    ${SSH} ${CLUSTER} "volume destroy -vserver ${NAO_VSERVER_NAME} -volume ${NAO_VSERVER_ROOT_VOLUME}"
    sleep 1
  fi  # {NAO_VSERVER_ROOT_VOLUME}" != ""

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

done  # NAO_VSERVER_NAME

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

