#!/sbin/sh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident	"@(#)svc-dmi	1.1	06/08/01 SMI"
#
# Method script for the Sun Solstice Enterprise
# DMI Service Provider and Mapper Subagent
#

. /lib/svc/share/smf_include.sh

DMI_CONF=/etc/dmi/conf/dmispd.conf
DMI_BIN=/usr/lib/dmi/dmispd
SNMPX_CONF=/etc/dmi/conf/snmpXdmid.conf
SNMPX_BIN=/usr/lib/dmi/snmpXdmid
CIINV_CMD=/etc/dmi/ciagent/ciinvoke

case "$1" in
start)
	if [ ! -f $DMI_CONF ]; then
		echo "Configuration file $DMI_CONF does not exist." \
		    "Not starting dmispd"
		exit $SMF_EXIT_ERR_CONFIG
	fi

	if [ ! -x $DMI_BIN ]; then
		echo "$DMI_BIN not found. Not starting dmispd"
		exit $SMF_EXIT_ERR_CONFIG
	fi

	if /usr/bin/egrep -v '^[	  ]*(#|$)' ${DMI_CONF} > \
	    /dev/null 2>&1; then
		:
	else
		#
		# Do not start dmi if dmispd.conf contents are trivial.
		#
		exit $SMF_EXIT_ERR_CONFIG
	fi

	if [ ! -f $SNMPX_CONF ]; then
		echo "Configuration file $SNMPX_CONF does not exist." \
		    "Not starting snmpXdmid"
		exit $SMF_EXIT_ERR_CONFIG
	fi

	if [ ! -x $SNMPX_BIN ]; then
		echo "$SNMPX_BIN not found. Not starting snmpXdmid"
		exit $SMF_EXIT_ERR_CONFIG
	fi

	${DMI_BIN}

	### dmi is dependent on snmpdx ###
	${SNMPX_BIN} -s ${_INIT_UTS_NODENAME:=`/usr/bin/uname -n`}

	if [ -x ${CIINV_CMD} ]; then
		dirents=`echo /etc/dmi/ciagent/*`
		if [ "$dirents" != ${CIINV_CMD} ]; then
			${CIINV_CMD}
		fi
	fi
	;;

stop)
	/usr/bin/pkill -9 -x -u 0 -z ${_INIT_ZONENAME:=`/sbin/zonename`} \
	    '(snmpXdmid|dmispd)'
	;;

*)
	echo "Usage: $0 { start | stop }"
	exit $SMF_EXIT_ERR_CONFIG
	;;
esac
