
#!/bin/sh
# File	: na-sto-co_make_sap-sids.sh
# By	: Maarten.deBoer@Atos.net, 220928
# Subject	: Script to run Ansible-playbooks for creating a NetApp-storage-container for SAP-SID
#
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
TMP="/tmp/${PGM}.$$"
LOG="../log/${PGM}.log"

VERBOSE="-vvvv"
VERBOSE=""

#CSV_FILE="../data/${PGM}.csv"
CSV_FILE="../data/sap-sids.csv"

cat ${CSV_FILE}|grep -v ^#|awk -F\; '{print $1}'|sort -u|while read CLUSTER
do
  echo "  CLUSTER=${CLUSTER}"
  cat ${CSV_FILE}|grep -v ^#|grep ${CLUSTER}|awk -F\; '{print $2}'|sort -u|while read SVM_NAME
  do
    echo "    SVM_NAME=${SVM_NAME}"
    cat ${CSV_FILE}|grep -v ^#|grep ${CLUSTER}|grep ${SVM_NAME}|cut -d\; -f1-5|sort -u|while read LINE1
    do
echo "LINE1=${LINE1}"
      VOL_NAME=`echo ${LINE1}|awk -F\; '{print $3}'`
      AGGR_NAME=`echo ${LINE1}|awk -F\; '{print $4}'`
      VOL_SIZE_GB=`echo ${LINE1}|awk -F\; '{print $5}'|grep -i gb|sed 's/gb//g'`
      echo "      VOL_NAME=${VOL_NAME} AGGR_NAME=${AGGR_NAME} VOL_SIZE_GB=${VOL_SIZE_GB}"
      SIZE_UNIT="gb"
      STOR_CLASS="bronze"

      EC=0
# Volume
ansible-playbook ${VERBOSE} ../netapp-ontap_volume_create-update.yml -e nao_clustername=${CLUSTER} -e nao_svm_name=${SVM_NAME} -e nao_vol_name=${VOL_NAME} -e nao_vol_aggr_name=${AGGR_NAME} -e nao_vol_size=${VOL_SIZE_GB} -e nao_vol_size_unit=${SIZE_UNIT} -e nao_vol_stor_class=${STOR_CLASS} 

      EC=${?}
      echo "EXITCODE=${EC}"

      if [ ${EC} -eq 0 ]; then

        QTREE_STR_TMP=""
        cat ${CSV_FILE}|grep -v ^#|grep ${CLUSTER}|grep ${SVM_NAME}|grep ${VOL_NAME}|sort -u|while read LINE2
        do
          QTREE=`echo ${LINE2}|awk -F\; '{print $6}'`
          QUOTA_GB=`echo ${LINE2}|awk -F\; '{print $7}'|grep -i gb|sed 's/gb//g'|sed 's/ //g'`
          EXPORT_POL=`echo ${LINE2}|awk -F\; '{print $8}'`
          EXPORT_ADDR=`echo ${LINE2}|awk -F\; '{print $9}'`

          echo "        QTREE=${QTREE} QUOTA_GB=${QUOTA_GB} EXPORT_POL=${EXPORT_POL} EXPORT_ADDR=${EXPORT_ADDR}"
          echo ""

          QTREE_STR="\"${QTREE}\":{\"nao_quota_disk_limit\":\"${QUOTA_GB}GB\",\"nao_qtree_security_style\":\"unix\",\"nao_export_policy_client_match\":\"${EXPORT_ADDR}\",\"nao_qtree_export_policy\":\"${EXPORT_POL}\"}"


#echo "Creating / Updating a NetApp-storage-container (Volume+Qtree+Quota)"
# ${CLUSTER}:${SVM_NAME}:(${AGGR_NAME}):${VOL_NAME}:${QTREE_STRING}"
#sleep 2

          QTREE_STR_TMP="${QTREE_STR_TMP}${QTREE_STR}"
#echo "QTREE_STR_TMP=${QTREE_STR_TMP}"

# Save when exiting loop
          echo "${QTREE_STR_TMP}" > ${TMP}.qs
# Add , when next loop
          QTREE_STR_TMP="${QTREE_STR_TMP},"

        done  # LINE2

        QTREE_STRING="{`cat ${TMP}.qs`}"
        echo "QTREE_STRING=${QTREE_STRING}"

# Qtree
ansible-playbook ${VERBOSE} ../netapp-ontap_qtree_create-update-loop.yml -e nao_clustername=${CLUSTER} -e nao_svm_name=${SVM_NAME} -e nao_vol_name=${VOL_NAME} -e nao_qtree_string=${QTREE_STRING}

# Quota
ansible-playbook ${VERBOSE} ../netapp-ontap_quota_create-update-loop.yml -e nao_clustername=${CLUSTER} -e nao_svm_name=${SVM_NAME} -e nao_vol_name=${VOL_NAME} -e nao_qtree_string=${QTREE_STRING}

# NFS-export
ansible-playbook ${VERBOSE} ../netapp-ontap_export_create-update-loop.yml  -e nao_clustername=${CLUSTER} -e nao_svm_name=${SVM_NAME} -e nao_vol_name=${VOL_NAME} -e nao_qtree_string=${QTREE_STRING}

      fi  # EC

    done  # LINE1
  done  # SVM
done  # read CLUSTER



rm ${TMP}.qs
exit 0

