
#!/bin/sh
# File	: set_qtree-exports.sh
# By	: Maarten.deBoer@Atos.net, 230619
# Subject	: Script to set Export-policy-rules onto Qtree (from default) onto corresponding SAP-SID (eg: _dwd -> dwd exp.pol.rule)
# ! Before this can be done, the `set_export-rules.sh` has to be done
#(0.2),230621	: Mod. VSERVER
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
SSH="/usr/bin/ssh -n"
LOG="${HOME}/log/${PGM}.log"

CLUSTER="nlnaf100"
VSERVER="nlnafsavi02"
CLUSTER="nlnaf101"
VSERVER="nlnafsavi01"

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

${SSH} ${CLUSTER} "set -showseparator \";\" ; qtree show -vserver ${VSERVER} -field vserver,volume,export-policy"|grep "${VSERVER}"|while read LINE
do
  echo "  LINE=${LINE}"
  VOLUME=`echo ${LINE}|awk -F\; '{print $2}'`
  QTREE=`echo ${LINE}|awk -F\; '{print $3}'`
  EXPORT_POLICY=`echo ${LINE}|awk -F\; '{print $4}'`
  if [ "${QTREE}" != "\"\"" ] && [ "${EXPORT_POLICY}" = "default" ]; then
    SID=`echo ${QTREE}|grep -v db2_ctl|cut -d_ -f2|grep "^[a-z][a-z][a-z]$"`
# 2nd try
    if [ "${SID}" == "" ]; then
      SID=`echo ${QTREE}|cut -d_ -f3|grep "^[a-z][a-z][a-z]$"`
    fi
# 3rd try
    if [ "${SID}" == "" ]; then
      SID=`echo ${QTREE}|grep ^db2|sed -e 's/db2//g'|grep "^[a-z][a-z][a-z]$"`
    fi

    echo "  QTREE=${QTREE} EXPORT_POLICY=${EXPORT_POLICY} SID=${SID}|"|tee -a ${LOG}
    sleep 1

    if [ "${SID}" != "" ]; then
      echo "    SID=${SID}"
# Check is Export-policy exists. Otherwise create
       ${SSH} ${CLUSTER} "export-policy show -vserver ${VSERVER} -policy ${SID}"
       EC=${?}
       if [ ${EC} -ne 0 ]; then
         echo "      Creating export-policy ${SID}"|tee -a ${LOG}
         sleep 1
         ${SSH} ${CLUSTER} "export-policy create -vserver ${VSERVER} -policy ${SID}"
         ${SSH} ${CLUSTER} "export-policy show -vserver ${VSERVER} -policy ${SID}"
       fi  # EC > 0
       echo "    Modifying ${VSERVER}:/${VOLUME}/${QTREE} to policy ${SID}"|tee -a ${LOG}
       ${SSH} ${CLUSTER} "qtree modify -vserver ${VSERVER} -volume ${VOLUME} -qtree ${QTREE} -export-policy ${SID}"
       sleep 1
    else
      echo "! QTREE=${QTREE} EXPORT_POLICY=${EXPORT_POLICY} SID=${SID}"|tee -a ${LOG}
    fi  # {SID}" != ""

  else
#  [ "${QTREE}" != "\"\"" ] && [ "${EXPORT_POLICY}" = "default" ]; then
     echo "    Nothing to be done (EXPORT_POLICY=default & QTREE=\"\" )"

  fi  # ${QTREE}" ...

done  # LINE






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

