import pacemaker-2.1.4-4.el8
This commit is contained in:
parent
e9c1665a44
commit
e55b44d0f0
624
SOURCES/004-schema.patch
Normal file
624
SOURCES/004-schema.patch
Normal file
@ -0,0 +1,624 @@
|
|||||||
|
From e8f96dec79bb33c11d39c9037ac623f18a67b539 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Pavlu <petr.pavlu@suse.com>
|
||||||
|
Date: Tue, 24 May 2022 18:08:57 +0200
|
||||||
|
Subject: [PATCH] Low: schemas: copy API schemas in preparation for changes
|
||||||
|
|
||||||
|
Copy crm_mon, crm_simulate and nodes API schemas in preparation for
|
||||||
|
changes and bump the external reference version in crm_mon and
|
||||||
|
crm_simulate to point to the new nodes schema.
|
||||||
|
---
|
||||||
|
include/crm/common/output_internal.h | 2 +-
|
||||||
|
xml/api/crm_mon-2.21.rng | 183 +++++++++++++++
|
||||||
|
xml/api/crm_simulate-2.21.rng | 338 +++++++++++++++++++++++++++
|
||||||
|
xml/api/nodes-2.21.rng | 51 ++++
|
||||||
|
4 files changed, 573 insertions(+), 1 deletion(-)
|
||||||
|
create mode 100644 xml/api/crm_mon-2.21.rng
|
||||||
|
create mode 100644 xml/api/crm_simulate-2.21.rng
|
||||||
|
create mode 100644 xml/api/nodes-2.21.rng
|
||||||
|
|
||||||
|
diff --git a/include/crm/common/output_internal.h b/include/crm/common/output_internal.h
|
||||||
|
index 577fd5247..74ee833c1 100644
|
||||||
|
--- a/include/crm/common/output_internal.h
|
||||||
|
+++ b/include/crm/common/output_internal.h
|
||||||
|
@@ -28,7 +28,7 @@ extern "C" {
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
-# define PCMK__API_VERSION "2.20"
|
||||||
|
+# define PCMK__API_VERSION "2.21"
|
||||||
|
|
||||||
|
#if defined(PCMK__WITH_ATTRIBUTE_OUTPUT_ARGS)
|
||||||
|
# define PCMK__OUTPUT_ARGS(ARGS...) __attribute__((output_args(ARGS)))
|
||||||
|
diff --git a/xml/api/crm_mon-2.21.rng b/xml/api/crm_mon-2.21.rng
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..37036d665
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/xml/api/crm_mon-2.21.rng
|
||||||
|
@@ -0,0 +1,183 @@
|
||||||
|
+<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
|
||||||
|
+ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||||
|
+
|
||||||
|
+ <start>
|
||||||
|
+ <ref name="element-crm-mon"/>
|
||||||
|
+ </start>
|
||||||
|
+
|
||||||
|
+ <define name="element-crm-mon">
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="element-summary" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="nodes-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="resources-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="node-attributes-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <externalRef href="node-history-2.12.rng"/>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="failures-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="fence-event-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="tickets-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="bans-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-summary">
|
||||||
|
+ <element name="summary">
|
||||||
|
+ <optional>
|
||||||
|
+ <element name="stack">
|
||||||
|
+ <attribute name="type"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <element name="current_dc">
|
||||||
|
+ <attribute name="present"> <data type="boolean" /> </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <group>
|
||||||
|
+ <attribute name="version"> <text /> </attribute>
|
||||||
|
+ <attribute name="name"> <text /> </attribute>
|
||||||
|
+ <attribute name="id"> <text /> </attribute>
|
||||||
|
+ <attribute name="with_quorum"> <data type="boolean" /> </attribute>
|
||||||
|
+ </group>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <element name="last_update">
|
||||||
|
+ <attribute name="time"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ <element name="last_change">
|
||||||
|
+ <attribute name="time"> <text /> </attribute>
|
||||||
|
+ <attribute name="user"> <text /> </attribute>
|
||||||
|
+ <attribute name="client"> <text /> </attribute>
|
||||||
|
+ <attribute name="origin"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <element name="nodes_configured">
|
||||||
|
+ <attribute name="number"> <data type="nonNegativeInteger" /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ <element name="resources_configured">
|
||||||
|
+ <attribute name="number"> <data type="nonNegativeInteger" /> </attribute>
|
||||||
|
+ <attribute name="disabled"> <data type="nonNegativeInteger" /> </attribute>
|
||||||
|
+ <attribute name="blocked"> <data type="nonNegativeInteger" /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <element name="cluster_options">
|
||||||
|
+ <attribute name="stonith-enabled"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="symmetric-cluster"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="no-quorum-policy"> <text /> </attribute>
|
||||||
|
+ <attribute name="maintenance-mode"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="stop-all-resources"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="stonith-timeout-ms"> <data type="integer" /> </attribute>
|
||||||
|
+ <attribute name="priority-fencing-delay-ms"> <data type="integer" /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="resources-list">
|
||||||
|
+ <element name="resources">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="resources-2.4.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="nodes-list">
|
||||||
|
+ <element name="nodes">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="nodes-2.21.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="node-attributes-list">
|
||||||
|
+ <element name="node_attributes">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="node-attrs-2.8.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="failures-list">
|
||||||
|
+ <element name="failures">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="failure-2.8.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="fence-event-list">
|
||||||
|
+ <element name="fence_history">
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="status"> <data type="integer" /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="fence-event-2.15.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="tickets-list">
|
||||||
|
+ <element name="tickets">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-ticket" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="bans-list">
|
||||||
|
+ <element name="bans">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-ban" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-ticket">
|
||||||
|
+ <element name="ticket">
|
||||||
|
+ <attribute name="id"> <text /> </attribute>
|
||||||
|
+ <attribute name="status">
|
||||||
|
+ <choice>
|
||||||
|
+ <value>granted</value>
|
||||||
|
+ <value>revoked</value>
|
||||||
|
+ </choice>
|
||||||
|
+ </attribute>
|
||||||
|
+ <attribute name="standby"> <data type="boolean" /> </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="last-granted"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-ban">
|
||||||
|
+ <element name="ban">
|
||||||
|
+ <attribute name="id"> <text /> </attribute>
|
||||||
|
+ <attribute name="resource"> <text /> </attribute>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ <attribute name="weight"> <data type="integer" /> </attribute>
|
||||||
|
+ <attribute name="promoted-only"> <data type="boolean" /> </attribute>
|
||||||
|
+ <!-- DEPRECATED: master_only is a duplicate of promoted-only that is
|
||||||
|
+ provided solely for API backward compatibility. It will be
|
||||||
|
+ removed in a future release. Check promoted-only instead.
|
||||||
|
+ -->
|
||||||
|
+ <attribute name="master_only"> <data type="boolean" /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+</grammar>
|
||||||
|
diff --git a/xml/api/crm_simulate-2.21.rng b/xml/api/crm_simulate-2.21.rng
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..75a9b399b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/xml/api/crm_simulate-2.21.rng
|
||||||
|
@@ -0,0 +1,338 @@
|
||||||
|
+<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
|
||||||
|
+ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||||
|
+
|
||||||
|
+ <start>
|
||||||
|
+ <ref name="element-crm-simulate"/>
|
||||||
|
+ </start>
|
||||||
|
+
|
||||||
|
+ <define name="element-crm-simulate">
|
||||||
|
+ <choice>
|
||||||
|
+ <ref name="timings-list" />
|
||||||
|
+ <group>
|
||||||
|
+ <ref name="cluster-status" />
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="modifications-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="allocations-utilizations-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="action-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="cluster-injected-actions-list" />
|
||||||
|
+ <ref name="revised-cluster-status" />
|
||||||
|
+ </optional>
|
||||||
|
+ </group>
|
||||||
|
+ </choice>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="allocations-utilizations-list">
|
||||||
|
+ <choice>
|
||||||
|
+ <element name="allocations">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <choice>
|
||||||
|
+ <ref name="element-allocation" />
|
||||||
|
+ <ref name="element-promotion" />
|
||||||
|
+ </choice>
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ <element name="utilizations">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <choice>
|
||||||
|
+ <ref name="element-capacity" />
|
||||||
|
+ <ref name="element-utilization" />
|
||||||
|
+ </choice>
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ <element name="allocations_utilizations">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <choice>
|
||||||
|
+ <ref name="element-allocation" />
|
||||||
|
+ <ref name="element-promotion" />
|
||||||
|
+ <ref name="element-capacity" />
|
||||||
|
+ <ref name="element-utilization" />
|
||||||
|
+ </choice>
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </choice>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="cluster-status">
|
||||||
|
+ <element name="cluster_status">
|
||||||
|
+ <ref name="nodes-list" />
|
||||||
|
+ <ref name="resources-list" />
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="node-attributes-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <externalRef href="node-history-2.12.rng" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="failures-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="modifications-list">
|
||||||
|
+ <element name="modifications">
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="quorum"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="watchdog"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-inject-modify-node" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-inject-modify-ticket" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-inject-spec" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-inject-attr" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="revised-cluster-status">
|
||||||
|
+ <element name="revised_cluster_status">
|
||||||
|
+ <ref name="nodes-list" />
|
||||||
|
+ <ref name="resources-list" />
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="node-attributes-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <ref name="failures-list" />
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-attr">
|
||||||
|
+ <element name="inject_attr">
|
||||||
|
+ <attribute name="cib_node"> <text /> </attribute>
|
||||||
|
+ <attribute name="name"> <text /> </attribute>
|
||||||
|
+ <attribute name="node_path"> <text /> </attribute>
|
||||||
|
+ <attribute name="value"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-modify-node">
|
||||||
|
+ <element name="modify_node">
|
||||||
|
+ <attribute name="action"> <text /> </attribute>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-spec">
|
||||||
|
+ <element name="inject_spec">
|
||||||
|
+ <attribute name="spec"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-modify-ticket">
|
||||||
|
+ <element name="modify_ticket">
|
||||||
|
+ <attribute name="action"> <text /> </attribute>
|
||||||
|
+ <attribute name="ticket"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="cluster-injected-actions-list">
|
||||||
|
+ <element name="transition">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-injected-actions" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="node-attributes-list">
|
||||||
|
+ <element name="node_attributes">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="node-attrs-2.8.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="failures-list">
|
||||||
|
+ <element name="failures">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="failure-2.8.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="nodes-list">
|
||||||
|
+ <element name="nodes">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="nodes-2.21.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="resources-list">
|
||||||
|
+ <element name="resources">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <externalRef href="resources-2.4.rng" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="timings-list">
|
||||||
|
+ <element name="timings">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-timing" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="action-list">
|
||||||
|
+ <element name="actions">
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-node-action" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <ref name="element-rsc-action" />
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-allocation">
|
||||||
|
+ <element name="node_weight">
|
||||||
|
+ <attribute name="function"> <text /> </attribute>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ <externalRef href="../score.rng" />
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="id"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-capacity">
|
||||||
|
+ <element name="capacity">
|
||||||
|
+ <attribute name="comment"> <text /> </attribute>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <element>
|
||||||
|
+ <anyName />
|
||||||
|
+ <text />
|
||||||
|
+ </element>
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-cluster-action">
|
||||||
|
+ <element name="cluster_action">
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ <attribute name="task"> <text /> </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="id"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-injected-actions">
|
||||||
|
+ <choice>
|
||||||
|
+ <ref name="element-inject-cluster-action" />
|
||||||
|
+ <ref name="element-inject-fencing-action" />
|
||||||
|
+ <ref name="element-inject-pseudo-action" />
|
||||||
|
+ <ref name="element-inject-rsc-action" />
|
||||||
|
+ </choice>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-fencing-action">
|
||||||
|
+ <element name="fencing_action">
|
||||||
|
+ <attribute name="op"> <text /> </attribute>
|
||||||
|
+ <attribute name="target"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-node-action">
|
||||||
|
+ <element name="node_action">
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ <attribute name="reason"> <text /> </attribute>
|
||||||
|
+ <attribute name="task"> <text /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-promotion">
|
||||||
|
+ <element name="promotion_score">
|
||||||
|
+ <attribute name="id"> <text /> </attribute>
|
||||||
|
+ <externalRef href="../score.rng" />
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-pseudo-action">
|
||||||
|
+ <element name="pseudo_action">
|
||||||
|
+ <attribute name="task"> <text /> </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-inject-rsc-action">
|
||||||
|
+ <element name="rsc_action">
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ <attribute name="op"> <text /> </attribute>
|
||||||
|
+ <attribute name="resource"> <text /> </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="interval"> <data type="integer" /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-timing">
|
||||||
|
+ <element name="timing">
|
||||||
|
+ <attribute name="file"> <text /> </attribute>
|
||||||
|
+ <attribute name="duration"> <data type="double" /> </attribute>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-rsc-action">
|
||||||
|
+ <element name="rsc_action">
|
||||||
|
+ <attribute name="action"> <text /> </attribute>
|
||||||
|
+ <attribute name="resource"> <text /> </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="blocked"> <data type="boolean" /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="dest"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="next-role"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="reason"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="role"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="source"> <text /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+
|
||||||
|
+ <define name="element-utilization">
|
||||||
|
+ <element name="utilization">
|
||||||
|
+ <attribute name="function"> <text /> </attribute>
|
||||||
|
+ <attribute name="node"> <text /> </attribute>
|
||||||
|
+ <attribute name="resource"> <text /> </attribute>
|
||||||
|
+ <zeroOrMore>
|
||||||
|
+ <element>
|
||||||
|
+ <anyName />
|
||||||
|
+ <text />
|
||||||
|
+ </element>
|
||||||
|
+ </zeroOrMore>
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+</grammar>
|
||||||
|
diff --git a/xml/api/nodes-2.21.rng b/xml/api/nodes-2.21.rng
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000..df4c77f37
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/xml/api/nodes-2.21.rng
|
||||||
|
@@ -0,0 +1,51 @@
|
||||||
|
+<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
+<grammar xmlns="http://relaxng.org/ns/structure/1.0"
|
||||||
|
+ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
||||||
|
+
|
||||||
|
+ <start>
|
||||||
|
+ <ref name="element-full-node"/>
|
||||||
|
+ </start>
|
||||||
|
+
|
||||||
|
+ <define name="element-full-node">
|
||||||
|
+ <element name="node">
|
||||||
|
+ <attribute name="name"> <text/> </attribute>
|
||||||
|
+ <attribute name="id"> <text/> </attribute>
|
||||||
|
+ <attribute name="online"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="standby"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="standby_onfail"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="maintenance"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="pending"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="unclean"> <data type="boolean" /> </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="health">
|
||||||
|
+ <choice>
|
||||||
|
+ <value>red</value>
|
||||||
|
+ <value>yellow</value>
|
||||||
|
+ <value>green</value>
|
||||||
|
+ </choice>
|
||||||
|
+ </attribute>
|
||||||
|
+ </optional>
|
||||||
|
+ <attribute name="shutdown"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="expected_up"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="is_dc"> <data type="boolean" /> </attribute>
|
||||||
|
+ <attribute name="resources_running"> <data type="nonNegativeInteger" /> </attribute>
|
||||||
|
+ <attribute name="type">
|
||||||
|
+ <choice>
|
||||||
|
+ <value>unknown</value>
|
||||||
|
+ <value>member</value>
|
||||||
|
+ <value>remote</value>
|
||||||
|
+ <value>ping</value>
|
||||||
|
+ </choice>
|
||||||
|
+ </attribute>
|
||||||
|
+ <optional>
|
||||||
|
+ <!-- for virtualized pacemaker_remote nodes, crm_mon 1.1.13 uses
|
||||||
|
+ "container_id" while later versions use "id_as_resource" -->
|
||||||
|
+ <choice>
|
||||||
|
+ <attribute name="container_id"> <text/> </attribute>
|
||||||
|
+ <attribute name="id_as_resource"> <text/> </attribute>
|
||||||
|
+ </choice>
|
||||||
|
+ </optional>
|
||||||
|
+ <externalRef href="resources-2.4.rng" />
|
||||||
|
+ </element>
|
||||||
|
+ </define>
|
||||||
|
+</grammar>
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
46
SOURCES/005-schema.patch
Normal file
46
SOURCES/005-schema.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
From 5b6280ac1a213e176aee6d61945b3283ea060a88 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Pavlu <petr.pavlu@suse.com>
|
||||||
|
Date: Tue, 24 May 2022 18:02:31 +0200
|
||||||
|
Subject: [PATCH] Feature: tools: report CRM feature set of nodes by crm_mon
|
||||||
|
|
||||||
|
Enable crm_mon to report when CRM feature set is not consistent among
|
||||||
|
online nodes and output a version of each node if --show-detail is
|
||||||
|
specified.
|
||||||
|
---
|
||||||
|
xml/api/crm_mon-2.21.rng | 3 +
|
||||||
|
xml/api/nodes-2.21.rng | 3 +
|
||||||
|
9 files changed, 508 insertions(+), 125 deletions(-)
|
||||||
|
create mode 100644 cts/cli/crm_mon-feature_set.xml
|
||||||
|
create mode 100644 cts/cli/regression.feature_set.exp
|
||||||
|
|
||||||
|
diff --git a/xml/api/crm_mon-2.21.rng b/xml/api/crm_mon-2.21.rng
|
||||||
|
index 37036d665..e99bcc3d7 100644
|
||||||
|
--- a/xml/api/crm_mon-2.21.rng
|
||||||
|
+++ b/xml/api/crm_mon-2.21.rng
|
||||||
|
@@ -54,6 +54,9 @@
|
||||||
|
<attribute name="with_quorum"> <data type="boolean" /> </attribute>
|
||||||
|
</group>
|
||||||
|
</optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="mixed_version"> <data type="boolean" /> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
</element>
|
||||||
|
</optional>
|
||||||
|
<optional>
|
||||||
|
diff --git a/xml/api/nodes-2.21.rng b/xml/api/nodes-2.21.rng
|
||||||
|
index df4c77f37..7e236ba63 100644
|
||||||
|
--- a/xml/api/nodes-2.21.rng
|
||||||
|
+++ b/xml/api/nodes-2.21.rng
|
||||||
|
@@ -25,6 +25,9 @@
|
||||||
|
</choice>
|
||||||
|
</attribute>
|
||||||
|
</optional>
|
||||||
|
+ <optional>
|
||||||
|
+ <attribute name="feature_set"> <text/> </attribute>
|
||||||
|
+ </optional>
|
||||||
|
<attribute name="shutdown"> <data type="boolean" /> </attribute>
|
||||||
|
<attribute name="expected_up"> <data type="boolean" /> </attribute>
|
||||||
|
<attribute name="is_dc"> <data type="boolean" /> </attribute>
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
1686
SOURCES/006-crm_resource.patch
Normal file
1686
SOURCES/006-crm_resource.patch
Normal file
File diff suppressed because it is too large
Load Diff
108
SOURCES/007-stonith_admin.patch
Normal file
108
SOURCES/007-stonith_admin.patch
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
From d6294dd28b6d95ad3844824996717f9959d97ac6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
Date: Thu, 30 Jun 2022 11:07:32 -0700
|
||||||
|
Subject: [PATCH 1/2] Fix: Use correct boolean in stonith__validate_agent_xml
|
||||||
|
|
||||||
|
This fixes a regression introduced by 91a2b2e that flips the boolean
|
||||||
|
values for "valid" in the XML output.
|
||||||
|
|
||||||
|
Resolves: RHBZ#2102292 (partial)
|
||||||
|
|
||||||
|
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
---
|
||||||
|
lib/fencing/st_output.c | 7 +++----
|
||||||
|
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/fencing/st_output.c b/lib/fencing/st_output.c
|
||||||
|
index e0ff848c2..eb10ad0c5 100644
|
||||||
|
--- a/lib/fencing/st_output.c
|
||||||
|
+++ b/lib/fencing/st_output.c
|
||||||
|
@@ -528,10 +528,9 @@ validate_agent_xml(pcmk__output_t *out, va_list args) {
|
||||||
|
char *error_output = va_arg(args, char *);
|
||||||
|
int rc = va_arg(args, int);
|
||||||
|
|
||||||
|
- xmlNodePtr node = pcmk__output_create_xml_node(out, "validate",
|
||||||
|
- "agent", agent,
|
||||||
|
- "valid", pcmk__btoa(rc),
|
||||||
|
- NULL);
|
||||||
|
+ xmlNodePtr node = pcmk__output_create_xml_node(
|
||||||
|
+ out, "validate", "agent", agent, "valid", pcmk__btoa(rc == pcmk_ok),
|
||||||
|
+ NULL);
|
||||||
|
|
||||||
|
if (device != NULL) {
|
||||||
|
crm_xml_add(node, "device", device);
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
|
|
||||||
|
From 81e83683e69b4f147f40f5353f8e68032758a104 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
Date: Wed, 29 Jun 2022 18:15:33 -0700
|
||||||
|
Subject: [PATCH 2/2] Fix: Use failed action result in rhcs_validate and
|
||||||
|
_get_metadata
|
||||||
|
|
||||||
|
If an action failed but has a non-NULL result, get the rc and other
|
||||||
|
attributes from that result.
|
||||||
|
|
||||||
|
This fixes a regression introduced by b441925, in which failure XML
|
||||||
|
output now contains a CRM_EX_CONNECTED rc instead of the correct one and
|
||||||
|
does not contain stdout/stderr. That commit caused
|
||||||
|
services__execute_file() to return a proper rc instead of TRUE. A
|
||||||
|
non-pcmk_ok bubbled up the call chain causing
|
||||||
|
internal_stonith_action_execute() to return -ECONNABORTED. Then
|
||||||
|
rhcs_validate() and _get_metadata() would use this rc instead of the one
|
||||||
|
attached to the result.
|
||||||
|
|
||||||
|
Resolves: RHBZ#2102292
|
||||||
|
|
||||||
|
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
---
|
||||||
|
lib/fencing/st_rhcs.c | 10 +++++-----
|
||||||
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/fencing/st_rhcs.c b/lib/fencing/st_rhcs.c
|
||||||
|
index 39485013e..029c97eea 100644
|
||||||
|
--- a/lib/fencing/st_rhcs.c
|
||||||
|
+++ b/lib/fencing/st_rhcs.c
|
||||||
|
@@ -130,16 +130,15 @@ stonith__rhcs_get_metadata(const char *agent, int timeout, xmlNode **metadata)
|
||||||
|
stonith_action_t *action = stonith_action_create(agent, "metadata", NULL, 0,
|
||||||
|
5, NULL, NULL, NULL);
|
||||||
|
int rc = stonith__execute(action);
|
||||||
|
+ result = stonith__action_result(action);
|
||||||
|
|
||||||
|
- if (rc < 0) {
|
||||||
|
+ if (rc < 0 && result == NULL) {
|
||||||
|
crm_warn("Could not execute metadata action for %s: %s "
|
||||||
|
CRM_XS " rc=%d", agent, pcmk_strerror(rc), rc);
|
||||||
|
stonith__destroy_action(action);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
- result = stonith__action_result(action);
|
||||||
|
-
|
||||||
|
if (result->execution_status != PCMK_EXEC_DONE) {
|
||||||
|
crm_warn("Could not execute metadata action for %s: %s",
|
||||||
|
agent, pcmk_exec_status_str(result->execution_status));
|
||||||
|
@@ -262,6 +261,7 @@ stonith__rhcs_validate(stonith_t *st, int call_options, const char *target,
|
||||||
|
int remaining_timeout = timeout;
|
||||||
|
xmlNode *metadata = NULL;
|
||||||
|
stonith_action_t *action = NULL;
|
||||||
|
+ pcmk__action_result_t *result = NULL;
|
||||||
|
|
||||||
|
if (host_arg == NULL) {
|
||||||
|
time_t start_time = time(NULL);
|
||||||
|
@@ -298,9 +298,9 @@ stonith__rhcs_validate(stonith_t *st, int call_options, const char *target,
|
||||||
|
NULL, host_arg);
|
||||||
|
|
||||||
|
rc = stonith__execute(action);
|
||||||
|
- if (rc == pcmk_ok) {
|
||||||
|
- pcmk__action_result_t *result = stonith__action_result(action);
|
||||||
|
+ result = stonith__action_result(action);
|
||||||
|
|
||||||
|
+ if (result != NULL) {
|
||||||
|
rc = pcmk_rc2legacy(stonith__result2rc(result));
|
||||||
|
|
||||||
|
// Take ownership of output so stonith__destroy_action() doesn't free it
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
34
SOURCES/008-metadata.patch
Normal file
34
SOURCES/008-metadata.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From e4d9c795dfe2d6737c777a265292864da98dae8f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
Date: Thu, 30 Jun 2022 14:40:31 -0700
|
||||||
|
Subject: [PATCH] Low: Always null-check result in stonith__rhcs_get_metadata
|
||||||
|
|
||||||
|
Null-check result even if rc == 0.
|
||||||
|
|
||||||
|
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
|
||||||
|
---
|
||||||
|
lib/fencing/st_rhcs.c | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/fencing/st_rhcs.c b/lib/fencing/st_rhcs.c
|
||||||
|
index 029c97eea..dfccff2cb 100644
|
||||||
|
--- a/lib/fencing/st_rhcs.c
|
||||||
|
+++ b/lib/fencing/st_rhcs.c
|
||||||
|
@@ -132,9 +132,11 @@ stonith__rhcs_get_metadata(const char *agent, int timeout, xmlNode **metadata)
|
||||||
|
int rc = stonith__execute(action);
|
||||||
|
result = stonith__action_result(action);
|
||||||
|
|
||||||
|
- if (rc < 0 && result == NULL) {
|
||||||
|
- crm_warn("Could not execute metadata action for %s: %s "
|
||||||
|
- CRM_XS " rc=%d", agent, pcmk_strerror(rc), rc);
|
||||||
|
+ if (result == NULL) {
|
||||||
|
+ if (rc < 0) {
|
||||||
|
+ crm_warn("Could not execute metadata action for %s: %s "
|
||||||
|
+ CRM_XS " rc=%d", agent, pcmk_strerror(rc), rc);
|
||||||
|
+ }
|
||||||
|
stonith__destroy_action(action);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
94
SOURCES/009-validate.patch
Normal file
94
SOURCES/009-validate.patch
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
From d00a6abde7e6a41f8bc6085c875cb8072aff499b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chris Lumens <clumens@redhat.com>
|
||||||
|
Date: Thu, 30 Jun 2022 09:25:05 -0400
|
||||||
|
Subject: [PATCH 1/2] Fix: libstonithd: Add the "Agent not found..." message to
|
||||||
|
formatted output.
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/fencing/st_client.c | 11 ++++++++---
|
||||||
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c
|
||||||
|
index 137642af7..971bbe9a5 100644
|
||||||
|
--- a/lib/fencing/st_client.c
|
||||||
|
+++ b/lib/fencing/st_client.c
|
||||||
|
@@ -1763,9 +1763,14 @@ stonith_api_validate(stonith_t *st, int call_options, const char *rsc_id,
|
||||||
|
default:
|
||||||
|
rc = -EINVAL;
|
||||||
|
errno = EINVAL;
|
||||||
|
- crm_perror(LOG_ERR,
|
||||||
|
- "Agent %s not found or does not support validation",
|
||||||
|
- agent);
|
||||||
|
+
|
||||||
|
+ if (error_output) {
|
||||||
|
+ *error_output = crm_strdup_printf("Agent %s not found or does not support validation",
|
||||||
|
+ agent);
|
||||||
|
+ } else {
|
||||||
|
+ crm_err("Agent %s not found or does not support validation", agent);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
g_hash_table_destroy(params_table);
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
|
|
||||||
|
From f3a5fc961c30556b975011773e4cebf323bec38e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chris Lumens <clumens@redhat.com>
|
||||||
|
Date: Fri, 1 Jul 2022 10:38:45 -0400
|
||||||
|
Subject: [PATCH 2/2] Refactor: libstonithd: Split apart error conditions when
|
||||||
|
validating.
|
||||||
|
|
||||||
|
The "not found" and "can't validate" cases were previously jumbled
|
||||||
|
together. Now, return ENOENT if the agent is not found and EOPNOTSUPP
|
||||||
|
if it can't validate. The only caller appears to be handling both cases
|
||||||
|
correctly already, so no changes are needed there.
|
||||||
|
---
|
||||||
|
lib/fencing/st_client.c | 21 +++++++++++++++++----
|
||||||
|
1 file changed, 17 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c
|
||||||
|
index 971bbe9a5..192334812 100644
|
||||||
|
--- a/lib/fencing/st_client.c
|
||||||
|
+++ b/lib/fencing/st_client.c
|
||||||
|
@@ -1760,19 +1760,32 @@ stonith_api_validate(stonith_t *st, int call_options, const char *rsc_id,
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ case st_namespace_invalid:
|
||||||
|
+ errno = ENOENT;
|
||||||
|
+ rc = -errno;
|
||||||
|
+
|
||||||
|
+ if (error_output) {
|
||||||
|
+ *error_output = crm_strdup_printf("Agent %s not found", agent);
|
||||||
|
+ } else {
|
||||||
|
+ crm_err("Agent %s not found", agent);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
default:
|
||||||
|
- rc = -EINVAL;
|
||||||
|
- errno = EINVAL;
|
||||||
|
+ errno = EOPNOTSUPP;
|
||||||
|
+ rc = -errno;
|
||||||
|
|
||||||
|
if (error_output) {
|
||||||
|
- *error_output = crm_strdup_printf("Agent %s not found or does not support validation",
|
||||||
|
+ *error_output = crm_strdup_printf("Agent %s does not support validation",
|
||||||
|
agent);
|
||||||
|
} else {
|
||||||
|
- crm_err("Agent %s not found or does not support validation", agent);
|
||||||
|
+ crm_err("Agent %s does not support validation", agent);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
g_hash_table_destroy(params_table);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
47
SOURCES/010-regression.patch
Normal file
47
SOURCES/010-regression.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From e5f80059c7f1c0ad3264dc2a2a61e64cded0fe0f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hideo Yamauchi <renayama19661014@ybb.ne.jp>
|
||||||
|
Date: Tue, 12 Jul 2022 14:45:55 +0900
|
||||||
|
Subject: [PATCH] High: scheduler: Resolves an issue where STONITH devices
|
||||||
|
cannot be registered.
|
||||||
|
|
||||||
|
---
|
||||||
|
lib/pacemaker/pcmk_sched_allocate.c | 10 ++++++++++
|
||||||
|
1 file changed, 10 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/lib/pacemaker/pcmk_sched_allocate.c b/lib/pacemaker/pcmk_sched_allocate.c
|
||||||
|
index 85df6ace8..a7fe9c8d6 100644
|
||||||
|
--- a/lib/pacemaker/pcmk_sched_allocate.c
|
||||||
|
+++ b/lib/pacemaker/pcmk_sched_allocate.c
|
||||||
|
@@ -724,12 +724,18 @@ log_unrunnable_actions(pe_working_set_t *data_set)
|
||||||
|
static void
|
||||||
|
unpack_cib(xmlNode *cib, unsigned long long flags, pe_working_set_t *data_set)
|
||||||
|
{
|
||||||
|
+ const char* localhost_save = NULL;
|
||||||
|
+
|
||||||
|
if (pcmk_is_set(data_set->flags, pe_flag_have_status)) {
|
||||||
|
crm_trace("Reusing previously calculated cluster status");
|
||||||
|
pe__set_working_set_flags(data_set, flags);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (data_set->localhost) {
|
||||||
|
+ localhost_save = data_set->localhost;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
CRM_ASSERT(cib != NULL);
|
||||||
|
crm_trace("Calculating cluster status");
|
||||||
|
|
||||||
|
@@ -740,6 +746,10 @@ unpack_cib(xmlNode *cib, unsigned long long flags, pe_working_set_t *data_set)
|
||||||
|
*/
|
||||||
|
set_working_set_defaults(data_set);
|
||||||
|
|
||||||
|
+ if (localhost_save) {
|
||||||
|
+ data_set->localhost = localhost_save;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
pe__set_working_set_flags(data_set, flags);
|
||||||
|
data_set->input = cib;
|
||||||
|
cluster_status(data_set); // Sets pe_flag_have_status
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
178
SOURCES/011-unfencing.patch
Normal file
178
SOURCES/011-unfencing.patch
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
From b1094468ab0f7c6d2f5b457b721f3a852a9cae2c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Klaus Wenninger <klaus.wenninger@aon.at>
|
||||||
|
Date: Thu, 14 Jul 2022 13:09:51 +0200
|
||||||
|
Subject: [PATCH 1/2] Fix: do unfencing equally for cluster-nodes & remotes
|
||||||
|
|
||||||
|
Fixes T28
|
||||||
|
---
|
||||||
|
lib/pengine/utils.c | 8 ++------
|
||||||
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c
|
||||||
|
index 0c2eb3c16..83f76cccf 100644
|
||||||
|
--- a/lib/pengine/utils.c
|
||||||
|
+++ b/lib/pengine/utils.c
|
||||||
|
@@ -1201,12 +1201,8 @@ pe_fence_op(pe_node_t * node, const char *op, bool optional, const char *reason,
|
||||||
|
add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET_UUID, node->details->id);
|
||||||
|
add_hash_param(stonith_op->meta, "stonith_action", op);
|
||||||
|
|
||||||
|
- if (pe__is_guest_or_remote_node(node)
|
||||||
|
- && pcmk_is_set(data_set->flags, pe_flag_enable_unfencing)) {
|
||||||
|
- /* Extra work to detect device changes on remotes
|
||||||
|
- *
|
||||||
|
- * We may do this for all nodes in the future, but for now
|
||||||
|
- * the pcmk__check_action_config() based stuff works fine.
|
||||||
|
+ if (pcmk_is_set(data_set->flags, pe_flag_enable_unfencing)) {
|
||||||
|
+ /* Extra work to detect device changes
|
||||||
|
*/
|
||||||
|
long max = 1024;
|
||||||
|
long digests_all_offset = 0;
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
||||||
|
|
||||||
|
From f5db6e2c94273623a49f36f1bdb6c39315c53cab Mon Sep 17 00:00:00 2001
|
||||||
|
From: Klaus Wenninger <klaus.wenninger@aon.at>
|
||||||
|
Date: Thu, 14 Jul 2022 11:29:05 +0200
|
||||||
|
Subject: [PATCH 2/2] Test: cts-scheduler: update expected output for changes
|
||||||
|
in unfencing
|
||||||
|
|
||||||
|
---
|
||||||
|
cts/scheduler/exp/start-then-stop-with-unfence.exp | 2 +-
|
||||||
|
cts/scheduler/exp/unfence-definition.exp | 6 +++---
|
||||||
|
cts/scheduler/exp/unfence-device.exp | 6 +++---
|
||||||
|
cts/scheduler/exp/unfence-parameters.exp | 6 +++---
|
||||||
|
cts/scheduler/exp/unfence-startup.exp | 4 ++--
|
||||||
|
5 files changed, 12 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cts/scheduler/exp/start-then-stop-with-unfence.exp b/cts/scheduler/exp/start-then-stop-with-unfence.exp
|
||||||
|
index b1868586f..69cfb63de 100644
|
||||||
|
--- a/cts/scheduler/exp/start-then-stop-with-unfence.exp
|
||||||
|
+++ b/cts/scheduler/exp/start-then-stop-with-unfence.exp
|
||||||
|
@@ -151,7 +151,7 @@
|
||||||
|
<synapse id="11">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="5" operation="stonith" operation_key="stonith-rhel7-node1.example.com-on" on_node="rhel7-node1.example.com" on_node_uuid="1">
|
||||||
|
- <attributes CRM_meta_on_node="rhel7-node1.example.com" CRM_meta_on_node_uuid="1" CRM_meta_probe_complete="true" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="mpath-node1:fence_mpath:019ed48e26413030411da3ae8888a649,mpath-node2:fence_mpath:b97ef86afabe0426040d1bef247023ee," CRM_meta_digests_secure="mpath-node1:fence_mpath:21f9562fe6837f7357aab98ba69f71fb,mpath-node2:fence_mpath:563e5d6a67b7dcdb65d2f0325aed9fc1," CRM_meta_on_node="rhel7-node1.example.com" CRM_meta_on_node_uuid="1" CRM_meta_probe_complete="true" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs/>
|
||||||
|
diff --git a/cts/scheduler/exp/unfence-definition.exp b/cts/scheduler/exp/unfence-definition.exp
|
||||||
|
index 840a8d212..6a098ed3c 100644
|
||||||
|
--- a/cts/scheduler/exp/unfence-definition.exp
|
||||||
|
+++ b/cts/scheduler/exp/unfence-definition.exp
|
||||||
|
@@ -373,7 +373,7 @@
|
||||||
|
<synapse id="22">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="29" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4">
|
||||||
|
- <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" />
|
||||||
|
<downed>
|
||||||
|
<node id="4"/>
|
||||||
|
</downed>
|
||||||
|
@@ -384,7 +384,7 @@
|
||||||
|
<synapse id="23">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="3" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3">
|
||||||
|
- <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs/>
|
||||||
|
@@ -392,7 +392,7 @@
|
||||||
|
<synapse id="24">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1">
|
||||||
|
- <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs>
|
||||||
|
diff --git a/cts/scheduler/exp/unfence-device.exp b/cts/scheduler/exp/unfence-device.exp
|
||||||
|
index a39fc758f..452351d98 100644
|
||||||
|
--- a/cts/scheduler/exp/unfence-device.exp
|
||||||
|
+++ b/cts/scheduler/exp/unfence-device.exp
|
||||||
|
@@ -76,7 +76,7 @@
|
||||||
|
<synapse id="5">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="6" operation="stonith" operation_key="stonith-virt-013-on" on_node="virt-013" on_node_uuid="3">
|
||||||
|
- <attributes CRM_meta_on_node="virt-013" CRM_meta_on_node_uuid="3" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fence_scsi:fence_scsi:5950f402238c1e5058a556fe39bb09de," CRM_meta_digests_secure="fence_scsi:fence_scsi:a911b9a554cdc5844d863a91b1ef283a," CRM_meta_on_node="virt-013" CRM_meta_on_node_uuid="3" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs/>
|
||||||
|
@@ -84,7 +84,7 @@
|
||||||
|
<synapse id="6">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="4" operation="stonith" operation_key="stonith-virt-009-on" on_node="virt-009" on_node_uuid="2">
|
||||||
|
- <attributes CRM_meta_on_node="virt-009" CRM_meta_on_node_uuid="2" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fence_scsi:fence_scsi:5950f402238c1e5058a556fe39bb09de," CRM_meta_digests_secure="fence_scsi:fence_scsi:a911b9a554cdc5844d863a91b1ef283a," CRM_meta_on_node="virt-009" CRM_meta_on_node_uuid="2" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs/>
|
||||||
|
@@ -92,7 +92,7 @@
|
||||||
|
<synapse id="7">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="2" operation="stonith" operation_key="stonith-virt-008-on" on_node="virt-008" on_node_uuid="1">
|
||||||
|
- <attributes CRM_meta_on_node="virt-008" CRM_meta_on_node_uuid="1" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fence_scsi:fence_scsi:5950f402238c1e5058a556fe39bb09de," CRM_meta_digests_secure="fence_scsi:fence_scsi:a911b9a554cdc5844d863a91b1ef283a," CRM_meta_on_node="virt-008" CRM_meta_on_node_uuid="1" CRM_meta_shutdown="0" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs/>
|
||||||
|
diff --git a/cts/scheduler/exp/unfence-parameters.exp b/cts/scheduler/exp/unfence-parameters.exp
|
||||||
|
index 3e70cb8e9..268bf008e 100644
|
||||||
|
--- a/cts/scheduler/exp/unfence-parameters.exp
|
||||||
|
+++ b/cts/scheduler/exp/unfence-parameters.exp
|
||||||
|
@@ -357,7 +357,7 @@
|
||||||
|
<synapse id="21">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="28" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4">
|
||||||
|
- <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" />
|
||||||
|
<downed>
|
||||||
|
<node id="4"/>
|
||||||
|
</downed>
|
||||||
|
@@ -368,7 +368,7 @@
|
||||||
|
<synapse id="22">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="3" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3">
|
||||||
|
- <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs/>
|
||||||
|
@@ -376,7 +376,7 @@
|
||||||
|
<synapse id="23">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1">
|
||||||
|
- <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs>
|
||||||
|
diff --git a/cts/scheduler/exp/unfence-startup.exp b/cts/scheduler/exp/unfence-startup.exp
|
||||||
|
index 6745bff4b..f2d38e80c 100644
|
||||||
|
--- a/cts/scheduler/exp/unfence-startup.exp
|
||||||
|
+++ b/cts/scheduler/exp/unfence-startup.exp
|
||||||
|
@@ -173,7 +173,7 @@
|
||||||
|
<synapse id="11">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="28" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4">
|
||||||
|
- <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" />
|
||||||
|
<downed>
|
||||||
|
<node id="4"/>
|
||||||
|
</downed>
|
||||||
|
@@ -184,7 +184,7 @@
|
||||||
|
<synapse id="12">
|
||||||
|
<action_set>
|
||||||
|
<crm_event id="3" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3">
|
||||||
|
- <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" />
|
||||||
|
+ <attributes CRM_meta_digests_all="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_digests_secure="fencing:fence_scsi:f2317cad3d54cec5d7d7aa7d0bf35cf8," CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" />
|
||||||
|
</crm_event>
|
||||||
|
</action_set>
|
||||||
|
<inputs/>
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
@ -36,7 +36,7 @@
|
|||||||
## can be incremented to build packages reliably considered "newer"
|
## can be incremented to build packages reliably considered "newer"
|
||||||
## than previously built packages with the same pcmkversion)
|
## than previously built packages with the same pcmkversion)
|
||||||
%global pcmkversion 2.1.4
|
%global pcmkversion 2.1.4
|
||||||
%global specversion 3
|
%global specversion 4
|
||||||
|
|
||||||
## Upstream commit (full commit ID, abbreviated commit ID, or tag) to build
|
## Upstream commit (full commit ID, abbreviated commit ID, or tag) to build
|
||||||
%global commit dc6eb4362e67c1497a413434eba097063bf1ef83
|
%global commit dc6eb4362e67c1497a413434eba097063bf1ef83
|
||||||
@ -267,6 +267,14 @@ Source1: nagios-agents-metadata-%{nagios_hash}.tar.gz
|
|||||||
Patch001: 001-stonith-enabled.patch
|
Patch001: 001-stonith-enabled.patch
|
||||||
Patch002: 002-acl_group.patch
|
Patch002: 002-acl_group.patch
|
||||||
Patch003: 003-regression.patch
|
Patch003: 003-regression.patch
|
||||||
|
Patch004: 004-schema.patch
|
||||||
|
Patch005: 005-schema.patch
|
||||||
|
Patch006: 006-crm_resource.patch
|
||||||
|
Patch007: 007-stonith_admin.patch
|
||||||
|
Patch008: 008-metadata.patch
|
||||||
|
Patch009: 009-validate.patch
|
||||||
|
Patch010: 010-regression.patch
|
||||||
|
Patch011: 011-unfencing.patch
|
||||||
|
|
||||||
# downstream-only commits
|
# downstream-only commits
|
||||||
#Patch1xx: 1xx-xxxx.patch
|
#Patch1xx: 1xx-xxxx.patch
|
||||||
@ -955,6 +963,12 @@ exit 0
|
|||||||
%license %{nagios_name}-%{nagios_hash}/COPYING
|
%license %{nagios_name}-%{nagios_hash}/COPYING
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jul 20 2022 Ken Gaillot <kgaillot@redhat.com> - 2.1.4-4
|
||||||
|
- Ensure all nodes are re-unfenced after device configuration change
|
||||||
|
- crm_resource --why now checks node health status
|
||||||
|
- Resolves: rhbz1872483
|
||||||
|
- Resolves: rhbz2065818
|
||||||
|
|
||||||
* Wed Jun 29 2022 Ken Gaillot <kgaillot@redhat.com> - 2.1.4-3
|
* Wed Jun 29 2022 Ken Gaillot <kgaillot@redhat.com> - 2.1.4-3
|
||||||
- Add support for ACL groups
|
- Add support for ACL groups
|
||||||
- Resolves: rhbz1724310
|
- Resolves: rhbz1724310
|
||||||
|
Loading…
Reference in New Issue
Block a user