Compare commits

...

No commits in common. "c8" and "c9s" have entirely different histories.
c8 ... c9s

9 changed files with 346 additions and 178 deletions

8
.gitignore vendored
View File

@ -1,2 +1,6 @@
SOURCES/ClusterLabs-resource-agents-e711383f.tar.gz
SOURCES/SAPHanaSR-6281418.tar.gz
/*.tar.gz
/*.src.rpm
/.build-*.log
/*/
!/tests/
/tests/*.retry

View File

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

View File

@ -0,0 +1,43 @@
From 6062afd4f2da3972e3469b2ab8491e3314296efe Mon Sep 17 00:00:00 2001
From: AngelaBriel <abriel@suse.com>
Date: Thu, 22 Feb 2024 15:38:11 +0100
Subject: [PATCH] fix regression in topology (bsc#1219785)
---
ra/SAPHanaTopology | 16 ----------------
1 file changed, 16 deletions(-)
diff --git a/ra/SAPHanaTopology b/ra/SAPHanaTopology
index 5c4f6838..8630dd8c 100755
--- a/ra/SAPHanaTopology
+++ b/ra/SAPHanaTopology
@@ -873,7 +873,6 @@ function sht_monitor() {
return $rc
}
-
#
# function: sht_status - get status of a hana instance (os tools only)
# params: -
@@ -1004,21 +1003,6 @@ function sht_stop_clone() {
return $rc
}
-#
-# function: sht_monitor
-# this function should never be called currently.
-# it is intended for future releases which might support un-cloned resources
-# for now it is only used to print a reasonable error message in case of
-# non-cloned resources instead of 'command not found'
-#
-function sht_monitor() {
- if ! is_clone; then
- super_ocf_log error "RA: resource is not defined as clone. This is not supported (OCF_ERR_UNIMPLEMENTED)"
- return "$OCF_ERR_UNIMPLEMENTED"
- else
- return "$OCF_SUCCESS"
- fi
-}
#
# function: sht_monitor_clone - monitor a hana clone instance

View File

@ -1,174 +0,0 @@
#
# 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 e711383f
%global saphana_prefix SAPHanaSR
%global saphana_version 6281418
Name: resource-agents-sap-hana
Summary: SAP HANA cluster resource agents
Epoch: 1
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}
Group: System Environment/Base
%else
Group: Productivity/Clustering/HA
%endif
Source0: %{upstream_prefix}-%{upstream_version}.tar.gz
Source1: %{saphana_prefix}-%{saphana_version}.tar.gz
BuildArch: noarch
BuildRequires: automake autoconf gcc
BuildRequires: perl-interpreter python3-devel
BuildRequires: libxslt glib2-devel
%if 0%{?fedora} || 0%{?centos_version} || 0%{?rhel}
BuildRequires: docbook-style-xsl docbook-dtds
%endif
Requires: resource-agents >= 4.1.1
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
%build
if [ ! -f configure ]; then
./autogen.sh
fi
%global rasset linux-ha
%configure BASH_SHELL="/bin/bash" \
PYTHON="%{__python3}" \
%{conf_opt_fatal} \
--with-pkg-name=%{name} \
--with-ras-set=%{rasset}
%if %{defined jobs}
JFLAGS="$(echo '-j%{jobs}')"
%else
JFLAGS="$(echo '%{_smp_mflags}')"
%endif
make $JFLAGS
%install
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 -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)
rm -rf %{buildroot}/usr/share/doc/resource-agents
%clean
rm -rf %{buildroot}
%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
%exclude /usr/share/%{name}
%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
Resolves: rhbz#2050205
* Tue Feb 1 2022 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.154.0-6
- SAPHana/SAPHanaTopology: add systemd support
Resolves: rhbz#2026273
* Tue Nov 30 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.154.0-4
- SAPHana/SAPHanaTopology: remove HANA_CALL_TIMEOUT parameter from
metadata
Resolves: rhbz#2026727
* Thu Jul 22 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.154.0-3
- SAPHana: use actual_mode from global.ini and fallback to mode when
it's not set
Resolves: rhbz#1855885
* Fri Feb 14 2020 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.154.0-2
- Rebase to SAPHanaSR 0.154.0 upstream release.
Resolves: rhbz#1802104
* Fri Sep 6 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.152.22-1
- SAPHanaTopology: make multi instance aware (MCOS)
Resolves: rhbz#1738205
* Tue Jul 30 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.152.21-4
- Initial build as separate package
Resolves: rhbz#1688344

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -0,0 +1,259 @@
#
# 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 e8188e0
# 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.162.3
Release: 5%{?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: RHEL-59660-fix-SAPHanaTopology-regression.patch
BuildArch: noarch
# Build dependencies
BuildRequires: make
BuildRequires: automake autoconf pkgconfig gcc
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
%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 patches before moving files
%patch -d %{saphana_prefix}-%{saphana_version} -p1 -P 0
# add SAPHana agents to Makefile.am
mv %{saphana_prefix}-%{saphana_version}/ra/SAPHana* heartbeat
# Find the existing SAPInstance entry in the list and add 2 new after in corresponding formatting.
# heartbeat/Makefile.am indents by 3 tabs in the target list
sed -i -e 's/\(\t\tSAPInstance\t\t\\\)/\1\n\t\t\tSAPHana\t\t\t\\\n\t\t\tSAPHanaTopology\t\\/' heartbeat/Makefile.am
# Find the existing SAPInstance entry in the list and add 2 new after in corresponding formatting.
# doc/man/Makefile.am indents by 26 spaces in the target list
sed -i -e 's/\( \{26\}ocf_heartbeat_SAPInstance.7 \\\)/\1\n'\
' ocf_heartbeat_SAPHana.7 \\\n'\
' ocf_heartbeat_SAPHanaTopology.7 \\/' doc/man/Makefile.am
# change provider company in hook scripts
sed -i -e 's/\("provider_company": \)"SUSE"/\1"Red Hat"/g' %{saphana_prefix}-%{saphana_version}/srHook/SAPHanaSR.py
sed -i -e 's/\("provider_company": \)"SUSE"/\1"Red Hat"/g' %{saphana_prefix}-%{saphana_version}/srHook/susChkSrv.py
# rename patterns to remove "sus" prefix in hook script
sed -i -e 's/susChkSrv/ChkSrv/g' %{saphana_prefix}-%{saphana_version}/srHook/susChkSrv.py
sed -i -e 's/suschksrv/chksrv/g' %{saphana_prefix}-%{saphana_version}/srHook/susChkSrv.py
sed -i -e 's/sustkover_timeout/tkover_timeout/g' %{saphana_prefix}-%{saphana_version}/srHook/susChkSrv.py
%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 -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
cp -r %{saphana_prefix}-%{saphana_version}/srHook/susChkSrv.py %{buildroot}/%{_datadir}/SAPHanaSR/srHook/ChkSrv.py
## 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
* Fri Sep 20 2024 Janine Fuchs <jfuchs@redhat.com> - 0.162.3-5
- Fix regression in SAPHanaTopology agent.
Resolves: RHEL-59660
- Remove perl dependency from package.
Resolves: RHEL-59669
* Fri Feb 2 2024 Janine Fuchs <jfuchs@redhat.com> - 0.162.3-2
- Rebase to SAPHanaSR 0.162.3 upstream release and include the
ChkSrv.py hook script to handle hanging HDBindexserver services
Resolves: RHEL-22305
* Thu Mar 23 2023 Janine Fuchs <jfuchs@redhat.com> - 0.162.1-2
- Rebase to SAPHanaSR 0.162.1 upstream release.
Resolves: rhbz#2165700
* Thu Jan 20 2022 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.155.0-4
- SAPHana/SAPHanaTopology: remove HANA_CALL_TIMEOUT parameter from
metadata
Resolves: rhbz#2027423
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 1:0.155.0-2.1
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Jun 14 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.155.0-2
- Add CI gating tests
Resolves: rhbz#1960247
* Mon Jun 7 2021 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.155.0-1
- Rebase to SAPHanaSR 0.155.0 upstream release.
* Fri Feb 14 2020 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.154.0-2
- Rebase to SAPHanaSR 0.154.0 upstream release.
Resolves: rhbz#1802104
* Fri Sep 6 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.152.22-1
- SAPHanaTopology: make multi instance aware (MCOS)
Resolves: rhbz#1738205
* Tue Jul 30 2019 Oyvind Albrigtsen <oalbrigt@redhat.com> - 0.152.21-4
- Initial build as separate package
Resolves: rhbz#1688344

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (ClusterLabs-resource-agents-e76b7d3a.tar.gz) = 218ab0dee7f07c2ae5646a0ea3231c33bd573de4f1b041ebed560074c256b21cf33836fe50f3a18eb1ec11c2f9a4515da1066d2e4932f59cea5b9b8af892a6a6
SHA512 (SAPHanaSR-e8188e0.tar.gz) = 4927181f34cdd65030462bd593c19f500009f01d35ddfbaa725f494420d888adf4a215062e350b7786ad6c862be6a43ff233c6d76e9de032411ae1718efd4be9

16
tests/run_tests.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
err=0
agents=$(pcs resource list ocf:heartbeat 2>&1)
if [ $(echo "$agents" | wc -l) -lt 2 ]; then
echo "ERROR: pcs: agents available:\n$agents"
err=$((err+1))
else
echo "INFO: pcs: agents available..."
fi
if [ $err -ge 1 ]; then
echo -e "\nERROR: $err tests FAILED..."
exit 1
fi

14
tests/tests.yml Normal file
View File

@ -0,0 +1,14 @@
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
- container
required_packages:
- resource-agents-sap-hana
- pcs
tests:
- subpackage_tests:
dir: .
run: ./run_tests.sh