#!/bin/bash
#
# sccl_probe_res Funktionalitaet der Ressource testen
#
# Aufruf:
#
# sccl_probe_res <lock> <paketname> <sek> <num> <prg> [<prgpars> ...]
#
# Die Funktionalitaet der Ressource <paketname> wird mit dem Skript <prg> geprueft.
# Wenn das <prg> einen Fehlerwert liefert, dann wird das Paket gestoppt und auf
# diesem Knoten gestartet.
#
########################################################################################
#
. $(dirname $0)/globals.settings
#
########################################################################################
#
LOCK=$1
PKG=$2
SEKS=$3
NUM=$4
PRG=$5
#
if [[ "$SEKS" != "`echo $SEKS | sed 's/[^0-9]*//g'`" || $SEKS -eq 0 || $# -lt 4 ]]; then
  echo "usage: $MYPRG <paketname> <sek> <prg> <num> [<prgpars> ...]"
  exit 1
fi
#
shift 5
while true; do
  if "$PRG" "$@"; then
    sleep $SEKS
  else
    rm "$LOCKDIR/$LOCK.pid" "$LOCKDIR/$LOCK$LOCKEXTENSION"
    ./sccl_stop --tstkill $PKG
    if [[ -n "$NUM" ]]; then
      if [[ $NUM -ge 1 ]]; then
        X="STSTMAX=$(( $NUM - 1 ))"
        ./sccl_start_bg -x "$X" $PKG
      else
        echo "Restart-Limit erreicht!"
        echo "Restart wird abgebrochen"
      fi
    else
      ./sccl_start_bg $PKG
    fi
    exit 0
  fi
done
