#!/bin/sh
#
# $Header: opsm/utl/rhphelper /st_has_12.2.0.1.0/1 2016/08/07 15:48:00 chchatte Exp $
#
# rhphelper
#
# Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
#
# NAME
# rhphelper - Helper tool to execute commands on the remote node
#
# DESCRIPTION
# This tool is a helper tool that is used by RHP to peformm CVU validations
# as well as discovery on the remote node that is to be provisioned.
#
# Version since - 12.2
#
# NOTES
ECHO=/bin/echo
if [ $# -lt 3 ];
then
$ECHO "RHPHELP_TOOL_error-011"
#Usage: $0 []
# Oracle home where rhphelper script and jar are located
# version of Oracle home
exit 1
fi
ORACLE_HOME=$1
FIXUP=NO
SETUPSSH=NO
TRANSFERNOUSEREQ=NO
for i in "$@"
do
case $i in
-setupSSH)
SETUPSSH=YES
;;
-fixup)
FIXUP=YES
;;
-transferNoUserEq)
TRANSFERNOUSEREQ=YES
;;
*) #skip all other options
;;
esac
done
SRVMJAR=$ORACLE_HOME/jlib/srvm.jar
SRVMHASJAR=$ORACLE_HOME/jlib/srvmhas.jar
SRVMASMJAR=$ORACLE_HOME/jlib/srvmasm.jar
GNSJAR=$ORACLE_HOME/jlib/gns.jar
#NetCa config jar
NETCFGJAR=$ORACLE_HOME/jlib/netcfg.jar
#LDAP jar to read listener.ora file on upgrade
LDAPJAR12C=$ORACLE_HOME/jlib/ldapjclnt12.jar
LDAPJAR112=$ORACLE_HOME/jlib/ldapjclnt11.jar
OUIJARS=$ORACLE_HOME/oui/jlib/OraInstaller.jar:$ORACLE_HOME/oui/jlib/OraPrereq.jar:$ORACLE_HOME/oui/jlib/prov_fixup.jar:$ORACLE_HOME/oui/jlib/xmlparserv2.jar:$ORACLE_HOME/oui/jlib/share.jar:$ORACLE_HOME/oui/jlib/orai18n-mapping.jar:$ORACLE_HOME/oui/jlib/jsch.jar
OPATCHJARS=$ORACLE_HOME/OPatch/jlib/opatch.jar:$ORACLE_HOME/OPatch/jlib/opatchext.jar:$ORACLE_HOME/OPatch/jlib/opatchprereq.jar:$ORACLE_HOME/OPatch/jlib/opatchactions.jar:$ORACLE_HOME/OPatch/jlib/opatchfmw.jar:$ORACLE_HOME/OPatch/jlib/opatchutil.jar
CVUJARS=$ORACLE_HOME/jlib/cvu.jar
if [ -d $ORACLE_HOME/jdk/jre ];
then
JREDIR=$ORACLE_HOME/jdk/jre
else
$ECHO "RHPHELP_TOOL_error-021"
exit 1
fi
JRE=$JREDIR/bin/java
JREJAR=$JREDIR/lib/rt.jar
CLASSPATH=$JREJAR:$SRVMJAR:$SRVMJAR:$SRVMHASJAR:$GNSJAR:$SRVMASMJAR:$OUIJARS:$OPATCHJARS:$NETCFGJAR:$LDAPJAR12C:$CVUJARS:$LDAPJAR112
## TO DO::: Since this is a remotely executed script, we need to figure out a tracing paradigm here
# Or perhaps we can fix a temporary location where the traces will be stored.
TRACE="-DTRACING.ENABLED=false"
TRACEFILE=""
if [ -n "$SRVM_TRACE" ]
then
if [ "$SRVM_TRACE" = "true" ] || [ "$SRVM_TRACE" = "TRUE" ]
then
if [ "X${RHPHELPER_TRACEFILE}" != "X" ]
then
TRACE="-DTRACING.ENABLED=true -DTRACING.LEVEL=2"
TRACEFILE="-Dsrvm.rhphelper.tracefile=${RHPHELPER_TRACEFILE}"
fi
fi
fi
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
# Set the shared library path for JNI shared libraries
# A few platforms use an environment variable other than LD_LIBRARY_PATH
PLATFORM=`/bin/uname`
case $PLATFORM in
HP-UX) arch=`/bin/uname -m`
# bugfix 5404049
if [ -z "$JAVA_HOME" ];
then
JAVA_HOME=$JREDIR/..
export JAVA_HOME
fi
SHLIB_PATH=$LD_LIBRARY_PATH
export SHLIB_PATH
JRE_OPTS=-d64
SED=/usr/bin/sed
;;
AIX)
LIBPATH=$LD_LIBRARY_PATH
export LIBPATH
JRE_OPTS=-d64
SED=/usr/bin/sed
;;
Linux) arch=`/bin/uname -m`
if [ "$arch" = "ppc64" -o "$arch" = "x86_64" -o "$arch" = "s390x" ]
then
JRE_OPTS=-d64
fi
SED=/bin/sed
;;
SunOS)
# Bug 4620768. Unset LD_LIBRARY_PATH_64
unset LD_LIBRARY_PATH_64
SED=/bin/sed
JRE_OPTS=-d64
;;
esac
# Trim the trailing slashes in home path.
# ORACLE_HOME=/u01/app/grid and ORACLE_HOME=/u01/app/grid/ are considered
# different by the database and ASM
ORACLE_HOME=`$ECHO $ORACLE_HOME | $SED 's/[ /]*$//'`
export ORACLE_HOME
case $2 in
11.2.0.3*)
RHPHELPERJAR=$ORACLE_HOME/crs/install/rhpdata/helper/rhphelper112.jar
JAVAMAIN=oracle.cluster.gridhome.giprov112.RHPHelper112
#11.2 release required CV_HOME variable to be set
CV_HOME=$ORACLE_HOME
export CV_HOME
;;
11.2.0.4*)
RHPHELPERJAR=$ORACLE_HOME/crs/install/rhpdata/helper/rhphelper112.jar
JAVAMAIN=oracle.cluster.gridhome.giprov112.RHPHelper112
#11.2 release required CV_HOME variable to be set
CV_HOME=$ORACLE_HOME
export CV_HOME
;;
12.1.0.2*)
RHPHELPERJAR=$ORACLE_HOME/crs/install/rhpdata/helper/rhphelper12102.jar
JAVAMAIN=oracle.cluster.gridhome.giprov12102.RHPHelper12102
#set ORACLE_BASE to ORACLE_HOME as without this CLSBInit would core dump
# Bug number: 20444192
ORACLE_BASE=$ORACLE_HOME
export ORACLE_BASE
;;
12.2.0.[0-4]*)
JDBCJAR=$ORACLE_HOME/jdbc/lib/ojdbc8.jar
CLASSPATH=${CLASSPATH}:$JDBCJAR
RHPHELPERJAR=$ORACLE_HOME/crs/install/rhpdata/helper/rhphelper122.jar
JAVAMAIN=oracle.cluster.gridhome.giprov122.RHPHelper122
#set ORACLE_BASE to ORACLE_HOME as without this CLSBInit would core dump
# Bug number: 20444192
ORACLE_BASE=$ORACLE_HOME
export ORACLE_BASE
;;
*)
$ECHO "RHPHELP_TOOL_error-031"
#version should be 11.2.0.3.0, or 11.2.0.4.0, or 12.1.0.2.0, or 12.2.0.0.0
exit 1
esac
CLASSPATH=${CLASSPATH}:$RHPHELPERJAR
shift 2 #to avoid passing home and version args to Java main
if [[ $FIXUP = "YES" || $TRANSFERNOUSEREQ = "YES" ]]
then
stty -echo
read pass
stty echo
echo $pass | $JRE $JRE_OPTS -classpath $CLASSPATH $TRACE $TRACEFILE $JAVAMAIN "$@"
else
$JRE $JRE_OPTS -classpath $CLASSPATH $TRACE $TRACEFILE $JAVAMAIN "$@"
fi
exit $?