#!/usr/bin/sh
#set -x
################################################################################
## PRODUCT  : HGLM Agent Installer                                            ##
##                                                                            ##
## NAME     : install                                                         ##
##                                                                            ##
## FUNCTION : HGLM Agent installation                                         ##
##                                                                            ##
## DATE     : 2009.02.02                                                      ##
##                                                                            ##
## All Rights Reserved. Copyright (C) 2008, 2009, Hitachi, Ltd.               ##
################################################################################

################################################################################
## Definition

## COMMAND PATH ##
ECHO="/usr/bin/echo"
PLAT=`/usr/bin/uname -p`
SOLVER=`/usr/bin/uname -r`
SOLARCH=`/usr/bin/uname -a`
MOVE="/usr/bin/mv"
COPY="/usr/bin/cp -p"
TOUCH="/usr/bin/touch"
MKDIR="/usr/bin/mkdir -p"
REMOVE="/usr/bin/rm -rf"
PWD="/usr/bin/pwd"

## LOGFILE PATH ##
INSTALL_LOGDIR="/var/tmp"
INSTALL_LOGFILE=$INSTALL_LOGDIR"/HGLMAgent_install.log"
LOG_FILE_SIZE=" "

## PROPERTY CONFIG FILE ##
PROPERTY_CONFIG_FILE=""

## TEMP DIR ##
TEMP_DIR="/var/tmp/HGLMA_tmp"

## HBSA DIR ##
PREPARE_HBSA_DIR="/HBSA/Installer"
HBSA_EXIST="" 
HBSA_LOC=""

## INSTALLATION DIR STATUS ##
HGLMAINSTDIR=""
HGLMALOGDIR=""
HBSAINSTDIR=""

## PATH FILE VARIABLE ##
PATH_DIR="/etc/.HGLMAgent"
PATH_FILE="/Path00"                                                                      # GLMAGTINST06200108
HBSA_PATH=/etc/.HBaseAgent/Path00
HBSA_FILE=""


## PATHS READ FROM PATHFILE
PATH_HGLMAINSTDIR=""
PATH_HGLMALOGINSTDIR=""
PATH_HBSAINSTDIR=""

## FLAG ON or OFF ##
FLG_OFF="0"
FLG_ON="1"

## INSTALLATION TYPE FLAGS ##
CONFIRM_FLG=${FLG_OFF}                                                                   # GLMAGTINST06200110 
FLG_NEWINSTALL=${FLG_OFF}
FLG_OVERWRITEINSTALL=${FLG_OFF}
FLG_UPGRADEINSTALL=${FLG_OFF}
FLG_DOWNGRADEINSTALL=${FLG_OFF}

## PARAMETER FLAGS ##
PARAM_F_FLG=${FLG_OFF}
PARAM_S_FLG=${FLG_OFF}
PARAM_H_FLG=${FLG_OFF}
PARAM_DOWNGRADE_FLG=${FLG_OFF}
PARAM_INSTALLDIR_FLG=${FLG_OFF}
PARAM_LOGDIR_FLG=${FLG_OFF}
PARAM_HBSADIR_FLG=${FLG_OFF}
INTEGRATED_AGENT_INSTALLATION_FLG=${FLG_OFF}
NOT_CHECK_FLG=${FLG_OFF}
# WARN_MSG="false"                                                                     # GLMAGTINST06200139 # GLMAGTINST06200140
WARN_MSG_FLG=${FLG_OFF}                                                              # GLMAGTINST06200107

# Required capacity in Kb

HBSAINST_SIZE=5120                  # hbsa(5MB) installation size.
#HGLM_AGENTLET_SIZE=1204             # hglm(1MB) agentlet size.                      # GLMAGTINST06200104 START 
#REQ_VAR_SIZE_HBSA_EXIST=15000       # /var/tmp size(15MB) when hbsa exist.
HGLM_AGENTLET_SIZE=1024             # hglm(1MB) agentlet size.
#REQ_VAR_SIZE_HBSA_EXIST=15360       # /var/tmp size(15MB) when hbsa exist.           # GLMAGTINST06200104 END # GLMAGTINST06200155 START
#REQ_VAR_SIZE_HBSA_NOT_EXIST=39936   # /var/tmp size(39MB) when hbsa doesnt exist.
REQ_VAR_SIZE_HBSA_EXIST=39936       # /var/tmp size(39MB) when hbsa exist.
REQ_VAR_SIZE_HBSA_NOT_EXIST=15360   # /var/tmp size(15MB) when hbsa doesnt exist.    #GLMAGTINST06200155 END
#HGLMINST_SIZE=1204                  # hglm installation size(1MB).                  # GLMAGTINST06200104
HGLMINST_SIZE=1024                  # hglm installation size(1MB).                   # GLMAGTINST06200104


## DIR ##
CMD_DIR=`${ECHO} $0 | sed 's/install.sh//'` # GLMAGTINST06200065
VERSION_FILE=$CMD_DIR/versioninfo           # GLMAGTINST06200065

## INSTALL VARIABLES ##
#LATEST_VERSION=`pkginfo -l -d $CMD_DIR/HGLMAgent.pkg | /usr/bin/grep VERSION: | /usr/bin/cut -f2 -d: | /usr/bin/awk '{print $1}'`   # GLMAGTINST06200110 # GLMAGTINST06200137 
LATEST_VERSION=`pkginfo -l -d $CMD_DIR/HGLMAgent | /usr/bin/grep VERSION: | /usr/bin/cut -f2 -d: | /usr/bin/awk '{print $1}'`   # GLMAGTINST06200137 
INSTALL_VERSION=`/usr/bin/pkgparam HGLMAgent VERSION 2>/dev/null`
LATEST_VERSION_VERSION_INFO=`/usr/bin/cat $CMD_DIR/versioninfo `                        # GLMAGTINST06200110
PKGINFO="/usr/bin/pkginfo"
PKGNAME="HGLMAgent"

## RETURN CODES ##
NORM_TERM=0
PARAMETER_ERROR_VALUE=1
HBSA_JAVA_ERROR_VALUE=3
EXEC_EVMT_ERROR_VALUE=2
HBSA_CMD_ERROR_VALUE=4
UNIX_CMD_ERROR=15
OS_VERSION_ERROR=17
HGLM_AGENT_VERSION_ERROR=18

## ERROR CODES ##
HBSA_INSTALL_ERROR_CODE=1
HBSA_START_ERROR_CODE=3
HBSA_STOP_ERROR_CODE=4
HBSA_PP_ADD_ERROR_CODE=5
HBSA_AMC_ACTIVATE_ERROR_CODE=7
HBSA_AMC_INACTIVATE_ERROR_CODE=8                  #GLMAGTINST06200083

## MISC ##
INSTALL_MODE=""
ASK_FILE_LOC=""
DOWNGRADE_OPTION=""
COUNTER=1

## DEFALUT LOCATION ##                                                      # GLMAGTINST06200161
DEFAULT_INST_PATH=/opt                                                      # GLMAGTINST06200161

################################################################################
## Print messages to log files
## $1 : Loglevel
## $2 : Message Id
## $3 : Description
################################################################################
log_message()
{
  #  DATE_STR=`date '+%m-%d-%Y  %H-%M-%S'`                                   # GLMAGTINST06200143
    DATE_STR=`date '+%Y-%m-%d %H:%M:%S'`                                     # GLMAGTINST06200143
    ${ECHO} $1 $DATE_STR $2  >> $INSTALL_LOGFILE
    return 0
}

################################################################################
## print_messages
## $1  : KAIFXXXXX
## $2-*: various
################################################################################
print_messages()
{
  PRINT_MESSAGES_TMP_LEVEL=""
  PRINT_MESSAGES_TMP_MESSEGE=""
  PRINT_MESSAGES_TMP_PRINT=""
  case "$1" in
  'KAIF62000')
     PRINT_MESSAGES_TMP_LEVEL="INFO"    
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62000-I HGLM Agent installation is started."                 # GLMAGTINST06200107  START
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62000-I HGLM Agent installation will now start." # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62000-I HGLM Agent installation has started." # GLMAGTINST06201003
     ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
     ;;
  'KAIF62001')                                                                               
     PRINT_MESSAGES_TMP_LEVEL="WARN"
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62001-W An error occured during HGLM Agent installation." # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62001-W An error occurred during HGLM Agent installation, but the installation still completed." # GLMAGTINST06201003
     ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
     ;;                                                                                      
  'KAIF62002')
     PRINT_MESSAGES_TMP_LEVEL="INFO"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62002-I HGLM Agent installation is normally terminated."              
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62002-I The installation of HGLM Agent version $2 completed normally."  # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62002-I HGLM Agent installation (for version $2) completed successfully."  # GLMAGTINST06201003
     ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
   ;;
  'KAIF62003')                                                                                              
     PRINT_MESSAGES_TMP_LEVEL="ERROR"
     #PRINT_MESSAGES_TMP_MESSEGE="KAIF62003-E An attempt to installation HGLM Agent version $LATEST_VERSION has failed." # GLMAGTINST06200129
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62003-E An attempt to install HGLM Agent version $LATEST_VERSION has failed." # GLMAGTINST06200129 GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62003-E HGLM Agent installation (for version $LATEST_VERSION) failed." #  GLMAGTINST06201003
     ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
   ;;
#  'KAIF62004')
#     PRINT_MESSAGES_TMP_LEVEL="ERROR"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62004-E HGLM Agent installation is abnormally terminated."
#     ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
#     ;;
  'KAIF62004')                                                                  # GLMAGTINST06200144 START # GLMAGTINST06201001 START
     PRINT_MESSAGES_TMP_LEVEL="INFO"
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62004-I The user terminated the installation." #  GLMAGTINST06201003
     ;;
  'KAIF62005')
     PRINT_MESSAGES_TMP_LEVEL="INFO"
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62005-I The user inputted $2." # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62005-I The user entered $2." # GLMAGTINST06201003
     ;;                                                                          # GLMAGTINST06200144 END # GLMAGTINST06201001 START
  'KAIF62006')
     PRINT_MESSAGES_TMP_LEVEL="INFO"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62006-I "$2" is started."
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62006-I $2 will now start." # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62006-I The processing ($2) has started." # GLMAGTINST06201003
     ;;
  'KAIF62007')
     PRINT_MESSAGES_TMP_LEVEL="INFO"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62007-I $2 is terminated." 
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62007-I $2 completed normally." # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62007-I The processing ($2) has completed." # GLMAGTINST06201003
     ;;
  'KAIF62008')
     PRINT_MESSAGES_TMP_LEVEL="INFO"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62008-I $2 $3"
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62008-I HGLM Agent version $2 is installed. This version will now be overwritten with version $3." # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62008-I Version $2 of HGLM Agent is being installed. It will overwrite version $3." # GLMAGTINST06201003
     ;;
  'KAIF62009-I')
     PRINT_MESSAGES_TMP_LEVEL="INFO"
     PRINT_MESSAGES_TMP_MESSEGE="$@"    
     ;;
  'KAIF62010')
     PRINT_MESSAGES_TMP_LEVEL="INFO"
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62010-I $2"    
     ;;
  'KAIF62011')
     PRINT_MESSAGES_TMP_LEVEL="ERROR"
#    PRINT_MESSAGES_TMP_MESSEGE="KAIF62011-E $2 ended abnormally." # GLMAGTINST06201003
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62011-E The processing ($2) ended abnormally." # GLMAGTINST06201003
     ;;
   'KAIF62100')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62100-E Incorrect parameter is specified. $2"
     PRINT_MESSAGES_TMP_MESSEGE="KAIF62100-E A parameter is invalid. parameter = $2"
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
     ;;  
   'KAIF62101')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62101-E Property setup file is not specified in the f parameter."    
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62101-E The property settings file is not specified."                      # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62101-E The property configuration file is not specified."                  # GLMAGTINST06200168 # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62101-E A property configuration file was not specified in the -f parameter." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
     ;;    
   'KAIF62102')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62102-E The file specified in f parameter does not exist. $2"    
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62102-E The property settings file does not exist."                        # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62102-E The property configuration file does not exist."                    # GLMAGTINST06200168 # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62102-E The property configuration file specified in the -f parameter does not exist. " # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;    
   'KAIF62103')
#      PRINT_MESSAGES_TMP_LEVEL="ERROR"                                                                                                 # GLMAGTINST06200136 START
       PRINT_MESSAGES_TMP_LEVEL="WARN"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62103-E Incorrect parameter is specified in the property setup file. $2" 
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62103-E The definition of the property settings file includes an invalid parameter. parameter = $2"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62103-W The definition of the property settings file includes an invalid parameter. parameter = $2"  # GLMAGTINST06200136 END # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62103-W The definition of the property configuration file includes an invalid parameter. parameter = $2" # GLMAGTINST06200168 # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62103-W An invalid parameter was specified in the property configuration file specified in the -f parameter. parameter = $2" # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62104')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62104-E A duplicate parameter value is specified. parameter = $2" # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62104-E A parameter was specified multiple times. parameter = $2" # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62105')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62105-E Parameter is duplicated and specified. $2"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62105-E A directory is not specified in $2 parameter." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62105-E A directory was not specified for the $2 parameter." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62106')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62106-E A directory specified in $2 parameter is invalid." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62106-E An invalid directory was specified for the $2 parameter." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62107')                                                                                                                        # GLMAGTINST06200136 START
      PRINT_MESSAGES_TMP_LEVEL="WARN"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62107-W The definition of the property settings file includes a duplicate parameter.parameter = $2" # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62107-W The definition of the property configuration file includes a duplicate parameter. parameter = $2" # GLMAGTINST06200168 # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62107-W A parameter was specified multiple times in the property configuration file specified in the -f parameter. parameter = $2"  # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;                                                                                                                               # GLMAGTINST06200136 END
   'KAIF62200')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62200-E Cannot install since this version of OS is not supported."  
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62200-E This version of the OS is not supported. Please install HGLM Agent on a supported OS." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62200-E This version of the OS is not supported." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62201')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62201-E HGLM Agent is supporting  only the SPARC version platform." 
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62201-E HGLM Agent supports only SPARC platform systems. Please install HGLM Agent on a supported architecture." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62201-E HGLM Agent only supports SPARC platforms." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62202')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62202-E HGLM Agent cannot be installed in this zone. Please install it in global zone."    
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62202-E HGLM Agent cannot be installed in this zone. Install it in the global zone." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62202-E HGLM Agent cannot be installed in a non-global zone." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;   
   'KAIF62203')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62203-E There is no sufficient free space in the disk."    
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62203-E No usable JDK or JRE exists." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62203-E JDK and JRE are both prerequisite programs, but at least one has not been installed." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62204')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62204-E There is no rights to execute the HGLM Agent installation."    
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62204-E The disk does not have sufficient free space." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62204-E HGLM Agent cannot be installed because there is not enough space." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62205')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62205-E Regarding the HGLM Agent ($2) installation, cannot update the installation of this HGLM Agent ($3)."    
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62205-E There is no system management permission." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62205-E HGLM Agent cannot be installed because the current user does not have the appropriate admin permissions." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62206')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62206-E HGLM Agent version $2 cannot be applied to the installed version $3. Uninstall the already installed version of HGLM Agent." # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62206-E The currently installed version of HGLM Agent, $2, cannot be updated by version $3." # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;; 
   'KAIF62207')
      PRINT_MESSAGES_TMP_LEVEL="WARN"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62207-W An error occurred during HGLM Agent component installation.Error Code=$2,rc=$3" # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62207-W An error occurred during HGLM Agent component installation. Error Code = $2, rc = $3" # GLMAGTINST06200168 # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62207-W An error occurred while attempting an installation of an HGLM Agent component. (error code = $2, rc = $3)" # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;; 
   'KAIF62208')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62208-E An attempt to install an HGLM Agent component failed. Error Code=$2,rc=$3"       # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62208-E An attempt to install an HGLM Agent component failed. Error Code = $2, rc = $3"       # GLMAGTINST06200168 # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62208-E An attempt to install an HGLM Agent component failed. (error code = $2, rc = $3)" # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62209')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62209-E An error occurred by a UNIX command. command=$2,rc=$3"  # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62209-E An error occurred by a UNIX command. command = $2, rc = $3"  # GLMAGTINST06200168 # GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62209-E A UNIX command error occurred. (command = $2, rc = $3)"  # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
   'KAIF62210')
      PRINT_MESSAGES_TMP_LEVEL="ERROR"
