
#!/bin/sh
# File	: omi2zfs_mod.sh
# By	: Maarten.deBoer@atos.net, 241010,241030
# Subject	: Script to prepare the move from FSOD to ZSF for OMI. Mod. NFS-export RW=never
#(0.2),250107	: Add # Roll-back
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
LOG="${HOME}/log/${PGM}.log"
CSV="/tmp/${PGM}.csv"
SSH="/usr/bin/ssh -n"
DATA="${HOME}/data/omi2zfs.asc"

CLUSTER="nlnaf103"
FILTER="omlnl"

cp /dev/null ${CSV}
echo "`date` ${PGM} v${VER} started."|tee -a ${LOG} 
echo "  CSV=${CSV}"
echo "  CLUSTER=${CLUSTER}"
echo "  FILTER=${FILTER}"

cat ${DATA}|grep -v ^#|while read LINE
do
  VOLUME=`echo ${LINE}|cut -d\/ -f2`
  QTREE=`echo ${LINE}|cut -d\/ -f3`
  SVM_PART=`echo ${LINE}|cut -d\/ -f2|cut -d\_ -f1`

  CLUSTER=""
  if [ "${SVM_PART}" == "omi54" ] || [ "${SVM_PART}" == "omi56" ]; then
    CLUSTER="nlnaf102"
  fi
  if [ "${SVM_PART}" == "omi53" ] || [ "${SVM_PART}" == "omi55" ]; then
    CLUSTER="nlnaf103"
  fi
  VSERVER="nlnafs${SVM_PART}"
  EXPORT=`${SSH} ${CLUSTER} "qtree show -vserver ${VSERVER} -volume ${VOLUME} -qtree ${QTREE} -field export"|grep ${QTREE}|awk '{print $4}'`

  echo "  CLUSTER=${CLUSTER} VSERVER=${VSERVER} VOLUME=${VOLUME} QTREE=${QTREE} EXPORT=${EXPORT}"

# Mod. part
  ${SSH} ${CLUSTER} "set -showseparator \";\" ; export-policy rule show -vserver ${VSERVER} -policy ${EXPORT} -field client,rule,rw"|grep "${FILTER}"|grep ${EXPORT}|while read LINE2
  do
    VSERVER=`echo ${LINE2}|awk -F\; '{print $1}'`
    RULEIDX=`echo ${LINE2}|awk -F\; '{print $3}'`
    CLIENT=`echo ${LINE2}|awk -F\; '{print $4}'`
    RW_RULE=`echo ${LINE2}|awk -F\; '{print $5}'`
    echo "    CLUSTER=${CLUSTER} VSERVER=${VSERVER} RULEIDX=${RULEIDX} CLIENT=${CLIENT} RW_RULE=${RW_RULE}"|tee -a ${LOG}

    ${SSH} ${CLUSTER} "export-policy rule modify -vserver ${VSERVER} -policy ${EXPORT} -client ${CLIENT} -rule ${RULEIDX} -rw never "
    EC=${?}

# Roll-Back (never -> sys)
#    ${SSH} ${CLUSTER} "export-policy rule modify -vserver ${VSERVER} -policy ${EXPORT} -client ${CLIENT} -rule ${RULEIDX} -rw sys "
#    EC=${?}
    
    RW_RESULT=`${SSH} ${CLUSTER} "set -showseparator \";\" ; export-policy rule show -vserver ${VSERVER} -policy ${EXPORT} -client ${CLIENT} -rule ${RULEIDX} -field rw"|grep ${EXPORT}|awk -F\; '{print $4}'`
    echo "      RW_RESULT=${RW_RESULT}"|tee -a ${LOG}

  done  # LINE2

  ${SSH} ${CLUSTER} "set -showseparator \";\" ;export-policy rule show -vserver ${VSERVER} -policy ${EXPORT} -field policy,rule,ro,rw,super,client,protocol" |tee -a ${CSV}

done  # LINE


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

