#!/bin/bash
#
# sccl_remove_node
#
# Knoten aus der sccl.conf und u2w-Hosts-Liste entfernen
###########################################################
#
. $(dirname $0)/globals.settings
#
if [[ -z "$1" ]]; then
  echo "usage: $MYPRG <node>"
  exit 1
fi
#
NODENAME="$1"
#
if [[ `id -u` != 0 ]]; then
  calllocal "sccl_remove_node.s3w?nodename=$NODENAME"
  exit
fi
#
BASEDIR=/etc/sccl
#
if [[ ! -f $BASEDIR/sccl.conf ]]; then
  echo "$BASEDIR/sccl.conf nicht gefunden"
  exit 1
fi
#
if [[ "$NODENAME" = "$THISHOSTNAME" ]]; then
  echo "Error: Ein Knoten kann sich nicht selbst aus dem Cluster herausnehmen."
  exit 1
else
  M=$(for n in $MYNODES; do
        [[ "$n" != "$NODENAME" ]] && ./sccl_node -m $n
      done | grep -c '^M$')
  if [[ $M -eq 0 ]]; then
    echo "Error: Der letzte Masterknoten darf nicht entfernt werden."
    exit 1
  fi
fi
#
if grep -q "^NODES=.*[\"[:blank:]]$NODENAME[\"[:blank:]]" $BASEDIR/sccl.conf; then
  callnode $NODENAME "sccl_stop_node.s3w?force=--clear&initiated=${scclinitiated:-$THISHOSTNAME}"
  sed -i "s/^NODES=\"$NODENAME[[:blank:]]\\([^\"]*\\)\"/NODES=\"\\1\"/
s/^NODES=\"\\([^\"]*\\)[[:blank:]]$NODENAME[[:blank:]]\\([^\"]*\\)\"/NODES=\"\\1 \\2\"/
s/^NODES=\"\\([^\"]*\\)[[:blank:]]$NODENAME\"/NODES=\"\\1\"/" $BASEDIR/sccl.conf
  ./sccl_update_ips -l
  ./sccl_dist_config $BASEDIR/sccl.conf $U2WHOSTSDAT
  [[ -f $BASEDIR/certs/private/${CLUSTER}-${NODENAME%%.*}-key.pem ]] && rm $BASEDIR/certs/private/${CLUSTER}-${NODENAME%%.*}-key.pem
  [[ -f $BASEDIR/certs/certs/${CLUSTER}-${NODENAME%%.*}-cert.pem ]] && rm $BASEDIR/certs/certs/${CLUSTER}-${NODENAME%%.*}-cert.pem
  callnode $NODENAME "sccl_leave_cluster.s2w?initiated=${scclinitiated:-$THISHOSTNAME}"
  ./sccl_reset_passwords
else
  echo "Error: Node $1 not found in $BASEDIR/sccl.conf"
fi
