Accepting request 783587 from network:ha-clustering:Unstable
bsc#1166200 OBS-URL: https://build.opensuse.org/request/show/783587 OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/drbd-utils?expand=0&rev=90
This commit is contained in:
parent
128f47aeca
commit
224d8a1f53
86
crm-fence-peer-pacemaker2.patch
Normal file
86
crm-fence-peer-pacemaker2.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
commit fd2eec6eca91e3d4d24852b5bac4dd61f9854e67
|
||||||
|
Author: Lars Ellenberg <lars.ellenberg@linbit.com>
|
||||||
|
Date: Mon Mar 2 14:12:55 2020 +0100
|
||||||
|
|
||||||
|
crm-fence-peer: detect pacemaker 2 "promotable clones"
|
||||||
|
|
||||||
|
The sed-script to guess the pacemaker xml-id to be used in location
|
||||||
|
constraints from the DRBD resource name expected '<master' tags, but
|
||||||
|
with new pacemaker 2 xml, these are '<clone's, with "promotable=true"
|
||||||
|
set in the meta attributes.
|
||||||
|
|
||||||
|
Use the crm_feature_set version from the top level <cib/> tag
|
||||||
|
to decide between the two.
|
||||||
|
|
||||||
|
diff --git a/scripts/crm-fence-peer.9.sh b/scripts/crm-fence-peer.9.sh
|
||||||
|
index 94c32747..26b67b9e 100755
|
||||||
|
--- a/scripts/crm-fence-peer.9.sh
|
||||||
|
+++ b/scripts/crm-fence-peer.9.sh
|
||||||
|
@@ -197,15 +197,28 @@ fence_peer_init()
|
||||||
|
{
|
||||||
|
# we know which instance we are: $OCF_RESOURCE_INSTANCE.
|
||||||
|
# but we do not know the xml ID of the <master/> :(
|
||||||
|
+
|
||||||
|
+ # with Pacemaker 2, its "promotable clones" instead of the
|
||||||
|
+ # "master" (which was deemed a bad naming choice).
|
||||||
|
+ # detect older pacemaker by crm_feature_set < 3.1.0
|
||||||
|
+ local clone_or_master=clone
|
||||||
|
+ case $crm_feature_set in
|
||||||
|
+ 3.0.*|[012].*) : "pacemaker version < 2, master slave"
|
||||||
|
+ clone_or_master=master ;;
|
||||||
|
+ esac
|
||||||
|
+
|
||||||
|
# cibadmin -Ql --xpath \
|
||||||
|
# '//master[primitive[@type="drbd" and instance_attributes/nvpair[@name = "drbd_resource" and @value="r0"]]]/@id'
|
||||||
|
# but I'd have to pipe that through sed anyways, because @attribute
|
||||||
|
# xpath queries are not supported.
|
||||||
|
# and I'd be incompatible with older cibadmin not supporting --xpath.
|
||||||
|
- # be cool, sed it out:
|
||||||
|
+ # be cool, sed it out.
|
||||||
|
+ # I could be more strict about primitive class:provider:type,
|
||||||
|
+ # or double check that it is in fact a promotable="true" clone...
|
||||||
|
+ # But in the real world, this is good enough.
|
||||||
|
: ${master_id=$(set +x; echo "$cib_xml" |
|
||||||
|
- sed -ne '/<master /,/<\/master>/ {
|
||||||
|
- /<master / h;
|
||||||
|
+ sed -ne "/<$clone_or_master /,/<\\/$clone_or_master>/ {
|
||||||
|
+ /<$clone_or_master / h;"'
|
||||||
|
/<primitive/,/<\/primitive/ {
|
||||||
|
/<instance_attributes/,/<\/instance_attributes/ {
|
||||||
|
/<nvpair .*\bname="drbd_resource"/ {
|
||||||
|
diff --git a/scripts/crm-fence-peer.sh b/scripts/crm-fence-peer.sh
|
||||||
|
index 513773fe..b7b62cfd 100755
|
||||||
|
--- a/scripts/crm-fence-peer.sh
|
||||||
|
+++ b/scripts/crm-fence-peer.sh
|
||||||
|
@@ -51,15 +51,28 @@ fence_peer_init()
|
||||||
|
{
|
||||||
|
# we know which instance we are: $OCF_RESOURCE_INSTANCE.
|
||||||
|
# but we do not know the xml ID of the <master/> :(
|
||||||
|
+
|
||||||
|
+ # with Pacemaker 2, its "promotable clones" instead of the
|
||||||
|
+ # "master" (which was deemed a bad naming choice).
|
||||||
|
+ # detect older pacemaker by crm_feature_set < 3.1.0
|
||||||
|
+ local clone_or_master=clone
|
||||||
|
+ case $crm_feature_set in
|
||||||
|
+ 3.0.*|[012].*) : "pacemaker version < 2, master slave"
|
||||||
|
+ clone_or_master=master ;;
|
||||||
|
+ esac
|
||||||
|
+
|
||||||
|
# cibadmin -Ql --xpath \
|
||||||
|
# '//master[primitive[@type="drbd" and instance_attributes/nvpair[@name = "drbd_resource" and @value="r0"]]]/@id'
|
||||||
|
# but I'd have to pipe that through sed anyways, because @attribute
|
||||||
|
# xpath queries are not supported.
|
||||||
|
# and I'd be incompatible with older cibadmin not supporting --xpath.
|
||||||
|
- # be cool, sed it out:
|
||||||
|
+ # be cool, sed it out.
|
||||||
|
+ # I could be more strict about primitive class:provider:type,
|
||||||
|
+ # or double check that it is in fact a promotable="true" clone...
|
||||||
|
+ # But in the real world, this is good enough.
|
||||||
|
: ${master_id=$(set +x; echo "$cib_xml" |
|
||||||
|
- sed -ne '/<master /,/<\/master>/ {
|
||||||
|
- /<master / h;
|
||||||
|
+ sed -ne "/<$clone_or_master /,/<\\/$clone_or_master>/ {
|
||||||
|
+ /<$clone_or_master / h;"'
|
||||||
|
/<primitive/,/<\/primitive/ {
|
||||||
|
/<instance_attributes/,/<\/instance_attributes/ {
|
||||||
|
/<nvpair .*\bname="drbd_resource"/ {
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 10 09:10:40 UTC 2020 - nick wang <nwang@suse.com>
|
||||||
|
|
||||||
|
- bsc#1166200 ,fix crm-fence-peer regex issue with pacemaker 2.
|
||||||
|
- Add patch crm-fence-peer-pacemaker2.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 25 06:18:56 UTC 2020 - nick wang <nwang@suse.com>
|
Tue Feb 25 06:18:56 UTC 2020 - nick wang <nwang@suse.com>
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ Patch3: fence-after-pacemaker-down.patch
|
|||||||
# PATCH-SUSE-FIX: Disable quorum in default configuration (bsc#1032142)
|
# PATCH-SUSE-FIX: Disable quorum in default configuration (bsc#1032142)
|
||||||
Patch4: 0001-Disable-quorum-in-default-configuration-bsc-1032142.patch
|
Patch4: 0001-Disable-quorum-in-default-configuration-bsc-1032142.patch
|
||||||
Patch5: move_fencing_from_disk_to_net_in_example.patch
|
Patch5: move_fencing_from_disk_to_net_in_example.patch
|
||||||
|
Patch6: crm-fence-peer-pacemaker2.patch
|
||||||
|
|
||||||
Provides: drbd-bash-completion = %{version}
|
Provides: drbd-bash-completion = %{version}
|
||||||
Provides: drbd-pacemaker = %{version}
|
Provides: drbd-pacemaker = %{version}
|
||||||
@ -86,6 +87,7 @@ raid 1. It is a building block for setting up clusters.
|
|||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export WANT_DRBD_REPRODUCIBLE_BUILD=1
|
export WANT_DRBD_REPRODUCIBLE_BUILD=1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user