
#!/bin/sh
# File	: cdot_snapmirror-release_volume-delete.sh
# By	: Maarten.deBoer@Atos.net, 211115
# Subject	: Script to release SnapMirror (if any) and delete volume the offline volume
PGM=`basename $0|cut -d\ -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
TMP="/tmp/${PGM}.$$"
CLUSTERS="${HOME}/etc/clusters"
# Filters
CFILTER="nlnaf10[01]"
SSH="/usr/bin/ssh -n"

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

# Check offline volumes 1st
cat ${CLUSTERS}|grep -v ^#|grep "${CFILTER}"|while read CLUSTER
do
  echo "  Checking offline volumes at ${CLUSTER} ..."
  ${SSH} ${CLUSTER} "set -showseparator \";\" ; volume show -state offline -field vserver,volume,state"|grep offline|while read LINE
  do
    VSERVER=`echo ${LINE}|awk -F\; '{print $1}'`
    VOLUME=`echo ${LINE}|awk -F\; '{print $2}'`
    echo "  VSERVER=${VSERVER} VOLUME=${VOLUME}"
    if [ "${VSERVER}" != "" ] && [ "${VOLUME}" != "" ]; then
# Check if SnapMirror relation.
# If so, then release (not empty)
      SNAPMIRROR=`${SSH} ${CLUSTER} "snapmirror list-destinations -source-vserver ${VSERVER} -source-volume ${VOLUME}"|grep "${VOLUME}"`
      if [ "${SNAPMIRROR}" != "" ]; then
        SM_SOURCE=`echo ${SNAPMIRROR}|awk '{print $1}'`
        SM_TYPE=`echo ${SNAPMIRROR}|awk '{print $2}'`
        SM_DEST=`echo ${SNAPMIRROR}|awk '{print $3}'`
        echo "  Releasing SnapMirror ${SM_SOURCE} ${SM_TYPE} ${SM_DEST}"|tee -a ${LOG}
        ${SSH} ${CLUSTER} "volume online -vserver ${VSERVER} -volume ${VOLUME}"
        ${SSH} ${CLUSTER} "snapmirror release -destination-path ${SM_DEST}"
        ${SSH} ${CLUSTER} "volume offline -vserver ${VSERVER} -volume ${VOLUME}"
      fi  # SNAPMIRROR

      echo "  Deleting ${VSERVER}:${VOLUME}"|tee -a ${LOG}
      sleep 5
      ${SSH} ${CLUSTER} "volume delete -vserver ${VSERVER} -volume ${VOLUME}"

    fi  # <> ""
  done  # LINE

done  # CLUSTER

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

