#!/usr/bin/bash
#
# Main relocation script for shaman daemon
# Use RESOURCE, RESOURCE_PATH and BROKEN environment variables
#
# Copyright (c) 2013-2017, Parallels International GmbH
#
# Our contact details: Parallels International GmbH, Vordergasse 59, 8200
# Schaffhausen, Switzerland.
#

. /usr/share/shaman/functions

verify_caller

HANDLER_NAME=`basename $0`
if [ -z "$RESOURCE" ]; then
	echo "RESOURCE environment variable undefined" 1>&2
	exit 1
fi

if [ -z "$BROKEN" ]; then
	BROKEN=0
fi

HANDLER_PATH="/usr/share/shaman"
HANDLER_LIST=`find "${HANDLER_PATH}" -mindepth 1 -maxdepth 1 -type d -printf "%f " | sort -r`

for HANDLER in ${HANDLER_LIST}; do
	RESOURCE_ID=${RESOURCE#$HANDLER}
	if [ "X$RESOURCE_ID" != "X$RESOURCE" ]; then
		SCRIPT=$HANDLER_PATH/$HANDLER/${HANDLER_NAME}.sh
		RESOURCE_ID="$RESOURCE_ID" RESOURCE_PATH="$RESOURCE_PATH" BROKEN=$BROKEN $SCRIPT
		RET=$?
		if [ $RET -ne 0 ]; then
			echo "'RESOURCE_ID=$RESOURCE_ID RESOURCE_PATH=$RESOURCE_PATH BROKEN=$BROKEN $SCRIPT' failed with code $RET" 1>&2
			exit $RET
		fi
		exit 0
	fi
done
echo "Resource handler not found" 1>&2
exit 1
