#!/usr/local/bin/cbsd
#v11.1.20
MYARG="jname mode"
MYOPTARG="comment"
MYDESC="Jail switch mode between master/slave"
ADDHELP="mode=master,slave,maintenance\n\
comment='some test' set text as comment for maintenance mode\n"
CBSDMODULE="jail"

. ${subr}
. ${strings}

init $*

[ -z "${mode}" ] && err 1 "${MAGENTA}Give me mode: ${GREEN}master or slave${NORMAL}"

. ${jrcconf}
[ $? -eq 1 ] && err 1 "${MAGENTA}No such jail: ${GREEN}${jname}${NORMAL}"

case "${mode}" in
	"master")
		[ ${jid} -gt 0 ] && err 1 "${MAGENTA}Jail is online. Please stop them first${NORMAL}"
		cbsdsql local "UPDATE jails SET status=0 WHERE jname='${jname}'"
		;;
	"slave")
		[ ${jid} -gt 0 ] && err 1 "${MAGENTA}Jail is online. Please stop them first${NORMAL}"
		cbsdsql local "UPDATE jails SET status=2 WHERE jname='${jname}'"
		;;
	"maintenance")
		cbsdsql local "UPDATE jails SET status=3 WHERE jname='${jname}'"
		;;
	*)
		err 1 "${MAGENTA}Unknown status${NORMAL}"
		;;
esac

cbsdlogger NOTICE ${CBSD_APP}: switch ${jname} mode to ${mode}. ${comment}

if [ -n "${comment}" ]; then
	cbsdsql local "UPDATE jails SET maintenance=\"${comment}\" WHERE jname='${jname}'"
fi
