
#!/bin/sh
# File	: netapp-automation-menu.sh
# By	: Maarten.deBoer@Atos.net, 230329
# Subject	: Script a (kind) menu for Automation, based on NetApp+Ansible, of NetApp-ONTAP-systems
#(0.2),230330	: Added SVM
#(0.3),230526	: Some Mod's + AP_DIR
#(0.4),230530	: Add CSV usage
#(0.5),230531	: Added Auto VOLUME
#(0.6),230531	: Added Auto Qtree
#(0.7),230431	: Added Auto Quota
#(0.8),230531	: Added FILTERs
#(0.9),230622	: Add -V, ERROR, AP_VERBOSE, _MASK
#(0.10),230622	: Add UPD_EXP_POL
#(0.11),230727	: Mod's at a2) & 92)
#(0.12),230727	: Add aa)
#(0.13),230729	: Update Qtree part.
#(0.14),230710	: Some Add's
#(0.15),230711	: Added LANG(14)
PGM=`basename $0|cut -d\. -f1`
VER="0.15"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
CSV="/tmp/${PGM}.csv"
RCFILE="${HOME}/etc/${PGM}.rc"
SSH="/usr/bin/ssh -n"
HOSTNAME=`hostname |cut -d\. -f1`
AP_DIR="/home/ansible/GIT_hub-atos-FIN/netapp-ontap-ansible"
CSV_DIR="${HOME}/data"
FILTER="[?]*"
FILTER="nlnafsmss"
RFILTER="nlnafsmss"

#FILTER="nlnafsavi"
#FILTER="nlnafsdsm35"
#RFILTER="nlnafsavi"
AP_VERBOSE=""
AP_VERBOSE="-vvvv"
DATI=`date +%Y-%m-%d-%H-%M-%S`
MAILTO="maarten.deboer@atos.net"

# Defaults
NAO_CLUSTERNAME="tlenlfas9999"
NAO_SVM_NAME="tlenltnl99"
NAO_VOL_NAME="tnl99_vol99999"
NAO_VOL_AGGR_NAME="n01a9999"
NAO_VOL_STOR_CLASS="iron"
NAO_VOL_SIZE_UNIT="kb"
NAO_VOL_SIZE="9"
#SVM_PREFIX_NAME="nlnafs" 
SVM_PREFIX_NAME="tlenl" 
VOL_SUFFIX="vol09001"
#NAO_QTREE_STRING='{"ansible1":{"nao_quota_disk_limit":"1GB","nao_qtree_security_style":"unix"},"ansible2":{"nao_quota_disk_limit":"2GB","nao_qtree_security_style":"ntfs"},"ansible3":{"nao_quota_disk_limit":"3GB","nao_qtree_security_style":"mixed"}}'
NAO_QTREE_STRING={"ansible1":{"nao_quota_disk_limit":"1GB","nao_qtree_security_style":"unix"},"ansible2":{"nao_quota_disk_limit":"2GB","nao_qtree_security_style":"ntfs"},"ansible3":{"nao_quota_disk_limit":"3GB","nao_qtree_security_style":"mixed"}}

# (check masks)
CLUSTERNAME_MASK="nlnaf"


# ===== functions ==========
AP_SVM_CRE_UPD()
{
echo "----------------"
echo "    NAO_CLUSTERNAME=${NAO_CLUSTERNAME}|"
echo "    NAO_SVM_NAME=${NAO_SVM_NAME}|"
echo "    NAO_SVM_ROOT_VOLUME=${NAO_SVM_ROOT_VOLUME}|"
echo "    NAO_SVM_ROOT_VOLUME_AGGREGATE=${NAO_SVM_ROOT_VOLUME_AGGREGATE}|"
echo "    NAO_SVM_INTERFACE_NAME=${NAO_SVM_INTERFACE_NAME}|"
echo "    NAO_SVM_ADDRESS=${NAO_SVM_ADDRESS}|"
echo "    NAO_SVM_NETMASK=${NAO_SVM_NETMASK}|"
echo "    NAO_SVM_HOME_NODE=${NAO_SVM_HOME_NODE}|"
echo "    NAO_SVM_HOME_PORT=${NAO_SVM_HOME_PORT}|"
echo "    NAO_SVM_GATEWAY=${NAO_SVM_GATEWAY}|"
echo "    NAO_IPSPACE=${NAO_IPSPACE}|"
echo "    ATOS_CHANGE_NR=${ATOS_CHANGE_NR}|"

ansible-playbook ${AP_DIR}/netapp-ontap_svm_create-update.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_svm_root_volume="${NAO_SVM_ROOT_VOLUME}" -e nao_svm_root_volume_aggregate="${NAO_SVM_ROOT_VOLUME_AGGREGATE}" -e nao_svm_interface_name="${NAO_SVM_INTERFACE_NAME}" -e nao_svm_address="${NAO_SVM_ADDRESS}" -e nao_svm_netmask="${NAO_SVM_NETMASK}" -e nao_svm_home_node="${NAO_SVM_HOME_NODE}" -e nao_svm_home_port="${NAO_SVM_HOME_PORT}" -e nao_svm_gateway="${NAO_SVM_GATEWAY}" -e nao_ipspace="${NAO_IPSPACE}" -e atos_change_nr="${ATOS_CHANGE_NR}"
}


AP_VOL_CRE_UPD()
{
# Remove the b's from gb & mb
# Needed for this autosizing playbook-part
NAO_VOL_SIZE_UNIT=`echo ${NAO_VOL_SIZE_UNIT}|sed 's/gb/g/g'|sed 's/mb/m/g'`
echo "----------------"
echo "    NAO_CLUSTERNAME=${NAO_CLUSTERNAME}|"
echo "    NAO_SVM_NAME=${NAO_SVM_NAME}|"
echo "    NAO_VOL_NAME=${NAO_VOL_NAME}|"
echo "    NAO_VOL_AGGR_NAME=${NAO_VOL_AGGR_NAME}|"
echo "    NAO_VOL_STOR_CLASS=${NAO_VOL_STOR_CLASS}|"
echo "    NAO_VOL_SIZE=${NAO_VOL_SIZE}|"
echo "    NAO_VOL_SIZE_UNIT=${NAO_VOL_SIZE_UNIT}|"
echo "    NAO_VOL_TYPE=${NAO_VOL_TYPE}|"
echo "    ATOS_CHANGE_NR=${ATOS_CHANGE_NR}|"
echo "    NAO_VOL_LANG=${NAO_VOL_LANG}|"

sleep 2

if [ "${NAO_VOL_LANG}" = "" ]; then
  ansible-playbook ${AP_DIR}/netapp-ontap_volume_create-update.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_vol_aggr_name="${NAO_VOL_AGGR_NAME}" -e nao_vol_stor_class="${NAO_VOL_STOR_CLASS}" -e nao_vol_size="${NAO_VOL_SIZE}" -e nao_vol_size_unit="${NAO_VOL_SIZE_UNIT}" -e nao_vol_type="${NAO_VOL_TYPE}" -e nao_vol_comment="${ATOS_CHANGE_NR}" 
else
  ansible-playbook ${AP_DIR}/netapp-ontap_volume_create-update.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_vol_aggr_name="${NAO_VOL_AGGR_NAME}" -e nao_vol_stor_class="${NAO_VOL_STOR_CLASS}" -e nao_vol_size="${NAO_VOL_SIZE}" -e nao_vol_size_unit="${NAO_VOL_SIZE_UNIT}" -e nao_vol_type="${NAO_VOL_TYPE}" -e nao_vol_comment="${ATOS_CHANGE_NR}" -e nao_vol_language="${NAO_VOL_LANG}"
fi

}


AP_QTREE_CRE_UPD()
{
echo "----------------"
echo "    NAO_CLUSTERNAME=${NAO_CLUSTERNAME}|"
echo "    NAO_SVM_NAME=${NAO_SVM_NAME}|"
echo "    NAO_VOL_NAME=${NAO_VOL_NAME}|"
#echo "NAO_QTREE_NAME=${NAO_QTREE_NAME}"
#echo "NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT}GB"
#echo "NAO_QTREE_SECURITY_STYLE=${NAO_QTREE_SECURITY_STYLE}"
echo "    NAO_QTREE_STRING=${NAO_QTREE_STRING}|"
echo ""
sleep 2

ansible-playbook ${AP_DIR}/netapp-ontap_qtree_create-update-loop.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_qtree_string=${NAO_QTREE_STRING}
}


