
#!/bin/sh
# File	: ontap-s3_s3-nas_bucket_create.sh
# By	: Maarten.deBoer@Atos.net, 250818
# File	: Script to create ONTAP-S3 bucket type iS3 or NAS.
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n "
RCFILE="${HOME}/etc/${PGM}.rc"

CLUSTER="nlda250"
VSERVER="nldsvm03"
AGGR_LIST="n01a1901"
BUCKET="bkt100g01"
B_SIZE="100GB"
QOS="${VSERVER}_gold"
COMMENT="By ${PGM} v${VER}"
NAS_PATH="/svm03_vol01003"
TYPE="s3"


USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VER}"
  echo "  options          :"
  echo "    -h|--help      : this help"
  echo "    -t|--type      : Type (s3|nas) (${TYPE})"
  echo "    -a|--aggr_list : Aggr-List (${AGGR_LIST})"
  echo "    -b|--bucket    : Bucket (${BUCKET})"
  echo "    -c|--cluster   : Cluster (${CLUSTER})"
  echo "    -s|--size      : bucket Size (${B_SIZE})"
  echo "    -v|--vserver   : Vserver (SVM) (${VSERVER})"
  echo "    -n|--nas_path  : Nas_path (${NAS_PATH})"
  echo "    -V             : Version"
  echo "    -x             : set -x"
}
if [ -f ${RCFILE} ]; then
  echo "  RCFILE(${RCFILE}) found. Using it"|tee -a ${LOG}
  . ./${RCFILE}
fi  # RCFILE
if [ $# -eq 0 ]; then
  echo "No option(s) given. So not to know what to do. Exiting..."; echo; USAGE; exit 2
fi
# Check options
while [ $# -gt 0 ]
  do
  case ${1} in
    -h | --help) USAGE; exit 1 ;;
    -t | --type) TYPE=`echo "${2}"|egrep "s3|nas"`; shift ;;
    -a | --aggr_list) AGGR_LIST="${2}"; shift ;;
    -b | --bucket) BUCKET="${2}"; shift ;;
    -c | --cluster) CLUSTER="${2}"; shift ;;
    -s | --size) B_SIZE="${2}"; shift ;;
    -v | --vserver) VSERVER="${2}"; shift ;;
    -n | --nas_path) NAS_PATH="${2}"; shift ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option $1 not known."; USAGE; exit 1 ;;
  esac
    shift
done

VOLUME=`echo ${NAS_PATH}|grep "^/"|cut -d\/ -f2`
if [ "${VOLUME}" = "" ]; then
  VOLUME="*"
fi  # VOLUME

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  AGGR_LIST=${AGGR_LIST}"
echo "  BUCKET=${BUCKET}"
echo "  B_SIZE=${B_SIZE}"
echo "  CLUSTER=${CLUSTER}"
echo "  NAS_PATH=${NAS_PATH}"
echo "  TYPE=${TYPE}"
echo "  QOS=${QOS}"
echo "  VSERVER=${VSERVER}"
echo "  VOLUME=${VOLUME}"
sleep 1

# "vserver object-store-server bucket create -vserver nldsvm03 -type nas -bucket s3nas-bucket002 -nas-path /svm03_vol01003/s3nas-bucket002"

if [ "${TYPE}" = "" ]; then
  echo "  TYPE (-t|--type) is empty (not s3 of nas). Exiting ..."|tee -a ${LOG}; exit 3
else
  if [ "${TYPE}" == "s3" ]; then
    if [ "${BUCKET}" != "" ]; then
      ${SSH} ${CLUSTER} "set advanced; vserver object-store-server bucket create -vserver ${VSERVER} -bucket ${BUCKET} -size \"${B_SIZE}\" -comment \"${COMMENT}\" -aggr-list \"${AGGR_LIST}\" -qos-policy-group ${QOS}"
    fi  # BUCKET
  fi  # s3
  if [ "${TYPE}" == "nas" ]; then
    if [ "${BUCKET}" != "" ]; then
      if [ "${B_SIZE}" != "" ]; then
# Bucket size on NAS can be done by Quota. Then NAS_PATH=<Volume>+<Qtree>+<Quota>
# Check if NAS_PATH has Volume+Qtree
        if [ "${NAS_PATH}" == "/${VOLUME}" ]; then
# When only volume, then NO Qtree+Quota is needed.
          ${SSH} ${CLUSTER} "set advanced; vserver object-store-server bucket create -vserver ${VSERVER} -bucket ${BUCKET} -type nas -comment \"${COMMENT}\" -nas-path ${NAS_PATH}"
        else
          echo "    NAS_PATH has more then only Volume. Then Qtree+Quota is needed"
	  echo "    NOT implemented yet"
        fi  # NAS_PATH
      fi  # B_SIZE
    fi  # BUCKET
  fi  # nas

  echo "BUCKET:"
  ${SSH} ${CLUSTER} "set advanced; vserver object-store-server bucket show -vserver ${VSERVER} -bucket ${BUCKET} -field bucket,size,logical-used,volume,qos-policy-group,type"

  echo "VOLUME:"
  ${SSH} ${CLUSTER} "volume show -vserver ${VSERVER} -volume ${VOLUME} -field volume-style-extended,aggr-list,size,flexgroup-name,qos-policy-group"
fi  # TYPE = ""


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

