
#!/bin/sh
# File	: noc_qtree_create.sh
# By	: Maarten.deBoer@Atos.net, 230905, 231218, 240103
# Subject	: Netapp Ontap Cli script to create qtrees based on CSV-file
#(0.1)	: Copied from noc_volume_create.sh
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"

DATADIR="${HOME}/data"
# Policy-filter
FILTER="mss"

CSV="${DATADIR}/nl-fsod-volume-qtree_mss.csv"

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
if [ "${1}" != "" ]; then
  FILTER="${1}"
fi
if [ "${2}" != "" ]; then
  CSV="${2}"
fi

echo "  FILTER(1)=${FILTER}"
echo "  CSV(2)=${CSV}"
sleep 1

if [ ! -f ${CSV} ]; then
  echo "  NO CSV (${CSV}) file find. Exiting ..."|tee -a ${LOG}
  exit 3
fi  # <> CSV

# NAO_CLUSTERNAME(1);NAO_SVM_NAME(2);NAO_VOL_NAME(3);NAO_VOL_AGGR_NAME(4);NAO_VOL_STOR_CLASS(5);NAO_VOL_SIZE(6);NAO_VOL_SIZE_UNIT(7);NAO_VOL_TYPE(8);ATOS_CHANGE_NR(9);NAO_QTREE_NAME(10);NAO_QUOTA_DISK_LIMIT(11);NAO_QTREE_SECURITY_STYLE(12);NAO_QTREE_EXPORT_POLICY(13);NAO_VOL_LANG(14);
#NAO_SOURE_CLUSTER(15);(12)NAO_SOURCE_SVM(16);NAO_SOURCE_VOLUME(17);[NAO_SOURCE_QTREE](18);
#

cat ${CSV}|grep -v ^#|grep "${FILTER}"|while read LINE
do
#  echo "  LINE=${LINE}"
  NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'`
  NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'`
  NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $3}'`

  NAO_VOL_SIZE=`echo ${LINE}|awk -F\; '{print $6}'`
  NAO_VOL_SIZE_UNIT=`echo ${LINE}|awk -F\; '{print $7}'|tr [:lower:] [:upper:]|egrep "KB|MB|GB|TB"`
  ATOS_CHANGE_NR=`echo ${LINE}|awk -F\; '{print $9}'`
  NAO_QTREE_NAME=`echo ${LINE}|awk -F\; '{print $10}'|tr [:upper:] [:lower:]`
  NAO_QUOTA_DISK_LIMIT=`echo ${LINE}|awk -F\; '{print $11}'`
  NAO_QTREE_SECURITY_STYLE=`echo ${LINE}|awk -F\; '{print $12}'`
  NAO_QTREE_EXPORT_POLICY=`echo ${LINE}|awk -F\; '{print $13}'`

  if [ "${NAO_CLUSTERNAME}" != "" ] && [ "${NAO_SVM_NAME}" != "" ] && [ "${NAO_QTREE_NAME}" != "" ]; then

    echo "  NAO_CLUSTERNAME=${NAO_CLUSTERNAME} NAO_SVM_NAME=${NAO_SVM_NAME} NAO_VOL_NAME=${NAO_VOL_NAME} NAO_QTREE_NAME=${NAO_QTREE_NAME} NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT} NAO_QTREE_SECURITY_STYLE=${NAO_QTREE_SECURITY_STYLE} NAO_QTREE_EXPORT_POLICY=${NAO_QTREE_EXPORT_POLICY} "|tee -a ${LOG}

    if [ "${NAO_SVM_NAME}" != "" ] && [ "${NAO_VOL_NAME}" != "" ] && [ "${NAO_QTREE_NAME}" != "" ]; then
    SVM_VOL_QTREE=`${SSH} ${NAO_CLUSTERNAME} "qtree show -vserver ${NAO_SVM_NAME} -volume ${NAO_VOL_NAME}"|grep "${NAO_QTREE_NAME}"`
      if [ "${SVM_VOL_QTREE}" = "" ]; then
        if [ "${NAO_QTREE_EXPORT_POLICY}" = "" ]; then
          NAO_QTREE_EXPORT_POLICY="default"
        fi  # NAO_QTREE_EXPORT_POLICY = "" 
        echo "  Create Qtree ${NAO_QTREE_NAME} in ${NAO_VOL_NAME}"|tee -a ${LOG}
        ${SSH} ${NAO_CLUSTERNAME} "qtree create -vserver ${NAO_SVM_NAME} -qtree-path /vol/${NAO_VOL_NAME}/${NAO_QTREE_NAME} -security-style ${NAO_QTREE_SECURITY_STYLE} -export-policy ${NAO_QTREE_EXPORT_POLICY}"
        sleep 1
      else
        echo "  Modify Qtree ${NAO_QTREE_NAME} in ${NAO_VOL_NAME}"|tee -a ${LOG}
        ${SSH} ${NAO_CLUSTERNAME} "qtree modify -vserver ${NAO_SVM_NAME} -qtree-path /vol/${NAO_VOL_NAME}/${NAO_QTREE_NAME} -security-style ${NAO_QTREE_SECURITY_STYLE} -export-policy ${NAO_QTREE_EXPORT_POLICY}"

      fi  # SVM_VOL_QTREE
      ${SSH} ${NAO_CLUSTERNAME} "qtree show -vserver ${NAO_SVM_NAME} -qtree-path /vol/${NAO_VOL_NAME}/${NAO_QTREE_NAME} -field vserver,volume,qtree,export-policy,security-style"
    fi  # QTREE}" != ""

    sleep 1
  else
    echo "  Not all VAR's has a value."|tee -a ${LOG}
  fi  # !=





done  # LINE

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