AP_QUOTA_CRE_UPD()
{
echo "----------------"
echo "    NAO_CLUSTERNAME=${NAO_CLUSTERNAME}|"
echo "    NAO_SVM_NAME=${NAO_SVM_NAME}|"
echo "    NAO_VOL_NAME=${NAO_VOL_NAME}|"
#echo "NAO_QTREE_NAME=${NAO_QTREE_NAME}"
#echo "NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT}GB"
#echo "NAO_QTREE_SECURITY_STYLE=${NAO_QTREE_SECURITY_STYLE}"
echo "    NAO_QTREE_STRING=${NAO_QTREE_STRING}|"
echo ""
sleep 2

ansible-playbook ${AP_DIR}/netapp-ontap_quota_create-update-loop.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_qtree_string=${NAO_QTREE_STRING}
}


AP_EXPORT_POLICY_CRE_UPD()
{
echo "----------------"
echo "    NAO_CLUSTERNAME=${NAO_CLUSTERNAME}|"
echo "    NAO_SVM_NAME=${NAO_SVM_NAME}|"
echo "    NAO_VOL_NAME=${NAO_VOL_NAME}|"
echo "    NAO_QTREE_NAME=${NAO_QTREE_NAME}|"
echo "    NAO_QTREE_EXPORT_POLICY=${NAO_QTREE_EXPORT_POLICY}|"
#echo "NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT}GB"
#echo "NAO_QTREE_SECURITY_STYLE=${NAO_QTREE_SECURITY_STYLE}"
echo "    NAO_QTREE_STRING=${NAO_QTREE_STRING}|"
echo ""
sleep 2

# {"ansible11":{"nao_qtree_export_policy":"ansible11","nao_export_policy_client_match":"10.90.32.23/32"}}

ansible-playbook ${AP_DIR}/netapp-ontap_export_create-update-loop.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_qtree_string=${NAO_QTREE_STRING}
}




# ===== MAIN =====
echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
if [ "${1}" = "-V" ]; then
  echo "  Version: ${PGM} v${VER} . Exiting ..."
  exit 2
fi

if [ -f ${RCFILE} ]; then
  echo "  Found RCFILE (${RCFILE}). Using it ..."|tee -a ${LOG}
  . ${RCFILE}
fi
touch ${TMP}
# MENU
# When 1st param at script use it as CHOICE
if [ "${1}" != "" ]; then
  INPUT=${1}
fi
CHOICE=" "
until [ "${CHOICE}" = "0" ];
do
  echo "====================================================================="
  echo "NetApp ONTAP (Ansible Automation) Menu @${HOSTNAME}:"
  echo " 1 : Create Ansible user at NetApp-cluster"
#  echo "( 11 : Create Aggregate at NetApp-cluster"
  echo "16 : Create SVM (vserver) at NetApp-cluster"
#  echo "( 18 : Join a (SMB/CIFS-)domain to SVM (vserver) at NetApp-cluster"
  echo "19 : Remove SVM (vserver) at NetApp-cluster"
  echo "21 : Create VOLUME at NetApp-cluster"
  echo "27 : Offlining VOLUME at NetApp-cluster"
  echo "28 : Removing (without offline-ing) VOLUME at NetApp-cluster"
  echo "31 : Create QTREE at NetApp-cluster"
  echo "32 : Create QUOTA at NetApp-cluster"
  echo "41 : Create NFS-EXPORT"
#  echo "( 46 : Create SMB/CIFS-share"
#  echo "( 51 : Create LUN at NetApp-cluster"
#  echo "( 61 : Create SnapShot (Local backup) at NetApp-cluster"
#  echo "( 63 : Create SnapVault (Remote backup) at NetApp-cluster"
#  echo "( 67 : Create SnapMirror (DR) at NetApp-cluster"
  echo "90 : Show Cluster (via SSH-CLI)"
  echo "91 : Show SVMs (vservers) on a Cluster (via SSH-CLI)"
  echo "92 : Show Volume(s) on a Cluster & SVM (vserver) (via SSH-CLI)"
  echo "93 : Show Qtree(s) on a Cluster & SVM (vserver) (via SSH-CLI)"
  echo "94 : Show Quota(s) on a Cluster & SVM (vserver) (via SSH-CLI)"
  echo "95 : Show NFS-export(s) on a Cluster & SVM (vserver) (via SSH-CLI)"
  echo "9r : Report All (Vol+Qtree+Quota+Export) (via SSH-CLI)"
  echo "a0 : List of, Automation, CSV-file(s) in CSV_DIR (${CSV_DIR})"
  echo "a1 : create Automated SVMs using SVM-CSV-file CSV_DIR (${CSV_DIR})"
  echo "a2 : create Automated Volumes using Volume-CSV-file CSV_DIR (${CSV_DIR})"
  echo "a3 : create Automated Qtree using Volume-Qtree-CSV-file CSV_DIR (${CSV_DIR})"
  echo "a4 : create Automated Quota using Volume-Qtree-CSV-file CSV_DIR (${CSV_DIR})"
  echo "a5 : create Automated NFS-Export Volume-Qtree-CSV-file CSV_DIR (${CSV_DIR})"
  echo "a8 : remove Automated (without offline-ing) VOLUME at NetApp-cluster"
  echo "aa : create Automated All (Vol+Qtree+Quota+Export) from Volume-Qtree-CSV-file CSV_DIR (${CSV_DIR})"
  echo " 0 : Exit"
  if [ "${INPUT}" = "" ]; then
    echo -n "Choice: "
    read INPUT
    CHOICE="${INPUT}"
  fi
  CHOICE=`echo ${INPUT}|grep "^[0-9a]"`

  echo "  Choice=${CHOICE} "
  case ${CHOICE} in
    0) echo "  Exiting ..." ;;
    1) echo "  Create Ansible user at NetApp-cluster"
       echo -n "    Clustername (${NAO_CLUSTERNAME}):"
       read INPUT
       if [ "${INPUT}" != "" ]; then
         NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
       fi  # INPUT}" != ""
       echo -n "      Creating user ansible at ${NAO_CLUSTERNAME} [y|N] ?" 
       read INPUT
       if [ "${INPUT}" = "y" ]; then
         ansible-playbook ${AP_DIR}/netapp-ontap_user_ansible_create.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}"
       fi  # y
        INPUT=""
      ;;

    16) echo "  Create SVM (vserver) at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [${SVM_PREFIX_NAME}<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
# NAO_SVM_ADDRESS
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_ADDRESS}" != "" ]; do
          echo -n "    SVM (vserver)address [www.xxx.yyy.zzz] (${NAO_SVM_ADDRESS}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_ADDRESS=`echo ${INPUT}|grep "[0-9.]"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
# NAO_SVM_INTERFACE_NAME = LIF
        NAO_SVM_INTERFACE_NAME="${SVM_SUFFIX_NAME}"
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_INTERFACE_NAME}" != "" ]; do
          echo -n "    SVM (vserver)LIF name [<aaa><nn>[-[<aaa>]] ] (${NAO_SVM_INTERFACE_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_INTERFACE_NAME=`echo ${INPUT}|grep "[a-z][a-z][a-z][0-9][0-9][-][a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
#
NAO_SVM_ROOT_VOLUME="${SVM_SUFFIX_NAME}_vol0root"
#NAO_SVM_ROOT_VOLUME_AGGREGATE="${NAO_VOL_AGGR_NAME}"
#NAO_IPSPACE="${SVM_SUFFIX_NAME}-ipspace"
#NAO_SVM_HOME_NODE="${NAO_CLUSTERNAME}-05"
#NAO_SVM_ADDRESS="10.90.32.55"
#NAO_SVM_NETMASK="255.255.255.0"
#NAO_SVM_HOME_PORT="a300a-2"
#NAO_SVM_GATEWAY="10.90.32.1"

         AP_SVM_CRE_UPD

       ;;


    19) echo "  Remove SVM (vserver) at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until


#SVM_PREFIX_NAME="nlnafs" 
#SVM_PREFIX_NAME="tlenl" 
SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
#
NAO_SVM_ROOT_VOLUME="${SVM_SUFFIX_NAME}_vol0root"
NAO_SVM_INTERFACE_NAME="${SVM_SUFFIX_NAME}"

