#!/bin/bash

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

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

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

function register_agent() {
	local count=0
	local success=0

	while [ $success -ne 1 -a $count -lt $NUM_RETRY ]; do
		$VZAGROUP addToGroup root:$PASSWD@$IP
		if [ $? -eq 0 ]; then
			success=1
			break
		fi
		count=$((count+1))
		sleep 1
		continue
	done

	[ $success -ne 1 ] && error "Agent registration failed"
}

function usage() {
	error "Usage: $0 (-p|--password) PASSWORD (-i|--ip-address) IP"
}

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

eval set -- "$OPTS"

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

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

register_agent

cleanup

exit 0
