
#!/bin/sh
# File	: cdot_test_volume_full.sh
# By	: Maarten.deBoer@Atos.net, 230314
# Subject	: Test UM with Volume Full
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/{$PGM}.log"
SSH="/bin/ssh -n"

CLUSTER="tlenlfas8040"
AGGR="n01a0901"
VSERVER="tlenltnl01"
VOLUME="tnl01_vol99999"
V_SIZE=10g
COMMENT="${PGM}"

EXP_NAME="test"
EXP_IP="10.90.32.23/32"

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

VOL_EXPORT=`${SSH} ${CLUSTER} "volume show -vserver ${VSERVER} -volume ${VOLUME} -policy ${EXP_NAME} -field volume,policy"|grep ${VOLUME}`
if [ "${VOL_EXPORT}" == "" ]; then
  VOL_RESULT=`${SSH} ${CLUSTER} "volume show -vserver ${VSERVER} -volume ${VOLUME} -field volume"|grep ${VOLUME}`
EC=${?}
  echo "  VOL_RESULT=${VOL_RESULT} EC=${EC}"|tee -a ${LOG}
  if [ ${EC} -ne 0 ]; then
    echo "  Creating ${VSERVER}:${VOLUME} ..."
    ${SSH} ${CLUSTER} "volume create -vserver ${VSERVER} -volume ${VOLUME} -aggregate ${AGGR} -size ${V_SIZE} -junction-path /${VOLUME} -comment \"${COMMENT}\" -foreground true -percent-snapshot-space 0 -min-auto ${V_SIZE} -autosize-mode off -space-guarantee none -type RW "
    ${SSH} ${CLUSTER} "volume show -volume ${VOLUME} "
  fi  # {EC} -ne 0

# Exports
  SVM_EXP_POL=`${SSH} ${CLUSTER} "vserver export-policy show -vserver ${VSERVER}"| grep "${EXP_NAME}"`
  if [ "${SVM_EXP_POL}" = "" ]; then
    echo "    Create NFS-export Policy (${EXP_NAME}) at ${VSERVER}"|tee -a ${LOG}
    ${SSH} ${CLUSTER} "vserver export-policy create -vserver ${VSERVER} -policyname ${EXP_NAME} "
  fi  # SVM_EXP_POL}" = ""

  if [ "${VSERVER}" != "" ] && [ "${EXP_NAME}" != "" ] && [ "${EXP_IP}" != "" ]; then
    echo "    Create NFS-export Policy (${EXP_NAME}) with ${EXP_IP} at ${VSERVER}"|tee -a ${LOG}
    ${SSH} ${CLUSTER} "vserver export-policy rule create -vserver ${VSERVER} -policyname ${EXP_NAME} -clientmatch ${EXP_IP} -protocol nfs -rorule sys -rwrule sys -anon 65534 -superuser sys -allow-suid true "
    ${SSH} ${CLUSTER} "vserver export-policy rule show -vserver ${VSERVER} -policyname ${EXP_NAME} -field ro,rw,super,anon,client"
  fi  # VSERVER != ""

  if [ "${VSERVER}" != "" ] && [ "${VOLUME}" != "" ] && [ "${EXP_NAME}" != "" ]; then
    echo "    Modify export (${EXP_NAME}) onto Volume (${VOLUME}) at ${VSERVER}"|tee -a ${log}
    ${SSH} ${CLUSTER} "volume modify -vserver ${VSERVER} -volume ${VOLUME} -policy ${EXP_NAME}"
  fi  # VSERVER}" != ""

  ${SSH} ${CLUSTER} "volume show -vserver ${VSERVER} -volume ${VOLUME} -policy ${EXP_NAME} -field policy"

fi  # VOL_EXPORT


# Mounting (if needed)
MOUNTED=`mount | grep ${VOLUME}`
if [ "${MOUNTED}" == "" ]; then
  SVM_ADDR=`${SSH} ${CLUSTER} "network interface show -vserver ${VSERVER} -field address"|grep ${VSERVER}|awk '{print $3}'`
  echo "  Mounting ${SVM_ADDR} onto /mnt/${VOLUME}"
  sudo mkdir /mnt/${VOLUME}
  sudo mount ${SVM_ADDR}:/${VOLUME} /mnt/${VOLUME}
  mount | grep ${VOLUME}
fi

# Filling up the dir
echo "  Going to /mnt/${VOLUME}"
cd /mnt/${VOLUME}

for N in {1..1000}
do
  echo "  ${N}"
  dd if=/dev/urandom of=${N}_1GB bs=1024 count=1024000
  EC=${?}
  ls -l /mnt/${VOLUME}
  df -h .
  if [ ${EC} -gt 0 ]; then
    exit ${EC}
  fi
done


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