echo "NAO_SVM_ROOT_VOLUME=${NAO_SVM_ROOT_VOLUME}"
echo "NAO_SVM_INTERFACE_NAME=${NAO_SVM_INTERFACE_NAME}"

       echo -n "      Removing SVM (vserver) ${NAO_CLUSTERNAME}:${NAO_SVM_NAME} [y|N] ? " 
       read INPUT
       if [ "${INPUT}" = "y" ]; then
         ansible-playbook ${AP_DIR}/netapp-ontap_svm_remove.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_svm_root_volume="${NAO_SVM_ROOT_VOLUME}" -e nao_svm_interface_name="${NAO_SVM_INTERFACE_NAME}"

#         - nao_clustername
#        - nao_svm_name
#        - nao_svm_root_volume
#        - nao_svm_interface_name

       fi  # y
        INPUT=""
      ;;

    21) echo "  Create Volume at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
        NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_NAME}" != "" ]; do
          echo -n "    Volume suffix-name [${SVM_PREFIX_NAME}_vol<00000>] (${VOL_SUFFIX}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
#            NAO_VOL_NAME=`echo ${INPUT}|grep "[a-z][a-z][a-z][0-9][0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            VOL_SUFFIX=`echo ${INPUT}|grep "vol[0-9][0-9][0-9][0-9][0-9]"`
            NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_AGGR_NAME}" != "" ]; do
          echo -n "    Aggregatename [n<00>a<0000>] (${NAO_VOL_AGGR_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_VOL_AGGR_NAME=`echo ${INPUT}|grep "n[0-9][0-9]a[0-9][0-9][0-9][0-9]"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_STOR_CLASS}" != "" ]; do
          echo -n "    Storage class [bronze|silver|gold|platinum] (${NAO_VOL_STOR_CLASS}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_VOL_STOR_CLASS=`echo ${INPUT}|egrep "bronze|silver|gold|platinum"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_SIZE_UNIT}" != "" ]; do
          echo -n "    Volume size unit [gb|mb] (${NAO_VOL_SIZE_UNIT}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_VOL_SIZE_UNIT=`echo ${INPUT}|egrep "gb|mb"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_SIZE}" != "" ]; do
          echo -n "    Volume size [in ${NAO_VOL_SIZE_UNIT}] (${NAO_VOL_SIZE}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_VOL_SIZE=`echo ${INPUT}|grep "^[0-9]*"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        read INPUT
        if [ "${INPUT}" = "y" ]; then
          AP_VOL_CRE_UPD
          EC=${?}
          echo "    Created/updated Volume ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME} of ${NAO_VOL_SIZE} ${NAO_VOL_SIZE_UNIT} [${ATOS_CHANGE_NR}]. EC=${EC}" |tee -a ${LOG}
          INPUT=31
        else
          INPUT=""
        fi  # y

        ;;
    27) echo "  Offlining Volume at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_NAME}" != "" ]; do
          echo -n "    Volumename [<svm-part>_vol<00000>] (${NAO_VOL_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_VOL_NAME=`echo ${INPUT}|grep "[a-z][a-z][a-z][0-9][0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_AGGR_NAME}" != "" ]; do
          echo -n "    Aggregatename [n<00>a<0000>] (${NAO_VOL_AGGR_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_VOL_AGGR_NAME=`echo ${INPUT}|grep "n[0-9][0-9]a[0-9][0-9][0-9][0-9]"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        echo -n "      Offlining volume ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME} (${NAO_VOL_AGGR_NAME}) [y|N] ? " 
        read INPUT
        if [ "${INPUT}" = "y" ]; then
          ansible-playbook ${AP_DIR}/netapp-ontap_volume_offline.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_aggr_name="${NAO_VOL_AGGR_NAME}"
        fi  # y
        INPUT=""
        ;;

    28) echo "  Deleting Volume at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
        NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_NAME}" != "" ]; do
          echo -n "    Volume suffix-name [${SVM_PREFIX_NAME}_vol<00000>] (${VOL_SUFFIX}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
#            NAO_VOL_NAME=`echo ${INPUT}|grep "[a-z][a-z][a-z][0-9][0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            VOL_SUFFIX=`echo ${INPUT}|grep "vol[0-9][0-9][0-9][0-9][0-9]"`
            NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_AGGR_NAME}" != "" ]; do
          echo -n "    Aggregatename [n<00>a<0000>] (${NAO_VOL_AGGR_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_VOL_AGGR_NAME=`echo ${INPUT}|grep "n[0-9][0-9]a[0-9][0-9][0-9][0-9]"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        echo -n "      Removing (when offline) volume ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME} (${NAO_VOL_AGGR_NAME}) [y|N] ? " 
        read INPUT
        if [ "${INPUT}" = "y" ]; then
          ansible-playbook ${AP_DIR}/netapp-ontap_volume_remove.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" 
#-e nao_aggr_name="${NAO_VOL_AGGR_NAME}"
          INPUT=92
        else
          INPUT=""
        fi  # y
        ;;

    31) echo "  Create QTREE at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
# When 3rd param, use this as NAO_SVM_NAME
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
        NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_NAME}" != "" ]; do
          echo -n "    Volume suffix-name [${SVM_PREFIX_NAME}_vol<00000>] (${VOL_SUFFIX}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
#            NAO_VOL_NAME=`echo ${INPUT}|grep "[a-z][a-z][a-z][0-9][0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            VOL_SUFFIX=`echo ${INPUT}|grep "vol[0-9][0-9][0-9][0-9][0-9]"`
            NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

#        NAO_QTREE_STRING='{"ansible1":{"nao_quota_disk_limit":"1GB","nao_qtree_security_style":"unix"},"ansible2":{"nao_quota_disk_limit":"2GB","nao_qtree_security_style":"ntfs"},"ansible3":{"nao_quota_disk_limit":"3GB","nao_qtree_security_style":"mixed"}}'

        echo "NAO_QTREE_STRING=${NAO_QTREE_STRING}"

        echo -n "      Creating Qtree(s) ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME}  [y|N] ? " 
        read INPUT
        if [ "${INPUT}" = "y" ]; then

          AP_QTREE_CRE_UPD

#          ansible-playbook ${AP_DIR}/netapp-ontap_qtree_create-update-loop.yml -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_qtree_string=${NAO_QTREE_STRING}

          INPUT=93
        else
          INPUT=""
        fi  # y
        ;;


    32) echo "  Create QUOTA at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
# When 3rd param, use this as NAO_SVM_NAME
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
        NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_NAME}" != "" ]; do
          echo -n "    Volume suffix-name [${SVM_PREFIX_NAME}_vol<00000>] (${VOL_SUFFIX}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
#            NAO_VOL_NAME=`echo ${INPUT}|grep "[a-z][a-z][a-z][0-9][0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            VOL_SUFFIX=`echo ${INPUT}|grep "vol[0-9][0-9][0-9][0-9][0-9]"`
            NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
            INPUT=""
          fi  # INPUT}" != ""
        done  # until


        echo "NAO_QTREE_STRING=${NAO_QTREE_STRING}"

        echo -n "      Creating QUOTA(s) ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME}  [y|N] ? " 
        read INPUT
        if [ "${INPUT}" = "y" ]; then
          AP_QUOTA_CRE_UPD

#          ansible-playbook ${AP_DIR}/netapp-ontap_quota_create-update-loop.yml -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_qtree_string=${NAO_QTREE_STRING}

          INPUT=94
        else
          INPUT=""
        fi  # y
        ;;



    41) echo "  Create NFS-exports at NetApp-cluster"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
# When 3rd param, use this as NAO_SVM_NAME
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
        NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
        INPUT=" "
        until [ "${INPUT}" = "" ] && [ "${NAO_VOL_NAME}" != "" ]; do
          echo -n "    Volume suffix-name [${SVM_PREFIX_NAME}_vol<00000>] (${VOL_SUFFIX}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
