Cdiff pgs_register.ksh
*** /workspace/du105637/oscposthot/webrev/usr/src/cmd/ha-services/gds-agents/PostgreSQL/pgs_register.ksh- Tue Apr 22 05:14:55 2008
--- pgs_register.ksh Tue Apr 22 04:57:04 2008
*** 19,29 ****
#
# CDDL HEADER END
#
#
! # Copyright 2007 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
--- 19,29 ----
#
# CDDL HEADER END
#
#
! # Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
*** 38,48 ****
BINDIR=/opt/SUNWscPostgreSQL/bin
UTILDIR=/opt/SUNWscPostgreSQL/util
SMFUTILDIR=/opt/SUNWsczone/sczsmf/util
DIRNAME=/usr/bin/dirname
! ECHO=/usr/bin/${ECHO}
MYNAME=`basename ${0}`
MYDIR=`dirname ${0}`
. ${MYDIR}/../etc/config
--- 38,49 ----
BINDIR=/opt/SUNWscPostgreSQL/bin
UTILDIR=/opt/SUNWscPostgreSQL/util
SMFUTILDIR=/opt/SUNWsczone/sczsmf/util
DIRNAME=/usr/bin/dirname
! ECHO=/usr/bin/echo
! STTY=/usr/bin/stty
MYNAME=`basename ${0}`
MYDIR=`dirname ${0}`
. ${MYDIR}/../etc/config
*** 66,75 ****
--- 67,96 ----
start_command="${BINDIR}/control_pgs -R ${RS} -G ${RG} -P ${PFILE} start"
stop_command="${BINDIR}/control_pgs -R ${RS} -G ${RG} -P ${PFILE} stop"
probe_command="${BINDIR}/control_pgs -R ${RS} -G ${RG} -P ${PFILE} probe"
validate_command="${BINDIR}/control_pgs -R ${RS} -G ${RG} -P ${PFILE} validate"
+ # determine whether the resource runs in the global zone or in a zone node
+ # and set the zcommand to the appropriate zlogin comand
+
+ zcommand=
+ rgs_zone=$(rgs_zonename)
+ if [ -n "${rgs_zone}" ]
+ then
+ zcommand="${ZLOGIN} ${rgs_zone} "
+ fi
+
+ # create the <resorce name>-phrase if required
+
+ if [ -n "${SSH_PASSDIR}" ]
+ then
+ if ! store_passphrase
+ then
+ return 1
+ fi
+ fi
+
# register your resource
if /usr/cluster/bin/scrgadm -pvv -t SUNW.gds | /usr/bin/grep Validate_command>/dev/null 2>&1
then
*** 143,162 ****
# VALIDATE RESOURCE
${ECHO} "Validate resource ${RS} in resourcegroup ${RG}"
- # determine whether the resource runs in the global zone or in a prepared zone
- # and set the zcommand to the appropriate zlogin comand
-
- zcommand=
- rgs_zone=$(rgs_zonename)
- if [ -n "${rgs_zone}" ]
- then
- zcommand="/usr/sbin/zlogin ${rgs_zone} "
- fi
-
# validate the contents of the parameter file
${zcommand} ${BINDIR}/control_pgs -R ${RS} -G ${RG} -P ${PFILE} validate
St=$?
--- 164,173 ----
*** 189,198 ****
--- 200,227 ----
${ECHO} ${SMFUTILDIR}/sczsmf_config does not exist. Make sure, that \
Sun Cluster HA for Solaris container is intalled in the global zone
return 1
fi
+
+ # create the <resorce name>-phrase if required
+
+ zcommand="${ZLOGIN} ${ZONE} "
+
+ # create the <resorce name>-phrase if required
+
+ if [ -n "${SSH_PASSDIR}" ]
+ then
+ if store_passphrase
+ then
+ ${zcommand} ${CHOWN} ${USER} ${SSH_PASSDIR}/${RS}-phrase
+ else
+ return 1
+ fi
+ fi
+
+
# prepare the config file
cp ${SMFUTILDIR}/sczsmf_config ${SMFUTILDIR}/sczsmf_config.work
cat << EOF > ${SMFUTILDIR}/sczsmf_config
*** 298,308 ****
--- 327,362 ----
return ${ret_code}
}
+ store_passphrase()
+ {
+ # create the <resorce name>-phrase
+
+ ${zcommand} ${TEST} ${SSH_PASSDIR}
+ if [ ${?} -ne 0 ]
+ then
+ ${ECHO} "The directory ${SSH_PASSDIR} which is necessary to store the passphrase file does not exist"
+ return 1
+
+ fi
+ ${zcommand} ${RM} ${SSH_PASSDIR}/${RS}-phrase 2>/dev/null
+ ${zcommand} ${TOUCH} ${SSH_PASSDIR}/${RS}-phrase
+ ${zcommand} ${CHMOD} 600 ${SSH_PASSDIR}/${RS}-phrase
+ if [ -n "${zcommand}" ]
+ then
+ ${zcommand} ${ECHO} ${passphrase} \>\>${SSH_PASSDIR}/${RS}-phrase
+ else
+ ${ECHO} ${passphrase} >>${SSH_PASSDIR}/${RS}-phrase
+ fi
+ ${zcommand} ${CHMOD} 400 ${SSH_PASSDIR}/${RS}-phrase
+ return 0
+
+ }
+
MYCONFIG=
ZONETYPE=global
typeset opt
*** 327,336 ****
--- 381,416 ----
PKGCONF=`dirname $0`/pgs_config
${ECHO} "sourcing ${PKGCONF}"
. ${PKGCONF}
fi
+ # getting the passphrase if required
+
+ if [ -n "${SSH_PASSDIR}" ]
+ then
+
+ ${ECHO} "Enter the passphrase of your PostgreSQL user."
+ ${STTY} -echo
+ read passphrase
+ ${STTY} echo
+ if [ -z "${passphrase}" ]
+ then
+ ${ECHO} "The passphrase is missing, rerun the pgs_register script"
+ exit 1
+ fi
+ ${ECHO} "Verify your passphrase"
+ ${STTY} -echo
+ read passphrase2
+ ${STTY} echo
+ if [ "${passphrase}" != "${passphrase2}" ]
+ then
+ ${ECHO} "The passphrase verification does not match, rerun the pgs_register script"
+ exit 1
+ fi
+
+ fi
+
# Registering the resource
if [ -n "${ZONE}" ]
then
local_zone_smf