
#!/bin/sh
# File	: noc_object-user_update.sh
# By	: Maarten.deBoer@Atos.net, 251119, 251124
# Subject	: Netapp Ontap Cli script to create/modify (S3) object-user based on RC-file
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
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"
NAO_VSERVER_NAME="nlnafsmss99"
NAO_OBJ_USER_NAME=""

# 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 *object*user*.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_OBJ_USER_NAME=${NAO_OBJ_USER_NAME}|"
    sleep 1

# ---- user - part ----
    if [ "${NAO_CLUSTERNAME}" != "" ] && [ "${NAO_VSERVER_NAME}" != "" ] && [ "${NAO_OBJ_USER_NAME}" != "" ]; then
      echo "  NAO_VSERVER_NAME=${NAO_VSERVER_NAME}"

      ANSW=`${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server user show -vserver ${NAO_VSERVER_NAME} -user ${NAO_OBJ_USER_NAME} -field user"|grep ${NAO_OBJ_USER_NAME}`

      if [ "${ANSW}" == "" ]; then
# No user, yet: Create
        echo "    vserver object-store-server user create -vserver ${VSERVER} ..."
        ${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server user create -vserver ${NAO_VSERVER_NAME} -user ${NAO_OBJ_USER_NAME} -comment \"${ATOS_CHANGE_NR}\" "
      else
        echo "    vserver object-store-server user modify -vserver ${VSERVER} ..."
        ${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server user modify -vserver ${NAO_VSERVER_NAME} -user ${NAO_OBJ_USER_NAME} -comment \"${ATOS_CHANGE_NR}\" "

      fi  # ANSW}" == "" 

      ${SSH} ${NAO_CLUSTERNAME} "set -privilege advanced; vserver object-store-server user show -vserver ${NAO_VSERVER_NAME} -user ${NAO_OBJ_USER_NAME} -instance"
    fi  # NAO_CLUSTERNAME}" != ""

# ---- group - part ----
    if [ "${NAO_CLUSTERNAME}" != "" ] && [ "${NAO_VSERVER_NAME}" != "" ] && [ "${NAO_OBJ_USER_NAME}" != "" ]; then
      echo "  NAO_VSERVER_NAME=${NAO_VSERVER_NAME} (check group-name)"

      GID=`${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server group show -vserver ${NAO_VSERVER_NAME} -name grp_${NAO_VSERVER_NAME} -field gid,name"|grep grp_${NAO_VSERVER_NAME}|awk '{print $2}'`
echo "GID=${GID}"
      if [ "${GID}" == "" ]; then
        echo "    vserver object-store-server group create ..."
        ${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server group create -vserver ${NAO_VSERVER_NAME} -name grp_${NAO_VSERVER_NAME} -user ${NAO_OBJ_USER_NAME} -policies FullAccess"
      else
        ${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server group modify -vserver ${NAO_VSERVER_NAME} -gid ${GID} -name grp_${NAO_VSERVER_NAME} -user ${NAO_OBJ_USER_NAME} -policies FullAccess"
      fi  # ANSW}" == ""


      ${SSH} ${NAO_CLUSTERNAME} "vserver object-store-server group show -vserver ${NAO_VSERVER_NAME} "

    fi  # NAO_CLUSTERNAME}" != ""


  fi  # FNAME}" != "" 

done  # LINE

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

