import resource-agents-sap-hana-0.162.1-2.el8_8

This commit is contained in:
CentOS Sources 2023-05-16 06:04:01 +00:00 committed by Stepan Oksanichenko
parent 2995fc6438
commit df64d61871
10 changed files with 14 additions and 574 deletions

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
SOURCES/ClusterLabs-resource-agents-e711383f.tar.gz
SOURCES/SAPHanaSR-d1dde99.tar.gz
SOURCES/SAPHanaSR-6281418.tar.gz

View File

@ -1,2 +1,2 @@
0358e1cb7fe86b2105bd2646cbe86f3c0273844a SOURCES/ClusterLabs-resource-agents-e711383f.tar.gz
442679403d1287835841d70c5bef208a330c2c11 SOURCES/SAPHanaSR-d1dde99.tar.gz
8d25b08bed4b158d83a2884588a345374efdb500 SOURCES/SAPHanaSR-6281418.tar.gz

View File

@ -1,59 +0,0 @@
From ec9fd4e526e572fe9bc0070186fa584b032eac22 Mon Sep 17 00:00:00 2001
From: AngelaBriel <abriel@suse.com>
Date: Fri, 5 Mar 2021 19:18:02 +0100
Subject: [PATCH] during the function 'check_for_primary' sometimes the command
'hdbnsutil' does not work, but timed out. As a fallback we use
'getParameter.py' to get some parameter values from the global.ini file. In
the past the use of the variable 'mode' was sufficient, but now we more often
see the problem, that this variable does not contain the current mode of the
node. So we will switch to the variable 'actual_mode', which will be more
reliable updated by the SAP software and will (hopefully) provide us with the
current mode of the node in times, where 'hdbnsutil' refuse to answer. This
change will help to avoid the irritating and confusing message 'secondary has
unexpected sync status PRIM ==> RESCORE' on a primary node as seen in
bsc#1181765
---
heartbeat/SAPHana | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/heartbeat/SAPHana b/heartbeat/SAPHana
index 64e61e8..cd91ddf 100755
--- a/heartbeat/SAPHana
+++ b/heartbeat/SAPHana
@@ -1054,21 +1054,29 @@ function check_for_primary() {
super_ocf_log info "FLOW $FUNCNAME ($*)"
local rc=$HANA_STATE_DEFECT
# TODO: PRIO 3: Check beginning from which SPS does SAP support HDBSettings.sh?
- # TODO: Limit the runtime of hdbnsutil and use getParameter.py as fallback
- # TODO: PRIO2: Maybe we need to use a fallback interface when hdbnsutil does not answer properly -> lookup in config files?
- # This might also solve some problems when we could not figure-out the ilocal or remote site name
+ # DONE: Limit the runtime of hdbnsutil and use getParameter.py as fallback
+ # DONE: PRIO2: Maybe we need to use a fallback interface when hdbnsutil does not answer properly -> lookup in config files?
+ # TODO: This might also solve some problems when we could not figure-out the local or remote site name (site_name,site_id from global.ini)
local chkMethod=""
+ local ini_mode=""
for chkMethod in hU hU hU gP; do
case "$chkMethod" in
gP )
+ # fallback for 'hdbnsutil' failing 3 times.
local gpKeys=""
- gpKeys=$(echo --key=global.ini/system_replication/{mode,site_name,site_id})
+ gpKeys=$(echo --key=global.ini/system_replication/{actual_mode,mode})
node_full_status=$(HANA_CALL --timeout "$HANA_CALL_TIMEOUT" --cmd "HDBSettings.sh getParameter.py $gpKeys --sapcontrol=1" 2>&1 | awk -F/ 'BEGIN {out=0} /^SAPCONTROL-OK: <begin>/ { out=1 } /^SAPCONTROL-OK: <end>/ { out=0 } /=/ {if (out==1) {print $3} }')
- node_status=$(echo "$node_full_status" | awk -F= '$1=="mode" {print $2}')
+ # first try to get the value of 'actual_mode' from the global.ini
+ ini_mode=$(echo "$node_full_status" | awk -F= '$1=="actual_mode" {print $2}')
+ # if 'actual_mode' is not available, fallback to 'mode'
+ if [ -z "$ini_mode" ]; then
+ ini_mode=$(echo "$node_full_status" | awk -F= '$1=="mode" {print $2}')
+ fi
+ node_status="$ini_mode"
super_ocf_log info "ACT: Using getParameter.py as fallback - node_status=$node_status"
;;
hU | * )
- # DONE: PRIO1: Begginning from SAP HANA rev 112.03 -sr_state is not longer supported
+ # DONE: PRIO1: Beginning from SAP HANA rev 112.03 -sr_state is not longer supported
node_full_status=$(HANA_CALL --timeout "$HANA_CALL_TIMEOUT" --cmd "$hdbState" 2>/dev/null )
node_status=$(echo "$node_full_status" | awk '$1=="mode:" {print $2}')
super_ocf_log debug "DBG: check_for_primary: node_status=$node_status"

