#!/bin/bash
set -o nounset
set -o errexit
set -o pipefail
#set -o xtrace

BASE=$(cd `dirname $0`; cd ../; pwd)
DEFAULT_CLS=${CLUSTER:-cluster01}

source $BASE/utils/logger
source $BASE/utils/env

function docker_exec_kubeasz() {
    local tty_arg="-it"
    if [[ "${KUBEMORE_DOCKER_EXEC_TTY:-1}" = "0" ]]; then
        tty_arg=""
    fi
    docker exec ${tty_arg} kubeasz "$@"
}

MASTERS=
ETCDS=
WORKERS=


function print_help(){
    echo "./kubemore del --masters 192.168.1.3,192.168.1.4 \\"
    echo "               --etcd 192.168.1.3,192.168.1.4 \\"
    echo "               --workers 192.168.1.5,192.168.1.6"
    echo " Options:"
    echo "   m|masters, required:  cluster master nodes"
    echo "   e|etcds, required:    cluster etcd nodes"
    echo "   w|workers, requilred: cluster worker nodes"
    echo "   h|help:               print help usage"
    echo ""
}


TEMP=`getopt -o m:e:w:h -l masters:,etcds:,workers:,help -- "$@"`
if [[ ${?} != 0 ]] ; then error "Bad command" >&2 ; print_help ; exit 1 ; fi

eval set -- "${TEMP}"

while true; do
  case "$1" in
  -m|--masters)
    MASTERS=$2
    check_empty "${MASTERS}" "master nodes"
    shift 2
    ;;
  -e|--etcds)
    ETCDS=$2
    check_empty "${ETCDS}" "etcd nodes"
    shift 2
    ;;
  -w|--workers)
    WORKERS=$2
    check_empty "${WORKERS}" "worker nodes"
    shift 2
    ;;
  -h|--help)
    print_help
    shift
    exit 0
    ;;
  --)
    shift
    break
    ;;
  *)
    error "Bad command $1"
    print_help
    exit 1
    ;;
  esac
done

# Del etcd node
for i in $(echo $ETCDS| sed "s/,/ /g"); do
    docker_exec_kubeasz morectl del-etcd ${DEFAULT_CLS} $i
done

# Del master node
for i in $(echo $MASTERS| sed "s/,/ /g"); do
    docker_exec_kubeasz morectl del-master ${DEFAULT_CLS} $i
done

# Del worker node
for i in $(echo $WORKERS| sed "s/,/ /g"); do
    docker_exec_kubeasz morectl del-node ${DEFAULT_CLS} $i
done