#            NAO_VOL_NAME=`echo ${INPUT}|grep "[a-z][a-z][a-z][0-9][0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            VOL_SUFFIX=`echo ${INPUT}|grep "vol[0-9][0-9][0-9][0-9][0-9]"`
            NAO_VOL_NAME="${SVM_SUFFIX_NAME}_${VOL_SUFFIX}"
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        echo "NAO_QTREE_STRING=${NAO_QTREE_STRING}"

        echo -n "      Creating QUOTA(s) ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME}  [y|N] ? " 
        read INPUT
        if [ "${INPUT}" = "y" ]; then
          AP_EXPORT_POLICY_CRE_UPD

#          ansible-playbook ${AP_DIR}/netapp-ontap_export_create-update-loop.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" -e nao_qtree_string=${NAO_QTREE_STRING}
          INPUT=95
        else
          INPUT=""
        fi  # y
        ;;





    90) echo "  Show Cluster (via SSH-CLI)"
# Check var with reg-expr, Until valid. Then to next Question
# When 2nd param, use this as NAO_CLUSTERNAME
        INPUT=" "
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        ${SSH} ${NAO_CLUSTERNAME} "cluster show"
        echo "[ENTER]"
        read INPUT
        ;;

    91) echo "  Show SVMs (vservers) on a Cluster (via SSH-CLI)"
# Check var with reg-expr, Until valid. Then to next Question
# When 2nd param, use this as NAO_CLUSTERNAME
        INPUT=" "
        if [ "${2}" != "" ]; then
          NAO_CLUSTERNAME="${2}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
# When 3rd param, use this as NAO_SVM_NAME
        INPUT=" "
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        ${SSH} ${NAO_CLUSTERNAME} "vserver show -vserver \"${NAO_SVM_NAME}\" -field vserver,type,operational-state,aggregate,rootvolume"
        ${SSH} ${NAO_CLUSTERNAME} "network interface show -vserver \"${NAO_SVM_NAME}\" -field vserver, lif,address,curr-node,curr-port"
        echo "[ENTER]"
        read INPUT
        ;;


    92) echo "  Show Volumes on a Cluster & SVM (vserver) (via SSH-CLI)"
# Check var with reg-expr, Until valid. Then to next Question
# When 2nd param, use this as NAO_CLUSTERNAME
        INPUT=" "
        if [ "${NAO_CLUSTERNAME}" = "" ] && [ "${2}" != "" ]; then
          NAO_CLUSTERNAME=`echo ${2}|grep "${CLUSTERNAME_MASK}"`
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

# When 3rd param, use this as NAO_SVM_NAME
        INPUT=" "
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        ${SSH} ${NAO_CLUSTERNAME} "volume show -vserver \"${NAO_SVM_NAME}\" -field vserver,volume,aggregate,qos-policy-group,total,type,create-time,policy,comment,autosize-mode"
        echo "[ENTER]"
        read INPUT
        ;;

    93) echo "  Show Qtree(s) + Volume(s) on a Cluster & SVM (vserver) (via SSH-CLI)"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${NAO_CLUSTERNAME}" = "" ] && [ "${2}" != "" ]; then
          NAO_CLUSTERNAME=`echo ${2}|grep "${CLUSTERNAME_MASK}"`
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "${CLUSTERNAME_MASK}"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
# When 3rd param, use this as NAO_SVM_NAME
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        ${SSH} ${NAO_CLUSTERNAME} "qtree show -vserver \"${NAO_SVM_NAME}\" -field vserver,volume,qtree,export,security-style"
        echo "[ENTER]"
        read INPUT
        ;;

    94) echo "  Show Quota(s) + Volume(s) on a Cluster & SVM (vserver) (via SSH-CLI)"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${NAO_CLUSTERNAME}" = "" ] && [ "${2}" != "" ]; then
          NAO_CLUSTERNAME=`echo ${2}|grep "${CLUSTERNAME_MASK}"`
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "[a-z]*$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
# When 3rd param, use this as NAO_SVM_NAME
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        ${SSH} ${NAO_CLUSTERNAME} "quota report -vserver \"${NAO_SVM_NAME}\" -field vserver,volume,tree,disk-limit"

        echo "[ENTER]"
        read INPUT
        ;;


    95) echo "  Show Exports + Volume(s) on a Cluster & SVM (vserver) (via SSH-CLI)"
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${NAO_CLUSTERNAME}" = "" ] && [ "${2}" != "" ]; then
          NAO_CLUSTERNAME=`echo ${2}|grep "${CLUSTERNAME_MASK}"`
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "${CLUSTERNAME_MASK}"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
# When 3rd param, use this as NAO_SVM_NAME
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        ${SSH} ${NAO_CLUSTERNAME} "export-policy rule show -vserver \"${NAO_SVM_NAME}\" -field vserver,policyname,ruleindex,protocol,clientmatch,rorule,rwrule,superuser,allow-suid"

        echo "[ENTER]"
        read INPUT
        ;;


    9r) echo "  Report All "
# Check var with reg-expr, Until valid. Then to next Question
        INPUT=" "
# When 2nd param, use this as NAO_CLUSTERNAME
        if [ "${NAO_CLUSTERNAME}" = "" ] && [ "${2}" != "" ]; then
          NAO_CLUSTERNAME=`echo ${2}|grep "${CLUSTERNAME_MASK}"`
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_CLUSTERNAME}" != "" ]; do
          echo -n "    Clustername (${NAO_CLUSTERNAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_CLUSTERNAME=`echo ${INPUT}|grep "${CLUSTERNAME_MASK}"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until
        INPUT=" "
# When 3rd param, use this as NAO_SVM_NAME
        if [ "${3}" != "" ]; then
          NAO_SVM_NAME="${3}"
          INPUT=""
        fi
        until [ "${INPUT}" = "" ] && [ "${NAO_SVM_NAME}" != "" ]; do
          echo -n "    SVM (vserver)name [tlenl<aaa><00>] (${NAO_SVM_NAME}): "
          read INPUT
          if [ "${INPUT}" != "" ]; then
            NAO_SVM_NAME=`echo ${INPUT}|grep "[a-z]*[0-9]$"`
            INPUT=""
          fi  # INPUT}" != ""
        done  # until

        echo "  Processing ${NAO_CLUSTERNAME}:${NAO_SVM_NAME} ..."
        echo "# NAO_CLUSTERNAME;NAO_SVM_NAME;NAO_VOL_NAME;NAO_VOL_AGGR_NAME;NAO_VOL_STOR_CLASS;NAO_VOL_SIZE;NAO_VOL_SIZE_UNIT;NAO_VOL_TYPE;ATOS_CHANGE_NR;NAO_QTREE_NAME;NAO_QUOTA_DISK_LIMIT;NAO_QTREE_SECURITY_STYLE;NAO_QTREE_EXPORT_POLICY" > ${TMP}

        ${SSH} ${NAO_CLUSTERNAME} "set -showseparator \";\" -units GB ; volume show -vserver \"${NAO_SVM_NAME}\" -field vserver,volume,size,aggregate,type,qos-policy-group,comment,autosize-mode"|grep "${NAO_SVM_NAME}"|while read LINE
        do
#echo "LINE=${LINE}"

          NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $2}'`
          NAO_VOL_AGGR_NAME=`echo ${LINE}|awk -F\; '{print $3}'`
          NAO_VOL_STOR_CLASS=`echo ${LINE}|awk -F\; '{print $8}'|cut -d\_ -f2`
          NAO_VOL_SIZE=`echo ${LINE}|awk -F\; '{print $4}'|sed 's/GB//g'`
          NAO_VOL_SIZE_UNIT="GB"
          NAO_AUTOSIZE_MODE=`echo ${LINE}|awk -F\; '{print $6}'`
          NAO_VOL_TYPE=`echo ${LINE}|awk -F\; '{print $7}'`
          ATOS_CHANGE_NR=`echo ${LINE}|awk -F\; '{print $5}'`

          ${SSH} ${NAO_CLUSTERNAME} "set -showseparator \";\" -units GB ; qtree show -vserver \"${NAO_SVM_NAME}\" -volume \"${NAO_VOL_NAME}\" -field vserver,volume,security-style,export"|grep "${NAO_SVM_NAME}"|while read LINE2
          do
