#
# Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#


SCLOGGER=/usr/cluster/lib/sc/scds_syslog
PKG=SUNWscmys
METHOD=`basename $0`
TASK_COMMAND=""

ZONENAME=/usr/bin/zonename

PMFADM=/usr/cluster/bin/pmfadm
variables_init()
{
	debug_message "Function: variables_init - Begin"
	${SET_DEBUG}

        #
        # Initialize some variable out of the extracted or given paramters
        #

	MYSQL_MYSQLD=./bin/mysqld
	MYSQL_PIDFILE=${MYSQL_DATADIR}/mysqld.pid
	MYSQL_DEFAULT_FILE=${MYSQL_DATADIR}/my.cnf
	MYSQL_MYSQLADMIN=${MYSQL_BASEDIR}/bin/mysqladmin
	MYSQL_MYSQL=${MYSQL_BASEDIR}/bin/mysql
	MYSQL_MYISAMCHK=${MYSQL_BASEDIR}/bin/myisamchk
	MYSQL_MYSQLD_LOGFILE=${MYSQL_LOGDIR}/${MYSQL_HOST}.log

        # The % character in th date format string needs to be hidden in a variable.
        # Oherwise a sccs delget will crap the date format string by
        # expanding the format string with its keywords.

        PERCENT=%
        MYSQL_MYSQLD_LOGFILE_OLD=${MYSQL_MYSQLD_LOGFILE}.`date +${PERCENT}y${PERCENT}m${PERCENT}d${PERCENT}H${PERCENT}M${PERCENT}S`
	MYSQL_FMUSER_USER=`echo ${MYSQL_FMUSER} | cut -d'%' -f1`
	MYSQL_FMUSER_PW=`echo ${MYSQL_FMUSER} | cut -d'%' -f2`
	
	MYSQL_TEST_DB="sc3_test_database"
	MYSQL_TEST_TABLE="sc3_test_table"
	MYSQL_COUNTS=60
	MYSQL_THOROUGH_SEC=300

	MYSQL_ERRORF=/tmp/${RESOURCE}.mysql.error
	MYSQL_RESULTF=/tmp/${RESOURCE}.mysql.result
	MYSQL_LAST_RUN_THOROUGH=/tmp/${RESOURCE}.mysql.last


	MYSQL_HOUR=`date '+%H'`
	MYSQL_MIN=`date '+%M'`
	MYSQL_SEC=`date '+%S'`
	MYSQL_THOROUGH_TIME=`expr ${MYSQL_HOUR} \* 3600 + ${MYSQL_MIN} \* 60 + ${MYSQL_SEC}`

	# Retrieve MySQL Version
	VERSION=`${MYSQL_MYSQLADMIN} -V | awk '{print $5}' | cut -d',' -f1`
	MYSQL_VERSION=`echo ${VERSION} | cut -d'.' -f1`
	MYSQL_RELEASE=`echo ${VERSION} | cut -d'.' -f2`
	MYSQL_UPDATE=` echo ${VERSION} | cut -d'.' -f3`

	MYSQL_SLAVE=`grep master-host= ${MYSQL_DEFAULT_FILE} | grep -v '#'`

	debug_message "Function: variables_init - End"
}

validate_options()
{
	debug_message "Function: validate_options - Begin"
	${SET_DEBUG}

        #
        # Ensure all options are set
        #

	rc_validate_options=0

        for i in RESOURCE RESOURCEGROUP MYSQL_BASEDIR MYSQL_DATADIR MYSQL_USER MYSQL_HOST MYSQL_FMUSER MYSQL_LOGDIR

        do
                case $i in
                        RESOURCE)
                        if [ -z $RESOURCE ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -R not set"
                                rc_validate_options=1
                        fi;;

                        RESOURCEGROUP)
                        if [ -z $RESOURCEGROUP ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -G not set"
                                rc_validate_options=1
                        fi;;

                        MYSQL_BASEDIR)
                        if [ -z $MYSQL_BASEDIR ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -B not set"
                                rc_validate_options=1
                        fi;;

                        MYSQL_DATADIR)
                        if [ -z $MYSQL_DATADIR ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -D not set"
                                rc_validate_options=1
                        fi;;

                        MYSQL_USER)
                        if [ -z $MYSQL_USER ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -U not set"
                                rc_validate_options=1
                        fi;;

                        MYSQL_HOST)
                        if [ -z $MYSQL_HOST ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -H not set"
                                rc_validate_options=1
                        fi;;

                        MYSQL_FMUSER)
                        if [ -z $MYSQL_FMUSER ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -F not set"
                                rc_validate_options=1
                        fi;;

                        MYSQL_LOGDIR)
                        if [ -z $MYSQL_LOGDIR ]; then
                                logger -p daemon.err \
                                "ERROR: `basename $0` Option -L not set"
                                rc_validate_options=1
                        fi;;

                esac
        done
	debug_message "Function: validate_options - Begin"
	return ${rc_validate_options}
}

