#!/bin/ksh93
#  ALTRAN_PROLOG_BEGIN_TAG                                                    
#  This is an automatically generated prolog.                                  
#                                                                              
#  Copyright (C) Altran ACT S.A.S. 2019,2021.  All rights reserved.  
#                                                                              
#  ALTRAN_PROLOG_END_TAG                                                      
#                                                                              
# IBM_PROLOG_BEGIN_TAG 
# This is an automatically generated prolog. 
#  
# 61haes_r714 src/43haes/usr/sbin/cluster/sa/tsmclient/sbin/cl_tsmclimanual.sh 1.1 
#  
# Licensed Materials - Property of IBM 
#  
# COPYRIGHT International Business Machines Corp. 2010 
# All Rights Reserved 
#  
# US Government Users Restricted Rights - Use, duplication or 
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp. 
#  
# IBM_PROLOG_END_TAG 
# @(#)  7d4c34b 43haes/usr/sbin/cluster/sa/tsmclient/sbin/cl_tsmclimanual.sh, 726, 2147A_aha726, Feb 05 2021 09:50 PM
#################################################################################
# Name: cl_tsmclimanual
#
# Purpose: To create PowerHA SystemMirror resources and Resource group for Managing
#          TSM client using manual configuration.
#
# Arguments:
#	n/a
#
# Returns: 0 for Sucess
#          1 for Failure
################################################################################

. /usr/es/sbin/cluster/sa/tsmclient/sbin/cl_tsmcliGlobals
. /usr/es/sbin/cluster/sa/tsmclient/sbin/cl_tsmcliUtilities 
KLIB_HACMPLOG_ENTRY=$KLIB_TSM_CLIENT_HACMPLOG_ENTRY

dspmsg -s 1 tsmclientsa.cat 67 "configuring TSM client using manual configuration\n"
KLIB_SA_logmsg INFO 1 67 tsmclientsa.cat "configuring TSM client using manual configuration\n"

typeset APPLICATION_ID     # Smart Assist Application Name of the TSM backup archive client.
typeset PRIMNODE TAKEOVNODES # primary and takeover nodes.
typeset FILESYSTEMS          # TSM client file systems to be backed up.
typeset SERVICE_IP           # Service IP for the TSM client.
typeset NETMASK              # Netmask/ prefix Length of service IP address.
typeset HSM                  # HSM client is included or not along with backup archive client.
typeset TSM_CONF_DIR         # TSM configuration directory
typeset XML_PATH=""

while getopts f: opt
do
        case $opt in

                f) # xml file path
                        XML_PATH=$OPTARG
                        ;;
        esac
done

APPLICATION_ID=$($TSM_CLIENT_HA_SBIN/cl_tsm_client_query -c|grep -v application_name|awk -F: '{ print $1 }')
validateAppName "$APPLICATION_ID"
[[ "$?" == "1" ]] && {
          KLIB_SA_logmsg ERROR 1 11 tsmclientsa.cat "TSM client smart assist Application id=%1\$s is not in the range [a-z][A-z][0-9]_.\n" "$APPLICATION_ID"
          exit 1
          }

PRIMNODE=$($SA_SBIN/clsaxmlutil -s -x $XML_PATH -m $TSM_CLIENT_HA_CONFIG/cl_tsmclient_config.xsd -t PrimaryNode|awk -F= '{ print $2 }')
[[ $? != 0 || -z $PRIMNODE ]] && {
		KLIB_SA_logmsg ERROR 1 68 tsmclientsa.cat "No value is specified for PrimaryNode property in TSM client xml file\n"
		exit 1
		}

TAKEOVNODES=$($SA_SBIN/clsaxmlutil -s -x $XML_PATH -m $TSM_CLIENT_HA_CONFIG/cl_tsmclient_config.xsd -t TakeoverNodes|awk -F= '{ print $2 }')
if [[ $? == 0 && -n TAKEOVNODES ]]
then
        TAKEOVNODES=$(echo $TAKEOVNODES|tr "," " ")