#            NAO_QTREE_NAME=`echo ${LINE2}|awk -F\; '{print $3}'|grep -v ^#|grep -v "\"\""`
            NAO_QTREE_NAME=`echo ${LINE2}|awk -F\; '{print $3}'|grep -v "\"\""|grep -v ^#|grep "[a-z0-9]*$"`
            NAO_QTREE_SECURITY_STYLE=`echo ${LINE2}|awk -F\; '{print $4}'`
            NAO_QTREE_EXPORT_POLICY=`echo ${LINE2}|awk -F\; '{print $5}'`

            if [ "${NAO_QTREE_NAME}" != "" ]; then
              NAO_QUOTA_DISK_LIMIT=`${SSH} ${NAO_CLUSTERNAME} "set -showseparator \";\" -units GB ; quota report -vserver \"${NAO_SVM_NAME}\" -tree \"${NAO_QTREE_NAME}\" -field vserver,volume,tree,disk-limit"|grep "${NAO_SVM_NAME}"|awk -F\; '{print $5}'|head -1`
#              echo "      NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT}"
            fi

            echo -n "${NAO_CLUSTERNAME};${NAO_SVM_NAME};${NAO_VOL_NAME};${NAO_VOL_AGGR_NAME};${NAO_VOL_STOR_CLASS};${NAO_VOL_SIZE};${NAO_VOL_SIZE_UNIT};${NAO_VOL_TYPE};${ATOS_CHANGE_NR};" |tee -a  ${TMP}
            if [ "${NAO_QTREE_NAME}" != "" ]; then
              echo "${NAO_QTREE_NAME};${NAO_QUOTA_DISK_LIMIT};${NAO_QTREE_SECURITY_STYLE};${NAO_QTREE_EXPORT_POLICY};${NAO_AUTOSIZE_MODE};" |tee -a  ${TMP}
            else
              echo ";;;;${NAO_AUTOSIZE_MODE};"|tee -a  ${TMP}
            fi
          done # LINE2
        done  # LINE (volume)
        if [ "${MAILTO}" != "" ]; then
          cp ${TMP} ${CSV}
          date | mailx -a ${CSV} -s "CSV-file [${PGM} v${VER}]" ${MAILTO}
          echo "  Mailed CSV to ${MAILTO}"|tee -a ${LOG}
          sleep 1
        fi
        INPUT=""
        ;;







# Automated (from CSV-file

    a0) echo "  List of, Automation, CSV-file(s) in ${CSV_DIR}:"
        INPUT=" "
        cd ${CSV_DIR}
        ls -l *.csv

        echo "[ENTER]"
        read INPUT
        ;;


    a1) echo "  create Automated SVM (nl-fsod-svm*) from, CSV-file in ${CSV_DIR}: with FILTER=${FILTER} ..."
        INPUT=" "
        cd ${CSV_DIR}
        if [ "${2}" != "" ]; then
          SVM_CSV_FILE="${2}"
          INPUT=""
        fi
        if [ "${SVM_CSV_FILE}" = "" ]; then
          ls -1 nl-fsod-svm*.csv
          echo -n "    Which file ? "
          read SVM_CSV_FILE
        else
          echo "    SVM_CSV_FILE=${SVM_CSV_FILE}"
        fi
        if [ "${SVM_CSV_FILE}" != "" ] && [ -f ${SVM_CSV_FILE} ]; then
          echo "`date`  (a1) Processing ${SVM_CSV_FILE} (FILTER=${FILTER}) ..."|tee -a ${LOG}
# NAO_CLUSTERNAME;NAO_SVM_NAME;NAO_SVM_INTERFACE_NAME;NAO_SVM_ROOT_VOLUME;NAO_SVM_ROOT_VOLUME_AGGREGATE;NAO_IPSPACE;NAO_SVM_ADDRESS;NAO_SVM_NETMASK;NAO_SVM_GATEWAY;NAO_SVM_HOME_NODE;NAO_SVM_HOME_PORT;CH-NR
#;;;;;;;;;;;
#nlnaf101;nlnafsavi01;avi01;avi01_vol0root;n07a3801;avi01-ipspace;192.168.21.5;255.255.255.0;192.168.21.1;nlnaf100-07;a108a-1031;CHG002197966;
          cat ${SVM_CSV_FILE}| grep -v ^#|grep "${FILTER}"|while read LINE
          do
            NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'|grep "[a-z]*$"`
            NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'|grep "[a-z]*[0-9]$"`
#            NAO_SVM_INTERFACE_NAME=`echo ${LINE}|awk -F\; '{print $3}'|grep "[a-z][a-z][a-z][0-9][0-9][-][a-z]*$"`
            NAO_SVM_INTERFACE_NAME=`echo ${LINE}|awk -F\; '{print $3}'`
            NAO_SVM_ROOT_VOLUME=`echo ${LINE}|awk -F\; '{print $4}'`
            NAO_SVM_ROOT_VOLUME_AGGREGATE=`echo ${LINE}|awk -F\; '{print $5}'`
            NAO_IPSPACE=`echo ${LINE}|awk -F\; '{print $6}'`
            NAO_SVM_ADDRESS=`echo ${LINE}|awk -F\; '{print $7}'|grep "[0-9.]"`
            NAO_SVM_NETMASK=`echo ${LINE}|awk -F\; '{print $8}'`
            NAO_SVM_GATEWAY=`echo ${LINE}|awk -F\; '{print $9}'`
            NAO_SVM_HOME_NODE=`echo ${LINE}|awk -F\; '{print $10}'`
            NAO_SVM_HOME_PORT=`echo ${LINE}|awk -F\; '{print $11}'`
            ATOS_CHANGE_NR=`echo ${LINE}|awk -F\; '{print $12}'`
            if [ "${ATOS_CHANGE_NR}" = "" ]; then
              ATOS_CHANGE_NR=`echo "${PGM}_v${VER}_${DATI}"`
            fi

# ansible-playbook function
            AP_SVM_CRE_UPD
            INPUT=""

          done  # LINE
        else
          echo "    ${SVM_CSV_FILE} NOT found"
        fi  # SVM_FILE
        INPUT=""

        ;;


    a2) echo "  creating Automated Volumes (nl-fsod-volume*) from, CSV-file in ${CSV_DIR} with FILTER=${FILTER} ..."
        INPUT=" "
        cd ${CSV_DIR}
        if [ "${2}" != "" ]; then
          VOL_CSV_FILE="${2}"
          INPUT=""
        fi
        if [ "${VOL_CSV_FILE}" = "" ]; then
          ls -1 nl-fsod-volume*.csv
          echo -n "    Which file ? "
          read VOL_CSV_FILE
        else
          echo "    VOL_CSV_FILE=${VOL_CSV_FILE}"
        fi
        if [ "${VOL_CSV_FILE}" != "" ] && [ -f ${VOL_CSV_FILE} ]; then
          echo "`date`  (a2) Processing ${VOL_CSV_FILE} (FILTER=${FILTER}) ..."|tee -a ${LOG}
          cat ${VOL_CSV_FILE}| grep -v ^#|grep "${FILTER}"|while read LINE
          do
# Adding a extra ";" (needed for awk -F\;)
            LINE="${LINE};"

            NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'|grep "[a-z]*$"`
            NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'|grep "${SVM_PREFIX_NAME}"|grep "[a-z]*[0-9]$"`
            SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
            NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $3}'|grep "${SVM_SUFFIX_NAME}"|grep "[a-z]*[0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`

            NAO_VOL_AGGR_NAME=`echo ${LINE}|awk -F\; '{print $4}'|grep "n[0-9][0-9]a[0-9][0-9][0-9][0-9]"`
            NAO_VOL_STOR_CLASS=`echo ${LINE}|awk -F\; '{print $5}'|egrep "bronze|silver|gold|platinum"`
            NAO_VOL_SIZE=`echo ${LINE}|awk -F\; '{print $6}'|grep "^[0-9]*"`
            NAO_VOL_SIZE_UNIT=`echo ${LINE}|awk -F\; '{print $7}'|tr [:upper:] [:lower:]|egrep "gb|mb"`
            NAO_VOL_TYPE=`echo ${LINE}|awk -F\; '{print $8}'|egrep "RW|DP|XDP"|sed 's/XDP/DP/g'`
            ATOS_CHANGE_NR=`echo ${LINE}|awk -F\; '{print $9}'`
            if [ "${ATOS_CHANGE_NR}" = "" ]; then
              ATOS_CHANGE_NR=`echo "${PGM}_v${VER}_${DATI}"`
            fi

