#!/bin/sh
# Copyright (c) 2000-2015 Synology Inc. All rights reserved.

. /var/packages/${SYNOPKG_PKGNAME}/scripts/pkg_utils
. /var/packages/${SYNOPKG_PKGNAME}/scripts/dumpstring
. /var/packages/${SYNOPKG_PKGNAME}/target/scripts/synobtrfsreplica_pkg_common

start()
{
	${CCC_PKG_TOOL} --cluster-create-protection-check-and-rollback
	ret=$?
	if [ 0 -ne $ret ]; then
		logger -p err -t "${PKG_TAG}" "Cluster create transaction check, ret: $ret"
		return $ret
	fi


	# NOTICE: when upgrade package, even when prestop fail, start will still be called when recovering
	LinkLibvirt

	/usr/syno/bin/synoiscsiep --insmod vhost
	/usr/syno/bin/synoiscsiep --insmod loopback
	/usr/syno/bin/synoiscsiep --startall loopback
	/usr/syno/bin/synoiscsiep --startall vhost-scsi

	# start all services and init resources
	${CCC_PKG_TOOL} --pkg-start-init
	${CCC_PKG_TOOL} --net-pool-prepare

	# btrfsreplica start
	btrfsreplica_upstart_routine

	return 0
}

stop()
{
	if [ "${SYNOPKG_PKG_STATUS}" != "UPGRADE" ]; then
		${CCC_GUEST_TOOL} -S

		# stop all services and clean resources
		${CCC_PKG_TOOL} --net-pool-destroy
		${CCC_PKG_TOOL} --pkg-stop-clean
		rmmod vhost_net
		/usr/syno/bin/synoiscsiep --stopall loopback
		/usr/syno/bin/synoiscsiep --rmmod loopback
		/usr/syno/bin/synoiscsiep --stopall vhost-scsi
		/usr/syno/bin/synoiscsiep --rmmod vhost

		UnlinkLibvirt
	fi
	return 0
}

status()
{
	if [ -e ${PKG_APP_LINK_PATH} ]; then
		return 0
	else
		return 1
	fi
}

case $1 in
	start)
		start
		exit 0
	;;
	stop)
		stop
		exit 0
		;;
	prestart)
		exit 0
	;;
	prestop)
		exit 0
	;;
	status)
		status
		exit $?
	;;
	killall)
	;;
	log)
		exit 0
	;;
esac

exit 0
