#! /usr/bin/ksh
#
#pragma	ident	"@(#)rac_framework_lib.ksh 1.5	05/02/23 SMI"
#
# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
############################################################
#
# SUNW.rac_framework Resource Type library
#
############################################################

initialize()
{
	SYSLOG_TAG="SC[SUNW.rac_framework.${MYNAME:-}]"

	return 0	
}

############################################################
#
# file_sync
# 	Synchronize component configuration files with
#	resource properties
#
############################################################
file_sync()
{
	typeset template
	typeset conf_file

	#
	# Update RAC framework configuration file
	#

	template=/usr/cluster/lib/ucmm/rt/rac_framework/etc/rac_framework.conf.template
	conf_file=/usr/cluster/lib/ucmm/rt/rac_framework/etc/rac_framework.conf
	sync_conf_file "${MY_RS}" ${template} ${conf_file}

	#
	# Update UDLM configuration file
	#

	UDLM_RS=$(get_udlm_resource)
	if [ -n "${UDLM_RS}" ]; then
		# UDLM resource is configured.
		# Synchronize UDLM configuration file
		template=/usr/cluster/lib/ucmm/rt/rac_udlm/etc/udlm.conf.template
		conf_file=/opt/SUNWudlm/etc/udlm.conf

		sync_conf_file "${UDLM_RS}" ${template} ${conf_file}
	fi

	#
	# Update CVM configuration file
	#

	CVM_RS=$(get_cvm_resource)
	if [ -n "${CVM_RS}" ]; then
		# CVM resource is configured.
		# Synchronize CVM configuration file
		template=/usr/cluster/lib/ucmm/rt/rac_cvm/etc/cvm.conf.template
		conf_file=/opt/SUNWcvm/etc/cvm.conf

		sync_conf_file "${CVM_RS}" ${template} ${conf_file}
	fi

	#
	# Update HWRAID configuration file
	#

	HWRAID_RS=$(get_hwraid_resource)
	if [ -n "${HWRAID_RS}" ]; then

		# HWRAID resource is configured.
		# Synchronize HWRAID configuration file

		template=/usr/cluster/lib/ucmm/rt/rac_hwraid/etc/hwraid.conf.template
		conf_file=/usr/cluster/lib/ucmm/rt/rac_hwraid/etc/hwraid.conf

		sync_conf_file "${HWRAID_RS}" ${template} ${conf_file}
	fi

	#
	# Update SVM configuration file
	#

	SVM_RS=$(get_svm_resource)
	if [ -n "${SVM_RS}" ]; then

		# SVM resource is configured.
		# Synchronize SVM configuration file

		template=/usr/cluster/lib/ucmm/rt/rac_svm/etc/svm.conf.template
		conf_file=/usr/cluster/lib/ucmm/rt/rac_svm/etc/svm.conf

		sync_conf_file "${SVM_RS}" ${template} ${conf_file}
	fi

	return 0
}

############################################################
#
# start_ucmmd
# 	This function calls /etc/init.d.initucmm with boot 
#       argument to start ucmmd daemon
#
############################################################
start_ucmmd()
{
	typeset rc=0

	ucmmd_running

	if [ $? -eq 0 ]; then
		# UCMMD is running 
		# Don't attempt to start ucmmd

		scds_syslog -p notice -t ${SYSLOG_TAG} -m \
			"ucmmd is already running."
		return 0
		
	fi

	INITUCMM="/etc/init.d/initucmm"

	if [ -f ${INITUCMM} ]; then
		$INITUCMM boot
		rc=$?
	else
		#
		# initucmm will be at a different location on Solaris 10
		# Check if initucmm file is at alternate location
		#
		INITUCMM_S10="/usr/cluster/lib/ucmm/initucmm"
	 	if [ -f ${INITUCMM_S10} ]; then
			$INITUCMM_S10 boot
			rc=$?
		else
			scds_syslog -p error -t ${SYSLOG_TAG} -m \
				"ucmmd startup program %s not found" \
				"${INITUCMM} or ${INITUCMM_S10}"
			rc=1
		fi

	fi

	return $rc

}