#      PRINT_MESSAGES_TMP_MESSEGE="KAIF62210-E An attempt to install an HGLM Agent component failed because an HGLM Agent component was operating. Error Code=$2,rc=$3" # GLMAGTINST06200168
#     PRINT_MESSAGES_TMP_MESSEGE="KAIF62210-E An attempt to install an HGLM Agent component failed because an HGLM Agent component was operating. Error Code = $2, rc = $3" # GLMAGTINST06200168# GLMAGTINST06201003
      PRINT_MESSAGES_TMP_MESSEGE="KAIF62210-E An attempt to install an HGLM Agent component failed because the component is currently in use. (error code = $2, rc = $3)" # GLMAGTINST06201003
      ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
      ;;
#    'KAIF62300')
#       PRINT_MESSAGES_TMP_LEVEL="ERROR"
#       PRINT_MESSAGES_TMP_MESSEGE="KAIF62300-E JDK or JRE that is a pre-requisite is not  installed in the system."    
#       ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
#       ;;
#    'KAIF62301')
#       PRINT_MESSAGES_TMP_LEVEL="WARN"
#       PRINT_MESSAGES_TMP_MESSEGE="KAIF62301-W There was an error in the installation of HGLM Agent component. Error Code = $2, rc= $3"    
#       ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
#       ;;
#    'KAIF62302')
#       PRINT_MESSAGES_TMP_LEVEL="ERROR"
#       PRINT_MESSAGES_TMP_MESSEGE="KAIF62302-E Failed in the installation of HGLM Agent component. Error Code = $2, rc= $3"    
#       ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
#       ;;
#    'KAIF62400')
#       PRINT_MESSAGES_TMP_LEVEL="ERROR"
#       PRINT_MESSAGES_TMP_MESSEGE="KAIF62400-E UNIX command error has occurred. Command name = $2, rc = $3"    # GLMAGTINST06200080
#       ${ECHO} "${PRINT_MESSAGES_TMP_MESSEGE}"
#       ;;                                                                                                       # GLMAGTINST06200107 END                            
    'define')
            ;;
    esac

    log_message "${PRINT_MESSAGES_TMP_LEVEL}" "${PRINT_MESSAGES_TMP_MESSEGE}"
    
    return 0
}

####################################################################################
#check for parameter repeatation.
####################################################################################
check_parameter_repeat()
{                                                             # GLMAGTINST06200060 START
    VALUE="$1"
    if [ "$VALUE" = "${FLG_ON}" ]; then
       # print_messages "KAIF62105" "$2"                                              # GLMAGTINST06200107 START
        print_messages "KAIF62104" "$2" 
       # print_messages "KAIF62004"
        print_messages "KAIF62011" "Parameter Check"
        print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
        exit $PARAMETER_ERROR_VALUE
    fi
    return 0
}

####################################################################################
#check user specified directory
####################################################################################
check_user_specified_dir()
{
  # pattern_check "$2"                                                             # GLMAGTINST06200107
   pattern_check "$1" "$2"                                                         # GLMAGTINST06200107
   if [ ! -d  "$2" ]; then
      ${MKDIR} "$2" > /dev/null 2>&1
      RTN_CD=$?                                                                   # GLMAGTINST06200083 START
      if [ $RTN_CD -ne 0 ]; then                                                  
      #     print_messages "KAIF62400" "${MKDIR}" $RTN_CD                          # GLMAGTINST06200083 END # GLMAGTINST06200107 START
           print_messages "KAIF62209" "${MKDIR}" $RTN_CD
      #     print_messages "KAIF62004"
           print_messages "KAIF62011" "Parameter Check"                            # GLMAGTINST06200169 
           print_messages "KAIF62003"                                                                       # GLMAGTINST06200107 END
           exit $UNIX_CMD_ERROR
      
      else
          if [ "$1" = "-installdir" ]; then
             HGLMAINSTDIR="$2"
             ${REMOVE} "$2" > /dev/null 2>&1        # GLMAGTINST06200088
          elif [ "$1" = "-logdir" ]; then
             HGLMALOGDIR="$2"
             ${REMOVE} "$2" > /dev/null 2>&1        # GLMAGTINST06200088
          else 
             if [ "$1" = "-hbsadir" ]; then
                 HBSAINSTDIR="$2"                        
                 ${REMOVE} "$2" > /dev/null 2>&1        # GLMAGTINST06200088
             fi
          fi
       fi
    else    
       if [ "$1" = "-installdir" ]; then
          HGLMAINSTDIR="$2"                
       elif [ "$1" = "-logdir" ]; then
          HGLMALOGDIR="$2"                         
       else 
          if [ "$1" = "-hbsadir" ]; then
             HBSAINSTDIR="$2"
          fi
       fi    
    fi
    return 0
}

####################################################################################
#Check of property file
####################################################################################
check_user_property_file() 
{

    if [ "$1" = "" ]; then
    print_messages "KAIF62101" 
#        print_messages "KAIF62004"
        print_messages "KAIF62011" "Parameter Check"                              # GLMAGTINST06200107
        print_messages "KAIF62003"                                                # GLMAGTINST06200107 
        exit $PARAMETER_ERROR_VALUE
    elif [ ! -f "$1" ]; then
#        print_messages "KAIF62102" "$2"                                          # GLMAGTINST06200129
         print_messages "KAIF62102"                                               # GLMAGTINST06200129
#        print_messages "KAIF62004"
        print_messages "KAIF62011" "Parameter Check"                             # GLMAGTINST06200107
        print_messages "KAIF62003"                                               # GLMAGTINST06200107 
        exit $PARAMETER_ERROR_VALUE            
    else
        PROPERTY_CONFIG_FILE="$1"
    fi 
}

####################################################################################
#Check of property file
####################################################################################
#check_dir_repeat()                                                                # GLMAGTINST06200154 START
#{
#INST_DIR="$1"
#LOG_DIR="$2"
#if [ "$INST_DIR" = "$LOG_DIR" ]; then
#    parameter_error "$LOG_DIR"
#fi
#return 0
#}                                                                                 # GLMAGTINST06200154  END

####################################################################################
# To display parameter error
####################################################################################
parameter_error()
{
    print_messages "KAIF62100" "$1"                                   # GLMAGTINST06200107 START
#    print_messages "KAIF62004"
    print_messages "KAIF62011" "Parameter Check"
    print_messages "KAIF62003"                                        # GLMAGTINST06200107 END
    exit $PARAMETER_ERROR_VALUE
}

####################################################################################
# Check for User specified directories when downgrade option is given
####################################################################################
#check_overwrite_installation_directories(){                                          # GLMAGTINST06200166 START
#  if  [ "$PARAM_DOWNGRADE_FLG" = "${FLG_ON}" ]; then
#    if [ "${PARAM_INSTALLDIR_FLG}" = "${FLG_ON}" ]; then
#        HGLMAINSTDIR=""
#    fi
#    if [ "${PARAM_LOGDIR_FLG}" = "${FLG_ON}" ]; then
#        HGLMALOGDIR=""
#    fi
#    if [ "${PARAM_HBSADIR_FLG}" = "${FLG_ON}" ]; then
#        HBSAINSTDIR=""
#    fi
# fi
#    return 0
#}                                                                                    # GLMAGTINST06200166 END

####################################################################################
## Pattern check
####################################################################################
pattern_check(){
PARAM_DIR="$1"                                                                       # GLMAGTINST06200107 START
#FIELD1=`${ECHO} $1 | cut -c1 `
#LENGTH=`${ECHO} $1 | wc -m`
if [ "$2" = "/" ]; then
      print_messages "KAIF62106" "$PARAM_DIR"
      print_messages "KAIF62011" "Parameter Check"
      print_messages "KAIF62003"
      exit $PARAMETER_ERROR_VALUE
fi
FIELD1=`${ECHO} $2 | cut -c1 `
LENGTH=`${ECHO} $2 | wc -m`                                                          # GLMAGTINST06200107 END
ABS_LENGTH=`expr $LENGTH - 1`

#INVALID="`${ECHO} $1 | grep '[^a-zA-Z0-9/_]'`" > /dev/null 2>&1
INVALID="`${ECHO} $2 | grep '[^a-zA-Z0-9/_]'`" > /dev/null 2>&1
   if [ -n "$INVALID" ]; then
#     parameter_error "$INVALID"                                                    # GLMAGTINST06200107 START
      print_messages "KAIF62106" "$PARAM_DIR"
      print_messages "KAIF62011" "Parameter Check"
      print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
      exit $PARAMETER_ERROR_VALUE
   fi
   if [ $ABS_LENGTH -gt 64 ]; then
#     parameter_error "$1"                                                          # GLMAGTINST06200107 START
      print_messages "KAIF62106" "$PARAM_DIR"
      print_messages "KAIF62011" "Parameter Check"
      print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
      exit $PARAMETER_ERROR_VALUE
   fi
   #if [ -h "$1" ]; then                                                            # GLMAGTINST06200107 START
    if [ -h "$2" ]; then
#     parameter_error "$1"
      print_messages "KAIF62106" "$PARAM_DIR"
      print_messages "KAIF62011" "Parameter Check"
      print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
      exit $PARAMETER_ERROR_VALUE
   fi
   if [ $FIELD1 != "/" -a $FIELD1 != "_"  ]; then
#     parameter_error "$1"                                                          # GLMAGTINST06200107 START
      print_messages "KAIF62106" "$PARAM_DIR"
      print_messages "KAIF62011" "Parameter Check"
      print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
      exit $PARAMETER_ERROR_VALUE 
   fi
   return 0
}

####################################################################################
# HDVMAgent option check
####################################################################################

check_hdvmagent_option(){

#   if [ "$PARAM_S_FLG" = "${FLG_ON}" -a "$INTEGRATED_AGENT_INSTALLATION_FLG" = "${FLG_ON}" ]; then   ## GLMAGTINST06200166 START
   if [ "$INTEGRATED_AGENT_INSTALLATION_FLG" = "${FLG_ON}" ]; then
#      PARAM_F_FLG=${FLG_OFF}
#      PROPERTY_CONFIG_FILE=""
#      SILENT_VAR="-s"    
#      DOWNGRADE_OPTION=""
#      HGLMAINSTDIR=""
#      HGLMALOGDIR=""
      HBSAINSTDIR=""
#      NOT_CHECK_FLG=${FLG_OFF}   
#   else
#      INTEGRATED_AGENT_INSTALLATION_FLG=${FLG_OFF}                                                   ## GLMAGTINST06200166 END
   fi
   return 0
}


####################################################################################
## Parameter Check
## $1-$9 : Arguments 
####################################################################################
param_check()
{
print_messages "KAIF62006" "Parameter Check"
PARAMLEN=`${ECHO} $* | wc -w`
while [ "${COUNTER}" -le "${PARAMLEN}" ];
do 
case $1 in
-f)
    check_parameter_repeat "$PARAM_F_FLG" "$1"
    PARAM_F_FLG=${FLG_ON}
    shift
    COUNTER=`expr $COUNTER + 1`            
    check_user_property_file "$1"    
    shift 
    ;;
-s)
    check_parameter_repeat "$PARAM_S_FLG" "$1"
    PARAM_S_FLG=${FLG_ON}
    SILENT_VAR="$1"    
    shift    
    ;;
-hdvmagent)
    check_parameter_repeat "$INTEGRATED_AGENT_INSTALLATION_FLG" "$1"
    INTEGRATED_AGENT_INSTALLATION_FLG=${FLG_ON}
    shift
    ;;
-downgrade)
    check_parameter_repeat "$PARAM_DOWNGRADE_FLG" "$1"
    PARAM_DOWNGRADE_FLG=${FLG_ON}
    DOWNGRADE_OPTION="$1"
    shift
    ;;
-installdir)
    check_parameter_repeat "$PARAM_INSTALLDIR_FLG" "$1"
    PARAM_INSTALLDIR_FLG=${FLG_ON}
    shift
    COUNTER=`expr $COUNTER + 1`  
    if [ "$1" = "" ]; then
        # parameter_error "-installdir"                                              # GLMAGTINST06200107 START
       print_messages "KAIF62105" "-installdir"
       print_messages "KAIF62011" "Parameter Check"
       print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
       exit $PARAMETER_ERROR_VALUE
    fi
    check_user_specified_dir "-installdir" "$1"
    shift     
    ;;
-logdir)
    check_parameter_repeat "$PARAM_LOGDIR_FLG" "$1"
    PARAM_LOGDIR_FLG=${FLG_ON}
    shift
    COUNTER=`expr $COUNTER + 1`          
    if [ "$1" = "" ]; then
    #   parameter_error "-logdir"                                                    # GLMAGTINST06200107 START
       print_messages "KAIF62105" "-logdir"
       print_messages "KAIF62011" "Parameter Check"
       print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
       exit $PARAMETER_ERROR_VALUE
    fi
    # check_dir_repeat "$HGLMAINSTDIR" "$1"                                          # GLMAGTINST06200154
    check_user_specified_dir "-logdir" "$1"
    shift 
    ;;
-hbsadir)
    check_parameter_repeat "$PARAM_HBSADIR_FLG" "$1"
    PARAM_HBSADIR_FLG=${FLG_ON}
    shift
    COUNTER=`expr $COUNTER + 1`
    if [ "$1" = "" ]; then
    #   parameter_error "-hbsadir"                                                  # GLMAGTINST06200107 START
       print_messages "KAIF62105" "-hbsadir"
       print_messages "KAIF62011" "Parameter Check"
       print_messages "KAIF62003"                                                   # GLMAGTINST06200107 END
       exit $PARAMETER_ERROR_VALUE
    fi
    check_user_specified_dir "-hbsadir" "$1"
    shift 
    ;;
-notcheck)
    check_parameter_repeat "$NOT_CHECK_FLG" "$1"
    NOT_CHECK_FLG=${FLG_ON}
    shift
    ;;
*)
    parameter_error "$1"
    
;;
esac
COUNTER=`expr $COUNTER + 1`            
done 
check_hdvmagent_option                                                               # GLMAGTINST06200166
print_messages "KAIF62007" "Parameter Check"
return 0
}                                                                                  # GLMAGTINST06200060 END

