#!/bin/bash
#
# sccl_update_ips
#
# IP-Adresse der U2W-Kommunikation updaten
###########################################################
#
cd ${0%/*}
if [[ $PWD != */bin ]]
 then
  cd bin
fi
#
unset LOCAL
while getopts l? op
 do
  case "$op" in
   l) LOCAL=1;;
   *) echo "usage: $0 [-l]"
      exit 1
  esac
done
#
shift $(( $OPTIND - 1))
#
BASEDIR=/etc/sccl
#
if [[ ! -f $BASEDIR/sccl.conf ]]
 then
  echo "$BASEDIR/sccl.conf nicht gefunden"
  exit 1
fi
#
. $BASEDIR/sccl.conf
#
for i in $NODES $HBNODES $MASTERNODES
 do
  H=`gethostip -d $i 2>/dev/null`
  if [[ -n "$H" ]]
   then
    echo "$H" | sed 's/^/r /' >>"$U2WHOSTSDAT".new
  else
    echo
    echo "Warnung: zum Knoten $i kann keine IP-Adresse bestimmt werden."
    echo
  fi
done
#
if [[ -f $RESOURCES ]]
 then
  awk '/^[^#]*IP:[^:]*:[^:]*:[^:]*:ROUTE/{for(i=3;i<=NF;i++){split($i,s,":");if(s[1]=="IP"&&s[5]=="ROUTE")printf("r %s\n",s[3])}}' $RESOURCES >>"$U2WHOSTSDAT".new
fi
#
if [[ -s "$U2WHOSTSDAT".new ]]
 then
  mv "$U2WHOSTSDAT".new "$U2WHOSTSDAT"
  if [[ -z "$LOCAL" ]]
   then
    ./sccl_dist_config "$U2WHOSTSDAT"
  fi
fi