# Is there a Qtree+Quota
            NAO_QTREE_NAME=`echo ${LINE}|awk -F\; '{print $10}'|grep -v ^#|grep "[a-z0-9]*$"`
            NAO_QUOTA_DISK_LIMIT=`echo ${LINE}|awk -F\; '{print $11}'|sed 's/[a-zA-Z]*//g'|grep "[0-9]*$"`
# Added: Volume_language
            NAO_VOL_LANG=`echo ${LINE}|awk -F\; '{print $14}'|grep -v ^#|grep "[a-zA-Z]*$"`

            if [ "${NAO_VOL_TYPE}" = "RW" ] && [ "${NAO_QTREE_NAME}" != "" ] && [ "${NAO_QUOTA_DISK_LIMIT}" != "" ]; then
              echo "    NAO_QTREE_NAME=${NAO_QTREE_NAME}"
              echo "    NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT}"
              TOTAL_QUOTA_SIZE_GB=0
              cat ${VOL_CSV_FILE}| grep -v ^#|grep "${NAO_VOL_NAME}"|while read LINE2
              do 
                NAO_QTREE_NAME=`echo ${LINE2}|awk -F\; '{print $10}'|grep -v ^#|grep "[a-z0-9]*$"`
                NAO_QUOTA_DISK_LIMIT=`echo ${LINE2}|awk -F\; '{print $11}'|sed 's/[a-zA-Z]*//g'|grep "[0-9]*$"`
                if [ ${TOTAL_QUOTA_SIZE_GB} != "" ]; then
                  TOTAL_QUOTA_SIZE_GB=`expr ${TOTAL_QUOTA_SIZE_GB} + ${NAO_QUOTA_DISK_LIMIT}`
                else
                  TOTAL_QUOTA_SIZE_GB=`expr ${TOTAL_QUOTA_SIZE_GB} + 0`
                fi
                echo "      NAO_QTREE_NAME=${NAO_QTREE_NAME} NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT} (TOTAL_QUOTA_SIZE_GB=${TOTAL_QUOTA_SIZE_GB})"
                echo "${TOTAL_QUOTA_SIZE_GB}" > ${TMP}.tq
              done  # cat ${VOL_CSV_FILE
              TOTAL_QUOTA_SIZE_GB=`cat ${TMP}.tq|head -1` 
              if [ ${NAO_VOL_SIZE} -ne ${TOTAL_QUOTA_SIZE_GB} ]; then
                NAO_VOL_SIZE=${TOTAL_QUOTA_SIZE_GB}
                echo "      NAO_VOL_SIZE set to ${TOTAL_QUOTA_SIZE_GB}"
                sleep 2
              fi
              rm ${TMP}.tq
            fi  # "${NAO_VOL_TYPE}" = "RW" ] &&

echo "    NAO_VOL_NAME=${NAO_VOL_NAME}"
echo "    NAO_VOL_SIZE=${NAO_VOL_SIZE}"
echo "    NAO_VOL_SIZE_UNIT=${NAO_VOL_SIZE_UNIT}"
            if [ "${NAO_VOL_NAME}" != "" ] && [ "${NAO_VOL_STOR_CLASS}" != "" ] && [ "${NAO_VOL_SIZE_UNIT}" != "" ] ; then

# ansible-playbook function
echo "LINE=${LINE}"
sleep 1
              AP_VOL_CRE_UPD
              EC=${?}
              echo "    Created/updated Volume ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME} of ${NAO_VOL_SIZE} ${NAO_VOL_SIZE_UNIT} [${ATOS_CHANGE_NR}]. EC=${EC}" |tee -a ${LOG}
              if [ ${EC} -ne 0 ]; then
                INPUT=""
                echo "      ERROR(${EC}) occurred. Press [ENTER]"
                read INPUT
              else
                INPUT=92
              fi
            else
              echo "      NO AP_VOL_CRE_UPD (${LINE})"
            fi  # ${NAO_VOL_NAME}" != "" 

          done   #LINE
        else
          echo "    ${SVM_CSV_FILE} NOT found"
        fi  # VOL_FILE

        ;;



    a3) echo "  create Automated Qtrees (nl-fsod-volume-qtree*.csv) from, CSV-file in ${CSV_DIR}:"
        INPUT=" "
        cd ${CSV_DIR}
        if [ "${2}" != "" ]; then
          VOL_CSV_FILE="${2}"
          INPUT=""
        fi
        if [ "${VOL_CSV_FILE}" = "" ]; then
          ls -1 nl-fsod-volume-qtree*.csv
          echo -n "    Which file ? "
          read VOL_CSV_FILE
        else
          echo "    VOL_CSV_FILE=${VOL_CSV_FILE}"
        fi
        if [ "${VOL_CSV_FILE}" != "" ] && [ -f ${VOL_CSV_FILE} ]; then
          echo "`date`  (a3) Processing ${VOL_CSV_FILE} ..."|tee -a ${LOG}
          cat ${VOL_CSV_FILE}| grep -v ^#|grep "${FILTER}"|while read LINE
          do
            NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'|grep "[a-z]*$"`
            NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'|grep "${SVM_PREFIX_NAME}"|grep "[a-z]*[0-9]$"`
            SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
            NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $3}'|grep "${SVM_SUFFIX_NAME}"|grep "[a-z]*[0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
echo "NAO_VOL_NAME=${NAO_VOL_NAME}"

            NAO_QTREE_NAME=`echo ${LINE}|awk -F\; '{print $10}'|grep -v ^#|grep "[a-z0-9]*$"`
            NAO_QTREE_SECURITY_STYLE=`echo ${LINE}|awk -F\; '{print $12}'|egrep "unix|ntfs|mixed"`

#            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_quota_disk_limit\":\"${NAO_QUOTA_DISK_LIMIT}GB\",\"nao_qtree_security_style\":\"${NAO_QTREE_SECURITY_STYLE}\"}}"
            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_qtree_security_style\":\"${NAO_QTREE_SECURITY_STYLE}\"}}"

            if [ "${NAO_QTREE_NAME}" != "" ]; then
              AP_QTREE_CRE_UPD
              EC=${?}
              if [ ${EC} -ne 0 ]; then
                INPUT=" "
                echo "      ERROR(${EC}) occurred. Press [ENTER]"
                read INPUT
              else
                CHOICE=93
              fi  # EC} -ne 0
            fi  # NAO_QTREE_NAME}" != ""

          done  # LINE
        else
          echo "    ${SVM_CSV_FILE} NOT found"
        fi  # VOL_FILE
        ;;


    a4) echo "  create Automated Quota (nl-fsod-volume-qtree-quota*.csv) from, CSV-file in ${CSV_DIR}:"
        INPUT=" "
        cd ${CSV_DIR}
        ls -1 nl-fsod-volume-qtree-quota*.csv
        echo -n "    Which file ? "
        read VOL_CSV_FILE
        if [ -f ${VOL_CSV_FILE} ]; then
          echo "`date`  (a4) Processing ${VOL_CSV_FILE} ..."|tee -a ${LOG}
          TOTAL_QUOTA_SIZE_GB=0
          cat ${VOL_CSV_FILE}|grep -v ^#|grep "${FILTER}"|while read LINE
          do
echo "LINE=${LINE}"
            NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'|grep "[a-z]*$"`
            NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'|grep "${SVM_PREFIX_NAME}"|grep "[a-z]*[0-9]$"`
            SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
            NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $3}'|grep "${SVM_SUFFIX_NAME}"|grep "[a-z]*[0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