################################################################################
## capacity_check
## $-: No argument
################################################################################
capacity_check()
{
   print_messages "KAIF62006" "Capacity Check"
   hbsa_install_check
   
   USER_HGLMA_PATH=`${ECHO} $HGLMAINSTDIR | cut -f2 -d/ ` 
   USER_HBSA_PATH=`${ECHO} $HBSAINSTDIR | cut -f2 -d/ `  
   EXIST_HBSA_PATH=`${ECHO} $HBSA_LOC | cut -f2 -d/`  

   if [ ! -z "$USER_HGLMA_PATH" -a ! -d /"$USER_HGLMA_PATH" ]; then                # GLMAGTINST06200104 START
     USER_HGLMA_PATH=/
   fi
   
   if [ ! -z "$USER_HBSA_PATH" -a ! -d /"$USER_HBSA_PATH" ]; then
      USER_HBSA_PATH=/
   fi                                                                              # GLMAGTINST06200104 END
       
   # When user defined locations are not specified,capacity check is done for default paths.
        
   if [ -z "${HGLMAINSTDIR}" -a -z "${HBSAINSTDIR}" ]; then
        if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then
           if [ /"$EXIST_HBSA_PATH" = $DEFAULT_INST_PATH ]; then                                       # GLMAGTINST06200161 START 
           check_size /$EXIST_HBSA_PATH `expr $HGLM_AGENTLET_SIZE + $HGLMINST_SIZE `
           else                                                                                        # GLMAGTINST06200161 END 
           check_size /$EXIST_HBSA_PATH $HGLM_AGENTLET_SIZE
           check_size /opt $HGLMINST_SIZE
           fi                                                                                          # GLMAGTINST06200161 
           check_size /var $REQ_VAR_SIZE_HBSA_EXIST
        else
           check_size /opt `expr $HGLM_AGENTLET_SIZE + $HBSAINST_SIZE + $HGLMINST_SIZE`
           check_size /var $REQ_VAR_SIZE_HBSA_NOT_EXIST
        fi 
           print_messages "KAIF62007" "Capacity Check"                                               # GLMAGTINST06200121
           return 0        
   fi

   # When user defined locations are specified and hbsa already exists in the machine.

    if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then                            
       if [ ! -z "${HGLMAINSTDIR}" ]; then           
          if [ /"${EXIST_HBSA_PATH}" = /"${USER_HGLMA_PATH}" ]; then
                 check_size /$USER_HGLMA_PATH `expr $HGLM_AGENTLET_SIZE + $HGLMINST_SIZE`
                 check_size /var $REQ_VAR_SIZE_HBSA_EXIST
                 print_messages "KAIF62007" "Capacity Check"                                         # GLMAGTINST06200121
                 return 0
          else
                 check_size /$EXIST_HBSA_PATH $HGLM_AGENTLET_SIZE
                 check_size /$USER_HGLMA_PATH $HGLMINST_SIZE
                 check_size /var $REQ_VAR_SIZE_HBSA_EXIST
                 print_messages "KAIF62007" "Capacity Check"                                         # GLMAGTINST06200121
                 return 0
          fi              
       else
                 if [ /"$EXIST_HBSA_PATH" = $DEFAULT_INST_PATH ]; then                               # GLMAGTINST06200161 START
                 check_size /$EXIST_HBSA_PATH `expr $HGLM_AGENTLET_SIZE + $HGLMINST_SIZE `
                 else                                                                                # GLMAGTINST06200161 END
                 check_size /$EXIST_HBSA_PATH $HGLM_AGENTLET_SIZE
                 check_size /opt $HGLMINST_SIZE
                 fi                                                                                  # GLMAGTINST06200161 
                 check_size /var $REQ_VAR_SIZE_HBSA_EXIST
                 print_messages "KAIF62007" "Capacity Check"                                         # GLMAGTINST06200121
                 return 0
       fi
    fi
          
    if [ "$HBSA_EXIST" -eq "$FLG_OFF" ]; then    
            # When hbsa doesnt exist and -installdir and -hbsadir location is specified.
        
       if [ ! -z "${HBSAINSTDIR}" -a ! -z "${HGLMAINSTDIR}" ]; then                                               
          if [ /"${USER_HBSA_PATH}" = /"${USER_HGLMA_PATH}" ]; then                      
 #           check_size /$USER_HGLMA_PATH `expr $HGLM_AGENTLET_SIZE + $HGLMINST_SIZE `                   # GLMAGTINST06200104
             check_size /$USER_HGLMA_PATH `expr $HGLM_AGENTLET_SIZE + $HGLMINST_SIZE + $HBSAINST_SIZE `  # GLMAGTINST06200104
             check_size /var $REQ_VAR_SIZE_HBSA_NOT_EXIST
             print_messages "KAIF62007" "Capacity Check"                                              # GLMAGTINST06200121
             return 0
          else
             check_size /$USER_HBSA_PATH ` expr $HBSAINST_SIZE + $HGLM_AGENTLET_SIZE `
             check_size /$USER_HGLMA_PATH $HGLMINST_SIZE
             check_size /var $REQ_VAR_SIZE_HBSA_NOT_EXIST
             print_messages "KAIF62007" "Capacity Check"                                              # GLMAGTINST06200121
             return 0
          fi                          
       fi                  
         
    # When hbsa doesnt exist and -installdir location is specified.
    
      if [ -z "${HBSAINSTDIR}" ]; then                    
          if [ ! -z "${HGLMAINSTDIR}" ]; then                          
              if [ /"$USER_HGLMA_PATH" = $DEFAULT_INST_PATH ]; then                                      # GLMAGTINST06200161 START
              check_size /opt ` expr $HBSAINST_SIZE + $HGLM_AGENTLET_SIZE + $HGLMINST_SIZE `
              else                                                                                       # GLMAGTINST06200161 END
              check_size /opt ` expr $HBSAINST_SIZE + $HGLM_AGENTLET_SIZE `
              check_size /$USER_HGLMA_PATH $HGLMINST_SIZE
              fi                                                                                         # GLMAGTINST06200161
              check_size /var $REQ_VAR_SIZE_HBSA_NOT_EXIST
              print_messages "KAIF62007" "Capacity Check"                                              # GLMAGTINST06200121
              return 0
          fi                   
      fi                
    # When hbsa doesnt exist and -hbsadir location is specified. 
    
      if [ ! -z "${HBSAINSTDIR}" ]; then                         
          if [ -z "${HGLMAINSTDIR}" ]; then                               
             if [ /"$USER_HBSA_PATH" = $DEFAULT_INST_PATH ]; then                                        # GLMAGTINST06200161 START
             check_size /opt ` expr $HBSAINST_SIZE + $HGLM_AGENTLET_SIZE + $HGLMINST_SIZE `
             else                                                                                        # GLMAGTINST06200161 END
             check_size /$USER_HBSA_PATH `expr $HBSAINST_SIZE + $HGLM_AGENTLET_SIZE`
   #          check_size /$USER_HGLMA_PATH $HGLMINST_SIZE                                      # GLMAGTINST06200104
             check_size /opt $HGLMINST_SIZE                                                    # GLMAGTINST06200104
             fi                                                                                          # GLMAGTINST06200161
             check_size /var $REQ_VAR_SIZE_HBSA_NOT_EXIST
             print_messages "KAIF62007" "Capacity Check"                                               # GLMAGTINST06200121
             return 0
          fi                        
      fi
    fi         
    print_messages "KAIF62007" "Capacity Check"
    return 0
}

################################################################################
## check size
## $1: Path
## $2: Required Space
################################################################################
check_size()
{
    #print_messages "KAIF62006" "Check Size"                               # GLMAGTINST06200104
    DF_CHECK=`df -b $1 | egrep ' [0-9]+$'`
    DISK_EMPTY=`${ECHO} $DF_CHECK | cut -f2 -d" "`
#    if [ $DISK_EMPTY -lt $2 ]; then                                                  # GLMAGTINST06200104
     if [ $DISK_EMPTY -le $2 ]; then                                                  # GLMAGTINST06200104
    #    print_messages "KAIF62203"                                                   # GLMAGTINST06200107 START
        print_messages "KAIF62204"
    #    print_messages "KAIF62004"
        print_messages "KAIF62011" "Capacity Check"
        print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
        exit $EXEC_EVMT_ERROR_VALUE
    fi            
    #print_messages "KAIF62007" "Check Size"                                # GLMAGTINST06200104 
    return 0
} 

################################################################################
## authority_check
## $-: No argument
################################################################################
authority_check()
{
       print_messages "KAIF62006" "Authority Check"    
       CHK_USER=`/usr/ucb/whoami | /usr/bin/grep root`
       if [ -z "$CHK_USER" ]; then
     #         print_messages "KAIF62204"                                                   # GLMAGTINST06200107 START
              print_messages "KAIF62205"
     #	      print_messages "KAIF62004"
              print_messages "KAIF62011" "Authority Check"
              print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
              exit $EXEC_EVMT_ERROR_VALUE
       fi  
       print_messages "KAIF62007" "Authority Check"       
       return 0      
}

################################################################################
## OS Version and Zone check
## $-: No argument
################################################################################
os_version_check()
{
    if [ "$NOT_CHECK_FLG" = "$FLG_OFF" ]; then                                        # GLMAGTINST06200152
        print_messages "KAIF62006" "OS Version Check"                 
     #   if [ "$NOT_CHECK_FLG" = "$FLG_OFF" ]; then                                      # GLMAGTINST06200152
           if [ $SOLVER != "5.9" -a $SOLVER != "5.10" ]; then  
              print_messages  "KAIF62200"                                               # GLMAGTINST06200107 START
	  #    print_messages "KAIF62004"
              print_messages "KAIF62011" "OS Version Check"
              print_messages "KAIF62003"                                                # GLMAGTINST06200107 END
              exit $OS_VERSION_ERROR
           fi  
   #        if [ $SOLVER = "5.10"  ]; then                                               # GLMAGTINST06200157 START
   #           ZONENAME=`/usr/bin/zonename`
   #           if [ "${ZONENAME}" != "global" ]; then
   #               print_messages "KAIF62202"                                             # GLMAGTINST06200107 START
   #     #          print_messages "KAIF62004"
   #               print_messages "KAIF62011" "OS Version Check"
   #               print_messages "KAIF62003"                                             # GLMAGTINST06200107 END
   #               exit $OS_VERSION_ERROR
   #           fi
   #        fi                                                                            # GLMAGTINST06200157 END
        # fi                                                                                # GLMAGTINST06200152
        if [ $PLAT != "sparc" ]; then
           print_messages "KAIF62201"                                                    # GLMAGTINST06200107 START   
        #   print_messages "KAIF62004"
           print_messages "KAIF62011" "OS Version Check"
           print_messages "KAIF62003"                                                    # GLMAGTINST06200107 END
           exit $OS_VERSION_ERROR
        fi        
        print_messages "KAIF62007" "OS Version Check"
    return 0
    fi                                                                                 # GLMAGTINST06200152
}
################################################################################     # GLMAGTINST06200157 START
## Zone check
## $-: No argument
################################################################################    
zone_check()
{
     if [ $SOLVER = "5.10"  ]; then
     print_messages "KAIF62006" "Zone Check"
        ZONENAME=`/usr/bin/zonename`
        if [ "${ZONENAME}" != "global" ]; then
                  print_messages "KAIF62202"
                  print_messages "KAIF62011" "Zone Check"
                  print_messages "KAIF62003"
                  exit $OS_VERSION_ERROR
        fi
     print_messages "KAIF62007" "Zone Check"
     fi
     return 0
}                                                                                    # GLMAGTINST06200157 END  
################################################################################
## Creates a log file
## $-: No argument
################################################################################
create_log_file()
{
     
   if [ ! -f "${INSTALL_LOGFILE}" ]; then
         ${TOUCH} "${INSTALL_LOGFILE}" > /dev/null 2>&1
         RTN_CD=$?                                                                             # GLMAGTINST06200083 START
         if [ $RTN_CD -ne 0 ]; then                                                            
     #        print_messages "KAIF62400" "/usr/bin/touch" $RTN_CD                              # GLMAGTINST06200107 START
             print_messages "KAIF62209" "/usr/bin/touch" $RTN_CD
     #        print_messages "KAIF62004"
             print_messages "KAIF62003"                                                        # GLMAGTINST06200107 END
             exit $UNIX_CMD_ERROR  
         fi
         chmod 644 ${INSTALL_LOGFILE}                                                          # GLMAGTINST06200083 END
   else
         LOG_FILE_SIZE=` du -sk "${INSTALL_LOGFILE}" |  awk '{ print $1;}' `
         if [ "${LOG_FILE_SIZE}" -gt 1024 ]; then
          $MOVE "${INSTALL_LOGFILE}" "${INSTALL_LOGFILE}.bak" > /dev/null  2>&1
          $TOUCH "${INSTALL_LOGFILE}" > /dev/null 2>&1
          RTN_CD=$?                                                                            # GLMAGTINST06200083 START
             if [ $RTN_CD -ne 0 ]; then                                                        
      #           print_messages "KAIF62400" "$TOUCH" $RTN_CD                                   # GLMAGTINST06200083 END  # GLMAGTINST06200107 START
                 print_messages "KAIF62209" "/usr/bin/touch" $RTN_CD
      #		 print_messages "KAIF62004"
                 print_messages "KAIF62003"                                                                               # GLMAGTINST06200107 END
                 exit $UNIX_CMD_ERROR  
             fi
          chmod 644 ${INSTALL_LOGFILE}                                                         # GLMAGTINST06200133
         fi
   fi 
 
   return 0
}


################################################################################
## print_usage
## $-: No argument
################################################################################
print_usage()
{
  #  ${ECHO} "Usage :install.sh {-f property configuration file name |-s|-h}"                     # GLMAGTINST06200106
  #  ${ECHO} "usage: install.sh {-f property configuration file name|-h|-s}"                       # GLMAGTINST06200106 # GLMAGTINST06200142
  #   ${ECHO} "usage: install.sh {-f property_configuration_file_name|-h|-s}"                       # GLMAGTINST06200142 # GLMAGTINST06200150 # GLMAGTINST06201002
  #   ${ECHO} "Usage: install.sh {-f property_configuration_file_name|-h|-s}"                       # GLMAGTINST06200150 # GLMAGTINST06201002 # GLMAGTINST06200164
     ${ECHO} "Usage: install.sh [-f property_configuration_file_name] [-s] [-h]"                   # GLMAGTINST06200164
    exit 0
}    

################################################################################
## Creation of temporary directory.
## $-: No argument
################################################################################
create_temp_directory()
{
      print_messages "KAIF62006" "Create Temporary Directory"
      
      ${MKDIR} ${TEMP_DIR}
      RTN_CD=$?                                                                           # GLMAGTINST06200083 START
      if [ $RTN_CD -ne 0 ]; then                                                          
      #     print_messages "KAIF62400" "${MKDIR}" $RTN_CD                                  # GLMAGTINST06200083 END
       print_messages "KAIF62209" "${MKDIR}" $RTN_CD                                       # GLMAGTINST06200107 START
      # print_messages "KAIF62004"
       print_messages "KAIF62011" "Create Temporary Directory"
       print_messages "KAIF62003"                                                          # GLMAGTINST06200107 END
           exit $UNIX_CMD_ERROR
      fi      
      chown root:root $TEMP_DIR                                                            # GLMAGTINST06200118  
      chmod 775 $TEMP_DIR
      print_messages "KAIF62007" "Create Temporary Directory"      
      return 0
}

################################################################################
## Temporary directory existence check
## $-: No argument
################################################################################
temp_directory_check()
{
    print_messages "KAIF62006" "Temporary Directory Check"
    if [ -d "${TEMP_DIR}" ]; then
        delete_temp_directory
        create_temp_directory
    else
        create_temp_directory
    fi    
    print_messages "KAIF62007" "Temporary Directory Check"    
    return 0
}

################################################################################
## Deletion of temporary directory.
## $-: No argument
################################################################################
delete_temp_directory()
{

    print_messages "KAIF62006" "Delete Temporary Directory"
    cd /                                                                                        # GLMAGTINST06200087
    if [ -d "${TEMP_DIR}" ]; then
        ${REMOVE} ${TEMP_DIR} > /dev/null 2>&1
        RTN_CD=$?                                                                               # GLMAGTINST06200088 
        if [ $RTN_CD -ne 0 ]; then 
        #   print_messages "KAIF62400" "$REMOVE" $RTN_CD                                         # GLMAGTINST06200072 # GLMAGTINST06200107 START
           print_messages "KAIF62209" "$REMOVE" $RTN_CD                                          
        #   print_messages "KAIF62004"                                                           # GLMAGTINST06200083
           print_messages "KAIF62011" "Delete Temporary Directory"
           print_messages "KAIF62003"                                                            # GLMAGTINST06200107 END
           exit $UNIX_CMD_ERROR
        fi                                                                                      # GLMAGTINST06200088
    fi
    print_messages "KAIF62007" "Delete Temporary Directory"    
    return 0
}