validate() 
{
	#
	# Validate MySQL 
	#

        debug_message "Function: validate - Begin"
	$SET_DEBUG

	rc_validate=0
	#
	# Validate the base directory
	#

	if [ ! -d "${MYSQL_BASEDIR}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - MySQL basedirectory  %s does not exist" \
			"${MYSQL_BASEDIR}"
		rc_validate=1
	else
		debug_message "Validate - MySQL base directory ${MYSQL_BASEDIR} exists" 
	fi


	#
	# Validate the database directory
	#

	if [ ! -d "${MYSQL_DATADIR}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - MySQL database directory %s does not exist" \
			"${MYSQL_DATADIR}"
		rc_validate=1
	else
		debug_message "Validate - MySQL database directory ${MYSQL_DATADIR} exists"
	fi

	#
	# Validate that the mysqld is executable
	#

        cd ${MYSQL_BASEDIR}

	if [ ! -x "${MYSQL_MYSQLD}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - mysqld %s non-existent executable" \
			"${MYSQL_MYSQLD}"
		rc_validate=1
	else
		debug_message "Validate - MySQL ${MYSQL_MYSQLD} exists and is executable"
	fi

	#
	# Validate that the mysqladmin is executable
	#

	if [ ! -x "${MYSQL_MYSQLADMIN}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - mysqladmin %s non-existent or non-executable" \
			"${MYSQL_MYSQLADMIN}"
		rc_validate=1
	else
		debug_message "Validate - mysqladmin ${MYSQL_MYSQLADMIN} exists and is executable"
	fi

	#
	# Validate that the myisamchk is executable
	#

	if [ ! -x "${MYSQL_MYISAMCHK}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - myisamchk %s non-existent or non-executable" \
			"${MYSQL_MYISAMCHK}"
		rc_validate=1
	else
		debug_message "Validate - myisamchk ${MYSQL_MYISAMCHK} exists and is executable"
	fi

	#
	# Validate that my.cnf file exists
	#

	if [ ! -f "${MYSQL_DEFAULT_FILE}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - my.cnf %s does not exist" \
			"${MYSQL_DEFAULT_FILE}"
		rc_validate=1	
	else
		debug_message "Validate - my.cnf ${MYSQL_DEFAULT_FILE} exists"
	fi


	#
	# Validate that MySQL user exists
	#

	if [ -z "`getent passwd ${MYSQL_USER}`" ]
	then
 		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - Couldn't retrieve MySQL-user <%s> from the nameservice" \
			"${MYSQL_USER}"
		rc_validate=1
	else
		debug_message "Validate - Retrieved MySQL-user ${MYSQL_USER} from the nameservice"
	fi

	if [ ! -d "${MYSQL_LOGDIR}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - MySQL logdirectory for mysqld does not exist" \
			"${MYSQL_LOGDIR}"
		rc_validate=1
	else
		debug_message "Validate - MySQL logdirectory ${MYSQL_LOGDIR} exists"
	fi

	#
	# Check the MySQL version
	#

	debug_message "Validate - MySQL version <${MYSQL_VERSION}.${MYSQL_RELEASE}.${MYSQL_UPDATE}> is being used"

	if [ -z "${VERSION}" ]
	then
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - Couldn't retrieve MySQL version number"
		rc_validate=1

	elif [ "${MYSQL_VERSION}" -lt 3 -a "${MYSQL_RELEASE}" -lt 23 -a "${MYSQL_UPDATE}" -lt 54 ]
	then 
   		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"Validate - This version of MySQL <%s> is not supported with this dataservice"
			`printf ${MYSQL_VERSION}.${MYSQL_RELEASE}.${MYSQL_UPDATE}`
		rc_validate=1
	fi

        debug_message "Function: validate - End"
	return ${rc_validate}
}

start_mysql()
{
	#
	# Start MySQL
	#

        start_status=0

        debug_message "Function: start_mysql - Begin"
	$SET_DEBUG

        # IF MYSQL_CHECK IS SET RUN myisamchk ON INDEX

	if [ ! -z "${MYSQL_CHECK}" ]; then

           debug_message "start_mysql - Run myisamchk on index in ${MYSQL_DATADIR}"

	   ${MYSQL_MYISAMCHK} -c -s ${MYSQL_DATADIR}/*/*.MYI

           start_status=$?

           if [ ${start_status} -ne 0 ]; then
                scds_syslog -p daemon.error -t $(syslog_tag) -m \
                        "start_mysql - myisamchk found errors in some index in %s, perform manual repairs" \
                        "${MYSQL_DATADIR}"

             return ${start_status}
           fi
        fi

	#
	# IF ${MYSQL_MYSQLD_LOGFILE) EXIST MOVE IT TO ${MYSQL_MYSQLD_LOGFILE}.date
	#

	if [ -f "${MYSQL_MYSQLD_LOGFILE}" ]; then
		debug_message "start_mysql - Move ${MYSQL_MYSQLD_LOGFILE} to ${MYSQL_MYSQLD_LOGFILE_OLD}"
		mv ${MYSQL_MYSQLD_LOGFILE} ${MYSQL_MYSQLD_LOGFILE_OLD}
        fi

	#
	# Start mysqld
	#

	cd ${MYSQL_BASEDIR}
	${MYSQL_MYSQLD} --defaults-file=${MYSQL_DEFAULT_FILE} --basedir=${MYSQL_BASEDIR} --datadir=${MYSQL_DATADIR} --user=${MYSQL_USER} --pid-file=${MYSQL_PIDFILE} > ${MYSQL_MYSQLD_LOGFILE} 2>&1 &

        debug_message "Function: start_mysql - End"
	return 0
}

stop_mysql()
{
	#
	# Stop MySQL
	#

        debug_message "Function: stop_mysql - Begin"
	$SET_DEBUG

	#
	# If Slave stop slave first
	# 

	if [ ! -z "${MYSQL_SLAVE}" ]; then
          debug_message "Function: stop_mysql - Issue SLAVE STOP to MySQL instance"

          ${MYSQL_MYSQL} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} -e "SLAVE STOP" > ${MYSQL_RESULTF} 2> ${MYSQL_ERRORF}

          if [ $? -ne 0 ]; then
            Msg="`cat ${MYSQL_ERRORF}`"
            scds_syslog -p daemon.error -t $(syslog_tag) -m \
            "Function: stop_mysql - Sql-command SLAVE STOP returned error (%s)" \
            "$Msg"
          else
           debug_message "Function: stop_mysql - STOP SLAVE issued"
          fi
        fi

	#
	# Flush MySql tables
	#

        debug_message "Function: stop_mysql - Flush MySql tables"

	${MYSQL_MYSQLADMIN} -h ${MYSQL_HOST} -u${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} flush-tables

        if [ $? -ne 0 ]; then
           scds_syslog -p daemon.error -t $(syslog_tag) -m \
                        "stop_mysql - Failed to flush MySQL tables for %s" \
                        "${MYSQL_DATADIR}"

        else
           debug_message "Function: stop_mysql - MySQL tables flushed"
        fi

	#
	# Flush MySql logfiles
	#

        debug_message "Function: stop_mysql - Flush MySql logfiles"

	${MYSQL_MYSQLADMIN} -h ${MYSQL_HOST} -u${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} flush-logs

        if [ $? -ne 0 ]; then
           scds_syslog -p daemon.error -t $(syslog_tag) -m \
                        "stop_mysql - Failed to flush MySql logfiles for %s" \
                        "${MYSQL_DATADIR}"

        else
           debug_message "Function: stop_mysql - MySql logfiles flushed"
        fi

	# 
	# Stop MySQL
	#


        debug_message "Function: stop_mysql - Stop through mysqladmin"

	MYSQL_STOP=0
	
	${MYSQL_MYSQLADMIN} -h ${MYSQL_HOST} -u${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} shutdown

        if [ $? -ne 0 ]; then
           scds_syslog -p daemon.error -t $(syslog_tag) -m \
                        "stop_mysql - Failed to stop MySQL through mysqladmin for %s, send TERM signal to process" \
                        "${MYSQL_DATADIR}"

	   MYSQL_STOP=1
	else

           debug_message "Function: stop_mysql - Stoped through mysqladmin"

        fi

	if [ "${MYSQL_STOP}" -ne 0 ]; then

           debug_message "Function: stop_mysql - Try stop MySQL by sending signal TERM for ${MYSQL_DATADIR}"

	   if [ -f "${MYSQL_PIDFILE}" ]
	   then
   		pid=`cat ${MYSQL_PIDFILE}`

		debug_message "stop_mysql - MySQL lockfile found"

		# CHECK IF PID IS STILL THERE

		/bin/kill -0 ${pid}

		if [ $? -eq 0 ]; then

		  debug_message "stop_mysql - Send TERM to ${pid} and wait until pid-file is removed"

   		  /bin/kill -TERM ${pid}

   		  # WAIT UNTIL PID IS GONE OR MAX 5 * $MYSQL_COUNTS (DEF 300 s)

		  s1=1
		  while test ${s1} -lt ${MYSQL_COUNTS}
                  do
                     if [ ! -f "${MYSQL_PIDFILE}" ]; then
                        break;
                     fi

                     sleep 5

                     s1=`expr $s1 + 1`
                  done
		else
                 scds_syslog -p daemon.error -t $(syslog_tag) -m \
                 "stop_mysql - Pid is not running, let GDS stop MySQL for %s" \
                 "${MYSQL_DATADIR}"

		 debug_message "stop_mysql - Pid is not running, let GDS stop MySQL"
                fi
	     else
		debug_message "stop_mysql - mysqld lockfile not found - let GDS stop MySQL"
             fi

	fi


        debug_message "Function: stop_mysql - End"
	return 0
}

check_mysql()
{

	#
	# Check MySQL 
	#

        debug_message "Function: check_mysql - Begin"
	$SET_DEBUG

	rc_check_mysql=0

	#
	# MYSQL AVAILBLE TEST
	#

	debug_message "check_mysql - Available test started"

        ${MYSQL_MYSQLADMIN} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} ping > ${MYSQL_RESULTF} 2> ${MYSQL_ERRORF}

	if [ -s "${MYSQL_ERRORF}" ]
	then
  		scds_syslog -p daemon.error -t $(syslog_tag) -m \
			"check_mysql - mysqld server <%s> not working, failed to connect to MySQL" \
			"${MYSQL_DATADIR}"

                rc_check_mysql=100
                return ${rc_check_mysql}
	else
		debug_message "check_mysql - MySQL is working"
	fi


	debug_message "check_mysql - Available test ended"


	# SHOULD WE DO THOROUGH TEST

	if [ ! -f "${MYSQL_LAST_RUN_THOROUGH}" ]; then
          MYSQL_THOROUGH_TIME_LAST=0
        else
	  MYSQL_THOROUGH_TIME_LAST=`cat ${MYSQL_LAST_RUN_THOROUGH}`
        fi

	# CHECK IF WE PAST 12/24 HOUR

	if [ "${MYSQL_THOROUGH_TIME_LAST}" -gt "${MYSQL_THOROUGH_TIME}" ]; then
           MYSQL_THOROUGH_TIME_LAST=${MYSQL_THOROUGH_TIME}
	   echo ${MYSQL_THOROUGH_TIME} > ${MYSQL_LAST_RUN_THOROUGH}
	fi

	# IF IT HAS PAST > ${MYSQL_THOROUGH_SEC} SEC THEN RUN THOROUGH TEST

	s1=`expr ${MYSQL_THOROUGH_TIME} - ${MYSQL_THOROUGH_TIME_LAST}`

	if [ "${s1}" -gt ${MYSQL_THOROUGH_SEC} ]; then
          check_mysql_thorough
	  rc_check_mysql=${?}

	  # UPDATE FILE
	  echo ${MYSQL_THOROUGH_TIME} > ${MYSQL_LAST_RUN_THOROUGH}
        fi

        debug_message "Function: check_mysql - End"
        return ${rc_check_mysql}

}

check_mysql_thorough()
{
	#
	# MYSQL CONSISTENCY TEST
	#

	$SET_DEBUG

	debug_message "check_mysql - Consistency test started"

	# IF SLAVE INSTANCE, CHECK IF SLAVE CONNECTION TO MASTER IS ACTIVE

	if [ ! -z "${MYSQL_SLAVE}" ]; then

		# USE RIGHT COLUMNS FOR VERSION 3 AND 4

		if [ "${MYSQL_VERSION}" -eq 3 ]; then
		   MYSQL_STATUS_COM="/bin/cut -f1,7,10"
		elif [ "${MYSQL_VERSION}" -gt 3 ]; then
		   MYSQL_STATUS_COM="/bin/cut -f1,10,14"

                fi

		debug_message "check_mysql - Check slave connection to master"

		${MYSQL_MYSQL} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} -B -e "SHOW SLAVE STATUS" >${MYSQL_RESULTF} 2> ${MYSQL_ERRORF} 

		if [ $? -ne 0 ]; then
                   Msg="`cat ${MYSQL_ERRORF}`"
                   scds_syslog -p daemon.error -t $(syslog_tag) -m \
                  "check_mysql - Couldn't get SHOW SLAVE STATUS for instance %s (%s)"  \
		  "${MYSQL_DATADIR}" "${Msg}"
                else

		 # RESULT CHECK

		 Res=`cat ${MYSQL_RESULTF} | tail +2 | ${MYSQL_STATUS_COM}`

		 SLAVE_HOST=`echo $Res | awk '{print $1}'`
		 SLAVE_RUNNING=`echo $Res | awk '{print $2}'`
		 SLAVE_ERROR=`echo $Res | awk '{print $3}'`

	         debug_message "check_mysql - Slave connection to ${SLAVE_HOST}, Connect status is ${SLAVE_RUNNING} with error ${SLAVE_ERROR}"


		 if [ "${SLAVE_RUNNING}" = "No" ]; then
                    scds_syslog -p daemon.error -t $(syslog_tag) -m \
                   "check_mysql - MySQL slave instance %s is not connected to master %s with MySql error (%s)"  \
		   "${MYSQL_DATADIR}" "${SLAVE_HOST}" "${SLAVE_ERROR}"
                 fi
                fi

	debug_message "check_mysql - Slave connection to master checked"
        fi

	debug_message "check_mysql - Get defined databases"

	Dbs=`${MYSQL_MYSQL} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} -B -e 'show databases' | tail +2`

	if [ $? -eq 0 ]; then

	   debug_message "check_mysql - Got defined databases (${Db})"

	   for db in ${Dbs}
           do
             debug_message "check_mysql - Use database $db and do show tables for that database"

	     ${MYSQL_MYSQL} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} -B -e "use ${db}; show tables" > ${MYSQL_RESULTF} 2> ${MYSQL_ERRORF}

             if [ $? -ne 0 ]; then
	       Msg="`cat ${MYSQL_ERRORF}`"
  	       scds_syslog -p daemon.error -t $(syslog_tag) -m \
		  "check_mysql - Couldn't do show tables for defined database %s (%s)" \
		  "${db}" "$Msg"
             fi
           done

	else
  	  scds_syslog -p daemon.error -t $(syslog_tag) -m \
		"check_mysql - Couldn't retrieve defined databases for %s " \
		"${MYSQL_DATADIR}"
	fi


	debug_message "check_mysql - Consistency test ended"

	#
	# MYSQL FUNCTION TEST
	#


	debug_message "check_mysql - Function test started"


	debug_message "check_mysql - Retrive tables from ${MYSQL_TEST_DB}"

	Tab=`${MYSQL_MYSQL} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} -B -e "use ${MYSQL_TEST_DB}; show tables" | tail +2 2> ${MYSQL_ERRORF}`

	if [ ! -z "${Tab}" ]; then

	   debug_message "check_mysql - ${MYSQL_TEST_DB} contained ${Tab}"

	   debug_message "check_mysql - Drop those tables"

	   for s1 in ${Tab}
           do
              ${MYSQL_MYSQL} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} -e "use ${MYSQL_TEST_DB}; drop table ${s1}; COMMIT" > ${MYSQL_RESULTF} 2> ${MYSQL_ERRORF}

	      if [ $? -ne 0 ]; then
                Msg="`cat ${MYSQL_ERRORF}`"
                scds_syslog -p daemon.error -t $(syslog_tag) -m \
                    "check_mysql - Couldn't drop table %s from database %s (%s)" \
                    "${MYSQL_TEST_DB}" "$s1" "$Msg"
              fi

	   done

	   debug_message "check_mysql - Tables droped"
	fi

	for cmd in 'USE sc3_test_database; CREATE TABLE sc3_test_table ( Number int(5) NOT NULL, PRIMARY KEY (Number)) TYPE=MyISAM;COMMIT' \
                   'USE sc3_test_database; INSERT INTO sc3_test_table VALUES (1000); COMMIT' \
		  'USE sc3_test_database; UPDATE sc3_test_table Set Number=2000 WHERE Number=1000; COMMIT' \
		  'USE sc3_test_database; DELETE FROM sc3_test_table WHERE Number=2000; COMMIT' \
		  'USE sc3_test_database; DROP TABLE sc3_test_table; COMMIT'
        do
	  debug_message "check_mysql - Run Sql-command ${cmd}"

          ${MYSQL_MYSQL} -h ${MYSQL_HOST} -u ${MYSQL_FMUSER_USER} -p${MYSQL_FMUSER_PW} -e "${cmd}" > ${MYSQL_RESULTF} 2> ${MYSQL_ERRORF}

          if [ $? -ne 0 ]; then
            rc_check_mysql=100
            Msg="`cat ${MYSQL_ERRORF}`"
            scds_syslog -p daemon.error -t $(syslog_tag) -m \
            "check_mysql - Sql-command %s returned error (%s)" \
            "${cmd}" "$Msg"
            return
          fi
 
        done

	debug_message "check_mysql - Function test ended"
}

get_fmri_parameters ()
{

# extract the smf properties you need to call your agent commands

        debug_message "Function: get_fmri_parameters - Begin "
        ${SET_DEBUG}

# Resource name

	RESOURCE=`/usr/bin/svcprop -p parameters/Resource ${SMF_FMRI}`

# Resource Group

	RESOURCEGROUP=`/usr/bin/svcprop -p parameters/Resource_group ${SMF_FMRI}`

# Start_timeout

	START_TIMEOUT=`/usr/bin/svcprop -p start/timeout_seconds ${SMF_FMRI}`

# Start Project

	Project=:default
	if /usr/bin/svcprop ${SMF_FMRI}|grep start/project >/dev/null
	then
		Project=`/usr/bin/svcprop -p start/project ${SMF_FMRI}`
		if [ "${Project}" != ":default" ]
		then
			PROJ_OPT=" -P ${Project}"
		fi
	fi
#
#  Mysql specific parameters
#


	MYSQL_BASEDIR=`/usr/bin/svcprop -p parameters/Mysql_basedir ${SMF_FMRI}`
	MYSQL_DATADIR=`/usr/bin/svcprop -p parameters/Mysql_datadir ${SMF_FMRI}`
	MYSQL_USER=`/usr/bin/svcprop -p parameters/Mysql_user ${SMF_FMRI}`
	MYSQL_HOST=`/usr/bin/svcprop -p parameters/Mysql_host ${SMF_FMRI}`
	MYSQL_FMUSER=`/usr/bin/svcprop -p parameters/Mysql_fmuser ${SMF_FMRI}`
	MYSQL_LOGDIR=`/usr/bin/svcprop -p parameters/Mysql_logdir ${SMF_FMRI}`
	MYSQL_CHECK=`/usr/bin/svcprop -p parameters/Mysql_check ${SMF_FMRI}`

        debug_message "Function: get_fmri_parameters - End "
}