echo "NAO_VOL_NAME=${NAO_VOL_NAME}"

            NAO_VOL_SIZE=`echo ${LINE}|awk -F\; '{print $6}'|grep "^[0-9]*"`
            NAO_VOL_SIZE_UNIT=`echo ${LINE}|awk -F\; '{print $7}'|egrep "gb"`

            NAO_QTREE_NAME=`echo ${LINE}|awk -F\; '{print $10}'|grep -v ^#|grep "[a-z0-9]*$"`
            NAO_QUOTA_DISK_LIMIT=`echo ${LINE}|awk -F\; '{print $11}'|sed 's/[a-zA-Z]*//g'|grep "[0-9]*$"`
            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_quota_disk_limit\":\"${NAO_QUOTA_DISK_LIMIT}GB\"}}"

            if [ "${NAO_QTREE_NAME}" != "" ]; then
              AP_QUOTA_CRE_UPD
              EC=${?}
              echo "    Created/updated Quota ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME} ${NAO_QTREE_STRING} [${ATOS_CHANGE_NR}]. EC=${EC}" |tee -a ${LOG}
            fi  # NAO_QTREE_NAME}" != ""

            TOTAL_QUOTA_SIZE_GB=`expr ${TOTAL_QUOTA_SIZE_GB} + ${NAO_QUOTA_DISK_LIMIT}`
            echo "      TOTAL_QUOTA_SIZE_GB=${TOTAL_QUOTA_SIZE_GB}GB"

# If TOTAL_VOL_SIZE_GB <> NAO_VOL_SIZE, then update volume(size) to TOTAL_VOL_SIZE_GB
            if [ ${TOTAL_QUOTA_SIZE_GB} -ne ${NAO_VOL_SIZE} ]; then
              NAO_VOL_AGGR_NAME=`echo ${LINE}|awk -F\; '{print $4}'|grep "n[0-9][0-9]a[0-9][0-9][0-9][0-9]"`
              NAO_VOL_STOR_CLASS=`echo ${LINE}|awk -F\; '{print $5}'|egrep "bronze|silver|gold|platinum"`
echo "NAO_VOL_STOR_CLASS=${NAO_VOL_STOR_CLASS}"
sleep 1
              NAO_VOL_TYPE=`echo ${LINE}|awk -F\; '{print $8}'|egrep "RW|DP|XDP"|sed 's/XDP/DP/g'`
              ATOS_CHANGE_NR=`echo ${LINE}|awk -F\; '{print $9}'`
              if [ "${ATOS_CHANGE_NR}" = "" ]; then
                ATOS_CHANGE_NR=`echo "${PGM}_v${VER}_${DATI}"`
              fi

              NAO_VOL_SIZE=${TOTAL_QUOTA_SIZE_GB}
              echo "    ${NAO_VOL_NAME} VOL_SIZE changing to ${NAO_VOL_SIZE}"|tee -a ${LOG}
sleep 1
              AP_VOL_CRE_UPD
              EC=${?}
              echo "    Created/updated Volume ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME} (${NAO_VOL_STOR_CLASS}) of ${NAO_VOL_SIZE} ${NAO_VOL_SIZE_UNIT} [${ATOS_CHANGE_NR}]. EC=${EC}" |tee -a ${LOG}
               
            fi  # TOTAL_QUOTA_SIZE_GB} -ne ${NAO_VOL_SIZE

          done  # LINE
        else
          echo "    ${SVM_CSV_FILE} NOT found"
        fi  # VOL_FILE
        INPUT=""
        ;;


    a5) echo "  create Automated NFS-Exports (nl-fsod-volume-qtree-quota-export*) from, CSV-file in ${CSV_DIR}:"
        INPUT=" "
        cd ${CSV_DIR}
        if [ "${2}" != "" ]; then
          VOL_CSV_FILE="${2}"
          INPUT=""
        fi
        if [ "${VOL_CSV_FILE}" = "" ]; then
          ls -1 nl-fsod-volume-qtree-quota-export*.csv
          echo -n "    Which file ? "
          read VOL_CSV_FILE
        else
          echo "    VOL_CSV_FILE=${VOL_CSV_FILE}"
        fi
        if [ "${VOL_CSV_FILE}" != "" ] && [ -f ${VOL_CSV_FILE} ]; then
          echo "`date`  (a5) Processing ${VOL_CSV_FILE} ..."|tee -a ${LOG}
          cat ${VOL_CSV_FILE}|grep -v ^#|grep "${FILTER}"|while read LINE
          do
echo "LINE=${LINE}"
            NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'|grep "[a-z]*$"`
            NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'|grep "${SVM_PREFIX_NAME}"|grep "[a-z]*[0-9]$"`
            SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
            NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $3}'|grep "${SVM_SUFFIX_NAME}"|grep "[a-z]*[0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            NAO_QTREE_NAME=`echo ${LINE}|awk -F\; '{print $10}'|grep -v ^#|grep "[a-z0-9]*$"`
            NAO_QTREE_EXPORT_POLICY=`echo ${LINE}|awk -F\; '{print $13}'|grep "[a-z0-9]*$"`

# {"ansible11":{"nao_qtree_export_policy":"ansible11","nao_export_policy_client_match":"10.90.32.23/32"}}
            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_qtree_export_policy\":\"${NAO_QTREE_EXPORT_POLICY}\"}}"

            if [ "${NAO_QTREE_NAME}" != "" ]; then
              AP_EXPORT_POLICY_CRE_UPD
              EC=${?}
              if [ ${EC} -ne 0 ]; then
                INPUT=""
                echo "      ERROR(${EC}) occurred. Press [ENTER]"
                read INPUT
              fi  # EC} -ne 0
            fi  # NAO_QTREE_NAME}" != ""

          done  # LINE
        else
          echo "    ${SVM_CSV_FILE} NOT found"
        fi  # VOL_FILE
        INPUT=""
        ;;



   a8) echo "  Removing Automated (without offline-ing) VOLUME at NetApp-cluster in ${CSV_DIR}"
        INPUT=" "
        cd ${CSV_DIR}
#        if [ "${2}" != "" ]; then
#          VOL_CSV_FILE="${2}"
#          INPUT=""
#        fi
        if [ "${VOL_CSV_FILE}" = "" ]; then
          ls -1 nl-fsod-volume*.csv
          echo -n "    Which file ? "
          read VOL_CSV_FILE
        else
          echo "    VOL_CSV_FILE=${VOL_CSV_FILE}"
        fi
        if [ "${VOL_CSV_FILE}" != "" ] && [ -f ${VOL_CSV_FILE} ]; then
# An extra RemoveFilter
          echo "`date`  (a8) Processing ${VOL_CSV_FILE} (RFILTER=${RFILTER}) ..."|tee -a ${LOG}
          cat ${VOL_CSV_FILE}|grep -v ^#|grep "${FILTER}"|grep "${RFILTER}"|awk -F\; '{print $1";"$2";"$3";"}'|sort -u|while read LINE
          do
            LINE=`echo "${LINE}"`
echo "LINE=${LINE}"
            NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'|grep "[a-z]*$"`
            NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'|grep "${SVM_PREFIX_NAME}"|grep "[a-z]*[0-9]$"`
            SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`
            NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $3}'|grep "${SVM_SUFFIX_NAME}"|grep "[a-z]*[0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`
            if [ "${NAO_CLUSTERNAME}" != "" ] && [ "${NAO_SVM_NAME}" != "" ] && [ "${NAO_VOL_NAME}" != "" ]; then
              echo "      Removing Volume ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME}" |tee -a ${LOG}
              sleep 5
              ansible-playbook ${AP_DIR}/netapp-ontap_volume_remove.yml ${AP_VERBOSE} -e nao_clustername="${NAO_CLUSTERNAME}" -e nao_svm_name="${NAO_SVM_NAME}" -e nao_vol_name="${NAO_VOL_NAME}" 
              EC=${?}
            fi  # NAO_CLUSTERNAME}" != ""

          done  # LINE
        else
          echo "    ${SVM_CSV_FILE} NOT found"
        fi  # VOL_FILE
        INPUT=""
        ;;



    aa) echo "`date` Automated Creating All (Vol+Qtree+Quota+Export) from Volume-Qtree-CSV-file (${VOL_CSV_FILE}) in ${CSV_DIR}"
        INPUT=" "
        cd ${CSV_DIR}
        if [ "${2}" != "" ]; then
          VOL_CSV_FILE="${2}"
          INPUT=""
        fi
        if [ "${VOL_CSV_FILE}" = "" ]; then
          ls -l nl-fsod-volume-qtree-quota-export*.csv
          echo -n "    Which file ? "
          read VOL_CSV_FILE
        else
          echo "    VOL_CSV_FILE=${VOL_CSV_FILE}"
        fi
        if [ "${VOL_CSV_FILE}" != "" ] && [ -f ${VOL_CSV_FILE} ]; then
          echo "`date`  (aa) Processing ${VOL_CSV_FILE}"|tee -a ${LOG}
          cat ${VOL_CSV_FILE}|grep -v ^#|grep "${FILTER}"|while read LINE
          do
            LINE=`echo "${LINE};"`
