import pacemaker-2.1.2-2.el8
This commit is contained in:
parent
994e6bf051
commit
1c2712ba5d
73
SOURCES/004-systemd-metadata.patch
Normal file
73
SOURCES/004-systemd-metadata.patch
Normal file
@ -0,0 +1,73 @@
|
||||
From 09ef95a2eed48b4eb7488788a1b655d67eafe783 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Lumens <clumens@redhat.com>
|
||||
Date: Tue, 30 Nov 2021 14:47:12 -0500
|
||||
Subject: [PATCH] Low: libcrmservice: Handle systemd service templates.
|
||||
|
||||
These unit files (which have an @ sign at the end) expect to be
|
||||
parameterized by an instance name. Not providing an instance name
|
||||
causes the dbus lookup to fail, and we fall back to assume this is an
|
||||
LSB service. If the user doesn't provide an instance name, just add a
|
||||
fake one. It doesn't seem to matter what name is given for the lookup.
|
||||
|
||||
See: rhbz#2003151
|
||||
---
|
||||
lib/services/systemd.c | 22 ++++++++++++++++------
|
||||
1 file changed, 16 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/lib/services/systemd.c b/lib/services/systemd.c
|
||||
index 8e9fff484..27a3b376d 100644
|
||||
--- a/lib/services/systemd.c
|
||||
+++ b/lib/services/systemd.c
|
||||
@@ -206,17 +206,27 @@ systemd_unit_extension(const char *name)
|
||||
}
|
||||
|
||||
static char *
|
||||
-systemd_service_name(const char *name)
|
||||
+systemd_service_name(const char *name, bool add_instance_name)
|
||||
{
|
||||
- if (name == NULL) {
|
||||
+ if (pcmk__str_empty(name)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (systemd_unit_extension(name)) {
|
||||
return strdup(name);
|
||||
- }
|
||||
|
||||
- return crm_strdup_printf("%s.service", name);
|
||||
+ /* Services that end with an @ sign are systemd templates. They expect an
|
||||
+ * instance name to follow the service name. If no instance name was
|
||||
+ * provided, just add "x" to the string as the instance name. It doesn't
|
||||
+ * seem to matter for purposes of looking up whether a service exists or
|
||||
+ * not.
|
||||
+ */
|
||||
+ } else if (add_instance_name && *(name+strlen(name)-1) == '@') {
|
||||
+ return crm_strdup_printf("%sx.service", name);
|
||||
+
|
||||
+ } else {
|
||||
+ return crm_strdup_printf("%s.service", name);
|
||||
+ }
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -427,7 +437,7 @@ invoke_unit_by_name(const char *arg_name, svc_action_t *op, char **path)
|
||||
CRM_ASSERT(msg != NULL);
|
||||
|
||||
// Add the (expanded) unit name as the argument
|
||||
- name = systemd_service_name(arg_name);
|
||||
+ name = systemd_service_name(arg_name, op == NULL || pcmk__str_eq(op->action, "meta-data", pcmk__str_none));
|
||||
CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name,
|
||||
DBUS_TYPE_INVALID));
|
||||
free(name);
|
||||
@@ -944,7 +954,7 @@ invoke_unit_by_path(svc_action_t *op, const char *unit)
|
||||
/* (ss) */
|
||||
{
|
||||
const char *replace_s = "replace";
|
||||
- char *name = systemd_service_name(op->agent);
|
||||
+ char *name = systemd_service_name(op->agent, pcmk__str_eq(op->action, "meta-data", pcmk__str_none));
|
||||
|
||||
CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID));
|
||||
CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &replace_s, DBUS_TYPE_INVALID));
|
||||
--
|
||||
2.27.0
|
||||
|
2200
SOURCES/005-fencing-reasons.patch
Normal file
2200
SOURCES/005-fencing-reasons.patch
Normal file
File diff suppressed because it is too large
Load Diff
143
SOURCES/006-stateful-metadata.patch
Normal file
143
SOURCES/006-stateful-metadata.patch
Normal file
@ -0,0 +1,143 @@
|
||||
From b52fe799c89637e2a761a5725c2376db5c05f2d1 Mon Sep 17 00:00:00 2001
|
||||
From: Ken Gaillot <kgaillot@redhat.com>
|
||||
Date: Tue, 30 Nov 2021 15:51:54 -0600
|
||||
Subject: [PATCH 1/2] Low: resources: remove DOCTYPE from OCF 1.1-compliant
|
||||
agents
|
||||
|
||||
OCF 1.1 replaced the DTD schema with RNG, but DOCTYPE still refers to the DTD.
|
||||
There's no DOCTYPE for RNG, and DOCTYPE is optional, so just remove it.
|
||||
---
|
||||
extra/resources/Dummy | 3 +--
|
||||
extra/resources/HealthIOWait | 3 +--
|
||||
extra/resources/Stateful | 3 +--
|
||||
extra/resources/attribute | 3 +--
|
||||
extra/resources/ping | 3 +--
|
||||
extra/resources/remote | 3 +--
|
||||
6 files changed, 6 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/extra/resources/Dummy b/extra/resources/Dummy
|
||||
index a344deac0..56584e564 100755
|
||||
--- a/extra/resources/Dummy
|
||||
+++ b/extra/resources/Dummy
|
||||
@@ -58,8 +58,7 @@
|
||||
meta_data() {
|
||||
cat <<END
|
||||
<?xml version="1.0"?>
|
||||
-<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
|
||||
-<resource-agent name="Dummy" version="2.0">
|
||||
+<resource-agent name="Dummy" version="2.1">
|
||||
<version>1.1</version>
|
||||
|
||||
<longdesc lang="en">
|
||||
diff --git a/extra/resources/HealthIOWait b/extra/resources/HealthIOWait
|
||||
index 43a8b70c4..5f1483ef7 100755
|
||||
--- a/extra/resources/HealthIOWait
|
||||
+++ b/extra/resources/HealthIOWait
|
||||
@@ -25,8 +25,7 @@
|
||||
meta_data() {
|
||||
cat <<END
|
||||
<?xml version="1.0"?>
|
||||
-<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
|
||||
-<resource-agent name="HealthIOWait" version="1.1">
|
||||
+<resource-agent name="HealthIOWait" version="1.2">
|
||||
<version>1.1</version>
|
||||
|
||||
<longdesc lang="en">
|
||||
diff --git a/extra/resources/Stateful b/extra/resources/Stateful
|
||||
index ae3424bbf..0d2062d51 100755
|
||||
--- a/extra/resources/Stateful
|
||||
+++ b/extra/resources/Stateful
|
||||
@@ -39,8 +39,7 @@ SCORE_PROMOTED=10
|
||||
meta_data() {
|
||||
cat <<END
|
||||
<?xml version="1.0"?>
|
||||
-<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
|
||||
-<resource-agent name="Stateful" version="1.1">
|
||||
+<resource-agent name="Stateful" version="1.2">
|
||||
<version>1.1</version>
|
||||
|
||||
<longdesc lang="en">
|
||||
diff --git a/extra/resources/attribute b/extra/resources/attribute
|
||||
index 1800dff8f..a2bd353e0 100755
|
||||
--- a/extra/resources/attribute
|
||||
+++ b/extra/resources/attribute
|
||||
@@ -57,8 +57,7 @@ END
|
||||
meta_data() {
|
||||
cat <<END
|
||||
<?xml version="1.0"?>
|
||||
-<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
|
||||
-<resource-agent name="attribute" version="1.1">
|
||||
+<resource-agent name="attribute" version="1.2">
|
||||
<version>1.1</version>
|
||||
<shortdesc lang="en">Manages a node attribute</shortdesc>
|
||||
<longdesc lang="en">
|
||||
diff --git a/extra/resources/ping b/extra/resources/ping
|
||||
index 6e296979f..7cc6b802d 100755
|
||||
--- a/extra/resources/ping
|
||||
+++ b/extra/resources/ping
|
||||
@@ -36,8 +36,7 @@
|
||||
meta_data() {
|
||||
cat <<END
|
||||
<?xml version="1.0"?>
|
||||
-<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
|
||||
-<resource-agent name="ping" version="1.1">
|
||||
+<resource-agent name="ping" version="1.2">
|
||||
<version>1.1</version>
|
||||
|
||||
<longdesc lang="en">
|
||||
diff --git a/extra/resources/remote b/extra/resources/remote
|
||||
index a53262bb6..f7e40dc81 100755
|
||||
--- a/extra/resources/remote
|
||||
+++ b/extra/resources/remote
|
||||
@@ -24,8 +24,7 @@
|
||||
meta_data() {
|
||||
cat <<END
|
||||
<?xml version="1.0"?>
|
||||
-<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
|
||||
-<resource-agent name="remote" version="1.0">
|
||||
+<resource-agent name="remote" version="1.1">
|
||||
<version>1.1</version>
|
||||
<shortdesc lang="en">Pacemaker Remote connection</shortdesc>
|
||||
<parameters>
|
||||
--
|
||||
2.27.0
|
||||
|
||||
|
||||
From 70f469120f8db6a024c786466ee74a6c7fbd1f43 Mon Sep 17 00:00:00 2001
|
||||
From: Ken Gaillot <kgaillot@redhat.com>
|
||||
Date: Tue, 30 Nov 2021 15:53:39 -0600
|
||||
Subject: [PATCH 2/2] Fix: resources: use correct syntax in Stateful meta-data
|
||||
|
||||
The OCF standard only allows "0" or "1" for booleans.
|
||||
|
||||
This fixes incorrect ocf:pacemaker:Stateful meta-data syntax introduced by
|
||||
7024398 as a regression in the 2.1.0 release.
|
||||
---
|
||||
extra/resources/Stateful | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/extra/resources/Stateful b/extra/resources/Stateful
|
||||
index 0d2062d51..2ebe6725f 100755
|
||||
--- a/extra/resources/Stateful
|
||||
+++ b/extra/resources/Stateful
|
||||
@@ -57,7 +57,7 @@ Location to store the resource state in
|
||||
<content type="string" default="${HA_VARRUN%%/}/Stateful-${OCF_RESOURCE_INSTANCE}.state" />
|
||||
</parameter>
|
||||
|
||||
-<parameter name="envfile" reloadable="true">
|
||||
+<parameter name="envfile" reloadable="1">
|
||||
<longdesc lang="en">
|
||||
If this is set, the environment will be dumped to this file for every call.
|
||||
</longdesc>
|
||||
@@ -65,7 +65,7 @@ If this is set, the environment will be dumped to this file for every call.
|
||||
<content type="string" default="" />
|
||||
</parameter>
|
||||
|
||||
-<parameter name="notify_delay" reloadable="true">
|
||||
+<parameter name="notify_delay" reloadable="1">
|
||||
<longdesc lang="en">
|
||||
The notify action will sleep for this many seconds before returning,
|
||||
to simulate a long-running notify.
|
||||
--
|
||||
2.27.0
|
||||
|
39
SOURCES/007-memory-leak.patch
Normal file
39
SOURCES/007-memory-leak.patch
Normal file
@ -0,0 +1,39 @@
|
||||
From f491d9d5a7ed554fed985de356bb085fdec3421c Mon Sep 17 00:00:00 2001
|
||||
From: Ken Gaillot <kgaillot@redhat.com>
|
||||
Date: Tue, 7 Dec 2021 09:01:00 -0600
|
||||
Subject: [PATCH] Fix: fencer: avoid memory leak when broadcasting history
|
||||
differences
|
||||
|
||||
Regression introduced in 2.1.0 by dbc27b2
|
||||
---
|
||||
daemons/fenced/fenced_history.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/daemons/fenced/fenced_history.c b/daemons/fenced/fenced_history.c
|
||||
index bc159383c..a9c57dc86 100644
|
||||
--- a/daemons/fenced/fenced_history.c
|
||||
+++ b/daemons/fenced/fenced_history.c
|
||||
@@ -484,8 +484,6 @@ stonith_fence_history(xmlNode *msg, xmlNode **output,
|
||||
!pcmk__str_eq(remote_peer, stonith_our_uname, pcmk__str_casei)) {
|
||||
xmlNode *history = get_xpath_object("//" F_STONITH_HISTORY_LIST,
|
||||
msg, LOG_NEVER);
|
||||
- GHashTable *received_history =
|
||||
- history?stonith_xml_history_to_list(history):NULL;
|
||||
|
||||
/* either a broadcast created directly upon stonith-API request
|
||||
* or a diff as response to such a thing
|
||||
@@ -497,6 +495,11 @@ stonith_fence_history(xmlNode *msg, xmlNode **output,
|
||||
if (!history ||
|
||||
!crm_is_true(crm_element_value(history,
|
||||
F_STONITH_DIFFERENTIAL))) {
|
||||
+ GHashTable *received_history = NULL;
|
||||
+
|
||||
+ if (history != NULL) {
|
||||
+ received_history = stonith_xml_history_to_list(history);
|
||||
+ }
|
||||
out_history =
|
||||
stonith_local_history_diff_and_merge(received_history, TRUE, NULL);
|
||||
if (out_history) {
|
||||
--
|
||||
2.27.0
|
||||
|
43
SOURCES/008-fencing-history.patch
Normal file
43
SOURCES/008-fencing-history.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 0339e89f3238b31df78b864dae8684b82c370741 Mon Sep 17 00:00:00 2001
|
||||
From: Ken Gaillot <kgaillot@redhat.com>
|
||||
Date: Mon, 13 Dec 2021 15:22:40 -0600
|
||||
Subject: [PATCH] Fix: fencer: get current time correctly
|
||||
|
||||
f52bc8e1ce (2.1.2) introduced a regression by using clock_gettime() with
|
||||
CLOCK_MONOTONIC to get the current time. Use qb_util_timespec_from_epoch_get()
|
||||
instead (which as of this writing uses clock_gettime() with CLOCK_REALTIME if
|
||||
available, and falls back to gettimeofday() if not).
|
||||
---
|
||||
daemons/fenced/fenced_commands.c | 11 +++--------
|
||||
1 file changed, 3 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/daemons/fenced/fenced_commands.c b/daemons/fenced/fenced_commands.c
|
||||
index f34cb4f13..7685cb8c3 100644
|
||||
--- a/daemons/fenced/fenced_commands.c
|
||||
+++ b/daemons/fenced/fenced_commands.c
|
||||
@@ -2746,19 +2746,14 @@ bool fencing_peer_active(crm_node_t *peer)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
-void set_fencing_completed(remote_fencing_op_t * op)
|
||||
+void
|
||||
+set_fencing_completed(remote_fencing_op_t *op)
|
||||
{
|
||||
-#ifdef CLOCK_MONOTONIC
|
||||
struct timespec tv;
|
||||
|
||||
- clock_gettime(CLOCK_MONOTONIC, &tv);
|
||||
-
|
||||
+ qb_util_timespec_from_epoch_get(&tv);
|
||||
op->completed = tv.tv_sec;
|
||||
op->completed_nsec = tv.tv_nsec;
|
||||
-#else
|
||||
- op->completed = time(NULL);
|
||||
- op->completed_nsec = 0L;
|
||||
-#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
--
|
||||
2.27.0
|
||||
|
@ -36,7 +36,7 @@
|
||||
## can be incremented to build packages reliably considered "newer"
|
||||
## than previously built packages with the same pcmkversion)
|
||||
%global pcmkversion 2.1.2
|
||||
%global specversion 1
|
||||
%global specversion 2
|
||||
|
||||
## Upstream commit (full commit ID, abbreviated commit ID, or tag) to build
|
||||
%global commit ada5c3b36e2adf1703d54d39f40a4b8628eca175
|
||||
@ -266,6 +266,11 @@ Source1: nagios-agents-metadata-%{nagios_hash}.tar.gz
|
||||
Patch1: 001-acl-group-schema.patch
|
||||
Patch2: 002-fencing-reasons.patch
|
||||
Patch3: 003-fencing-reasons.patch
|
||||
Patch4: 004-systemd-metadata.patch
|
||||
Patch5: 005-fencing-reasons.patch
|
||||
Patch6: 006-stateful-metadata.patch
|
||||
Patch7: 007-memory-leak.patch
|
||||
Patch8: 008-fencing-history.patch
|
||||
|
||||
# downstream-only commits
|
||||
#Patch1xx: 1xx-xxxx.patch
|
||||
@ -963,6 +968,14 @@ exit 0
|
||||
%license %{nagios_name}-%{nagios_hash}/COPYING
|
||||
|
||||
%changelog
|
||||
* Thu Dec 16 2021 Ken Gaillot <kgaillot@redhat.com> - 2.1.2-2
|
||||
- Correctly get metadata for systemd agent names that end in '@'
|
||||
- Use correct OCF 1.1 syntax in ocf:pacemaker:Stateful meta-data
|
||||
- Fix regression in displayed times in crm_mon's fence history
|
||||
- Resolves: rhbz2003151
|
||||
- Resolves: rhbz2027370
|
||||
- Resolves: rhbz2032027
|
||||
|
||||
* Tue Nov 30 2021 Ken Gaillot <kgaillot@redhat.com> - 2.1.2-1
|
||||
- Allow per-host fence delays for a single fence device
|
||||
- Use OCF 1.1 enum type in cluster option metadata for better validation
|
||||
|
Loading…
Reference in New Issue
Block a user