
#!/bin/sh
# File	: noc_share_update.sh
# By	: Maarten.deBoer@Atos.net, 250407
# Subject	: Netapp Ontap Cli script to create CIFS/SMB-share based on RC-file
#(0.1)	: From	noc_qtree_update.sh
#(0.2),250603	: Add Check CIFS server
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"

DATADIR="${HOME}/data"
RCDIR="${DATADIR}/rc"

# NAO defaults
NAO_CLUSTERNAME="nlnaf999"
NAO_VSERVER_NAME="nlnafsmss99"
ATOS_CHANGE_NR="CHG123456789"
NAO_SHARE_NAME="mss-share"
NAO_VOL_NAME="mss99_vol09999"
NAO_QTREE_NAME="qtree01"

NAO_SHARE_PROPERTIES="oplocks,browsable,changenotify"
NAO_USER_GROUP="Authenticated Users"
#"Everyone"
NAO_PERMISSION="Full_Control"

#NAO_VOL_STOR_CLASS="gold"
#NAO_QUOTA_DISK_LIMIT="1gb"
#NAO_QTREE_SECURITY_STYLE="unix"  # of ntfs
#NAO_QTREE_EXPORT_POLICY="mss"

# Policy-filter
FILTER="mss"

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

if [ ! -d ${RCDIR} ]; then
  echo "  NO RCDIR (${RCDIR}) found. Exiting ..."|tee -a ${LOG}
  exit 4
fi  # ! RCDIR

cd ${RCDIR}
ls -1 *share*.rc|grep "${FILTER}"|while read FNAME
do
  echo "FNAME=${FNAME}|"

# Reading VAR's of all RC-files in RCDIR
  if [ "${FNAME}" != "" ] && [ -f ${FNAME} ]; then
    . ${RCDIR}/${FNAME}

    echo "NAO_CLUSTERNAME=${NAO_CLUSTERNAME}|"
    echo "NAO_VSERVER_NAME=${NAO_VSERVER_NAME}|"
    echo "NAO_VOL_NAME=${NAO_VOL_NAME}|"
    echo "NAO_QTREE_NAME=${NAO_QTREE_NAME}|"
    echo "NAO_SHARE_NAME=${NAO_SHARE_NAME}|"
    echo "NAO_SHARE_PROPERTIES=${NAO_SHARE_PROPERTIES}|"
    echo "NAO_USER_GROUP=${NAO_USER_GROUP}|"
    echo "NAO_PERMISSION=${NAO_PERMISSION}|"

    echo "ATOS_CHANGE_NR=${ATOS_CHANGE_NR}|"

#    echo "NAO_QUOTA_DISK_LIMIT=${NAO_QUOTA_DISK_LIMIT}|"
#    echo "NAO_QTREE_SECURITY_STYLE=${NAO_QTREE_SECURITY_STYLE}|"
#    echo "NAO_QTREE_EXPORT_POLICY=${NAO_QTREE_EXPORT_POLICY}|"

    sleep 1

    if [ "${NAO_CLUSTERNAME}" != "" ] && [ "${NAO_VSERVER_NAME}" != "" ] && [ "${NAO_QTREE_NAME}" != "" ] && [ "${NAO_VOL_NAME}" != "" ] && [ "${NAO_SHARE_NAME}" != "" ]; then

      ANSW=`${SSH} ${NAO_CLUSTERNAME} "vserver cifs show -vserver ${NAO_VSERVER_NAME} -field cifs-server" `
      echo "ANSW=${ANSW}"
      sleep 1

      if [ "${ANSW}" != "" ] && [ "${NAO_VSERVER_NAME}" != "" ] && [ "${NAO_VOL_NAME}" != "" ] && [ "${NAO_SHARE_NAME}" != "" ]; then
        ${SSH} ${NAO_CLUSTERNAME} "vserver cifs share create -vserver ${NAO_VSERVER_NAME} -share-name ${NAO_SHARE_NAME} -path /${NAO_VOL_NAME}/${NAO_QTREE_NAME} -share-properties ${NAO_SHARE_PROPERTIES} -comment ${ATOS_CHANGE_NR} "
        ${SSH} ${NAO_CLUSTERNAME} "vserver cifs share access-control create -vserver ${NAO_VSERVER_NAME} -share ${NAO_SHARE_NAME} -user-or-group \"${NAO_USER_GROUP}\" -permission \"${NAO_PERMISSION}\" "

# When NAO_USER_GROUP=Everyone, do not delete
        if [ "${NAO_USER_GROUP}" != "Everyone" ]; then
          ${SSH} ${NAO_CLUSTERNAME} "vserver cifs share access-control delete -vserver ${NAO_VSERVER_NAME} -share ${NAO_SHARE_NAME} -user-or-group \"Everyone\" "
        fi  # != "Everyone"

        ${SSH} ${NAO_CLUSTERNAME} "vserver cifs share show -vserver ${NAO_VSERVER_NAME} -share-name ${NAO_SHARE_NAME} -field acl,path,vserver,share-name,share-properties,comment"

      fi  # QTREE}" != ""

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

  fi  # ${FNAME}" != ""

done  # LINE

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

