Udiff functions.ksh
--- /workspace/neilga/ohacds-ids/webrev/usr/src/cmd/ha-services/gds-agents/ids/functions.ksh-   Tue May 27 03:22:56 2008
+++ functions.ksh       Tue May 27 03:16:22 2008
@@ -19,11 +19,11 @@
 # CDDL HEADER END
 #
 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
-#ident   "@(#)functions.ksh 1.4     08/04/29 SMI"
+#ident   "@(#)functions.ksh 1.5     08/05/27 SMI"
 #
 
 PKG=SUNWscids
 LOGFILE=/var/tmp/${RESOURCE}_logfile
 TASK_COMMAND=""
@@ -50,11 +50,11 @@
                   p) PRI=${OPTARG};;
                esac
           done
        
           shift $((${OPTIND} - 1))
-          LOG_STRING=`/usr/bin/printf "$@"`
+          LOG_STRING=$(/usr/bin/printf "$@")
           ${LOGGER} -p ${PRI} -t ${TAG} ${LOG_STRING}
        fi
 }
 
 debug_message()
@@ -72,11 +72,11 @@
 }
 
 log_message()
 {
        debug_message "Function: log_message - Begin"
-       {SET_DEBUG}
+       ${SET_DEBUG}
 
        if [ -s "${LOGFILE}" ]
        then
           PRIORITY=$1
           HEADER=$2
@@ -152,11 +152,11 @@
 
        if [ "${USERID}" = "informix" ]
        then
           debug_message "Validate - Userid is informix"
        else
-          pgroup=`/usr/bin/getent passwd ${USERID} | /usr/bin/awk -F: '{print $4}'`
+          pgroup=$(/usr/bin/getent passwd ${USERID} | /usr/bin/awk -F: '{print $4}')
 
           if [ -n "${pgroup}" ]
           then
                if /usr/bin/getent group ${pgroup} | /usr/bin/awk -F: '{ if ($1 == "informix") print $3}' | \
                   /usr/bin/grep "^${pgroup}$" > /dev/null
@@ -342,12 +342,10 @@
        debug_message "Function: start_ids - Begin"
        ${SET_DEBUG}
 
        /usr/bin/rm ${LOGFILE} 2> /dev/null
 
-       if [ "${CALLER}" = "GDS" ]
-       then
           get_state
           check_ids debug
           rc=$?
 
           # Check_ids will return 0 if
@@ -370,17 +368,12 @@
                   "${INFORMIXSERVER}"
 
                return 0
           fi
 
-          /usr/bin/su ${USERID} -c "${TASK_COMMAND} env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/oninit -y ${OUTPUT} &" > /dev/null
+       /usr/bin/su ${USERID} -c "${TASK_COMMAND} /usr/bin/env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/oninit -y ${OUTPUT} &" > /dev/null
 
-       else
-          env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/oninit -y > ${LOGFILE} 2>&1 &
-
-       fi
-
        rc=$?
 
        if [ "${rc}" -eq 0 ]
        then
           # SCMSGS
@@ -389,19 +382,10 @@
           # @user_action
           # None required. Informational message.
           scds_syslog -p daemon.info -t $(syslog_tag) -m \
                "start_ids - Informix Server (%s) started rc(%s)" \
                "${INFORMIXSERVER}" "${rc}"
-
-          # At present there is no equivalent "wait_for_online" within SMF
-          # therefore we'll perform our own.
-
-          if [ "${CALLER}" = "SMF" ]
-          then
-               smf_wait_for_online
-               rc=$?
-          fi
        else
           # SCMSGS
           # @explanation
           # The specified Informix Server failed to start.
           # @user_action
@@ -422,21 +406,16 @@
 check_start()
 {
        debug_message "Function: check_start - Begin"
        ${SET_DEBUG}
 
-       if [ "${CALLER}" = "GDS" ]
-       then
           if [ -x /sbin/zonename ]
           then
                /usr/bin/pgrep -z ${ZONENAME} -f "$1 .*-R ${RESOURCE} " >/dev/null 2>&1
           else
                /usr/bin/pgrep -u root -f "$1 .*-R ${RESOURCE} " >/dev/null 2>&1
           fi
-       else
-               /usr/bin/pgrep -u ${USERID} -f "$1 ${RESOURCE} " >/dev/null 2>&1
-       fi
 
        rc=$?
 
        debug_message "Function: check_start - End"
        return ${rc}
@@ -474,24 +453,19 @@
        #
        # After IDS is started.
        #
        #  IBM Informix Dynamic Server Version 11.10.FC1       -- On-Line -- Up 01:47:59 -- 29696 Kbytes
 
-       if [ "${CALLER}" = "GDS" ]
-       then
-          onstat_header=`/usr/bin/su ${USERID} -c "${TASK_COMMAND} env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/onstat - | /usr/bin/grep ."`
-       else
-          onstat_header=`env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/onstat - | /usr/bin/grep .`
-       fi
+       onstat_header=$(/usr/bin/su ${USERID} -c "${TASK_COMMAND} /usr/bin/env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/onstat - | /usr/bin/grep .")
 
        if echo ${onstat_header} | /usr/xpg4/bin/grep -q "Informix Dynamic Server"
        then
-          onstat_mode=`echo ${onstat_header} | /usr/bin/sed -e 's/ -- Up.*$//' -e 's/^.*-- //'`
+          onstat_mode=$(echo ${onstat_header} | /usr/bin/sed -e 's/ -- Up.*$//' -e 's/^.*-- //')
 
           if echo ${onstat_header} | /usr/xpg4/bin/grep -q "Blocked:"
           then
-               onstat_blocked=`echo ${onstat_header} | /usr/bin/sed -e 's/^.*Blocked://'`
+               onstat_blocked=$(echo ${onstat_header} | /usr/bin/sed -e 's/^.*Blocked://')
           else
                onstat_blocked=""
           fi
        fi
 
@@ -581,11 +555,11 @@
                        ;;
        esac
 
        debug_message "check_ids - ${onstat_header}"
 
-       if [ "${CALLER}" = "GDS" -a "${LEVEL}" != "debug" ]
+       if [ "${LEVEL}" != "debug" ]
        then
           # While we tolerate some blocked states we will output a status message
           # to Solaris Cluster if one is found. Nevertheless the resource remains online.
 
           saved_rc=${rc}
@@ -613,21 +587,15 @@
 stop_ids()
 {
        debug_message "Function: stop_ids - Begin"
        ${SET_DEBUG}
 
-       MAX_STOP_TIMEOUT=`/usr/bin/expr ${STOP_TIMEOUT} \* 70 \/ 100`
+       MAX_STOP_TIMEOUT=$(/usr/bin/expr ${STOP_TIMEOUT} \* 70 \/ 100)
        SECONDS=0
 
-       if [ "${CALLER}" = "GDS" ]
-       then
-          /usr/bin/su ${USERID} -c "${TASK_COMMAND} env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/onmode -uky ${OUTPUT} &" > /dev/null
+       /usr/bin/su ${USERID} -c "${TASK_COMMAND} /usr/bin/env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/onmode -uky ${OUTPUT} &" > /dev/null
 
-        else
-           env INFORMIXDIR=${INFORMIXDIR} INFORMIXSERVER=${INFORMIXSERVER} INFORMIXSQLHOSTS=${INFORMIXSQLHOSTS} ONCONFIG=${ONCONFIG} ${INFORMIXDIR}/bin/onmode -uky  > ${LOGFILE} 2>&1 &
-       fi
-
        while  [ "${SECONDS}" -lt "${MAX_STOP_TIMEOUT}" ]
        do
           get_state
 
           if echo ${onstat_header} | /usr/xpg4/bin/grep -q "shared memory not initialized"
@@ -652,47 +620,10 @@
 
        debug_message "Function: stop_ids - End"
        return 0
 }
 
-smf_wait_for_online()
-{
-       debug_message "Function: smf_wait_for_online - Begin"
-       ${SET_DEBUG}
-
-       # In order to ensure that the SMF service is really online, we need
-       # to check getstate() and check_ids(). However, we need to enforce
-       # an SMF_EXIT_ERR_CONFIG if we are just about to timeout. If we do not
-       # do this, then svc.startd will try to restart the SMF service three
-       # times. Essentially we need Sun Cluster to do that.
-
-       MAX_START_TIMEOUT=`/usr/bin/expr ${START_TIMEOUT} \* 95 \/ 100`
-       SECONDS=0
-
-       while  [ "${SECONDS}" -lt "${MAX_START_TIMEOUT}" ]
-       do
-          get_state
-          check_ids
-          rc=$?
-
-          # Check_ids will return 0 if
-          # - The Informix Server is running
-          # - No blocked on "MEDIA FAILURE" or "HANG_SYSTEM" exists
-
-          if [ "${rc}" -eq 0 ]
-          then
-               SECONDS=${MAX_START_TIMEOUT}
-          else
-               rc=${SMF_EXIT_ERR_CONFIG}
-               sleep 2
-          fi
-       done
-
-       debug_message "Function: smf_wait_for_online - End"
-       return ${rc}
-}
-
 cleanup_ipc()
 {
        debug_message "Function: cleanup_ipc - Begin"
        ${SET_DEBUG}
 
@@ -723,11 +654,11 @@
                else
                   if /usr/bin/ps -p ${CPID} -o zone | /usr/bin/grep " ${ZONENAME}$" > /dev/null
                   then
                        debug_message "Informix SHMID: ${SHMID} - CPID ${CPID} is running"
                   else
-                       SHMID=`/usr/bin/echo ${SHMID} | /usr/xpg4/bin/tr 'm' ' '`
+                       SHMID=$(/usr/bin/echo ${SHMID} | /usr/xpg4/bin/tr 'm' ' ')
 
                        # As the initial ipcs -mcopbZ is only a snapshot in time, Informix
                        # may have already cleaned up. Therefore the following attempt to remove a 
                        # shared memory segment may fail with "not found". To prevent misleading 
                        # console messages stdout/stderr is redirected to /dev/null.