View File

@ -1,315 +0,0 @@
From 496f6ab824c51e08c9acc0e50c79495db55f90e8 Mon Sep 17 00:00:00 2001
From: AngelaBriel <abriel@suse.com>
Date: Wed, 24 Nov 2021 15:58:36 +0100
Subject: [PATCH] add support for the new systemd unit file handling for
sapstartsrv and saphostagent (bsc#1189530, bsc#1189531)
---
heartbeat/SAPHana | 148 +++++++++++++++++++++++++++----------------
heartbeat/SAPHanaTopology | 71 ++++++++++++++++++---
5 files changed, 173 insertions(+), 66 deletions(-)
diff --git a/heartbeat/SAPHana b/heartbeat/SAPHana
index 5da587d..aaff777 100755
--- a/heartbeat/SAPHana
+++ b/heartbeat/SAPHana
@@ -714,6 +714,7 @@ function saphana_init() {
super_ocf_log info "FLOW $FUNCNAME ($*)"
local rc=$OCF_SUCCESS
local clN
+ SYSTEMCTL="/usr/bin/systemctl"
# local site
# two parameter models (for transition only)
# OLD: InstanceName
@@ -944,6 +945,26 @@ function check_secstore_users()
return $rc
}
+# chk4systemdsupport - check, if SAP systemd support is available
+# check for the existence of the SAP SID+Instance related unit file
+# rc=0 - sap instance unit file exists
+# rc=1 - sap instance unit file does NOT exist
+function chk4systemdsupport() {
+ super_ocf_log info "FLOW ${FUNCNAME[0]}"
+ local systemd_unit_name="SAP${SID}_${InstanceNr}.service"
+ local rc=1
+ if [ -x "$SYSTEMCTL" ]; then
+ if [ -f /etc/systemd/system/"$systemd_unit_name" ]; then
+ rc=0
+ elif $SYSTEMCTL list-unit-files "$systemd_unit_name"; then
+ rc=0
+ else
+ rc=1
+ fi
+ fi
+ return $rc
+}
+
#
# function: check_sapstartsrv - check for sapstartsrv - optional start
# params: -
@@ -956,67 +977,86 @@ function check_sapstartsrv() {
local runninginst=""
local rc=$OCF_SUCCESS
local output=""
- if [ ! -S /tmp/.sapstream5${InstanceNr}13 ]; then
- super_ocf_log warn "ACT: sapstartsrv is not running for instance $SID-$InstanceName (no UDS), it will be started now"
- restart=1
+ if chk4systemdsupport; then
+ # use systemd to control sapstartsrv
+ local systemd_unit_name="SAP${SID}_${InstanceNr}.service"
+
+ if $SYSTEMCTL is-active --quiet "$systemd_unit_name"; then
+ super_ocf_log info "ACT: systemd service $systemd_unit_name is active"
+ else
+ super_ocf_log warn "ACT: systemd service $systemd_unit_name is not active, it will be started using systemd"
+ # use start, because restart does also stop sap instance
+ $SYSTEMCTL start "$systemd_unit_name" >/dev/null 2>&1; src=$?
+ if [ $src -ne 0 ]; then
+ super_ocf_log error "ACT: error during start of systemd unit ${systemd_unit_name}!"
+ rc=$OCF_ERR_GENERIC
+ ocf_is_probe && rc=$OCF_NOT_RUNNING
+ fi
+ fi
else
- output=$($SAPCONTROL -nr $InstanceNr -function ParameterValue INSTANCE_NAME -format script)
- if [ $? -eq 0 ]
- then
- runninginst=$(echo "$output" | grep '^0 : ' | cut -d' ' -f3)
- if [ "$runninginst" != "$InstanceName" ]
+ # no SAP systemd unit available, continue with old code...
+ if [ ! -S /tmp/.sapstream5${InstanceNr}13 ]; then
+ super_ocf_log warn "ACT: sapstartsrv is not running for instance $SID-$InstanceName (no UDS), it will be started now"
+ restart=1
+ else
+ output=$($SAPCONTROL -nr $InstanceNr -function ParameterValue INSTANCE_NAME -format script)
+ if [ $? -eq 0 ]
then
- super_ocf_log warn "ACT: sapstartsrv is running for instance $runninginst, that service will be killed"
- restart=1
- else
- output=$($SAPCONTROL -nr $InstanceNr -function AccessCheck Start)
- if [ $? -ne 0 ]; then
- super_ocf_log warn "ACT: FAILED - sapcontrol -nr $InstanceNr -function AccessCheck Start ($(ls -ld1 /tmp/.sapstream5${InstanceNr}13))"
- super_ocf_log warn "ACT: sapstartsrv will be restarted to try to solve this situation, otherwise please check sapstsartsrv setup (SAP Note 927637)"
+ runninginst=$(echo "$output" | grep '^0 : ' | cut -d' ' -f3)
+ if [ "$runninginst" != "$InstanceName" ]
+ then
+ super_ocf_log warn "ACT: sapstartsrv is running for instance $runninginst, that service will be killed"
restart=1
+ else
+ output=$($SAPCONTROL -nr $InstanceNr -function AccessCheck Start)
+ if [ $? -ne 0 ]; then
+ super_ocf_log warn "ACT: FAILED - sapcontrol -nr $InstanceNr -function AccessCheck Start ($(ls -ld1 /tmp/.sapstream5${InstanceNr}13))"
+ super_ocf_log warn "ACT: sapstartsrv will be restarted to try to solve this situation, otherwise please check sapstsartsrv setup (SAP Note 927637)"
+ restart=1
+ fi
fi
+ else
+ super_ocf_log warn "ACT: sapstartsrv is not running for instance $SID-$InstanceName, it will be started now"
+ restart=1
fi
- else
- super_ocf_log warn "ACT: sapstartsrv is not running for instance $SID-$InstanceName, it will be started now"
- restart=1
fi
- fi
- if [ -z "$runninginst" ]; then runninginst=$InstanceName; fi
- if [ $restart -eq 1 ]
- then
- if [ -d /usr/sap/$SID/SYS/profile/ ]
+ if [ -z "$runninginst" ]; then runninginst=$InstanceName; fi
+ if [ $restart -eq 1 ]
then
- DIR_PROFILE="/usr/sap/$SID/SYS/profile"
- else
- assert "Expected /usr/sap/$SID/SYS/profile/ to be a directory, please set DIR_PROFILE parameter!"
- fi
- [ ! -r $SAPSTARTPROFILE ] && assert "Expected $SAPSTARTPROFILE to be the instance START profile, please set INSTANCE_PROFILE parameter!"
- pkill -9 -f "sapstartsrv.*$runninginst"
- # removing the unix domain socket files as they might have wrong permissions
- # or ownership - they will be recreated by sapstartsrv during next start
- rm -f /tmp/.sapstream5${InstanceNr}13
- rm -f /tmp/.sapstream5${InstanceNr}14
- (
- export PATH="$DIR_EXECUTABLE${PATH:+:}$PATH"
- export LD_LIBRARY_PATH="$DIR_EXECUTABLE${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
- $SAPSTARTSRV pf=$SAPSTARTPROFILE -D -u $sidadm
- )
- # now make sure the daemon has been started and is able to respond
- local srvrc=1
- while [ $srvrc -eq 1 -a $(pgrep -f "sapstartsrv.*$runninginst" | wc -l) -gt 0 ]
- do
- sleep 1
- $SAPCONTROL -nr $InstanceNr -function GetProcessList > /dev/null 2>&1
- srvrc=$?
- done
- if [ $srvrc -ne 1 ]
- then
- super_ocf_log info "ACT: sapstartsrv for instance $SID-$InstanceName was restarted!"
- rc=$OCF_SUCCESS
- else
- super_ocf_log error "ACT: sapstartsrv for instance $SID-$InstanceName could not be started!"
- rc=$OCF_ERR_GENERIC
- ocf_is_probe && rc=$OCF_NOT_RUNNING
+ if [ -d /usr/sap/$SID/SYS/profile/ ]
+ then
+ DIR_PROFILE="/usr/sap/$SID/SYS/profile"
+ else
+ assert "Expected /usr/sap/$SID/SYS/profile/ to be a directory, please set DIR_PROFILE parameter!"
+ fi
+ [ ! -r $SAPSTARTPROFILE ] && assert "Expected $SAPSTARTPROFILE to be the instance START profile, please set INSTANCE_PROFILE parameter!"
+ pkill -9 -f "sapstartsrv.*$runninginst"
+ # removing the unix domain socket files as they might have wrong permissions
+ # or ownership - they will be recreated by sapstartsrv during next start
+ rm -f /tmp/.sapstream5${InstanceNr}13
+ rm -f /tmp/.sapstream5${InstanceNr}14
+ (
+ export PATH="$DIR_EXECUTABLE${PATH:+:}$PATH"
+ export LD_LIBRARY_PATH="$DIR_EXECUTABLE${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+ $SAPSTARTSRV pf=$SAPSTARTPROFILE -D -u $sidadm
+ )
+ # now make sure the daemon has been started and is able to respond
+ local srvrc=1
+ while [ $srvrc -eq 1 -a $(pgrep -f "sapstartsrv.*$runninginst" | wc -l) -gt 0 ]
+ do
+ sleep 1
+ $SAPCONTROL -nr $InstanceNr -function GetProcessList > /dev/null 2>&1
+ srvrc=$?
+ done
+ if [ $srvrc -ne 1 ]
+ then
+ super_ocf_log info "ACT: sapstartsrv for instance $SID-$InstanceName was restarted!"
+ rc=$OCF_SUCCESS
+ else
+ super_ocf_log error "ACT: sapstartsrv for instance $SID-$InstanceName could not be started!"
+ rc=$OCF_ERR_GENERIC
+ ocf_is_probe && rc=$OCF_NOT_RUNNING
+ fi
fi
fi
return $rc
diff --git a/heartbeat/SAPHanaTopology b/heartbeat/SAPHanaTopology
index 29819d7..8dd133e 100755
--- a/heartbeat/SAPHanaTopology
+++ b/heartbeat/SAPHanaTopology
@@ -14,7 +14,7 @@
# License: GNU General Public License (GPL)
# Copyright: (c) 2014 SUSE Linux Products GmbH
# (c) 2015-2018 SUSE Linux GmbH
-# (c) 2019 SUSE LLC
+# (c) 2019-2021 SUSE LLC
#
# An example usage:
# See usage() function below for more details...
@@ -27,7 +27,7 @@
#
#######################################################################
# DONE PRIO 1: AFTER(!) SAP HANA SPS12 is available we could use hdbnsutil --sr_stateConfiguration
-SAPHanaTopologyVersion="0.154.0"
+SAPHanaTopologyVersion="0.155.0"
#
# Initialization:
timeB=$(date '+%s')
@@ -458,6 +458,8 @@ function sht_init() {
local siteID
local siteNAME
local chkMethod=""
+ SYSTEMCTL="/usr/bin/systemctl"
+ systemd_unit_name="saphostagent.service"
HOSTEXECNAME=saphostexec
USRSAP=/usr/sap
SAPSERVICE_PATH=${USRSAP}/sapservices
@@ -662,6 +664,24 @@ function check_for_primary() {
return $rc
}
+# chk4systemdsupport - check, if SAP systemd support is available
+# check for the existence of the SAP Host Agent related unit file
+# rc=0 - SAP Host Agent unit file exists
+# rc=1 - SAP Host Agent unit file does NOT exist
+function chk4systemdsupport() {
+ super_ocf_log info "FLOW ${FUNCNAME[0]}"
+ local rc=1
+ if [ -x "$SYSTEMCTL" ]; then
+ if [ -f /etc/systemd/system/"$systemd_unit_name" ]; then
+ rc=0
+ elif $SYSTEMCTL list-unit-files "$systemd_unit_name"; then
+ rc=0
+ else
+ rc=1
+ fi
+ fi
+ return $rc
+}
#
# function: start_saphostagent
@@ -671,8 +691,19 @@ function check_for_primary() {
function start_saphostagent()
{
### SAP-CALL
- if [ -x "${HOSTEXEC_PATH}" ]; then
- ${HOSTEXEC_PATH} pf=${HOSTEXEC_PROFILE_PATH}
+ if chk4systemdsupport; then
+ # use systemd to control saphostagent
+ if $SYSTEMCTL is-active --quiet "$systemd_unit_name"; then
+ super_ocf_log info "ACT: systemd service $systemd_unit_name is active"
+ else
+ super_ocf_log warn "ACT: systemd service $systemd_unit_name is not active, it will be started using systemd"
+ $SYSTEMCTL start "$systemd_unit_name" >/dev/null 2>&1
+ fi
+ else
+ # no SAP systemd unit available, continue with old code...
+ if [ -x "${HOSTEXEC_PATH}" ]; then
+ ${HOSTEXEC_PATH} pf=${HOSTEXEC_PROFILE_PATH}
+ fi
fi
return 0
}
@@ -685,8 +716,19 @@ function start_saphostagent()
function stop_saphostagent()
{
### SAP-CALL
- if [ -x "${HOSTEXEC_PATH}" ]; then
- ${HOSTEXEC_PATH} -stop
+ if chk4systemdsupport; then
+ # use systemd to control saphostagent
+ if $SYSTEMCTL is-active --quiet "$systemd_unit_name"; then
+ super_ocf_log warn "ACT: systemd service $systemd_unit_name is active, now stopping using systemd"
+ $SYSTEMCTL stop "$systemd_unit_name" >/dev/null 2>&1
+ else
+ super_ocf_log info "ACT: systemd service $systemd_unit_name is not active"
+ fi
+ else
+ # no SAP systemd unit available, continue with old code...
+ if [ -x "${HOSTEXEC_PATH}" ]; then
+ ${HOSTEXEC_PATH} -stop
+ fi
fi
}
@@ -698,9 +740,20 @@ function stop_saphostagent()
function check_saphostagent()
{
local rc=1
- # TODO: PRIO3: should the path been removed like "saphostexec" instead of "/usr/sap/hostctrl/exe/saphostexec"
- # or should we use ${HOSTEXEC_PATH} instead?
- pgrep -f /usr/sap/hostctrl/exe/saphostexec; rc=$?
+ if chk4systemdsupport; then
+ # use systemd to control saphostagent
+ if $SYSTEMCTL is-active --quiet "$systemd_unit_name"; then
+ super_ocf_log warn "ACT: systemd service $systemd_unit_name is active"
+ rc=0
+ else
+ super_ocf_log info "ACT: systemd service $systemd_unit_name is not active"
+ fi
+ else
+ # no SAP systemd unit available, continue with old code...
+ # TODO: PRIO3: should the path been removed like "saphostexec" instead of "/usr/sap/hostctrl/exe/saphostexec"
+ # or should we use ${HOSTEXEC_PATH} instead?
+ pgrep -f /usr/sap/hostctrl/exe/saphostexec; rc=$?
+ fi
return $rc
}

View File

@ -1,36 +0,0 @@
From 28658d187bbfdcb6a7c570f327c20be4ae253794 Mon Sep 17 00:00:00 2001
From: AngelaBriel <abriel@suse.com>
Date: Thu, 25 Nov 2021 15:17:10 +0100
Subject: [PATCH] supress output of comman 'systemctl list-unit-files'
---
heartbeat/SAPHana | 2 +-
heartbeat/SAPHanaTopology | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/heartbeat/SAPHana b/heartbeat/SAPHana
index aaff777..3569b3d 100755
--- a/heartbeat/SAPHana
+++ b/heartbeat/SAPHana
@@ -956,7 +956,7 @@ function chk4systemdsupport() {
if [ -x "$SYSTEMCTL" ]; then
if [ -f /etc/systemd/system/"$systemd_unit_name" ]; then
rc=0
- elif $SYSTEMCTL list-unit-files "$systemd_unit_name"; then
+ elif $SYSTEMCTL list-unit-files "$systemd_unit_name" >/dev/null 2>&1; then
rc=0
else
rc=1
diff --git a/heartbeat/SAPHanaTopology b/heartbeat/SAPHanaTopology
index 8dd133e..74f3e72 100755
--- a/heartbeat/SAPHanaTopology
+++ b/heartbeat/SAPHanaTopology
@@ -674,7 +674,7 @@ function chk4systemdsupport() {
if [ -x "$SYSTEMCTL" ]; then
if [ -f /etc/systemd/system/"$systemd_unit_name" ]; then
rc=0
- elif $SYSTEMCTL list-unit-files "$systemd_unit_name"; then
+ elif $SYSTEMCTL list-unit-files "$systemd_unit_name" >/dev/null 2>&1; then
rc=0
else
rc=1

View File

@ -1,42 +0,0 @@
From 65a7f2b88f674b680160b8015cd1ee1ad61b6293 Mon Sep 17 00:00:00 2001
From: AngelaBriel <abriel@suse.com>
Date: Mon, 20 Dec 2021 10:23:24 +0100
Subject: [PATCH] The return value of 'systemctl list-unit-files <service>' is
not reliable on all SLE15 codestreams, so it is not usable for our resource
agents. We need to go back to parsing the command output instead and hoping,
that the output format will not change in the future, because that will
breake the solution again as well.
---
heartbeat/SAPHana | 3 ++-
heartbeat/SAPHanaTopology | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/heartbeat/SAPHana b/heartbeat/SAPHana
index 3569b3d..ed1ca00 100755
--- a/heartbeat/SAPHana
+++ b/heartbeat/SAPHana
@@ -956,7 +956,8 @@ function chk4systemdsupport() {
if [ -x "$SYSTEMCTL" ]; then
if [ -f /etc/systemd/system/"$systemd_unit_name" ]; then
rc=0
- elif $SYSTEMCTL list-unit-files "$systemd_unit_name" >/dev/null 2>&1; then
+ elif $SYSTEMCTL list-unit-files | \
+ awk '$1 == service { found=1 } END { if (! found) {exit 1}}' service="${systemd_unit_name}.service"; then
rc=0
else
rc=1
diff --git a/heartbeat/SAPHanaTopology b/heartbeat/SAPHanaTopology
index 74f3e72..f5dcb30 100755
--- a/heartbeat/SAPHanaTopology
+++ b/heartbeat/SAPHanaTopology
@@ -674,7 +674,8 @@ function chk4systemdsupport() {
if [ -x "$SYSTEMCTL" ]; then
if [ -f /etc/systemd/system/"$systemd_unit_name" ]; then
rc=0
- elif $SYSTEMCTL list-unit-files "$systemd_unit_name" >/dev/null 2>&1; then
+ elif $SYSTEMCTL list-unit-files | \
+ awk '$1 == service { found=1 } END { if (! found) {exit 1}}' service="${systemd_unit_name}.service"; then
rc=0
else
rc=1

View File

@ -1,30 +0,0 @@
From 621c6cc4ca494834f921671a4540b7063a33648e Mon Sep 17 00:00:00 2001
From: Frank Danapfel <frank.danapfel@redhat.com>
Date: Fri, 12 Nov 2021 11:35:15 +0100
Subject: [PATCH] SAPHana: remove info about HANA_CALL_TIMEOUT parameter
It doesn't make sense to have HANA_CALL_TIMEOUT listed as a parameter since it is hardcoded to 60s and therefore can't be changed.
---
heartbeat/SAPHana | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/heartbeat/SAPHana b/heartbeat/SAPHana
index cd91ddf..5da587d 100755
--- a/heartbeat/SAPHana
+++ b/heartbeat/SAPHana
@@ -242,15 +242,6 @@ The resource agent uses the following four interfaces provided by SAP:
</longdesc>
<content type="string" default="7200" />
</parameter>
- <parameter name="HANA_CALL_TIMEOUT" unique="0" required="0">
- <shortdesc lang="en">Define timeout how long a call to HANA to receive information can take.</shortdesc>
- <longdesc lang="en">Define timeout how long a call to HANA to receive information can take. This could be eg landscapeHostConfiguration.py.
- There are some specific calls to HANA which have their own timeout values. For example the takeover command does not timeout (inf).
- If the timeout is reached, the return code will be 124. If you increase the timeouts for HANA calls you should also adjust the operation timeouts
- of your cluster resources.
- </longdesc>
- <content type="string" default="60" />
- </parameter>
<parameter name="DIR_EXECUTABLE" unique="0" required="0">
<longdesc lang="en">The full qualified path where to find sapstartsrv and sapcontrol. Specify this parameter, if you have changed the SAP kernel directory location after the default SAP installation.</longdesc>
<shortdesc lang="en">Path of sapstartsrv and sapcontrol</shortdesc>

View File

@ -1,30 +0,0 @@
From 91a6a7fca636972a9604675a99946e8a8e51fd73 Mon Sep 17 00:00:00 2001
From: Frank Danapfel <frank.danapfel@redhat.com>
Date: Fri, 12 Nov 2021 11:36:33 +0100
Subject: [PATCH] SAPHanaTopology: Remove info about HANA_CALL_TIMEOUT
It doesn't make sense to have HANA_CALL_TIMEOUT listed as a parameter since it is hardcoded to 60s and therefore can't be changed.
---
heartbeat/SAPHanaTopology | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/heartbeat/SAPHanaTopology b/heartbeat/SAPHanaTopology
index afc645c..29819d7 100755
--- a/heartbeat/SAPHanaTopology
+++ b/heartbeat/SAPHanaTopology
@@ -173,15 +173,6 @@ SAPHanaTopology scans the output table of landscapeHostConfiguration.py to ident
<shortdesc lang="en">The SAP Instance Number</shortdesc>
<content type="string" default="" />
</parameter>
- <parameter name="HANA_CALL_TIMEOUT" unique="0" required="0">
- <shortdesc lang="en">Define timeout how long a call to HANA to receive information can take.</shortdesc>
- <longdesc lang="en">Define timeout how long a call to HANA to receive information can take. This could be eg landscapeHostConfiguration.py.
- There are some specific calls to HANA which have their own timeout values. For example the takeover command does not timeout (inf).
- If the timeout is reached, the return code will be 124. If you increase the timeouts for HANA calls you should also adjust the operation timeouts
- of your cluster resources.
- </longdesc>
- <content type="string" default="60" />
- </parameter>
<parameter name="DIR_EXECUTABLE" unique="0" required="0">
<longdesc lang="en">Path to the SAP Hana Instance executable directory. If not set the RA tries /usr/sap/\$SID/\$InstanceName/exe.
While InstanceName is the string of "HDB" and \$InstanceNumber for SAP Hana databases.

View File

@ -1,41 +0,0 @@
From 182dbd793e9c6ce0e5a0abc7d595a864175248bb Mon Sep 17 00:00:00 2001
From: Oyvind Albrigtsen <oalbrigt@redhat.com>
Date: Thu, 20 Jan 2022 10:41:51 +0100
Subject: [PATCH] SAPHana*: follow OCF standard for version and OCF version in
metadata
---
heartbeat/SAPHana | 4 ++--
heartbeat/SAPHanaTopology | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/heartbeat/SAPHana b/heartbeat/SAPHana
index 295eff0..6527362 100755
--- a/heartbeat/SAPHana
+++ b/heartbeat/SAPHana
@@ -160,8 +160,8 @@ function saphana_meta_data() {
cat <<END
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
-<resource-agent name="SAPHana">
-<version>$SAPHanaVersion</version>
+<resource-agent name="SAPHana" version="$SAPHanaVersion">
+<version>1.0</version>
<shortdesc lang="en">Manages two SAP HANA database systems in system replication (SR).</shortdesc>
<longdesc lang="en">
diff --git a/heartbeat/SAPHanaTopology b/heartbeat/SAPHanaTopology
index 3fce400..9ad2101 100755
--- a/heartbeat/SAPHanaTopology
+++ b/heartbeat/SAPHanaTopology
@@ -134,8 +134,8 @@ function sht_meta_data() {
cat <<END
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
-<resource-agent name="SAPHanaTopology">
- <version>$SAPHanaTopologyVersion</version>
+<resource-agent name="SAPHanaTopology" version="$SAPHanaTopologyVersion">
+ <version>1.0</version>
<shortdesc lang="en">Analyzes SAP HANA System Replication Topology.</shortdesc>
<longdesc lang="en">This RA analyzes the SAP HANA topology and "sends" all findings via the node status attributes to
all nodes in the cluster. These attributes are taken by the SAPHana RA to control the SAP Hana Databases.

View File

@ -23,13 +23,13 @@
%global upstream_version e711383f
%global saphana_prefix SAPHanaSR
%global saphana_version d1dde99
%global saphana_version 6281418
Name: resource-agents-sap-hana
Summary: SAP HANA cluster resource agents
Epoch: 1
Version: 0.154.0
Release: 7%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
Version: 0.162.1
Release: 2%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
License: GPLv2+
URL: https://github.com/SUSE/SAPHanaSR
%if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
@ -39,13 +39,6 @@ Group: Productivity/Clustering/HA
%endif
Source0: %{upstream_prefix}-%{upstream_version}.tar.gz
Source1: %{saphana_prefix}-%{saphana_version}.tar.gz
Patch0: bz1855885-SAPHana-use-actual-mode.patch
Patch1: bz2026727-1-SAPHana-remove-HANA_CALL_TIMEOUT-parameter.patch
Patch2: bz2026727-2-SAPHanaTopology-remove-HANA_CALL_TIMEOUT-parameter.patch
Patch3: bz2026273-1-SAPHana-SAPHanaTopology-add-systemd-support.patch
Patch4: bz2026273-2-SAPHana-SAPHanaTopology-suppress-systemctl-output.patch
Patch5: bz2026273-3-SAPHana-SAPHanaTopology-fix-unit-test-issue.patch
Patch6: bz2050205-SAPHana-SAPHanaTopology-fix-metadata-version.patch
BuildArch: noarch
@ -79,13 +72,7 @@ sed -i -e '/ ocf_heartbeat_SAPInstance.7 \\/a\
# change provider company
sed -i -e 's/\("provider_company": \)"SUSE"/\1"Red Hat"/g' %{saphana_prefix}-%{saphana_version}/srHook/SAPHanaSR.py
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
#%patch0 -p1
%build
if [ ! -f configure ]; then
@ -115,8 +102,9 @@ make install DESTDIR=%{buildroot}
find %{buildroot}/usr/lib/ocf ! -type d ! -iname "SAPHana*" -exec rm {} \;
find %{buildroot}/%{_mandir} -type f ! -iname "*SAPHana*" -exec rm {} \;
mkdir %{buildroot}/%{_datadir}/SAPHanaSR
cp -r %{saphana_prefix}-%{saphana_version}/srHook %{buildroot}/%{_datadir}/SAPHanaSR
mkdir -p %{buildroot}/%{_datadir}/SAPHanaSR/srHook
cp -r %{saphana_prefix}-%{saphana_version}/srHook/global.ini %{buildroot}/%{_datadir}/SAPHanaSR/srHook
cp -r %{saphana_prefix}-%{saphana_version}/srHook/SAPHanaSR.py %{buildroot}/%{_datadir}/SAPHanaSR/srHook
## tree fixup
# remove docs (there is only one and they should come from doc sections in files)
@ -142,6 +130,11 @@ rm -rf %{buildroot}
%exclude /usr/src
%changelog
* Mon Mar 20 2023 Janine Fuchs <jfuchs@redhat.com> - 0.162.1-2
- Rebase to SAPHanaSR 0.162.1 upstream release.
Resolves: rhbz#2165668
* Thu Feb 3 2022 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.154.0-7
- SAPHana/SAPHanaTopology: follow OCF standard for version and OCF
version in metadata