##########################################################################
## User Input
## $1: Installation Type
###########################################################################
user_input()
{
   print_messages "KAIF62006" "User Input"     
   INPUT=$@                                                                                      # GLMAGTINST06200080
   
   #${ECHO} "$INPUT is started. Enter (Y)es to continue and enter (N)o to exit the installation." # GLMAGTINST06200080    # GLMAGTINST06200107
   #${ECHO} "The $INPUT begins. Input (Y)es to continue,or input (N)o to end the $INPUT." # GLMAGTINST06200080 # GLMAGTINST06200167
#  ${ECHO} "The $INPUT begins. Input (Y)es to continue,or input (N)o to end the $INPUT:"  # GLMAGTINST06200167 # GLMAGTINST06201003
   ${ECHO} "The $INPUT is ready to start. To continue, press (Y)es. To quit the installation, press (N)o:"  # GLMAGTINST06201003
   read RESPONSE
   print_messages "KAIF62005" "$RESPONSE"                                                         # GLMAGTINST06200144 # GLMAGTINST06201001
   case $RESPONSE in
      y|Y) continue
      ;;
      n|N)# delete_temp_directory                                        # GLMAGTINST06200056   # GLMAGTINST06200117
          # print_messages "KAIF62002"                                   # GLMAGTINST06200107  
          # print_messages "KAIF62002" "$LATEST_VERSION"                  # GLMAGTINST06200107  # GLMAGTINST06200144 # GLMAGTINST06201001
          print_messages "KAIF62004"                                                            # GLMAGTINST06200144 # GLMAGTINST06201001
           exit $NORM_TERM
      ;;
      *) user_input $INPUT
      ;;
   esac
   
   print_messages "KAIF62007" "User Input" 
   return 0
}

################################################################################
## installs hglmagt
## $- : No arguments 
################################################################################
install_hglmagt()
{
    print_messages "KAIF62006" "Install HGLM Agent"                                              # GLMAGTINST06200103 
    if [ $SOLVER = "5.10" ]; then                                                                # GLMAGTINST06200134 START
       /usr/sbin/pkgadd -G -n -r $ASK_FILE_LOC -d $CMD_DIR/HGLMAgent all > /dev/null 2>&1
       RTN_CD=$?
       if [ $RTN_CD -ne 0 ]; then
          print_messages "KAIF62209" "/usr/sbin/pkgadd -G -n" $RTN_CD                  
          print_messages "KAIF62011" "Install HGLM Agent"
          print_messages "KAIF62003"                                                                                # GLMAGTINST06200107 END
          exit $UNIX_CMD_ERROR
       fi
    else                                                                                         # GLMAGTINST06200134 END
   # /usr/sbin/pkgadd -n -r $ASK_FILE_LOC -d $CMD_DIR/HGLMAgent.pkg all > /dev/null 2>&1  # GLMAGTINST06200065  # GLMAGTINST06200137
    /usr/sbin/pkgadd -n -r $ASK_FILE_LOC -d $CMD_DIR/HGLMAgent all > /dev/null 2>&1        # GLMAGTINST06200137
    RTN_CD=$?                                                                       # GLMAGTINST06200083 START
    if [ $RTN_CD -ne 0 ]; then                                                      
    #      print_messages "KAIF62400" "/usr/sbin/pkgadd -n" $RTN_CD                  # GLMAGTINST06200083 END       # GLMAGTINST06200107 START
	  print_messages "KAIF62209" "/usr/sbin/pkgadd -n" $RTN_CD                  
   #       print_messages "KAIF62004"
	  print_messages "KAIF62011" "Install HGLM Agent"
          print_messages "KAIF62003"                                                                                # GLMAGTINST06200107 END
          exit $UNIX_CMD_ERROR  
    fi
    fi                                                                                             # GLMAGTINST06200134
    print_messages "KAIF62007" "Install HGLM Agent"                                              # GLMAGTINST06200103
    return 0

}

###############################################################################
## check for hbsa installation
## $- : No parameters
###############################################################################
hbsa_install_check()
{
     print_messages "KAIF62006" "HBsA Install Check"                                            # GLMAGTINST06200103
     if [ -f $HBSA_PATH ];then
            HBSA_LOC=`grep "^HBSA_DIR=" $HBSA_PATH | cut -d= -f2`
            HBSA_FILE=$HBSA_LOC/bin/hbsasrv
     fi    
     if [ -f "${HBSA_FILE}" ]; then
            HBSA_EXIST=${FLG_ON}
     else
            HBSA_EXIST=${FLG_OFF}
     fi     
     print_messages "KAIF62007" "HBsA Install Check"                                             # GLMAGTINST06200103
     return 0
}

##############################################################################
## preparation for hbsa installation
## $- : No parameters
##############################################################################
prepare_hbsa()
{
    print_messages "KAIF62006" "Prepare HBsA"
    
    if [ -d $TEMP_DIR ]; then
        ${MKDIR} $TEMP_DIR$PREPARE_HBSA_DIR > /dev/null 2>&1
        RTN_CD=$?                                                            # GLMAGTINST06200083 START
        if [ $RTN_CD -ne 0 ]; then                                           
      #     print_messages "KAIF62400" "${MKDIR}" $RTN_CD                     # GLMAGTINST06200083 END # GLMAGTINST06200107 START
           print_messages "KAIF62209" "${MKDIR}" $RTN_CD                     
       delete_temp_directory                                                 # GLMAGTINST06200056
      #     print_messages "KAIF62004"
	   print_messages "KAIF62011" "Prepare HBsA"
           print_messages "KAIF62003"                                                                 # GLMAGTINST06200107 END
           exit $UNIX_CMD_ERROR
        fi
        
        ${COPY} $CMD_DIR/HBsA/HBsA_SPARC.tar $TEMP_DIR$PREPARE_HBSA_DIR  > /dev/null 2>&1  # GLMAGTINST06200065
        RTN_CD=$?                                                            # GLMAGTINST06200083 START
        if [ $RTN_CD -ne 0 ]; then                                           
      #      print_messages "KAIF62400" "${COPY}" $RTN_CD                     # GLMAGTINST06200083 END # GLMAGTINST06200107 START
            print_messages "KAIF62209" "${COPY}" $RTN_CD
        delete_temp_directory                                                # GLMAGTINST06200056
         #   print_messages "KAIF62004"
	    print_messages "KAIF62011" "Prepare HBsA"
            print_messages "KAIF62003"                                                                 # GLMAGTINST06200107 END
            exit $UNIX_CMD_ERROR 
        fi
    fi    
    print_messages "KAIF62007" "Prepare HBsA"    
    return 0
}

##############################################################################
## installing hbsa
## $1: Installation location of HBSA or defualtpath
##############################################################################
install_hbsa()
{
  
  print_messages "KAIF62006" "Install HBsA"
  INSTALL_LOCATION=$1  
  PWD=`/usr/bin/pwd`  

  if [ -d $TEMP_DIR$PREPARE_HBSA_DIR ]; then

     cd $TEMP_DIR$PREPARE_HBSA_DIR > /dev/null 2>&1
     RTN_CD=$?                                                       # GLMAGTINST06200083
     if [ $RTN_CD -ne 0 ]; then                                      # GLMAGTINST06200083
     #   print_messages "KAIF62400" "/usr/bin/cd" $RTN_CD
        print_messages "KAIF62209" "/usr/bin/cd" $RTN_CD             # GLMAGTINST06200107 START
        delete_temp_directory                                        # GLMAGTINST06200056
      #  print_messages "KAIF62004"
        print_messages "KAIF62011" "Install HBsA"
        print_messages "KAIF62003"                                   # GLMAGTINST06200107 END
        exit $UNIX_CMD_ERROR 
     fi
     
     /usr/bin/tar -xpf HBsA_SPARC.tar > /dev/null 2>&1
     RTN_CD=$?                                                       # GLMAGTINST06200083
     if [ $RTN_CD -ne 0 ]; then                                      # GLMAGTINST06200083
     #   print_messages "KAIF62400" "/usr/bin/tar -xpf" $RTN_CD
        print_messages "KAIF62209" "/usr/bin/tar -xpf" $RTN_CD       # GLMAGTINST06200107 START
        delete_temp_directory                                        # GLMAGTINST06200056
     #   print_messages "KAIF62004"
        print_messages "KAIF62011" "Install HBsA"
        print_messages "KAIF62003"                                   # GLMAGTINST06200107 END
        exit $UNIX_CMD_ERROR 
     fi
           
     if [ -z "${INSTALL_LOCATION}" ]; then                           # GLMAGTINST06200094 
        ./Installer/install.sh > /dev/null 2>&1        
        HBSA_RTN=$?
       # if [ "${HBSA_RTN}" -eq 16 -a "$FLG_DOWNGRADEINSTALL" = "${FLG_ON}" ]; then       # GLMAGTINST06200149 START  # GLMAGTINST06200159 START
       #    cd $PWD
       #    print_messages "KAIF62007" "Install HBsA"
       #    return 0
       # fi                                                                                # GLMAGTINST06200149 END   # GLMAGTINST06200159 END
        if [ "${HBSA_RTN}" -eq 3 ]; then                              # GLMAGTINST06200107 START
	           print_messages "KAIF62210" $HBSA_INSTALL_ERROR_CODE $HBSA_RTN
	           delete_temp_directory
	           print_messages "KAIF62011" "Install HBsA"
		   print_messages "KAIF62003"
	           exit $HBSA_CMD_ERROR_VALUE
        fi                                                              # GLMAGTINST06200107 END
        if [ "${HBSA_RTN}" -eq 5 ]; then
        #   print_messages "KAIF62300"                                # GLMAGTINST06200107 START
           print_messages "KAIF62203"
          delete_temp_directory                                       # GLMAGTINST06200056
        #   print_messages "KAIF62004"
           print_messages "KAIF62011" "Install HBsA"
           print_messages "KAIF62003"                                 # GLMAGTINST06200107 END
           exit $HBSA_JAVA_ERROR_VALUE                                # GLMAGTINST06200083
        fi        
        #if [ "${HBSA_RTN}" -ne 0 -a "${HBSA_RTN}" -ne 16 ]; then                              # GLMAGTINST06200107 START
        #if [ "${HBSA_RTN}" -ne 0 -a "${HBSA_RTN}" -ne 3 -a "${HBSA_RTN}" -ne 5 ]; then        # GLMAGTINST06200159
        if [ "${HBSA_RTN}" -ne 0 -a "${HBSA_RTN}" -ne 3 -a "${HBSA_RTN}" -ne 5 -a "${HBSA_RTN}" -ne 16 ]; then     # GLMAGTINST06200159
       #    print_messages "KAIF62302" $HBSA_INSTALL_ERROR_CODE $HBSA_RTN # GLMAGTINST06200083 
           print_messages "KAIF62208" $HBSA_INSTALL_ERROR_CODE $HBSA_RTN           
       delete_temp_directory                                             # GLMAGTINST06200056
       #    print_messages "KAIF62004"
           print_messages "KAIF62011" "Install HBsA"
       #   print_messages "KAIF62003" "LATEST_VERSION"                                         # GLMAGTINST06200107 END # GLMAGTINST06200160
           print_messages "KAIF62003"                                                          # GLMAGTINST06200160
           exit $HBSA_CMD_ERROR_VALUE                                 # GLMAGTINST06200083
        fi
     else
     
        ./Installer/install.sh instpath=$INSTALL_LOCATION > /dev/null 2>&1        
        HBSA_RTN=$?
       # if [ "${HBSA_RTN}" -eq 16 -a "$FLG_DOWNGRADEINSTALL" = "${FLG_ON}" ]; then       # GLMAGTINST06200149 START # GLMAGTINST06200159 START
       #    cd $PWD
       #    print_messages "KAIF62007" "Install HBsA"
       #    return 0
       # fi                                                                                # GLMAGTINST06200149 END # GLMAGTINST06200159 END
        if [ "${HBSA_RTN}" -eq 3 ]; then                              # GLMAGTINST06200107 START
           print_messages "KAIF62210" $HBSA_INSTALL_ERROR_CODE $HBSA_RTN
           delete_temp_directory
           print_messages "KAIF62011" "Install HBsA"
	   print_messages "KAIF62003"
           exit $HBSA_CMD_ERROR_VALUE
        fi                                                              # GLMAGTINST06200107 END
         if [ "${HBSA_RTN}" -eq 5 ]; then
       #    print_messages "KAIF62300"                                 # GLMAGTINST06200107 START 
           print_messages "KAIF62203"                                  
           delete_temp_directory
       #    print_messages "KAIF62004"
           print_messages "KAIF62011" "Install HBsA"
           print_messages "KAIF62003"                                 # GLMAGTINST06200107 END
           exit $HBSA_JAVA_ERROR_VALUE
         fi
            
         #if [ "${HBSA_RTN}" -ne 0 -a "${HBSA_RTN}" -ne 16 ]; then                                      # GLMAGTINST06200107 START
       #  if [ "${HBSA_RTN}" -ne 0 -a "${HBSA_RTN}" -ne 3 -a "${HBSA_RTN}" -ne 5 ]; then                 # GLMAGTINST06200159
         if [ "${HBSA_RTN}" -ne 0 -a "${HBSA_RTN}" -ne 3 -a "${HBSA_RTN}" -ne 5 -a "${HBSA_RTN}" -ne 16 ]; then            # GLMAGTINST06200159
       #    print_messages "KAIF62302" $HBSA_INSTALL_ERROR_CODE $HBSA_RTN          # GLMAGTINST06200083
           print_messages "KAIF62208" $HBSA_INSTALL_ERROR_CODE $HBSA_RTN
           delete_temp_directory
       #    print_messages "KAIF62004"
           print_messages "KAIF62011" "Install HBsA"
           print_messages "KAIF62003"                                                                  # GLMAGTINST06200107 END
	   exit $HBSA_CMD_ERROR_VALUE
         fi     
     fi             
    cd $PWD    
  fi
  
  print_messages "KAIF62007" "Install HBsA"  
  return 0
}

#############################################################################
## creation of evidence file for single installation
## $-: No arguments
#############################################################################
create_evidence_file()
{   
    print_messages "KAIF62006" "Create Evidence File"

    EVIDENCE_DIR=$PATH_HGLMAINSTDIR/HGLMAgent/config
    
    #${TOUCH} $EVIDENCE_DIR/.IndependentInstallation                  # GLMAGTINST06200075     # GLMAGTINST06200108
    ${TOUCH} $EVIDENCE_DIR/.independentinstallation                                            # GLMAGTINST06200108
    RTN_CD=$?                                                        # GLMAGTINST06200083 START
    if [ $RTN_CD -ne 0 ]; then                                       
                   
                
        #    print_messages "KAIF62400" "/usr/bin/touch" $RTN_CD      # GLMAGTINST06200083 END # GLMAGTINST06200107 START
	    print_messages "KAIF62209" "/usr/bin/touch" $RTN_CD
            delete_temp_directory
        #    print_messages "KAIF62004"
            print_messages "KAIF62011" "Create Evidence File"
            print_messages "KAIF62003"                                                         # GLMAGTINST06200107 END
            exit $UNIX_CMD_ERROR
           fi        
    
    print_messages "KAIF62007" "Create Evidence File"
    
    return 0
}