#echo "LINE=${LINE}"

# aa - SVM
            NAO_CLUSTERNAME=`echo ${LINE}|awk -F\; '{print $1}'|grep "[a-z]*$"`
            NAO_SVM_NAME=`echo ${LINE}|awk -F\; '{print $2}'|grep "${SVM_PREFIX_NAME}"|grep "[a-z]*[0-9]$"`
            SVM_SUFFIX_NAME=`echo ${NAO_SVM_NAME}|sed "s/${SVM_PREFIX_NAME}//g"`

# aa - Volume
            NAO_VOL_NAME=`echo ${LINE}|awk -F\; '{print $3}'|grep "${SVM_SUFFIX_NAME}"|grep "[a-z]*[0-9]_vol[0-9][0-9][0-9][0-9][0-9]"`

            NAO_VOL_AGGR_NAME=`echo ${LINE}|awk -F\; '{print $4}'|grep "n[0-9][0-9]a[0-9][0-9][0-9][0-9]"`
            NAO_VOL_STOR_CLASS=`echo ${LINE}|awk -F\; '{print $5}'|egrep "bronze|silver|gold|platinum"`
            NAO_VOL_SIZE=`echo ${LINE}|awk -F\; '{print $6}'|grep "^[0-9]*"`
            NAO_VOL_SIZE_UNIT=`echo ${LINE}|awk -F\; '{print $7}'|tr [:upper:] [:lower:]|egrep "gb|mb"`
            NAO_VOL_TYPE=`echo ${LINE}|awk -F\; '{print $8}'|egrep "RW|DP|XDP"|sed 's/XDP/DP/g'`
            ATOS_CHANGE_NR=`echo ${LINE}|awk -F\; '{print $9}'`
            if [ "${ATOS_CHANGE_NR}" = "" ]; then
              ATOS_CHANGE_NR=`echo "${PGM}_v${VER}_${DATI}"`
            fi

# Is there a Qtree+Quota
            NAO_QTREE_NAME=`echo ${LINE}|awk -F\; '{print $10}'|grep -v ^#|grep "[a-z0-9]*$"`
            NAO_QUOTA_DISK_LIMIT=`echo ${LINE}|awk -F\; '{print $11}'|sed 's/[a-zA-Z]*//g'|grep "[0-9]*$"`

            if [ "${NAO_QTREE_NAME}" != "" ] && [ "${NAO_QUOTA_DISK_LIMIT}" != "" ]; then
              echo "    NAO_QTREE_NAME=${NAO_QTREE_NAME}"
              echo "    NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT}"
              TOTAL_QUOTA_SIZE_GB=0
              cat ${VOL_CSV_FILE}| grep -v ^#|grep "${NAO_VOL_NAME}"|while read LINE2
              do 
                NAO_QUOTA_DISK_LIMIT=`echo ${LINE}|awk -F\; '{print $11}'|sed 's/[a-zA-Z]*//g'|grep "[0-9]*$"`
                if [ ${NAO_QUOTA_DISK_LIMIT} -gt 0 ]; then
                  TOTAL_QUOTA_SIZE_GB=`expr ${TOTAL_QUOTA_SIZE_GB} + ${NAO_QUOTA_DISK_LIMIT}`
                else
                  TOTAL_QUOTA_SIZE_GB=`expr ${TOTAL_QUOTA_SIZE_GB} + 0`
                fi
                echo "      NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT} (TOTAL_QUOTA_SIZE_GB=${TOTAL_QUOTA_SIZE_GB})"
                echo "${TOTAL_QUOTA_SIZE_GB}" > ${TMP}.tq
              done  # cat ${VOL_CSV_FILE
              TOTAL_QUOTA_SIZE_GB=`cat ${TMP}.tq|head -1` 
              if [ ${NAO_VOL_SIZE} -ne ${TOTAL_QUOTA_SIZE_GB} ]; then
                NAO_VOL_SIZE=${TOTAL_QUOTA_SIZE_GB}
                echo "      NAO_VOL_SIZE set to ${TOTAL_QUOTA_SIZE_GB}"
                sleep 2
              fi
              rm ${TMP}.tq
            fi

echo "    NAO_CLUSTERNAME=${NAO_CLUSTERNAME}"
echo "    NAO_VOL_NAME=${NAO_VOL_NAME}"
echo "    NAO_VOL_SIZE=${NAO_VOL_SIZE}"
echo "    NAO_VOL_SIZE_UNIT=${NAO_VOL_SIZE_UNIT}"
            if [ "${NAO_VOL_NAME}" != "" ] && [ "${NAO_VOL_SIZE_UNIT}" != "" ] ; then
# ansible-playbook function
              AP_VOL_CRE_UPD
              EC=${?}
              echo "    Created/updated Volume ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME} of ${NAO_VOL_SIZE} ${NAO_VOL_SIZE_UNIT} [${ATOS_CHANGE_NR}]. EC=${EC}" |tee -a ${LOG}
            fi

# aa - Qtree
            NAO_QTREE_NAME=`echo ${LINE}|awk -F\; '{print $10}'|grep -v ^#|grep "[a-z0-9]*$"`
            NAO_QTREE_SECURITY_STYLE=`echo ${LINE}|awk -F\; '{print $12}'|egrep "unix|ntfs|mixed"`

#            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_quota_disk_limit\":\"${NAO_QUOTA_DISK_LIMIT}GB\",\"nao_qtree_security_style\":\"${NAO_QTREE_SECURITY_STYLE}\"}}"
            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_qtree_security_style\":\"${NAO_QTREE_SECURITY_STYLE}\"}}"

            if [ "${NAO_QTREE_NAME}" != "" ] && [ "${NAO_QTREE_STRING}" != "" ]; then
              AP_QTREE_CRE_UPD
              EC=${?}
              echo "    Created / updated Qtree ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME}/${NAO_QTREE_NAME}. EC=${EC}" |tee -a ${LOG}
            fi  # NAO_QTREE_NAME}" != ""

# aa - Quota
            NAO_QUOTA_DISK_LIMIT=`echo ${LINE}|awk -F\; '{print $11}'|sed 's/[a-zA-Z]*//g'|grep "[0-9]*$"`
            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_quota_disk_limit\":\"${NAO_QUOTA_DISK_LIMIT}GB\"}}"
            if [ "${NAO_QTREE_NAME}" != "" ] && [ "${NAO_QTREE_STRING}" != "" ]; then
              AP_QUOTA_CRE_UPD
              EC=${?}
              echo "    Created / updated Quota ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME}/${NAO_QTREE_NAME} to ${NAO_QUOTA_DISK_LIMIT}GB. EC=${EC}" |tee -a ${LOG}
            fi  # NAO_QTREE_NAME}" != ""


# aa- NFS-Export-policy
            NAO_QTREE_EXPORT_POLICY=`echo ${LINE}|awk -F\; '{print $13}'|grep "[a-z0-9]*$"`
            NAO_QTREE_STRING="{\"${NAO_QTREE_NAME}\":{\"nao_qtree_export_policy\":\"${NAO_QTREE_EXPORT_POLICY}\"}}"
            if [ "${NAO_QTREE_NAME}" != "" ] && [ "${NAO_QTREE_STRING}" != "" ]; then
              AP_EXPORT_POLICY_CRE_UPD
              EC=${?}
              echo "    Created / updated NFS-export-policy ${NAO_CLUSTERNAME}:${NAO_SVM_NAME}:${NAO_VOL_NAME}/${NAO_QTREE_NAME} to ${NAO_QTREE_EXPORT_POLICY}. EC=${EC}" |tee -a ${LOG}
            fi  # NAO_QTREE_NAME}" != ""

          done  # LINE
        else
          echo "    ${SVM_CSV_FILE} NOT found"
        fi  # VOL_FILE
        echo "`date` Creating All (aa) finished." |tee -a ${LOG}
        INPUT=0
        ;;

        


    *) echo "  UNknown choice (${INPUT}). Try again"; CHOICE=99999999999 
        INPUT=""
        sleep 2
        ;;
  esac
#  INPUT=""
done  # CHOICE


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