else
        KLIB_SA_logmsg ERROR 1 69 tsmclientsa.cat "No value is specified for TakeoverNodes property in TSM client xml file\n"
	exit 1
fi

TSM_CONF_DIR=$($SA_SBIN/clsaxmlutil -s -x $XML_PATH -m $TSM_CLIENT_HA_CONFIG/cl_tsmclient_config.xsd -t ConfigDirectory|awk -F= '{ print $2
}')
[[ $? != 0 || -z TSM_CONF_DIR ]] && {
		KLIB_SA_logmsg ERROR 1 70 tsmclientsa.cat "No value is specified for ConfigDirectory property in TSM client xml file\n"
		exit 1
		}

SERVICE_IP=$($SA_SBIN/clsaxmlutil -s -x $XML_PATH -m $TSM_CLIENT_HA_CONFIG/cl_tsmclient_config.xsd -t IPAddress_or_name|awk -F= '{ print $2 }'
)
[[ $? != 0 || -z $SERVICE_IP ]] && {
		KLIB_SA_logmsg ERROR 1 71 tsmclientsa.cat "No value is specified for ServiceIPs property in TSM client xml file\n"
		exit 1
		}

SERVICE_IP=$(/usr/bin/host $SERVICE_IP|awk -F" " '{print $1}'|awk -F. '{print $1}')
[[ $? != 0 ]] && {
		KLIB_SA_logmsg ERROR 1 74 tsmclientsa.cat "No entry for service IP in /etc/host file\n"
		exit 1
		}

NETMASK=$($SA_SBIN/clsaxmlutil -s -x $XML_PATH -m $TSM_CLIENT_HA_CONFIG/cl_tsmclient_config.xsd -t Prefix_or_Netmask|awk -F= '{ print $2 }')

HSM=$($SA_SBIN/clsaxmlutil -s -x $XML_PATH -m $TSM_CLIENT_HA_CONFIG/cl_tsmclient_config.xsd -t Hsm|awk -F= '{ print $2 }')
[[ $? != 0 || -z $HSM ]] && {
		KLIB_SA_logmsg ERROR 1 72 tsmclinetsa.cat "No value is specified for Hsm property in TSM clinet xml file\n"
		exit 1
		}

FILESYSTEMS=$($SA_SBIN/clsaxmlutil -s -x $XML_PATH -m $TSM_CLIENT_HA_CONFIG/cl_tsmclient_config.xsd -t FileSystems|awk -F= '{ print $2 }')
if [[ $? == 0 && -n $FILESYSTEMS ]]
then
        FILESYSTEMS=$(echo $FILESYSTEMS)
else
         KLIB_SA_logmsg ERROR 1 73 tsmclinetsa.cat "No value is specified for FileSystems property in TSM clinet xml file\n"
	 exit 1
fi

validateNodes $PRIMNODE "$TAKEOVNODES"
(( $? != 0 )) && {
KLIB_SA_logmsg ERROR 1 15 tsmclientsa.cat "TSM client smart assist has primary=%1\$s and takeover nodes=%2\$s as repetitive\n" $PRIMNODE "$TAKEOVNODES"
exit 1
}

if [[ -z $NETMASK ]];then
	
	$TSM_CLIENT_HA_SBIN/cl_tsm_client_config -a $APPLICATION_ID -d $TSM_CONF_DIR -p $PRIMNODE -t "$TAKEOVNODES" -f "$FILESYSTEMS" -s $SERVICE_IP -h $HSM
	exit $?
else

	$TSM_CLIENT_HA_SBIN/cl_tsm_client_config -a $APPLICATION_ID -d $TSM_CONF_DIR -p $PRIMNODE -t "$TAKEOVNODES" -f "$FILESYSTEMS" -s $SERVICE_IP -n $NETMASK -h $HSM
	exit $?
fi