################################################################################
## Version comparision
################################################################################
compare_versions()
{

     print_messages "KAIF62006" "Compare Versions"
     for i in $LATEST_VERSION_VERSION_INFO ; do                                           # GLMAGTINST06200110 START
     if [ "$i" = $INSTALL_VERSION ]; then
         CONFIRM_FLG=${FLG_ON}
     fi
     done

   if [ "$CONFIRM_FLG" = "$FLG_ON" ]; then 
     FIELD1=`${ECHO} $LATEST_VERSION | /usr/bin/cut -d "." -f1`
     FIELD2=`${ECHO} $LATEST_VERSION | /usr/bin/cut -d "." -f2`
     FIELD3=`${ECHO} $LATEST_VERSION | /usr/bin/cut -d "." -f3`
     FIELD4=`${ECHO} $LATEST_VERSION | /usr/bin/cut -d "." -f4`
     FIELD5=`${ECHO} $FIELD4 | /usr/bin/cut -c1-2`
     FIELD6=`${ECHO} $FIELD4 | /usr/bin/cut -c3-4`
   
     INST_FIELD1=`${ECHO} $INSTALL_VERSION | /usr/bin/cut -d "." -f1`
     INST_FIELD2=`${ECHO} $INSTALL_VERSION | /usr/bin/cut -d "." -f2`
     INST_FIELD3=`${ECHO} $INSTALL_VERSION | /usr/bin/cut -d "." -f3`
     INST_FIELD4=`${ECHO} $INSTALL_VERSION | /usr/bin/cut -d "." -f4`
     INST_FIELD5=`${ECHO} $INST_FIELD4 | /usr/bin/cut -c1-2`
     INST_FIELD6=`${ECHO} $INST_FIELD4 | /usr/bin/cut -c3-4`

     # overwrite installation

     #if [ $FIELD1 -eq $INST_FIELD1 -a $FIELD2 -eq $INST_FIELD2 -a $FIELD3 -eq $INST_FIELD3 -a $FIELD4 -eq $INST_FIELD4  ]; then
     if [ $FIELD1 -eq $INST_FIELD1 -a $FIELD2 -eq $INST_FIELD2 -a $FIELD3 -eq $INST_FIELD3 \
        -a $FIELD5 -eq $INST_FIELD5 -a $FIELD6 -eq $INST_FIELD6  ]; then
        FLG_OVERWRITEINSTALL="${FLG_ON}"
   #     return 0                                                                                # GLMAGTINST06200153
     fi

     # upgrade

   #if [ $FIELD1 -gt $INST_FIELD1 ]; then
    if [ $FIELD1 -gt $INST_FIELD1 -a $FIELD5 -eq $INST_FIELD5 ]; then
        FLG_UPGRADEINSTALL="${FLG_ON}"
   #     return 0                                                                                # GLMAGTINST06200153
     else
    #    if [ $FIELD2 -gt $INST_FIELD2 ]; then
        if [ $FIELD2 -gt $INST_FIELD2 -a $FIELD5 -eq $INST_FIELD5 ]; then
           FLG_UPGRADEINSTALL="${FLG_ON}"
    #       return 0                                                                                # GLMAGTINST06200153
        else
          if [ $FIELD2 -eq $INST_FIELD2 ]; then
    #          if [ $FIELD3 -gt $INST_FIELD3 ]; then
               if [ $FIELD3 -gt $INST_FIELD3 -a $FIELD5 -eq $INST_FIELD5 ]; then
                 FLG_UPGRADEINSTALL="${FLG_ON}"
    #             return 0                                                                           # GLMAGTINST06200153
              else
                 if [ $FIELD3 -eq $INST_FIELD3 ]; then
    #                if [ $FIELD4 -gt $INST_FIELD4 ]; then
                    if [ $FIELD6 -gt $INST_FIELD6 -a $FIELD5 -eq $INST_FIELD5 ]; then
                       FLG_UPGRADEINSTALL="${FLG_ON}"
    #                   return 0                                                                      # GLMAGTINST06200153
                    fi
                 fi
              fi
         fi
      fi
   fi
    
  # downgrade
  #  if [ $FIELD1 -lt $INST_FIELD1 ]; then
  if [ $FIELD1 -lt $INST_FIELD1 -a $FIELD5 -eq $INST_FIELD5 ]; then
       FLG_DOWNGRADEINSTALL="${FLG_ON}"
       check_downgrade_option
  #     return 0                                                                                    # GLMAGTINST06200153
  else
  #     if [ $FIELD2 -lt $INST_FIELD2 ]; then
        if [ $FIELD2 -lt $INST_FIELD2 -a $FIELD5 -eq $INST_FIELD5 ]; then
          FLG_DOWNGRADEINSTALL="${FLG_ON}"
          check_downgrade_option
  #        return 0                                                                                 # GLMAGTINST06200153
       else
          if [ $FIELD2 -eq $INST_FIELD2 ]; then
  #           if [ $FIELD3 -lt $INST_FIELD3 ]; then
             if [ $FIELD3 -lt $INST_FIELD3 -a $FIELD5 -eq $INST_FIELD5 ]; then
                FLG_DOWNGRADEINSTALL="${FLG_ON}"
                check_downgrade_option
  #              return 0                                                                           # GLMAGTINST06200153
             else
                if [ $FIELD3 -eq $INST_FIELD3 ]; then
   #                 if [ $FIELD4 -lt $INST_FIELD4 ]; then
                    if [ $FIELD6 -lt $INST_FIELD6 -a $FIELD5 -eq $INST_FIELD5 ]; then
                       FLG_DOWNGRADEINSTALL="${FLG_ON}"
                       check_downgrade_option
   #                    return 0                                                                    # GLMAGTINST06200153
                    fi
                fi
             fi
          fi
      fi
  fi

  else
         print_messages "KAIF62206" "$LATEST_VERSION" "$INSTALL_VERSION"                # GLMAGTINST06200170
         print_messages "KAIF62011" "Compare Versions"                                  # GLMAGTINST06200107
         print_messages "KAIF62003"                                                     # GLMAGTINST06200107 
	 exit $HGLM_AGENT_VERSION_ERROR
  fi                                                                                    # GLMAGTINST06200110  END
#   print_messages "KAIF62007" "Compare versions"                                       # GLMAGTINST06200153
   print_messages "KAIF62007" "Compare Versions"                                        # GLMAGTINST06200153
   return 0

}

###############################################################################
## Downgrade option check
###############################################################################
check_downgrade_option()
{

    print_messages "KAIF62006" "Check Downgrade Option"
    
    if [ -z "${DOWNGRADE_OPTION}" ]; then
      #  print_messages "KAIF62205" "$INSTALL_VERSION" "$LATEST_VERSION"             # GLMAGTINST06200107 START
        print_messages "KAIF62206" "$LATEST_VERSION" "$INSTALL_VERSION" 
      #  print_messages "KAIF62004"
        print_messages "KAIF62011" "Check Downgrade Option"
        print_messages "KAIF62003"                                                   # GLMAGTINST06200107 END
        exit $HGLM_AGENT_VERSION_ERROR
    fi
    
    print_messages "KAIF62007" "Check Downgrade Option"
}

###############################################################################
## package information check
###############################################################################
package_info_check()
{
     print_messages "KAIF62006" "Package Information Check"                                # GLMAGTINST06200103
     
     $PKGINFO $PKGNAME > /dev/null 2>&1 
     if [ $? != 0 ]; then
       FLG_NEWINSTALL=${FLG_ON}
     else
       compare_versions
     fi
     
     print_messages "KAIF62007" "Package Information Check"                                 # GLMAGTINST06200103
     
     return 0
}


################################################################################
## snmp agent registration
################################################################################
register_snmp_agent()
{
    print_messages "KAIF62006" "Registration of HGLM SNMP Agent"                             # GLMAGTINST06200103
 
    #RCSCRIPT=$CMD_DIR/HGLMSNMPDaemonrc                                                     # GLMAGTINST06200108
    RCSCRIPT=/hglmsnmpdaemonrc                                                              # GLMAGTINST06200108
    RCSCRIPT_DEST=/etc/init.d
     
    #${COPY} $CMD_DIR/HGLMSNMPDaemonrc $TEMP_DIR > /dev/null 2>&1                       # GLMAGTINST06200070 # GLMAGTINST06200108 START         # GLMAGTINST06200135 START
#    ${COPY} $RCSCRIPT_DEST$RCSCRIPT $TEMP_DIR                              
    #SNMP_START_SCRIPT_PATH_TMP=$TEMP_DIR/HGLMSNMPDaemonrc.tmp             
#    SNMP_START_SCRIPT_PATH_TMP=$TEMP_DIR/hglmsnmpdaemonrc.tmp              
    #if [ -f $TEMP_DIR/HGLMSNMPDaemonrc ]; then                            
    #        sed "s|AGENT_ROOT=.*|AGENT_ROOT=$PATH_HGLMAINSTDIR|g" $TEMP_DIR/HGLMSNMPDaemonrc > $SNMP_START_SCRIPT_PATH_TMP;
    #        ${MOVE} $SNMP_START_SCRIPT_PATH_TMP $TEMP_DIR/HGLMSNMPDaemonrc > /dev/null 2>&1
    #fi                                                                                                     # GLMAGTINST06200108 END
    
#    if [ -f $TEMP_DIR/hglmsnmpdaemonrc ]; then   
#            sed "s|AGENT_ROOT=.*|AGENT_ROOT=$PATH_HGLMAINSTDIR|g" $TEMP_DIR/hglmsnmpdaemonrc > $SNMP_START_SCRIPT_PATH_TMP;
#            ${MOVE} $SNMP_START_SCRIPT_PATH_TMP $TEMP_DIR/hglmsnmpdaemonrc > /dev/null 2>&1
#    fi
    
    #${COPY} $TEMP_DIR/HGLMSNMPDaemonrc $RCSCRIPT_DEST > /dev/null 2>&1  # GLMAGTINST06200063         # GLMAGTINST06200108 START
#    ${COPY} $TEMP_DIR/hglmsnmpdaemonrc $RCSCRIPT_DEST > /dev/null 2>&1  
    #chmod 0744 $RCSCRIPT_DEST/HGLMSNMPDaemonrc   
#    chmod 0744 $RCSCRIPT_DEST/hglmsnmpdaemonrc    
    #chown root:root $RCSCRIPT_DEST/HGLMSNMPDaemonrc                                   # GLMAGTINST06200070  
#    chown root:root $RCSCRIPT_DEST/hglmsnmpdaemonrc                                                                                            # GLMAGTINST06200135 END
    
    #if [ -f $RCSCRIPT_DEST/HGLMSNMPDaemonrc ]; then 
    if [ -f $RCSCRIPT_DEST/hglmsnmpdaemonrc ]; then
    #/usr/bin/ln $RCSCRIPT_DEST/HGLMSNMPDaemonrc /etc/rc2.d/S200HGLMSNMPDaemonrc > /dev/null 2>&1 
    #/usr/bin/ln $RCSCRIPT_DEST/hglmsnmpdaemonrc /etc/rc2.d/S800hglmsnmpdaemonrc > /dev/null 2>&1     # GLMAGTINST06200108 END # GLMAGTINST06200125                
    /usr/bin/ln -s $RCSCRIPT_DEST/hglmsnmpdaemonrc /etc/rc2.d/S800hglmsnmpdaemonrc > /dev/null 2>&1   # GLMAGTINST06200125 
    RTN_CD=$?                                                                 #GLMAGTINST06200083 START
         if [ $RTN_CD -ne 0 ]; then                                           #GLMAGTINST062000 # GLMAGTINST06200073 # GLMAGTINST06200107 START
         #   print_messages "KAIF62400" "/usr/bin/ln" $RTN_CD                  #GLMAGTINST06200083 END      
            print_messages "KAIF62209" "/usr/bin/ln" $RTN_CD
         #   print_messages "KAIF62004"
            print_messages "KAIF62011" "Registration of HGLM SNMP Agent"
            print_messages "KAIF62003"                                                                               # GLMAGTINST06200107 END	    
            exit $UNIX_CMD_ERROR
	 fi

    #/usr/bin/ln $RCSCRIPT_DEST/HGLMSNMPDaemonrc /etc/rc0.d/K800HGLMSNMPDaemonrc > /dev/null 2>&1 # GLMAGTINST06200108
    #/usr/bin/ln $RCSCRIPT_DEST/hglmsnmpdaemonrc /etc/rc0.d/K200hglmsnmpdaemonrc > /dev/null 2>&1  # GLMAGTINST06200108 # GLMAGTINST06200125
    /usr/bin/ln -s $RCSCRIPT_DEST/hglmsnmpdaemonrc /etc/rc0.d/K200hglmsnmpdaemonrc > /dev/null 2>&1  # GLMAGTINST06200125
    RTN_CD=$?                                                                 #GLMAGTINST06200083 START
	 if [ $RTN_CD -ne 0 ]; then                                           #GLMAGTINST06200083 # GLMAGTINST06200073  # GLMAGTINST06200107 START 
        #    print_messages "KAIF62400" "/usr/bin/ln" $RTN_CD                  #GLMAGTINST06200083 END       
	    print_messages "KAIF62209" "/usr/bin/ln" $RTN_CD
        #    print_messages "KAIF62004"
            print_messages "KAIF62011" "Registration of HGLM SNMP Agent"
            print_messages "KAIF62003"                                                                                  # GLMAGTINST06200107 END
            exit $UNIX_CMD_ERROR
	 fi
    fi
    
    print_messages "KAIF62007" "Registration of HGLM SNMP Agent"                              # GLMAGTINST06200103
    
    return 0
}


################################################################################
## snmp agent validation 
################################################################################

snmpagent_validation()                                                                      # GLMAGTINST06200061 START
{
  print_messages "KAIF62006" "Validation of HGLM SNMP Agent"                                # GLMAGTINST06200103  
#  SNMP_PROPERTY_FILE=/HGLMAgent/snmp/config/snmp.properties                                 # GLMAGTINST06200138 
  SNMP_PROPERTY_FILE=/HGLMAgent/snmp/etc/config/snmp.properties                              # GLMAGTINST06200138 
  
  #TRAP_VALUE=`grep "^trapEnable.*" $PATH_HGLMAINSTDIR$SNMP_PROPERTY_FILE | cut -d= -f2`           # GLMAGTINST06200141
  TRAP_VALUE=`grep "^snmp.trap_enable.*" $PATH_HGLMAINSTDIR$SNMP_PROPERTY_FILE | cut -d= -f2`      # GLMAGTINST06200141
  TRAP_VALUE=`${ECHO} $TRAP_VALUE | awk '{print $1}'`
    if [ "${TRAP_VALUE}" = true ]; then
       print_messages "KAIF62007" "Validation of HGLM SNMP Agent"                           # GLMAGTINST06200103
       return 0
    else
       print_messages "KAIF62007" "Validation of HGLM SNMP Agent"                           # GLMAGTINST06200103  
       return 1
    fi 
  return 0                                                                                 # GLMAGTINST06200061 END
}

################################################################################
## start/stop hbsaservice
## $- start (or) stop
################################################################################
hbsa_service()
{
   print_messages "KAIF62006" "HBsA Service "$1" "                                           # GLMAGTINST06200103
   
   if [ -f $HBSA_PATH ];then
        HBSA_LOC=`grep "^HBSA_DIR=" $HBSA_PATH | cut -d= -f2`
        HBSA_FILE=$HBSA_LOC/bin/hbsasrv
   fi
   
   OPTION=$1
   
   if [ "${OPTION}" = "start" ]; then
      $HBSA_FILE start > /dev/null 2>&1  
      HBSA_RTN=$?                                                                     # GLMAGTINST06200083 START
    #  if [ $HBSA_RTN != 0 ]; then                                                    # GLMAGTINST06200147
    #  if [ $HBSA_RTN = 1 -o $HBSA_RTN = 2 ]; then                                    # GLMAGTINST06200147 ## GLMAGTINST06200151
      if [ $HBSA_RTN != 0 ]; then                                                     # GLMAGTINST06200151
      #   print_messages "KAIF62301" $HBSA_START_ERROR_CODE $HBSA_RTN                  # GLMAGTINST06200083 END # GLMAGTINST06200107
	 print_messages "KAIF62207" $HBSA_START_ERROR_CODE $HBSA_RTN                   # GLMAGTINST06200107 
         WARN_MSG_FLG=${FLG_ON}
      fi
   #   if [ $HBSA_RTN != 0 -a $HBSA_RTN != 1 -a $HBSA_RTN != 2 ]; then                 # GLMAGTINST06200147 START # GLMAGTINST06200151 START
   #      print_messages "KAIF62208" $HBSA_START_ERROR_CODE $HBSA_RTN
   #      print_messages "KAIF62011" "HBsA Service start "
   #      print_messages "KAIF62003"
   #      exit $HBSA_CMD_ERROR_VALUE
   #   fi                                                                              # GLMAGTINST06200147 END # GLMAGTINST06200151 END
   fi
   
   if [ "${OPTION}" = "stop" ]; then
      $HBSA_FILE stop > /dev/null 2>&1
      HBSA_RTN=$?                                                                     #GLMAGTINST06200083 START
      #if [ $HBSA_RTN != 0 ]; then                                                     # GLMAGTINST06200107 START
    #  if [ $HBSA_RTN = 2 ]; then                                                      # GLMAGTINST06200147
      if [ $HBSA_RTN != 0 -a $HBSA_RTN != 1 ]; then                                    # GLMAGTINST06200147
       #  print_messages "KAIF62302" $HBSA_STOP_ERROR_CODE $HBSA_RTN                   #GLMAGTINST06200083 END 
         print_messages "KAIF62208" $HBSA_STOP_ERROR_CODE $HBSA_RTN
       #  print_messages "KAIF62004"
	 print_messages "KAIF62011" "HBsA Service stop "
         print_messages "KAIF62003"
         exit $HBSA_CMD_ERROR_VALUE
      fi
      if [ $HBSA_RTN = 1 ]; then
         print_messages "KAIF62210" $HBSA_STOP_ERROR_CODE $HBSA_RTN
         print_messages "KAIF62011" "HBsA Service stop "
         print_messages "KAIF62003"                                                    
         exit $HBSA_CMD_ERROR_VALUE                                                     # GLMAGTINST06200107 END
      fi          
   fi
   
   print_messages "KAIF62007" "HBsA Service "$1" "                                           # GLMAGTINST06200103 
   
   return 0
      
}

