#!/bin/bash

IP=""
MN_INST=0
PASSWD=""
CT_HOSTNAME=""
RESTORE_VA_MN_CT="/usr/sbin/restore-va-mn-ct"
VA_MN_CFG_FLAG="/tmp/va-mn-cfg"
REGISTER_VAAGENT_CFG_FLAG="/tmp/register-va-agent"
VZAGROUP="/usr/sbin/vzagroup"
NUM_RETRY=60

function cleanup() {
	rm -f $VA_MN_CFG_FLAG >/dev/null 2>&1
}

function error() {
	cleanup
	echo $*
	exit 1
}

function create_ui_container() {
	local params

	[ $MN_INST -eq 0 ] && return

	params="--rootpw $PASSWD --ip $IP --skip-recache"

	[ "x$CT_HOSTNAME" != "x" ] && params="$params --hostname $CT_HOSTNAME"

	$RESTORE_VA_MN_CT $params
	[ $? -ne 0 ] && error "Failed to create va-mn CT"
}

function usage() {
	error "Usage: $0 (-p|--password) PASSWORD (-i|--ip-address) IP1[,IP2[,IP3]...] [-m|--mn-install] [-h|--hostname HOSTNAME]"
}

# Getopt
OPTS=$(getopt -o h:p:i:m --long password:,ip-address:,mn-install,hostname: -- "$@")

eval set -- "$OPTS"

while true; do
	case $1 in
	   -p|--password)
		PASSWD="$2"
		shift 2
		;;
	   -i|--ip-address)
		IP="$2"
		shift 2
		;;
	   -h|--hostname)
		CT_HOSTNAME="$2"
		shift 2
		;;
	   -m|--mn-install)
		MN_INST=1
		shift
		;;
	   --)
		break
		;;
	   *)
		echo "Invalid argument: $1" 1>&2
		exit 1
	esac
done

[ "x$PASSWD" = "x" -o "x$IP" = "x" ] && usage

create_ui_container

for ip in `echo $IP | sed "s,\,, ,g"`; do
	[ "x${ip:0:3}" = "x10." ] && break
done

echo "#!/bin/bash

/usr/sbin/register-va-agent -i $ip -p $PASSWD

" > $REGISTER_VAAGENT_CFG_FLAG
chmod 0700 $REGISTER_VAAGENT_CFG_FLAG

cleanup

exit 0
