98e69c2d35
needed - IPaddr2: improve fail logic and check ip_status after adding IP - azure-events-az: update API versions, and add retry functionality for metadata requests - azure-events*: use node name from cluster instead of hostname to avoid failing if they're not the same Resolves: RHEL-61888 Resolves: RHEL-62200 Resolves: RHEL-40589 Resolves: RHEL-58632
49 lines
1.7 KiB
Diff
49 lines
1.7 KiB
Diff
From 82958dc115c47232ae0468b1ddf64e728ec325e4 Mon Sep 17 00:00:00 2001
|
|
From: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
|
|
Date: Wed, 9 Oct 2024 00:16:44 +0200
|
|
Subject: [PATCH] ocf-shellfuncs: systemd_drop_in only if needed
|
|
|
|
Avoid dbus overload upon many simultaneous "daemon-reload" invocations
|
|
(when a resource agent using systemd_drop_in() is called multiple times
|
|
as part of parallel resource operations in Pacemaker) by skipping the
|
|
file creation and reload if the expected data already exists.
|
|
|
|
Whilst at it, align the indentation of the heredoc with the other parts
|
|
of the function.
|
|
|
|
Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
|
|
---
|
|
heartbeat/ocf-shellfuncs.in | 19 +++++++++++--------
|
|
1 file changed, 11 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/heartbeat/ocf-shellfuncs.in b/heartbeat/ocf-shellfuncs.in
|
|
index 9335cbf00..5c4bb3264 100644
|
|
--- a/heartbeat/ocf-shellfuncs.in
|
|
+++ b/heartbeat/ocf-shellfuncs.in
|
|
@@ -662,14 +662,17 @@ systemd_drop_in()
|
|
systemdrundir="/run/systemd/system/resource-agents-deps.target.d"
|
|
mkdir -p "$systemdrundir"
|
|
conf_file="$systemdrundir/$1.conf"
|
|
- cat >"$conf_file" <<EOF
|
|
-[Unit]
|
|
-$2=$3
|
|
-EOF
|
|
- # The information is accessible through systemd API and systemd would
|
|
- # complain about improper permissions.
|
|
- chmod o+r "$conf_file"
|
|
- systemctl daemon-reload
|
|
+ conf_line="$2=$3"
|
|
+ if ! { [ -f "$conf_file" ] && grep -q "^$conf_line$" "$conf_file" ; } ; then
|
|
+ cat > "$conf_file" <<-EOF
|
|
+ [Unit]
|
|
+ $conf_line
|
|
+ EOF
|
|
+ # The information is accessible through systemd API and systemd would
|
|
+ # complain about improper permissions.
|
|
+ chmod o+r "$conf_file"
|
|
+ systemctl daemon-reload
|
|
+ fi
|
|
}
|
|
|
|
# usage: curl_retry RETRIES SLEEP ARGS URL
|