
#!/bin/bash
# File: cdot_create_snow_ticket.sh
# By	: Maarten.deBoer@Atos.net
# Subject	: Script to generate/create SNOW (via ESB) for cDOT specific
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
HOSTNAME=`hostname|cut -d\. -f1`

# For ESB specific
ESB=""
ORG="Atos Netherlands"
REQ_TYPE="Incident"
REQ_AREA="Storage;Storage;Other"
#GROUP="NL.Storage.FSOD"
GROUP="RO.Storage.FSOD"
ESB_QUEUE="${HOME}/imi2esb/queue"
ESB_USER="sdp"
IMI_UPLOAD="${HOME}/imi2esb/bin/imi_upload.sh"
#ESBSTAT_URL="https://btndev.sapart.atos-srv.net/ART/esbstat.pl?action=info"
ESBSTAT_URL="https://btn.sapart.atos-srv.net/ART/esbstat.pl?action=info"
W_SEC=30


USAGE()
{
  echo "Usage: ${PGM} <options>"
  echo "  Version: ${VER}"
  echo "  options:"
  echo "    -c | --ci     : Ci <CINAME> (${CI})"
  echo "    -g | --group  : sdm Group ({$SDMGROUP})"
  echo "    -h | --help   : this help"
#  echo "    -i | --imi    : via IMI"
  echo "    -m | --msg    : ticket MeSsaGe (${MSGSTR})"
#  echo "    -n | --nagios : Nagios [<sev>] (NORMAL|MINOR|WARNING|CRITICAL|FATAL) (${NAGIOSSEV})"
#  echo "    -q | --query  : create sdm-Query"
  echo "    -s | --sev    : Severity <nr> (0|1|2) (${SEVNR})"
  echo "    -V            : Version"
  echo "    -x            : set -x"
}

# Check options
if [ ${#} -eq 0 ]; then
  echo "No option(s) given. So not to know what to do. Exiting..."; echo; USAGE;
  exit 1
fi
while [ ${#} -ge 1 ]
  do
  case ${1} in
    -c | --ci) CI=${2}; shift ;;
    -h | --help) USAGE; exit 1 ;;
#    -i | --imi) IMI="1" ;;
#    -n | --nagios) NAGIOS="1"; SEVNR=${2}; shift ;;
    -g | --group) SDMGROUP=${2}; shift ;;
    -m) MSGSTR=${2}; shift ;;
#    -q | --query) QUERY="1" ;;
    -s) SEVNR=${2}; shift ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done

if [ "${CI}" = "" ]; then
  echo "CI is empty. Exiting ..."; echo; USAGE;
  exit 2
fi

# Adding some info at the MONID
# By checking if CI is in the `cluster list`|`cluster node list`|`cluster svm list`
#
LOGINANSW="`/usr/bin/um cli login -u ${OCUMUSER} -p ${OCUMPWD}`"
echo "LOGINANSW=${LOGINANSW}" >> ${TMP}

if [ "${LOGINANSW}" != "" ] && [ "${CI}" != "" ]; then
  CLUSTERFND=`/usr/bin/um cluster list -q|awk '{print $2}'| grep ${CI}`
  echo "CLUSTERFND=${CLUSTERFND}" >> ${TMP}
  if [ "${CLUSTERFND}" = "" ]; then
#   CI is no cluster, check for node
    NODEFND=`/usr/bin/um cluster node list -q|awk '{print $2}'| grep ${CI}`
    echo "NODEFND=${NODEFND}" >> ${TMP}
    if [ "${NODEFND}" = "" ]; then
# Sort out only ONE result. Leave out -dr
      SVMFND=`/usr/bin/um svm list -q|awk '{print $2}'|grep ${CI}|sort|head -1`
      echo "SVMFND=${SVMFND}" >> ${TMP}
      if [ "${SVMFND}" = "" ]; then
      # CI is none, so hostname is used
        MONID="${MONIDHDR}.${HOSTNAME}"
      else
      # CI is SVM
        MONID="${MONIDHDR}.${CI}-VST"
      fi  # SVMFND
    else
    # CI is Node
      MONID="${MONIDHDR}.${CI}-SOS"
    fi  # NODEFND
  else
  # CI is Cluster
    MONID="${MONIDHDR}.${CI}-PLF"
  fi  # CLUSTERFND

fi  # ${LOGINANSW}

# If MONID=""
if [ "${MONID}" = "" ]; then
  MONID="${MONIDHDR}.${HOSTNAME}"
fi  # MONID
echo "MONID=${MONID}" >> ${TMP}

# Example (SDM12.9)
# 0|CI=aoxnlfsd02 [cdot] User Files Soft Limit Not Exceeded  DFM_EVENT_ID=198002 (2017-11-02-00-39-28).|MONID=MAS.NL.1.aoxnlfsd02;CLASS=ZZ-Event.Storage.Storage;
# 0|CI=nlnafsmnp11 [cdot] Qtree Growth Rate Abnormal nlnafsmnp11:/mnp11_vol01001/groups7 DFM_EVENT_ID=198004 (2017-11-02-08-31-04).|MONID=MAS.NL.1.nlnafsmnp11-VST;CLASS=ZZ-Event.Storage.Storage 

echo "${SEVNR}|CI=${CI} ${ONTAPARCH} ${MSGSTR} DFM_EVENT_ID=000000 (${DATI}@${HOSTNAME}).|MONID=${MONID};CLASS=${SDMCLASS};"|tee -a ${NAGIOSFILE} ${LOG}
echo "======================================" >> ${LOG}

echo "List :"
ls -l ${NAGIOSFILE}

rm ${TMP}
exit 0

