diff --git a/bz2151293-SAPInstance-improve-killsap-logic.patch b/bz2151293-SAPInstance-improve-killsap-logic.patch deleted file mode 100644 index 325c3b6..0000000 --- a/bz2151293-SAPInstance-improve-killsap-logic.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 08ed464aa803f03cbb6cabc79afe462fc98ad213 Mon Sep 17 00:00:00 2001 -From: Fabian Herschel -Date: Mon, 5 Dec 2022 18:13:36 +0100 -Subject: [PATCH 1/2] SAPInstance: be more resilient against broken kill.sap - files - ---- - heartbeat/SAPInstance | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/heartbeat/SAPInstance b/heartbeat/SAPInstance -index e3fe788ae..fbf6c5245 100755 ---- a/heartbeat/SAPInstance -+++ b/heartbeat/SAPInstance -@@ -830,7 +830,7 @@ sapinstance_status() { - local pids - - [ ! -f "/usr/sap/$SID/$InstanceName/work/kill.sap" ] && return $OCF_NOT_RUNNING -- pids=`grep '^kill -[0-9]' /usr/sap/$SID/$InstanceName/work/kill.sap | awk '{print $3}'` -+ pids=$(awk '$3 ~ "[0-9]+" { print $3 }' /usr/sap/$SID/$InstanceName/work/kill.sap) - for pid in $pids - do - [ `pgrep -f -U $sidadm $InstanceName | grep -c $pid` -gt 0 ] && return $OCF_SUCCESS - -From a7153dd3f31fe5a14bf76d367cd8185848821fcd Mon Sep 17 00:00:00 2001 -From: Fabian Herschel -Date: Tue, 6 Dec 2022 09:15:56 +0100 -Subject: [PATCH 2/2] SAPInstance: Also need the begin-end markers - ---- - heartbeat/SAPInstance | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/heartbeat/SAPInstance b/heartbeat/SAPInstance -index fbf6c5245..26fd54136 100755 ---- a/heartbeat/SAPInstance -+++ b/heartbeat/SAPInstance -@@ -830,7 +830,7 @@ sapinstance_status() { - local pids - - [ ! -f "/usr/sap/$SID/$InstanceName/work/kill.sap" ] && return $OCF_NOT_RUNNING -- pids=$(awk '$3 ~ "[0-9]+" { print $3 }' /usr/sap/$SID/$InstanceName/work/kill.sap) -+ pids=$(awk '$3 ~ "^[0-9]+$" { print $3 }' /usr/sap/$SID/$InstanceName/work/kill.sap) - for pid in $pids - do - [ `pgrep -f -U $sidadm $InstanceName | grep -c $pid` -gt 0 ] && return $OCF_SUCCESS diff --git a/resource-agents-sap.spec b/resource-agents-sap.spec index 5f85454..b747370 100644 --- a/resource-agents-sap.spec +++ b/resource-agents-sap.spec @@ -12,18 +12,30 @@ # Below is the script used to generate a new source file # from the resource-agent upstream git repo. # +# Use a specified version as HEAD if needed, e.g. "v4.14.0" +# +# # Source0: +# git checkout # TAG=$(git log --pretty="format:%h" -n 1) # distdir="ClusterLabs-resource-agents-${TAG}" # TARFILE="${distdir}.tar.gz" # rm -rf $TARFILE $distdir # git archive --prefix=$distdir/ HEAD | gzip > $TARFILE # +# # Source1: +# git checkout +# TAG=$(git log --pretty="format:%h" -n 1) +# distdir="SAPStartSrv-resourceAgent-${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 fd0720f7 +%global upstream_version a6ccb93a -%global sap_script_prefix sap_cluster_connector -%global sap_script_hash 0015fe2 +%global sapstart_prefix SAPStartSrv-resourceAgent +%global sapstart_version 1758e33 # Whether this platform defaults to using systemd as an init system # (needs to be evaluated prior to BuildRequires being enumerated and @@ -41,26 +53,25 @@ } || %{?__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 +# determine the ras-set to process based on configure invocation %bcond_with rgmanager %bcond_without linuxha -Name: resource-agents-sap -Summary: SAP cluster resource agents -Version: 4.10.0 -Release: 3%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} -License: GPLv2+ -URL: https://github.com/ClusterLabs/resource-agents -Source0: %{upstream_prefix}-%{upstream_version}.tar.gz -Source1: %{sap_script_prefix}-%{sap_script_hash}.tar.gz -Patch0: bz2151293-SAPInstance-improve-killsap-logic.patch +Name: resource-agents-sap +Summary: SAP cluster resource agents +Version: 4.15.1 +Release: 1%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist} +License: GPLv2+ +URL: https://github.com/ClusterLabs/resource-agents +Source0: %{upstream_prefix}-%{upstream_version}.tar.gz +Source1: %{sapstart_prefix}-%{sapstart_version}.tar.gz -BuildArch: noarch +BuildArch: noarch # Build dependencies BuildRequires: make BuildRequires: automake autoconf pkgconfig gcc -BuildRequires: libxslt glib2-devel +BuildRequires: libxslt glib2-devel libqb-devel BuildRequires: systemd BuildRequires: which @@ -79,13 +90,23 @@ BuildRequires: libnet-devel %if 0%{?suse_version} BuildRequires: libnet-devel +%if 0%{?suse_version} > 1500 +BuildRequires: cluster-glue-devel +%else BuildRequires: libglue-devel +%endif BuildRequires: libxslt docbook_4 docbook-xsl-stylesheets %endif -Requires: resource-agents >= 4.8.0 +BuildRequires: python3-psutil + +Requires: resource-agents >= 4.8.0 +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd Requires: /bin/bash /usr/bin/grep /bin/sed /bin/gawk +Requires: python3 python3-psutil %description The SAP resource agents interface with Pacemaker to allow @@ -94,11 +115,28 @@ 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} -%patch0 -p1 + +# Move the agent to the others for the ClusterLabs included processing. +mv %{sapstart_prefix}-%{sapstart_version}/ra/SAPStartSrv.in 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 +# Skip the .in suffix, the agent is renamed in the process. +sed -i -e 's/\(\t\tSAPInstance\t\t\\\)/\1\n\t\t\tSAPStartSrv\t\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_SAPStartSrv.7 \\/' doc/man/Makefile.am + +# Add RA to configure.ac for processing during compilation. +# - renames python files after shebang fixup +# - enables man page creation +sed -i -e 's/\(AC_CONFIG_FILES..heartbeat.SysInfo.*\)/AC_CONFIG_FILES([heartbeat\/SAPStartSrv], [chmod +x heartbeat\/SAPStartSrv])\n\1/' configure.ac %build if [ ! -f configure ]; then - ./autogen.sh + ./autogen.sh fi %if 0%{?fedora} >= 11 || 0%{?centos} > 5 || 0%{?rhel} > 5 @@ -123,9 +161,9 @@ export CFLAGS %configure \ %if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version} - PYTHON="%{__python3}" \ + PYTHON="%{__python3}" \ %endif - %{conf_opt_fatal} \ + %{conf_opt_fatal} \ %if %{defined _unitdir} --with-systemdsystemunitdir=%{_unitdir} \ %endif @@ -133,42 +171,66 @@ export CFLAGS --with-systemdtmpfilesdir=%{_tmpfilesdir} \ --with-rsctmpdir=/run/resource-agents \ %endif - --with-pkg-name=resource-agents \ - --with-ras-set=%{rasset} + --with-pkg-name=resource-agents \ + --with-ras-set=%{rasset} -%if %{defined jobs} -JFLAGS="$(echo '-j%{jobs}')" -%else -JFLAGS="$(echo '%{_smp_mflags}')" -%endif - -make $JFLAGS +make %{_smp_mflags} %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} -# remove other agents +# Remove other agents find %{buildroot}/usr/lib/ocf ! -type d ! -iname "SAP*" -exec rm {} \; -find %{buildroot}/%{_mandir} -type f ! -iname "*SAP*" -exec rm {} \; +find %{buildroot}%{_mandir} -type f ! -iname "*SAP*" -exec rm {} \; +find %{buildroot}%{_unitdir} -type f ! -iname "sap*" -exec rm {} \; -cp %{sap_script_prefix}-%{sap_script_hash}/redhat/sap_redhat_cluster_connector %{buildroot}/%{_sbindir}/sap_redhat_cluster_connector +# Service units and script called by services. +install -D -m 0644 %{sapstart_prefix}-%{sapstart_version}/sbin/sapservices-move.in \ + %{buildroot}%{_bindir}/sapservices-move +install -D -m 0644 %{sapstart_prefix}-%{sapstart_version}/service/* \ + %{buildroot}%{_unitdir} + +# Change hard-coded /usr/sbin to /usr/bin, where the sapservices-move script lives. +sed -i -e 's|%{_sbindir}|%{_bindir}|g' %{buildroot}%{_unitdir}/sap* + +# Fix python shebang. +sed -i -e 's|@PYTHON@|%{__python3}|g' %{buildroot}%{_bindir}/sapservices-move + +# License +mkdir -p %{buildroot}%{_defaultlicensedir}/%{name} +cp %{sapstart_prefix}-%{sapstart_version}/LICENSE %{buildroot}%{_defaultlicensedir}/%{name} ## 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 +%post +%systemd_post sapping.service +%systemd_post sappong.service + +%preun +%systemd_preun sapping.service +%systemd_preun sappong.service + +%postun +%systemd_postun sapping.service +%systemd_postun sappong.service + %files %defattr(-,root,root) +%license LICENSE %{_usr}/lib/ocf/resource.d/heartbeat/SAP* %{_usr}/lib/ocf/lib/heartbeat/sap* %{_mandir}/man7/*SAP* -%{_sbindir}/sap_redhat_cluster_connector +%defattr(755,root,root,-) +%{_bindir}/sap* +%defattr(644,root,root,-) +%{_unitdir}/sap* %exclude /etc %exclude /usr/include %exclude %{_usr}/lib/debug -%exclude %{_usr}/lib/systemd %exclude %{_usr}/lib/tmpfiles.d %exclude /usr/libexec/heartbeat %exclude /usr/sbin/ldirectord @@ -178,6 +240,10 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents %exclude /usr/src %changelog +* Fri Jan 10 2025 Janine Fuchs - 4.15.1-1 +- Add resource agent SAPStartSrv. + Resolves: RHEL-2294 + * Wed Dec 07 2022 Janine Fuchs - 4.10.0-3 - SAPInstance: be more resilient against broken kill.sap files @@ -214,3 +280,5 @@ rm -rf %{buildroot}/usr/share/doc/resource-agents - Initial build as separate package Resolves: rhbz#1688341 + +# vim:set ai ts=2 sw=2 sts=2 et: diff --git a/sources b/sources index f319aca..e119bc8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (ClusterLabs-resource-agents-fd0720f7.tar.gz) = 0ece911082accc38c680e0cf5b4becaa33575e53041125687f1e6b2a6b5e56eebe79ca094cadb0c9450ae269ba9c2ef3dfba4a0da3a06d2c00deefb02f969a04 -SHA512 (sap_cluster_connector-0015fe2.tar.gz) = 4005350d6fb8d2999861f1cc5f56335d2688c040067e4a01f565953bc060c605e77933d5033b32f9cf6e901ddbf9f5311842e716a832d931d6ffba0ff9e7eac8 +SHA512 (ClusterLabs-resource-agents-a6ccb93a.tar.gz) = 3ea92f051f16efbd0845d193cc7d2e7d8e9f66ba8e2bbba3a7b8d093ceff3103f8077b93037067dee8962a7d5c1ad0a0b5642acbaf385b0619cef96f18928911 +SHA512 (SAPStartSrv-resourceAgent-1758e33.tar.gz) = 3460cc57bae99c390e80e8b5b92be3a62fb635161901a1d1d1cc68c38d03810e6e4f9b15a5a57eb4416f25d5f939202e1830f5b0b165ceb902d1f8fb53bc4876