################################################################################
## saves installation directory paths in /etc/.HGLMAgent/pathinfo file
## $- No parameters
################################################################################
save_dirpath()
{
    print_messages "KAIF62006" "Saving Directories Path" 

    if [ -d $PATH_DIR ]; then
        ${REMOVE} $PATH_DIR > /dev/null 2>&1                                    # GLMAGTINST06200088
    fi

    ${MKDIR} $PATH_DIR > /dev/null 2>&1
    RTN_CD=$?                                                                  # GLMAGTINST06200083 START
    if [ $RTN_CD -ne 0 ]; then                                                 
         #       print_messages "KAIF62400" "${MKDIR}" $RTN_CD                  # GLMAGTINST06200083 END # GLMAGTINST06200107 START
                print_messages "KAIF62209" "${MKDIR}" $RTN_CD                   
         #       print_messages "KAIF62004"
                print_messages "KAIF62011" "Saving Directories Path"
                print_messages "KAIF62003"                                                               # GLMAGTINST06200107 END
                exit $UNIX_CMD_ERROR
    fi
    
    chown root:root $PATH_DIR                                                   # GLMAGTINST06200118
    chmod 0755 $PATH_DIR                                                        # GLMAGTINST06200118
        
    ${TOUCH} $PATH_DIR$PATH_FILE > /dev/null 2>&1
    RTN_CD=$?                                                                  # GLMAGTINST06200083
    if [ $RTN_CD -ne 0 ]; then                                                 
       #     print_messages "KAIF62400" "${TOUCH}"  $RTN_CD                     # GLMAGTINST06200083      # GLMAGTINST06200107 START
	    print_messages "KAIF62209" "${TOUCH}"  $RTN_CD
       #     print_messages "KAIF62004"
            print_messages "KAIF62011" "Saving Directories Path"
            print_messages "KAIF62003"                                                                    # GLMAGTINST06200107 END
            exit $UNIX_CMD_ERROR
    fi
    
    chown root:root $PATH_DIR$PATH_FILE                                          # GLMAGTINST06200118
    chmod 0644 $PATH_DIR$PATH_FILE                                               # GLMAGTINST06200118
        
    if [ -z "$HBSAINSTDIR" -o -n "$HBSAINSTDIR" ]; then
    
       if [ -f $HBSA_PATH ];then
          HBSA_LOC=`grep "^HBSA_DIR=" $HBSA_PATH | cut -d= -f2`
       fi    
          HBSAINSTDIR=$HBSA_LOC
    fi

    if [ -z "$HGLMAINSTDIR" ]; then
         HGLMAINSTDIR="/opt"
    fi

    if [ -z "$HGLMALOGDIR" ]; then
         HGLMALOGDIR="/var/opt"
    fi

    ${ECHO} HGLMAGENT_DIR="$HGLMAINSTDIR" >> $PATH_DIR$PATH_FILE  
    ${ECHO} HGLMAGENT_LOG_DIR="$HGLMALOGDIR" >> $PATH_DIR$PATH_FILE 
    #${ECHO} HBSAINSTDIR="$HBSAINSTDIR" >> $PATH_DIR$PATH_FILE                     # GLMAGTINST06200105

    print_messages "KAIF62007" "Saving Directories Path" 
    
    return 0
}

################################################################################
## backup property files at the time of overwrite installation
## $- No parameters
################################################################################
backup_files()
{
    print_messages "KAIF62006" "Backup files" 

#    SNMP_PATH=HGLMAgent/snmp/config                                               # GLMAGTINST06200138 START
    SNMP_PATH=HGLMAgent/snmp/etc/config
    SNMP_HOST_PATH=HGLMAgent/snmp/config                                           # GLMAGTINST06200138 END
    DMP_PATH=HGLMAgent/dmp/config
    BACKUP_DIR=/var/tmp/HGLMA_tmp/backup

    if [ -d /var/tmp/HGLMA_tmp ]; then
           if [ -d $BACKUP_DIR ]; then
              ${REMOVE} $BACKUP_DIR > /dev/null 2>&1                             # GLMAGTINST06200088
           fi
               
           ${MKDIR} $BACKUP_DIR > /dev/null 2>&1                                 # GLMAGTINST06200088
    fi 

        if [ -n "${PATH_HGLMAINSTDIR}" ]; then
           ${COPY} $PATH_HGLMAINSTDIR/$SNMP_PATH/snmp.properties $BACKUP_DIR > /dev/null 2>&1 
           ${COPY} $PATH_HGLMAINSTDIR/$SNMP_HOST_PATH/host.properties $BACKUP_DIR > /dev/null 2>&1   # GLMAGTINST06200138 START
#          ${COPY} $PATH_HGLMAINSTDIR/$SNMP_PATH/snmplogger.properties $BACKUP_DIR >/dev/null 2>&1 
           ${COPY} $PATH_HGLMAINSTDIR/$SNMP_HOST_PATH/snmplogger.properties $BACKUP_DIR >/dev/null 2>&1 # GLMAGTINST06200138 END
           ${COPY} $PATH_HGLMAINSTDIR/$DMP_PATH/logger.properties $BACKUP_DIR > /dev/null 2>&1
           ${COPY} $PATH_HGLMAINSTDIR/$DMP_PATH/agent.properties $BACKUP_DIR > /dev/null 2>&1
        fi
        
        print_messages "KAIF62007" "Backup files" 
        
        return 0
}

################################################################################
## merge property files at the time of overwrite installation
## $- No parameters
################################################################################
merge_files()                                                                         # GLMAGTINST06200057 START
{
     print_messages "KAIF62006" "Merge files" 

#    SNMP_PATH=HGLMAgent/snmp/config                                               # GLMAGTINST06200138
     SNMP_HOST_PATH=HGLMAgent/snmp/config                                          # GLMAGTINST06200138
     DMP_PATH=HGLMAgent/dmp/config
     BACKUP_DIR=/var/tmp/HGLMA_tmp/backup

     for BACKUP_FILE in `find $BACKUP_DIR -type f -name "*.properties" -print`
     do
        while read LINE
        do
              FIRST=`${ECHO} $LINE | cut -c1`
              if [ "${FIRST}" = "#" -o "${FIRST}" = "" ]; then
                 continue
              fi
                 KEY=`${ECHO} $LINE | cut -f1 -d=`
                 VALUE=`${ECHO} $LINE | cut -f2 -d=`
                 
                 KEY=`${ECHO} $KEY | awk '{print $1}' `
                 VALUE=`${ECHO} $VALUE | awk '{print $1}' `                                 # GLMAGTINST06200158
                 if [ "${VALUE}" = "" ]; then
                    continue
                 fi
            
                 for CURRENT_INSTALL_FILE_DMP in `find $PATH_HGLMAINSTDIR/$DMP_PATH -type f -name "*.properties" -print` 
                 do
                     #   sed "s|^$KEY.*|$KEY = $VALUE|g" $CURRENT_INSTALL_FILE_DMP > $TEMP_DIR/temp.bak;        # GLMAGTINST06200068 # GLMAGTINST06200158
                        sed "s|^$KEY.*|$KEY=$VALUE|g" $CURRENT_INSTALL_FILE_DMP > $TEMP_DIR/temp.bak;        # GLMAGTINST06200158
                        ${MOVE} $TEMP_DIR/temp.bak $CURRENT_INSTALL_FILE_DMP > /dev/null 2>&1                  # GLMAGTINST06200068
                 done

              #   for CURRENT_INSTALL_FILE_SNMP in `find $PATH_HGLMAINSTDIR/$SNMP_PATH -type f -name "*.properties" -print` # GLMAGTINST06200138
                 for CURRENT_INSTALL_FILE_SNMP in `find $PATH_HGLMAINSTDIR/$SNMP_HOST_PATH -type f -name "*.properties" -print` # GLMAGTINST06200138
                 do
                   #    sed "s|^$KEY.*|$KEY = $VALUE|g" $CURRENT_INSTALL_FILE_SNMP > $TEMP_DIR/temp.bak;       # GLMAGTINST06200068 # GLMAGTINST06200158
                        sed "s|^$KEY.*|$KEY=$VALUE|g" $CURRENT_INSTALL_FILE_SNMP > $TEMP_DIR/temp.bak;       # GLMAGTINST06200158
                        ${MOVE} $TEMP_DIR/temp.bak $CURRENT_INSTALL_FILE_SNMP > /dev/null 2>&1                 # GLMAGTINST06200068
                 done

        done < $BACKUP_FILE

      done
 
    print_messages "KAIF62007" "Merge files"
    
    return 0                                                                            # GLMAGTINST06200057 END
}

################################################################################
## read path information from file
## $- No parameters
################################################################################
readpath_info()
{
    print_messages "KAIF62006" "Read Path Info" 
    
    #PATH_FILE_DIR=/etc/.HGLMAgent/pathinfo                                                # GLMAGTINST06200108
    PATH_FILE_DIR=/etc/.HGLMAgent/Path00                                                   # GLMAGTINST06200108 
    if [ -f $PATH_FILE_DIR ]; then
        PATH_HGLMAINSTDIR=`grep "^HGLMAGENT_DIR=" $PATH_FILE_DIR | cut -d= -f2`
        PATH_HGLMALOGINSTDIR=`grep "^HGLMAGENT_LOG_DIR=" $PATH_FILE_DIR | cut -d= -f2`
   #     PATH_HBSAINSTDIR=`grep "^HBSA_DIR=" $HBSA_PATH | cut -d= -f2`                     # GLMAGTINST06200146
    fi
    if [ -f $HBSA_PATH ];then                                                              # GLMAGTINST06200146 START
       PATH_HBSAINSTDIR=`grep "^HBSA_DIR=" $HBSA_PATH | cut -d= -f2`
    fi                                                                                     # GLMAGTINST06200146 END
    
    print_messages "KAIF62007" "Read Path Info" 
    
    return 0
}

################################################################################
## ask file for installation
## $- No parameters
################################################################################
create_ask_file()
{
      print_messages "KAIF62006" "Create Ask file"                                         # GLMAGTINST06200103 
  
      HGLMAINSTDIR_KEY="HGLMAINSTDIR="
      HGLMALOGDIR_KEY="HGLMALOGINSTDIR="
      HBSAINSTALLDIR_KEY="HBSAINSTDIR="

      HGLMAINSTDIR_VALUE=$PATH_HGLMAINSTDIR
      HGLMALOGDIR_VALUE=$PATH_HGLMALOGINSTDIR
      HBSAINSTALLDIR_VALUE=$PATH_HBSAINSTDIR/mod
      
      ASK_HGLMAINSTDIR_PARAM="\"$HGLMAINSTDIR_VALUE\""
      ASK_HGLMALOGDIR_PARAM="\"$HGLMALOGDIR_VALUE\""
      ASK_HBSA_PARAM="\"${HBSAINSTALLDIR_VALUE}\"" 
 
      #TEMP_DIR="/var/tmp/HGLMA_tmp"                                    # GLMAGTINST06200112
      ASK_FILE="/install_ask"
  
      ${TOUCH} $TEMP_DIR$ASK_FILE > /dev/null 2>&1
      RTN_CD=$?                                                         # GLMAGTINST06200083 START
      if [ $RTN_CD -ne 0 ]; then                                        
       # print_messages "KAIF62009" "${TOUCH}" $RTN_CD                  # GLMAGTINST06200083 END # GLMAGTINST06200107 START
         print_messages "KAIF62209" "${TOUCH}" $RTN_CD
     delete_temp_directory
         print_messages "KAIF62004"
         print_messages "KAIF62011" "Create Ask file"
         print_messages "KAIF62003"                                                              # GLMAGTINST06200107 END
         exit $UNIX_CMD_ERROR
      fi
  
      ASK_FILE_LOC=$TEMP_DIR$ASK_FILE
  
      if [ -f $TEMP_DIR$ASK_FILE ]; then
         ${ECHO} $HGLMAINSTDIR_KEY$ASK_HGLMAINSTDIR_PARAM >> $ASK_FILE_LOC
         ${ECHO} $HGLMALOGDIR_KEY$ASK_HGLMALOGDIR_PARAM >> $ASK_FILE_LOC
         ${ECHO} $HBSAINSTALLDIR_KEY$ASK_HBSA_PARAM  >> $ASK_FILE_LOC
      fi
  
      print_messages "KAIF62007" "Create Ask file"                                        # GLMAGTINST06200103 
  
      return 0
}
################################################################################
## Collect keys to check for invalid key in the property file
## $- No parameters
################################################################################
get_keys()                                                                                           # GLMAGTINST06200111
{
      KEY_FILE=$TEMP_DIR/KEYS.bak
      USER_KEY_FILE=$TEMP_DIR/USER_KEYS.bak                                                          # GLMAGTINST06200136

      for FILE in `find $SNMP_LOGGER_PATH -type f -name "*.properties" -print`
      do
          while read LINE
          do
             FIRST=`${ECHO} $LINE | cut -c1`
             if [ "${FIRST}" = "#" -o "${FIRST}" = "" ]; then
                 continue
             fi
             KEY=`${ECHO} $LINE | cut -f1 -d=`
             KEY=`${ECHO} $KEY | awk '{print $1}' `
             echo $KEY >> $KEY_FILE
          done < $FILE
     done
     
     for FILE in `find $DMP_LOC_PATH -type f -name "*.properties" -print`
     do
         while read LINE
         do
            FIRST=`${ECHO} $LINE | cut -c1`
            if [ "${FIRST}" = "#" -o "${FIRST}" = "" ]; then
               continue
            fi
            KEY=`${ECHO} $LINE | cut -f1 -d=`
            KEY=`${ECHO} $KEY | awk '{print $1}' `
            echo $KEY >> $KEY_FILE
        done < $FILE
     done
     while read LINE                                                                         # GLMAGTINST06200136 START
     do
            FIRST=`${ECHO} $LINE | cut -c1`
            if [ "${FIRST}" = "#" -o "${FIRST}" = "" ]; then
               continue
            fi
            KEY=`${ECHO} $LINE | cut -f1 -d=`
            KEY=`${ECHO} $KEY | awk '{print $1}' `
            echo $KEY >> $USER_KEY_FILE
    done < $PROPERTY_FILE                                                                   # GLMAGTINST06200136 END
}                                                                                                   # GLMAGTINST06200111
################################################################################
## merge property files
## $- No parameters
################################################################################
merge_property_files()
{
     print_messages "KAIF62006" "Merging property files" 

     PROPERTY_FILE=$PROPERTY_CONFIG_FILE

     DMP_LOC_PATH=$PATH_HGLMAINSTDIR/HGLMAgent/dmp/config/

     SNMP_LOGGER_PATH=$PATH_HGLMAINSTDIR/HGLMAgent/snmp/config/
     get_keys                                                                      # GLMAGTINST06200111
     USER_KEYS=`/usr/bin/cat $USER_KEY_FILE`                                                   # GLMAGTINST06200140 START
     for i in $USER_KEYS
     do
     grep -w "$i" $TEMP_DIR/KEYS.bak > /dev/null 2>&1   
     if [ $? != 0 ]; then
        print_messages "KAIF62103" "${i}" 
        WARN_MSG_FLG=${FLG_ON} 
     fi
     done                                                                                      # GLMAGTINST06200140 END
     VALUE=`/usr/bin/sort $USER_KEY_FILE | uniq -c | /usr/bin/awk '$1 > 1 {print $2}'`        # GLMAGTINST06200136 START
     for i in $VALUE
     do
     if [ "$i" != "" ]; then
        print_messages "KAIF62107" "$i" 
        WARN_MSG_FLG=${FLG_ON}
     fi
     done                                                                                      # GLMAGTINST06200136 END
     while read LINE
     do
          FIRST=`${ECHO} $LINE | cut -c1`
          if [ "${FIRST}" = "#" -o "${FIRST}" = "" ]; then
               continue
          fi
          
          KEY=`${ECHO} $LINE | cut -f1 -d=`
          VALUE=`${ECHO} $LINE | cut -f2 -d=`
 
          KEY=`${ECHO} $KEY | awk '{print $1}' `
          VALUE=`${ECHO} $VALUE | awk '{print $1}' `                                           # GLMAGTINST06200158
          if [ "${VALUE}" = "" ]; then
             continue
          fi
          #                                                                          # GLMAGTINST06200100 START   # GLMAGTINST06200111 START
          #if [ "${KEY}" != "agent.dmp.Location" -a \
          #     "${KEY}" != "agent.logger.loglevel" -a \
          #     "${KEY}" != "agent.logger.MaxBackupIndex" -a \
          #     "${KEY}" != "agent.logger.MaxFileSize" -a \
          #     "${KEY}" != "snmp.logger.loglevel" -a \
          #     "${KEY}" != "snmp.logger.MaxBackupIndex" -a \
          #     "${KEY}" != "snmp.logger.MaxFileSize" ]; then
          #      print_messages "KAIF62103" "${KEY}"             
          # fi                                                                       # GLMAGTINST06200100 END     # GLMAGTINST06200111 END
 #         grep -w "$KEY" $TEMP_DIR/KEYS.bak > /dev/null 2>&1                         # GLMAGTINST06200111 START  # GLMAGTINST06200140 START
 #	  if [ $? != 0 ]; then
 #	     print_messages "KAIF62103" "${KEY}" 
            # WARN_MSG_FLG=${FLG_ON}                                                  # GLMAGTINST06200136 # GLMAGTINST06200139
 #            WARN_MSG="true"                                                	     # GLMAGTINST06200139
 #         fi                                                                         # GLMAGTINST06200111 END # GLMAGTINST06200140 END
          for FILE in `find $SNMP_LOGGER_PATH -type f -name "*.properties" -print`
          do
           #  sed "s|^$KEY.*|$KEY = $VALUE|g" $FILE > $TEMP_DIR/temp.bak;           # GLMAGTINST06200068 # GLMAGTINST06200158
               sed "s|^$KEY.*|$KEY=$VALUE|g" $FILE > $TEMP_DIR/temp.bak;           # GLMAGTINST06200158
               ${MOVE} $TEMP_DIR/temp.bak $FILE > /dev/null 2>&1                     # GLMAGTINST06200068
          done
     
          for FILE in `find $DMP_LOC_PATH -type f -name "*.properties" -print`
          do
              # sed "s|^$KEY.*|$KEY = $VALUE|g" $FILE > $TEMP_DIR/temp.bak;           # GLMAGTINST06200068 # GLMAGTINST06200158
               sed "s|^$KEY.*|$KEY=$VALUE|g" $FILE > $TEMP_DIR/temp.bak;           # GLMAGTINST06200158
               ${MOVE} $TEMP_DIR/temp.bak $FILE > /dev/null 2>&1                     # GLMAGTINST06200068
          done

     done < $PROPERTY_FILE
     ${REMOVE} $KEY_FILE > /dev/null 2>&1                                                             # GLMAGTINST06200111 
     ${REMOVE} $USER_KEY_FILE > /dev/null 2>&1                                                        # GLMAGTINST06200136
     print_messages "KAIF62007" "Merging property files" 
     
     return 0

}

