
#!/bin/sh
# File	: noc_volume_create.sh
# By	: Maarten.deBoer@Atos.net, 230905, 231218
# Subject	: Netapp Ontap Cli script to create volumes based on CSV-file
#(0.2)	: Renamed to nao_ and renamed var's
#(0.3),240103	: Mod. $1, $2
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"

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

CSV="${DATADIR}/nl-fsod-volume-snapvaults_env-edm.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_AGGR_NAME=`echo ${LINE}|awk -F\; '{print $4}'`
  NAO_VOL_STOR_CLASS=`echo ${LINE}|awk -F\; '{print $5}'|tr [:upper:] [:lower:]|egrep "gold|silver|bronze"`
  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"`
  NAO_VOL_TYPE=`echo ${LINE}|awk -F\; '{print $8}'|tr [:lower:] [:upper:]|sed 's/XDP/DP/g'|egrep "RW|DP" `
  ATOS_CHANGE_NR=`echo ${LINE}|awk -F\; '{print $9}'`

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

    NAO_MAX_AUTOSIZE=`expr ${NAO_VOL_SIZE} \* 11 / 10`
    NAO_MAX_AUTOSIZE="${NAO_MAX_AUTOSIZE}${NAO_VOL_SIZE_UNIT}"
    echo "    NAO_MAX_AUTOSIZE=${NAO_MAX_AUTOSIZE}"

    echo "  NAO_CLUSTERNAME=${NAO_CLUSTERNAME} NAO_SVM_NAME=${NAO_SVM_NAME} NAO_VOL_NAME=${NAO_VOL_NAME} NAO_VOL_SIZE=${NAO_VOL_SIZE} NAO_VOL_SIZE_UNIT=${NAO_VOL_SIZE_UNIT} "|tee -a ${LOG}

    ${SSH} ${NAO_CLUSTERNAME} "volume create -vserver ${NAO_SVM_NAME} -volume ${NAO_VOL_NAME} -aggregate ${NAO_VOL_AGGR_NAME} -size ${NAO_VOL_SIZE}${NAO_VOL_SIZE_UNIT} -type ${NAO_VOL_TYPE} -qos-policy-group ${NAO_SVM_NAME}_${NAO_VOL_STOR_CLASS} -comment ${ATOS_CHANGE_NR} -min-autosize 5GB -max-autosize ${NAO_MAX_AUTOSIZE} -autosize-mode grow_shrink  "
    if [ "${NAO_VOL_TYPE}" = "RW" ]; then
      ${SSH} ${NAO_CLUSTERNAME} "volume mount -vserver ${NAO_SVM_NAME} -volume ${NAO_VOL_NAME} -junction-path \"/${NAO_VOL_NAME}\" "
    fi  # RW

    ${SSH} ${NAO_CLUSTERNAME} "volume show -vserver ${NAO_SVM_NAME} -volume ${NAO_VOL_NAME} -field volume,aggregate,size,qos-policy-group,junction-path,type"
    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

