From 1440276e778068672734f9817b734d4f49a28ffe Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: May 17 2022 08:36:43 +0000 Subject: import resource-agents-sap-hana-0.155.0-4.el9 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4348591 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/ClusterLabs-resource-agents-e76b7d3a.tar.gz +SOURCES/SAPHanaSR-2dea8fe.tar.gz diff --git a/.resource-agents-sap-hana.metadata b/.resource-agents-sap-hana.metadata new file mode 100644 index 0000000..51f14c0 --- /dev/null +++ b/.resource-agents-sap-hana.metadata @@ -0,0 +1,2 @@ +b1c1e65d690d94e080319217486f8dcd248b2a2a SOURCES/ClusterLabs-resource-agents-e76b7d3a.tar.gz +e5ae03dcac77cbb2f5ec85d3785f048c0de0acc0 SOURCES/SAPHanaSR-2dea8fe.tar.gz diff --git a/SOURCES/bz2027423-1-SAPHana-remove-HANA_CALL_TIMEOUT-parameter.patch b/SOURCES/bz2027423-1-SAPHana-remove-HANA_CALL_TIMEOUT-parameter.patch new file mode 100644 index 0000000..80a8cbb --- /dev/null +++ b/SOURCES/bz2027423-1-SAPHana-remove-HANA_CALL_TIMEOUT-parameter.patch @@ -0,0 +1,30 @@ +From 621c6cc4ca494834f921671a4540b7063a33648e Mon Sep 17 00:00:00 2001 +From: Frank Danapfel +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: + + + +- +- Define timeout how long a call to HANA to receive information can take. +- 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. +- +- +- + + 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. + Path of sapstartsrv and sapcontrol diff --git a/SOURCES/bz2027423-2-SAPHanaTopology-remove-HANA_CALL_TIMEOUT-parameter.patch b/SOURCES/bz2027423-2-SAPHanaTopology-remove-HANA_CALL_TIMEOUT-parameter.patch new file mode 100644 index 0000000..e8da0c9 --- /dev/null +++ b/SOURCES/bz2027423-2-SAPHanaTopology-remove-HANA_CALL_TIMEOUT-parameter.patch @@ -0,0 +1,30 @@ +From 91a6a7fca636972a9604675a99946e8a8e51fd73 Mon Sep 17 00:00:00 2001 +From: Frank Danapfel +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 + The SAP Instance Number + + +- +- Define timeout how long a call to HANA to receive information can take. +- 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. +- +- +- + + 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. diff --git a/SOURCES/bz2027423-3-SAPHana-SAPHanaTopology-fix-metadata-version.patch b/SOURCES/bz2027423-3-SAPHana-SAPHanaTopology-fix-metadata-version.patch new file mode 100644 index 0000000..f09a53e --- /dev/null +++ b/SOURCES/bz2027423-3-SAPHana-SAPHanaTopology-fix-metadata-version.patch @@ -0,0 +1,41 @@ +From 182dbd793e9c6ce0e5a0abc7d595a864175248bb Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +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 < + +- +-$SAPHanaVersion ++ ++1.0 + + Manages two SAP HANA database systems in system replication (SR). + +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 < + +- +- $SAPHanaTopologyVersion ++ ++ 1.0 + Analyzes SAP HANA System Replication Topology. + 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. diff --git a/SPECS/resource-agents-sap-hana.spec b/SPECS/resource-agents-sap-hana.spec new file mode 100644 index 0000000..412d93d --- /dev/null +++ b/SPECS/resource-agents-sap-hana.spec @@ -0,0 +1,229 @@ +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. +# + +# Below is the script used to generate a new source file +# from the SAPHanaSR upstream git repo. +# +# TAG=$(git log --pretty="format:%h" -n 1) +# distdir="SAPHanaSR-${TAG}" +# TARFILE="${distdir}.tar.gz" +# rm -rf $TARFILE $distdir +# git archive --prefix=$distdir/ HEAD | gzip > $TARFILE +# + +%global upstream_prefix ClusterLabs-resource-agents +%global upstream_version e76b7d3a + +%global saphana_prefix SAPHanaSR +%global saphana_version 2dea8fe + +# Whether this platform defaults to using systemd as an init system +# (needs to be evaluated prior to BuildRequires being enumerated and +# installed as it's intended to conditionally select some of these, and +# for that there are only few indicators with varying reliability: +# - presence of systemd-defined macros (when building in a full-fledged +# environment, which is not the case with ordinary mock-based builds) +# - systemd-aware rpm as manifested with the presence of particular +# macro (rpm itself will trivially always be present when building) +# - existence of /usr/lib/os-release file, which is something heavily +# propagated by systemd project +# - when not good enough, there's always a possibility to check +# particular distro-specific macros (incl. version comparison) +%define systemd_native (%{?_unitdir:1}%{!?_unitdir:0}%{nil \ + } || %{?__transaction_systemd_inhibit:1}%{!?__transaction_systemd_inhibit:0}%{nil \ + } || %(test -f /usr/lib/os-release; test $? -ne 0; echo $?)) + +# determine the ras-set to process based on configure invokation +%bcond_with rgmanager +%bcond_without linuxha + +Name: resource-agents-sap-hana +Summary: SAP HANA cluster resource agents +Epoch: 1 +Version: 0.155.0 +Release: 4%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} +License: GPLv2+ +URL: https://github.com/SUSE/SAPHanaSR +Source0: %{upstream_prefix}-%{upstream_version}.tar.gz +Source1: %{saphana_prefix}-%{saphana_version}.tar.gz +Patch0: bz2027423-1-SAPHana-remove-HANA_CALL_TIMEOUT-parameter.patch +Patch1: bz2027423-2-SAPHanaTopology-remove-HANA_CALL_TIMEOUT-parameter.patch +Patch2: bz2027423-3-SAPHana-SAPHanaTopology-fix-metadata-version.patch + +BuildArch: noarch + +# Build dependencies +BuildRequires: make +BuildRequires: automake autoconf pkgconfig gcc +BuildRequires: perl-interpreter +BuildRequires: libxslt glib2-devel +BuildRequires: systemd +BuildRequires: which + +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} +BuildRequires: python3-devel +%else +BuildRequires: python-devel +%endif + +%if 0%{?fedora} || 0%{?centos} || 0%{?rhel} +BuildRequires: docbook-style-xsl docbook-dtds +%if 0%{?rhel} == 0 +BuildRequires: libnet-devel +%endif +%endif + +%if 0%{?suse_version} +BuildRequires: libnet-devel +BuildRequires: libglue-devel +BuildRequires: libxslt docbook_4 docbook-xsl-stylesheets +%endif + +Requires: resource-agents >= 4.8.0 +Conflicts: %{name}-scaleout + +Requires: /bin/bash /usr/bin/grep /bin/sed /bin/gawk +Requires: perl + +%description +The SAP HANA resource agents interface with Pacemaker to allow +SAP instances to be managed in a cluster environment. + +%prep +%setup -q -n %{upstream_prefix}-%{upstream_version} +%setup -q -T -D -a 1 -n %{upstream_prefix}-%{upstream_version} + +# add SAPHana agents to Makefile.am +mv %{saphana_prefix}-%{saphana_version}/ra/SAPHana* heartbeat +sed -i -e '/ SAPInstance \\/a\ SAPHana \\\n SAPHanaTopology \\' heartbeat/Makefile.am +sed -i -e '/ ocf_heartbeat_SAPInstance.7 \\/a\ ocf_heartbeat_SAPHana.7 \\\n ocf_heartbeat_SAPHanaTopology.7 \\' doc/man/Makefile.am + +# 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 + +%build +if [ ! -f configure ]; then + ./autogen.sh +fi + +%if 0%{?fedora} >= 11 || 0%{?centos} > 5 || 0%{?rhel} > 5 +CFLAGS="$(echo '%{optflags}')" +%global conf_opt_fatal "--enable-fatal-warnings=no" +%else +CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}" +%global conf_opt_fatal "--enable-fatal-warnings=yes" +%endif + +%if %{with rgmanager} +%global rasset rgmanager +%endif +%if %{with linuxha} +%global rasset linux-ha +%endif +%if %{with rgmanager} && %{with linuxha} +%global rasset all +%endif + +export CFLAGS + +%configure \ +%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} + PYTHON="%{__python3}" \ +%endif + %{conf_opt_fatal} \ +%if %{defined _unitdir} + --with-systemdsystemunitdir=%{_unitdir} \ +%endif +%if %{defined _tmpfilesdir} + --with-systemdtmpfilesdir=%{_tmpfilesdir} \ + --with-rsctmpdir=/run/resource-agents \ +%endif + --with-pkg-name=resource-agents \ + --with-ras-set=%{rasset} + +%if %{defined jobs} +JFLAGS="$(echo '-j%{jobs}')" +%else +JFLAGS="$(echo '%{_smp_mflags}')" +%endif + +make $JFLAGS + +%install +rm -rf %{buildroot} +make install DESTDIR=%{buildroot} + +# remove other agents +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 + +## tree fixup +# remove docs (there is only one and they should come from doc sections in files) +rm -rf %{buildroot}/usr/share/doc/resource-agents + +%files +%defattr(-,root,root) +%{_usr}/lib/ocf/resource.d/heartbeat/SAPHana* +%{_mandir}/man7/*SAP* +%{_datadir}/SAPHanaSR + +%exclude /etc +%exclude /usr/include +%exclude /usr/lib/debug +%exclude /usr/lib/systemd +%exclude /usr/lib/tmpfiles.d +%exclude /usr/libexec +%exclude /usr/sbin/ldirectord +%exclude /usr/sbin/ocf* +%exclude /usr/share/resource-agents +%exclude /usr/share/pkgconfig/resource-agents.pc +%exclude /usr/src + +%changelog +* Thu Jan 20 2022 Oyvind Albrigtsen - 0.155.0-4 +- SAPHana/SAPHanaTopology: remove HANA_CALL_TIMEOUT parameter from + metadata + + Resolves: rhbz#2027423 + +* Tue Aug 10 2021 Mohan Boddu - 1:0.155.0-2.1 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Mon Jun 14 2021 Oyvind Albrigtsen - 0.155.0-2 +- Add CI gating tests + + Resolves: rhbz#1960247 + +* Mon Jun 7 2021 Oyvind Albrigtsen - 0.155.0-1 +- Rebase to SAPHanaSR 0.155.0 upstream release. + +* Fri Feb 14 2020 Oyvind Albrigtsen - 0.154.0-2 +- Rebase to SAPHanaSR 0.154.0 upstream release. + + Resolves: rhbz#1802104 + +* Fri Sep 6 2019 Oyvind Albrigtsen - 0.152.22-1 +- SAPHanaTopology: make multi instance aware (MCOS) + + Resolves: rhbz#1738205 + +* Tue Jul 30 2019 Oyvind Albrigtsen - 0.152.21-4 +- Initial build as separate package + + Resolves: rhbz#1688344