################################################################################
## Registration of PP in HBSA
## $- No parameters
################################################################################
register_pp_hbsa()
{
    print_messages "KAIF62006" "Registration of PP in HBsA"                                 # GLMAGTINST06200103
  
    CMD_PATH=/agent/bin/amc_registpp
    $PATH_HBSAINSTDIR$CMD_PATH -add GlobalLinkManager > /dev/null 2>&1
    HBSA_RTN=$?                                                                             # GLMAGTINST06200083 START
      # if [ $HBSA_RTN != 0 ]; then                                                         # GLMAGTINST06200147
      # if [ $HBSA_RTN = 1 ]; then                                                           # GLMAGTINST06200147 # GLMAGTINST06200151
       if [ $HBSA_RTN != 0 ]; then                                                           # GLMAGTINST06200151
         #   print_messages "KAIF62301" "$HBSA_PP_ADD_ERROR_CODE" $HBSA_RTN                  # GLMAGTINST06200083 END # GLMAGTINST06200107 START
            print_messages "KAIF62207" "$HBSA_PP_ADD_ERROR_CODE" $HBSA_RTN 
            WARN_MSG_FLG=${FLG_ON}                                                                                    # GLMAGTINST06200107 END
       fi  
      # if [ $HBSA_RTN != 0 -a $HBSA_RTN != 1 ]; then                                                  # GLMAGTINST06200147 START # GLMAGTINST06200151 START
      #   print_messages "KAIF62208" $HBSA_PP_ADD_ERROR_CODE $HBSA_RTN
      #   print_messages "KAIF62011" "Registration of PP in HBsA"
      #   print_messages "KAIF62003"
      #   exit $HBSA_CMD_ERROR_VALUE
      # fi                                                                                             # GLMAGTINST06200147 END    # GLMAGTINST06200151 END
    print_messages "KAIF62007" "Registration of PP in HBsA"                                 # GLMAGTINST06200103  
    return 0
}

################################################################################
## hglm agentlet validation and invalidation
## $- validate , invalidate
################################################################################
hglmagentlet_service()
{
    print_messages "KAIF62006" "HGLM Agentlet "$1" "                                        # GLMAGTINST06200103

    CMD_PATH=/bin/amc_activate
    OPTION="$1"
    
    if [ "${OPTION}" = "validate" ]; then
      $PATH_HBSAINSTDIR$CMD_PATH -a hglm > /dev/null 2>&1
      HBSA_RTN=$?
      #if [ $HBSA_RTN -ge 1 -a $HBSA_RTN -le 15 ]; then                                                   # GLMAGTINST06200107 START
      #if [ $HBSA_RTN != 0 ]; then                                                                        # GLMAGTINST06200147 
      #if [ $HBSA_RTN -ge 1 -a $HBSA_RTN -le 16 ]; then                                                    # GLMAGTINST06200147 # GLMAGTINST06200151
      if [ $HBSA_RTN != 0 ]; then                                                                          # GLMAGTINST06200151
         #   print_messages "KAIF62301" $HBSA_AMC_ACTIVATE_ERROR_CODE $HBSA_RTN                           # GLMAGTINST06200079  
             print_messages "KAIF62207" $HBSA_AMC_ACTIVATE_ERROR_CODE $HBSA_RTN                                                  
             WARN_MSG_FLG=${FLG_ON}                                                                                             
      fi
      #if [ $HBSA_RTN = 16 ]; then
         # print_messages "KAIF62302" $HBSA_AMC_ACTIVATE_ERROR_CODE $HBSA_RTN                              # GLMAGTINST06200079 # GLMAGTINST06200107 START
	# print_messages "KAIF62208" $HBSA_AMC_ACTIVATE_ERROR_CODE $HBSA_RTN
         # print_messages "KAIF62004"
        # print_messages "KAIF62011" "HGLM Agentlet validate"
        # print_messages "KAIF62003"                                                                                             
        # exit $HBSA_CMD_ERROR_VALUE 
      #fi                                                                                                  # GLMAGTINST06200107 END
    #  if [ $HBSA_RTN -gt 16 ]; then                                                                        # GLMAGTINST06200147 START # GLMAGTINST06200151 START
    #     print_messages "KAIF62208" $HBSA_AMC_ACTIVATE_ERROR_CODE $HBSA_RTN
    #     print_messages "KAIF62011" "HGLM Agentlet validate"
    #     print_messages "KAIF62003"
    #     exit $HBSA_CMD_ERROR_VALUE 
    #  fi                                                                                                   # GLMAGTINST06200147 END   # GLMAGTINST06200151 END
    fi

    if [ "${OPTION}" = "invalidate" ]; then
       $PATH_HBSAINSTDIR$CMD_PATH -d hglm > /dev/null 2>&1
       HBSA_RTN=$?
            if [ $HBSA_RTN -ge 1 -a $HBSA_RTN -le 15 ]; then
                  # print_messages "KAIF62301" $HBSA_AMC_INACTIVATE_ERROR_CODE $HBSA_RTN                  # GLMAGTINST06200079             
         #   print_messages "KAIF62302" $HBSA_AMC_INACTIVATE_ERROR_CODE $HBSA_RTN                          # GLMAGTINST06200098 START # GLMAGTINST06200107 START
            print_messages "KAIF62210" $HBSA_AMC_INACTIVATE_ERROR_CODE $HBSA_RTN
         #   print_messages "KAIF62004"
            print_messages "KAIF62011" "HGLM Agentlet invalidate"
            print_messages "KAIF62003"                                                                                                # GLMAGTINST06200107 END
            exit $HBSA_CMD_ERROR_VALUE                                                                    # GLMAGTINST06200098 END
            fi
        #  if [ $HBSA_RTN = 16 ]; then                                                                  # GLMAGTINST06200079 # GLMAGTINST06200147
        if [ $HBSA_RTN -ge 16 ]; then                                                                     # GLMAGTINST06200147
         #   print_messages "KAIF62302" $HBSA_AMC_INACTIVATE_ERROR_CODE $HBSA_RTN                         # GLMAGTINST06200079  # GLMAGTINST06200107 START
	    print_messages "KAIF62208" $HBSA_AMC_INACTIVATE_ERROR_CODE $HBSA_RTN
         #   print_messages "KAIF62004"
            print_messages "KAIF62011" "HGLM Agentlet invalidate"
            print_messages "KAIF62003"                                                                                          # GLMAGTINST06200107 END
            exit $HBSA_CMD_ERROR_VALUE 
        fi
    fi

    print_messages "KAIF62007" "HGLM Agentlet "$1" "                                                       # GLMAGTINST06200103
      
    return 0
}

################################################################################
## performs upgrade installation
## $- No Parameters
################################################################################
upgrade_install()
{
       print_messages "KAIF62006" "Upgrade Install" 
       
       /usr/sbin/pkgrm -n HGLMAgent > /dev/null 2>&1
       RTN_CD=$?                                                                                        # GLMAGTINST06200083 START
       if [ $RTN_CD -ne 0 ]; then                                                                       
    #      print_messages "KAIF62400" "/usr/bin/pkgrm -n" $RTN_CD                                        # GLMAGTINST06200083 END # GLMAGTINST06200107 START
          print_messages "KAIF62209" "/usr/bin/pkgrm -n" $RTN_CD
    #      print_messages "KAIF62004"                                                                   
          print_messages "KAIF62011" "Upgrade Install"
	  print_messages "KAIF62003"                                                                                              # GLMAGTINST06200107 END
          exit $UNIX_CMD_ERROR  
       fi
       
       if [ -d $PATH_HGLMAINSTDIR/HGLMAgent ]; then      # GLMAGTINST06200066 START
          ${REMOVE} $PATH_HGLMAINSTDIR/HGLMAgent > /dev/null 2>&1                              # GLMAGTINST06200088    
       fi
       
       if [ -d $PATH_HGLMALOGINSTDIR/HGLMAgent ]; then
          ${REMOVE} $PATH_HGLMALOGINSTDIR/HGLMAgent > /dev/null 2>&1                           # GLMAGTINST06200088
       fi           
       
       if [ -d $PATH_HBSAINSTDIR/hglm ]; then
          ${REMOVE} $PATH_HBSAINSTDIR/hglm > /dev/null 2>&1                                    # GLMAGTINST06200088
       fi						# GLMAGTINST06200066 END
           
       print_messages "KAIF62007" "Upgrade Install" 
       
       return 0
}

################################################################################
## performs downgrade installation
## $- 
################################################################################
downgrade_install()
{
       print_messages "KAIF62006" "Downgrade Install" 
       
       /usr/sbin/pkgrm -n HGLMAgent > /dev/null 2>&1
       RTN_CD=$?                                                                  # GLMAGTINST06200083 START
       if [ $RTN_CD -ne 0 ]; then                                                 
       #   print_messages "KAIF62400" "/usr/bin/pkgrm -n" $RTN_CD                  # GLMAGTINST06200083 END # GLMAGTINST06200107 START
       #   print_messages "KAIF62004"
           print_messages "KAIF62209" "/usr/bin/pkgrm -n" $RTN_CD                  # GLMAGTINST06200083 END
           print_messages "KAIF62011" "Downgrade Install"
           print_messages "KAIF62003"                                                                       # GLMAGTINST06200107 END
          exit $UNIX_CMD_ERROR  
       fi 
       
       if [ -d $PATH_HGLMAINSTDIR/HGLMAgent ]; then	# GLMAGTINST06200066 START		
                ${REMOVE} $PATH_HGLMAINSTDIR/HGLMAgent > /dev/null 2>&1           # GLMAGTINST06200088  
       fi
             
       if [ -d $PATH_HGLMALOGINSTDIR/HGLMAgent ]; then
                ${REMOVE} $PATH_HGLMALOGINSTDIR/HGLMAgent > /dev/null 2>&1        # GLMAGTINST06200088
       fi           
             
       if [ -d $PATH_HBSAINSTDIR/hglm ]; then
                ${REMOVE} $PATH_HBSAINSTDIR/hglm > /dev/null 2>&1                 # GLMAGTINST06200088
       fi						# GLMAGTINST06200066 END
       
       print_messages "KAIF62007" "Downgrade Install" 
       
       return 0
 }
 
 ################################################################################
 ## copies installgetras comand to installation directory
 ## $- 
 ################################################################################
 #copy_installgetras()                                                                # GLMAGTINST06200113 START
 #{
 #
 #      print_messages "KAIF62006" "Copy Installgetras" 
 #      
 #      #INST_GETRAS=$CMD_DIR/installgetras.sh                                        # GLMAGTINST06200108
 #      INST_GETRAS=$CMD_DIR/installgetras                                            # GLMAGTINST06200108
 #      GETRAS_LOC=$PATH_HGLMAINSTDIR/HGLMAgent/bin
 #
 #      ${COPY} $INST_GETRAS $GETRAS_LOC > /dev/null 2>&1
 #      chmod 744 $GETRAS_LOC/installgetras
 #       
 #      print_messages "KAIF62007" "Copy Installgetras" 
 # 
 #}                                                                                   # GLMAGTINST06200113 END

