

#!/bin/sh
# File	: noc_bucket_update.sh
# By	: Maarten.deBoer@Atos.net, 251119
# Subject	: Netapp Ontap Cli script to create NAS(S3) bucket based on RC-file
#(0.1),251119	: From	noc_share_update.sh
#(0.2),251119	: Add. -type s3
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
ATOS_CHANGE_NR="CHG123456789"
NAO_CLUSTERNAME="nlnaf999"
VOL_PREFIX=`echo ${NAO_VSERVER_NAME}|sed 's/nlnafs//g'`
NAO_VSERVER_NAME="nlnafsmss99"
NAO_VSERVER_ROOT_VOLUME_AGGREGATE="n99a9999"
NAO_VSERVER_ROOT_VOLUME="${VOL_PREFIX}_vol0root"
NAO_VSERVER_INTERFACE_NAME="mss99"
NAO_VSERVER_ADDRESS="192.168.99.99"
NAO_VSERVER_NETMASK="255.255.255.0"
NAO_VSERVER_HOME_NODE="${NAO_CLUSTER_NAME}-01"
NAO_VSERVER_HOME_PORT="a999b-9999"
NAO_VSERVER_GATEWAY="192.168.99.1"
NAO_IPSPACE="${VOL_PREFIX}-ipspace"
NAO_VOL_NAME="mss99_vol09999"
NAO_QTREE_NAME="qtree01"
NAO_VOL_STOR_CLASS="gold"
NAO_BUCKET_TYPE=""
# s3 | nas
#NAO_BUCKET_TYPE="s3"
#NAO_BUCKET_TYPE="nas"
NAO_BUCKET_NAME="mss99-${NAO_BUCKET_TYPE}-bkt999"
NAO_S3_USER="nl99999"

# 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 *bucket*.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 "ATOS_CHANGE_NR=${ATOS_CHANGE_NR}|"
    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_BUCKET_TYPE=${NAO_BUCKET_TYPE}|"
    echo "NAO_BUCKET_NAME=${NAO_BUCKET_NAME}|"
    echo "NAO_VOL_AGGR_NAME=${NAO_VOL_AGGR_NAME}|"
    echo "NAO_VOL_STOR_CLASS=${NAO_VOL_STOR_CLASS}|"

    sleep 1

    if [ "${NAO_CLUSTERNAME}" != "" ] && [ "${NAO_VSERVER_NAME}" != "" ] && [ "${NAO_BUCKET_NAME}" != "" ]; then

      BUCKET=`${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server bucket show -vserver ${NAO_VSERVER_NAME} -bucket ${NAO_BUCKET_NAME} -field bucket"|grep ${NAO_VSERVER_NAME}|grep -v "does not exist" |awk '{print $2}'`
      echo "BUCKET=${BUCKET}"
      sleep 1

# When no bucket, then create one
      if [ "${BUCKET}" == "" ] && [ "${NAO_VSERVER_NAME}" != "" ] && [ "${NAO_BUCKET_NAME}" != "" ]; then
        if [ "${NAO_BUCKET_TYPE}" == "nas" ] && [ "${NAO_VOL_NAME}" != "" ] && [ "${NAO_QTREE_NAME}" != "" ] ; then
          echo "  Creating a NAS Bucket"
          ${SSH} ${NAO_CLUSTERNAME} "set -priv advanced;vserver object-store-server bucket create -vserver ${NAO_VSERVER_NAME} -type ${NAO_BUCKET_TYPE} -bucket ${NAO_BUCKET_NAME} -comment \"${ATOS_CHANGE_NR}\" -nas-path \"/${NAO_VOL_NAME}/${NAO_QTREE_NAME}\" "
        fi  # type=nas
        if [ "${NAO_BUCKET_TYPE}" == "s3" ] && [ "${NAO_VOL_AGGR_NAME}" != "" ]  ; then
          echo "  Creating a S3 Bucket ..."
          ${SSH} ${NAO_CLUSTERNAME} "set -priv advanced;vserver object-store-server bucket create -vserver ${NAO_VSERVER_NAME} -bucket ${NAO_BUCKET_NAME} -type ${NAO_BUCKET_TYPE} -size 100GB -comment \"${ATOS_CHANGE_NR}\" -aggr-list \"${NAO_VOL_AGGR_NAME}\" -qos-policy-group ${NAO_VSERVER_NAME}_${NAO_VOL_STOR_CLASS}"
        fi  # type=s3
      fi  # ANSW = ""
    else
      echo "  Not all VAR's has a value."|tee -a ${LOG}
    fi  # !=

    ${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server bucket show -vserver ${NAO_VSERVER_NAME} -field bucket,type,nas-path,volume,size,qos-policy-group"

  fi  # ${FNAME}" != ""

done  # LINE

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