################################################################################
## performs start and stop of snmp service.
## $- start,stop
################################################################################
snmp_service()
{
      print_messages "KAIF62006" "HGLM SNMP Agent Service $1"                               # GLMAGTINST06200103
       
      TYPE=$1
      #START_SCRIPT="/etc/init.d/HGLMSNMPDaemonrc"                                          # GLMAGTINST06200108
      START_SCRIPT="/etc/init.d/hglmsnmpdaemonrc"                                           # GLMAGTINST06200108 
      if [ -f "$START_SCRIPT" ]; then
          if [ "${TYPE}" = "start" ]; then
             $START_SCRIPT start > /dev/null 2>&1
          fi
          
          if [ "${TYPE}" = "stop" ]; then
             $START_SCRIPT stop > /dev/null 2>&1
          fi
      fi
      
      print_messages "KAIF62007" "HGLM SNMP Agent Service $1"                               # GLMAGTINST06200103
      
      return 0
 }
################################################################################
## deletes temporary directory with no exit when error occurence
## $-
################################################################################
delete_temp_directory_not_exit()                                                     # GLMAGTINST06200086 START
{
    print_messages "KAIF62006" "Delete Temporary Directory"
    if [ -d "${TEMP_DIR}" ]; then
        $REMOVE ${TEMP_DIR} > /dev/null 2>&1                                         # GLMAGTINST06200088        
    fi
    print_messages "KAIF62007" "Delete Temporary Directory"    
    return 0
}                                                                                    # GLMAGTINST06200086 END
############################################################################### 
#Main function start
################################################################################

    LANG=C
    LC_ALL=C
    export LANG LC_ALL
    
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/ucb:${PATH}
    export PATH
    
    for i in "$@" ; do
    if [ "$i" = "-h"  ] ; then 
        print_usage
    #else                                                                             # GLMAGTINST06200145 START  # GLMAGTINST06200156 START
    #   if [ "$i" = "-s" ]; then
    #   SILENT_VAR="$i"
    #   fi                                                                                                        # GLMAGTINST06200156 END
    fi                                                                               # GLMAGTINST06200145 END  
    done
    
    create_log_file
    #if [ "$SILENT_VAR" = "-s" ]; then                                                # GLMAGTINST06200145 START  # GLMAGTINST06200156 START
    #log_message "INFO" "KAIF62000-I HGLM Agent installation will now start."
    #else
    print_messages "KAIF62000"
    #fi                                                                               # GLMAGTINST06200145 END    # GLMAGTINST06200156 END
    print_messages "KAIF62009-I" "$@"
    print_messages "KAIF62010" "$SOLARCH"  

    authority_check 
    param_check $*
#    check_hdvmagent_option                                                           # GLMAGTINST06200166
#    check_overwrite_installation_directories                                         # GLMAGTINST06200166
    os_version_check 
    zone_check                                                                       # GLMAGTINST06200157   
    capacity_check
    
    if [ -z "$SILENT_VAR" ]; then
       #INSTALL_MODE="Installation"                                                       # GLMAGTINST06200108
       INSTALL_MODE="installation"                                                        # GLMAGTINST06200108  
       user_input $INSTALL_MODE
    fi

    package_info_check     

    if [ -z "$SILENT_VAR" ]; then                                                          # GLMAGTINST06200114 START
          if [ $FLG_OVERWRITEINSTALL -eq ${FLG_ON} -o $FLG_UPGRADEINSTALL -eq ${FLG_ON} -o $FLG_DOWNGRADEINSTALL -eq ${FLG_ON} ]; then
             INSTALL_MODE="overwrite installation"                                                      # GLMAGTINST06200108 # GLMAGTINST06201003
             user_input $INSTALL_MODE
             snmp_service stop                                                             # GLMAGTINST06200116
             print_messages "KAIF62008" "${LATEST_VERSION}" "${INSTALL_VERSION}"           # GLMAGTINST06200107
             
          fi   
    fi                                                                                     # GLMAGTINST06200114 END

    if [ -n "$SILENT_VAR" ]; then                                                        # GLMAGTINST06200114 START
          if [ $FLG_OVERWRITEINSTALL -eq ${FLG_ON} -o $FLG_UPGRADEINSTALL -eq ${FLG_ON} -o $FLG_DOWNGRADEINSTALL -eq ${FLG_ON} ]; then
             print_messages "KAIF62008" "${LATEST_VERSION}" "${INSTALL_VERSION}"         # GLMAGTINST06200107
             snmp_service stop                                                           # GLMAGTINST06200116
          fi   
    fi                                                                                   # GLMAGTINST06200114 END

    temp_directory_check
    
   # (new) independent installation 
   if [ $FLG_NEWINSTALL -eq ${FLG_ON} -a $INTEGRATED_AGENT_INSTALLATION_FLG -eq ${FLG_OFF} ]; then
     hbsa_install_check
     if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then
               hbsa_service stop
     fi                                                                          # GLMAGTINST06200101       
     #    else                                                                   # GLMAGTINST06200101
         prepare_hbsa
         
         if [ ! -z "${HBSAINSTDIR}" ]; then
            install_hbsa $HBSAINSTDIR
         else
            install_hbsa                                                         # GLMAGTINST06200094
            # hbsa_service stop                                                  # GLMAGTINST06200085
         fi
     #fi                                                                         # GLMAGTINST06200101
     save_dirpath
     readpath_info
     create_ask_file
     register_pp_hbsa
     install_hglmagt
     #copy_installgetras                                                         # GLMAGTINST06200113
     create_evidence_file
     register_snmp_agent
     if [ ! -z "${PROPERTY_CONFIG_FILE}" ]; then
        merge_property_files
     fi
     snmpagent_validation   # GLMAGTINST06200061
     if [ $? = 0 ]; then
        snmp_service start 
     fi
     delete_temp_directory_not_exit                                             # GLMAGTINST06200086
     hglmagentlet_service validate
     hbsa_service start   
     
  fi
   
   # (new) integrated installation
   
  if [ $FLG_NEWINSTALL -eq ${FLG_ON} -a $INTEGRATED_AGENT_INSTALLATION_FLG -eq ${FLG_ON} ]; then
   
       hbsa_install_check  
       if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then
          hbsa_service stop
       fi
       save_dirpath
       readpath_info
       create_ask_file
       register_pp_hbsa
       install_hglmagt
       #copy_installgetras                                                       # GLMAGTINST06200113
       register_snmp_agent
       snmpagent_validation  # GLMAGTINST06200061
       if [ $? = 0 ]; then
        snmp_service start 
       fi
       delete_temp_directory_not_exit                                           # GLMAGTINST06200086
       hglmagentlet_service validate
       hbsa_service start
 fi
   
   # (overwrite) independent installation  
      
   if [ $FLG_OVERWRITEINSTALL -eq ${FLG_ON} -a $INTEGRATED_AGENT_INSTALLATION_FLG -eq ${FLG_OFF} ]; then

        #if [ -n "${HBSAINSTDIR}" -o -n "${HGLMAINSTDIR}" -o -n "${HGLMALOGDIR}" ]; then # GLMAGTINST06200095 START
        #            print_messages "KAIF62004" 
        #            exit $PARAMETER_ERROR_VALUE 
        #fi                                                                              # GLMAGTINST06200095 END
        
        #if [ -z "$SILENT_VAR" ]; then                                                    # GLMAGTINST06200067  # GLMAGTINST06200114 START
        #   INSTALL_MODE="Overwrite installation"                                         # GLMAGTINST06200080    
        #   user_input $INSTALL_MODE     
        #fi                                                                               # GLMAGTINST06200067  # GLMAGTINST06200114 END
        
        hbsa_install_check
        readpath_info
        if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then            # GLMAGTINST06200076 START
               hbsa_service stop
               hglmagentlet_service invalidate
	       #snmp_service stop                           # GLMAGTINST06200116
        fi
               backup_files
               prepare_hbsa
               install_hbsa                                 # GLMAGTINST06200076 END
               create_ask_file
               register_pp_hbsa
	       install_hglmagt
	       #copy_installgetras                               # GLMAGTINST06200113
               create_evidence_file
               merge_files                                      # GLMAGTINST06200093 START
               if [ ! -z "${PROPERTY_CONFIG_FILE}" ]; then      
	          merge_property_files                          
               fi                                               # GLMAGTINST06200093 END
        snmpagent_validation   # GLMAGTINST06200061
	       if [ $? = 0 ]; then
	          snmp_service start 
               fi
               delete_temp_directory_not_exit # GLMAGTINST06200086
        hglmagentlet_service validate
        hbsa_service start      
   fi   
   
   # (overwrite) integrated installation
   
   if [ $FLG_OVERWRITEINSTALL -eq ${FLG_ON} -a $INTEGRATED_AGENT_INSTALLATION_FLG -eq ${FLG_ON} ]; then 
           
         #if [ -n "${HBSAINSTDIR}" -o -n "${HGLMAINSTDIR}" -o -n "${HGLMALOGDIR}" ]; then # GLMAGTINST06200095 START
         #       print_messages "KAIF62004" 
         #       exit $PARAMETER_ERROR_VALUE 
         #fi                                                                              # GLMAGTINST06200095 END
         #if [ -z "$SILENT_VAR" ]; then            # GLMAGTINST06200067  # GLMAGTINST06200114 START
         #   INSTALL_MODE="Overwrite installation" # GLMAGTINST06200080
         #   user_input $INSTALL_MODE
         #fi                                       # GLMAGTINST06200067  # GLMAGTINST06200114 END
           
         hbsa_install_check
         readpath_info
         if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then                     # GLMAGTINST06200076 START
              hbsa_service stop
              hglmagentlet_service invalidate
              #snmp_service stop                                      # GLMAGTINST06200116
         fi                                                           # GLMAGTINST06200076 END
         create_ask_file
         #if [ -d $PATH_HGLMAINSTDIR/HGLMAgent/config ]; then                                      # GLMAGTINST06200075 START # GLMAGTINST06200097 START
         #     ${REMOVE} $PATH_HGLMAINSTDIR/HGLMAgent/config/.IndependentInstallation              
         #fi                                                                                       # GLMAGTINST06200075 END   # GLMAGTINST06200097 END                    
         backup_files
         register_pp_hbsa
         install_hglmagt
         #copy_installgetras                                           # GLMAGTINST06200113
         #create_evidence_file                                                                      # GLMAGTINST06200097  # GLMAGTINST06200115
         merge_files
         snmpagent_validation  # GLMAGTINST06200061
         if [ $? = 0 ]; then
              snmp_service start 
         fi
         delete_temp_directory_not_exit                                                           # GLMAGTINST06200086
         hglmagentlet_service validate
         hbsa_service start      
   fi   
   
    
   # (overwrite by upgrade) independent/integrated installation
      
      if [ $FLG_UPGRADEINSTALL -eq ${FLG_ON} ]; then
      
              #if [ -n "${HBSAINSTDIR}" -o -n "${HGLMAINSTDIR}" -o -n "${HGLMALOGDIR}" ]; then    # GLMAGTINST06200095 START
              #       print_messages "KAIF62004" 
              #       exit $PARAMETER_ERROR_VALUE 
              #fi                                                                                 # GLMAGTINST06200095 END
          
          #if [ -z "$SILENT_VAR" ]; then                      # GLMAGTINST06200067  # GLMAGTINST06200114 START
          #   INSTALL_MODE="Overwrite installation"           # GLMAGTINST06200080
          #   user_input $INSTALL_MODE
          #fi                                                 # GLMAGTINST06200067  # GLMAGTINST06200114 END
          
          hbsa_install_check
          readpath_info                                      # GLMAGTINST06200096 START
          if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then
	     hbsa_service stop
	     hglmagentlet_service invalidate
	     #snmp_service stop                              # GLMAGTINST06200116
	  fi
	     backup_files
	     if [ $INTEGRATED_AGENT_INSTALLATION_FLG -eq ${FLG_OFF} ]; then         # GLMAGTINST06200120
	     prepare_hbsa
             install_hbsa
             fi                                                                     # GLMAGTINST06200120
             upgrade_install
             create_ask_file
             register_pp_hbsa
             install_hglmagt
             #copy_installgetras                              # GLMAGTINST06200113
             #if [ $INTEGRATED_AGENT_INSTALLATION_FLG -eq ${FLG_OFF} ]; then                       # GLMAGTINST06200097
             if [ $INTEGRATED_AGENT_INSTALLATION_FLG -eq ${FLG_OFF} ]; then         # GLMAGTINST06200120
	        create_evidence_file
	     fi                                                                     # GLMAGTINST06200120
             #fi                                                                                   # GLMAGTINST06200097 
             merge_files                                      # GLMAGTINST06200093 START
             if [ ! -z "${PROPERTY_CONFIG_FILE}" ]; then      
	          merge_property_files                        # GLMAGTINST06200093 END
             fi                                               # GLMAGTINST06200096 END         
             snmpagent_validation               # GLMAGTINST06200061
             if [ $? = 0 ]; then
                snmp_service start 
             fi
             delete_temp_directory_not_exit                   # GLMAGTINST06200086
             hglmagentlet_service validate
             hbsa_service start
         
     fi   
   
   # (downgrade) independent installation
   
   if [ $FLG_DOWNGRADEINSTALL -eq ${FLG_ON} ]; then
   
          #if [ -n "${HBSAINSTDIR}" -o -n "${HGLMAINSTDIR}" -o -n "${HGLMALOGDIR}" ]; then # GLMAGTINST06200095 START
          #        print_messages "KAIF62004"                  
          #        exit $PARAMETER_ERROR_VALUE 
          #fi                                                                              # GLMAGTINST06200095 END
          
          #if [ -z "$SILENT_VAR" ]; then          # GLMAGTINST06200067   # GLMAGTINST06200114 START
          #INSTALL_MODE="Overwrite installation"  # GLMAGTINST06200080
          #user_input $INSTALL_MODE
          #fi                                     # GLMAGTINST06200067   # GLMAGTINST06200114 END
          hbsa_install_check                     
	  readpath_info                             # GLMAGTINST06200096 START
	  if [ "$HBSA_EXIST" -eq "$FLG_ON" ]; then
	     hbsa_service stop
	     hglmagentlet_service invalidate
	     #snmp_service stop                     # GLMAGTINST06200116
	  fi
	     backup_files
	     prepare_hbsa
	     install_hbsa
	     downgrade_install
	     create_ask_file
	     register_pp_hbsa
	     install_hglmagt
	     #copy_installgetras                               # GLMAGTINST06200113
	     create_evidence_file	    
	     merge_files                                      # GLMAGTINST06200093 START
	     if [ ! -z "${PROPERTY_CONFIG_FILE}" ]; then      
	  	          merge_property_files                # GLMAGTINST06200093 END
             fi                                      # GLMAGTINST06200096 END                 
             snmpagent_validation                    # GLMAGTINST06200061
             if [ $? = 0 ]; then
                snmp_service start 
             fi
             delete_temp_directory_not_exit                   # GLMAGTINST06200086
             hglmagentlet_service validate
             hbsa_service start
                 
   fi   
#   if [ "$WARN_MSG_FLG" -eq "${FLG_ON}" ]; then                                             # GLMAGTINST06200107 START  # GLMAGTINST06200139
#   if [ "$WARN_MSG_FLG" = "${FLG_ON}" -o "$WARN_MSG" -eq "true" ]; then                      # GLMAGTINST06200139 # GLMAGTINST06200140
#    if [ "$SILENT_VAR" = "-s" ]; then                                                         # GLMAGTINST06200145 START #GLMAGTINST06200156 START
#       if [ "$WARN_MSG_FLG" -eq "${FLG_ON}" ]; then
#         log_message "WARN" "KAIF62001-W An error occured during HGLM Agent installation."
#       else
#         log_message "INFO" "KAIF62002-I The installation of HGLM Agent version $LATEST_VERSION completed normally."
#       fi
#    else                                                                                                                # GLMAGTINST06200156 END
       if [ "$WARN_MSG_FLG" -eq "${FLG_ON}" ]; then                                            # GLMAGTINST06200140
          print_messages "KAIF62001"
       else
          print_messages "KAIF62002" "$LATEST_VERSION"
       fi                                                         # GLMAGTINST06200107 END
#    fi                                                                                        # GLMAGTINST06200145 END  # GLMAGTINST06200156
exit $NORM_TERM
