diff --git a/cts/cts-scheduler.in b/cts/cts-scheduler.in index 0e68e73..9e34379 100644 --- a/cts/cts-scheduler.in +++ b/cts/cts-scheduler.in @@ -482,6 +482,7 @@ TESTS = [ [ "on_fail_demote2", "Recovery with on-fail=\"demote\" with promotion on different node" ], [ "on_fail_demote3", "Recovery with on-fail=\"demote\" with no promotion" ], [ "on_fail_demote4", "Recovery with on-fail=\"demote\" on failed cluster, remote, guest, and bundle nodes" ], + [ "no_quorum_demote", "Promotable demotion and primitive stop with no-quorum-policy=\"demote\"" ], ], [ [ "history-1", "Correctly parse stateful-1 resource state" ], diff --git a/cts/scheduler/no_quorum_demote.dot b/cts/scheduler/no_quorum_demote.dot new file mode 100644 index 0000000..ea5b30c --- /dev/null +++ b/cts/scheduler/no_quorum_demote.dot @@ -0,0 +1,22 @@ + digraph "g" { +"Cancel rsc1_monitor_10000 rhel7-1" -> "rsc1_demote_0 rhel7-1" [ style = bold] +"Cancel rsc1_monitor_10000 rhel7-1" [ style=bold color="green" fontcolor="black"] +"Fencing_monitor_120000 rhel7-1" [ style=dashed color="red" fontcolor="black"] +"Fencing_start_0 rhel7-1" -> "Fencing_monitor_120000 rhel7-1" [ style = dashed] +"Fencing_start_0 rhel7-1" [ style=dashed color="red" fontcolor="black"] +"Fencing_stop_0 rhel7-1" -> "Fencing_start_0 rhel7-1" [ style = dashed] +"Fencing_stop_0 rhel7-1" [ style=bold color="green" fontcolor="black"] +"rsc1-clone_demote_0" -> "rsc1-clone_demoted_0" [ style = bold] +"rsc1-clone_demote_0" -> "rsc1_demote_0 rhel7-1" [ style = bold] +"rsc1-clone_demote_0" [ style=bold color="green" fontcolor="orange"] +"rsc1-clone_demoted_0" [ style=bold color="green" fontcolor="orange"] +"rsc1_demote_0 rhel7-1" -> "rsc1-clone_demoted_0" [ style = bold] +"rsc1_demote_0 rhel7-1" -> "rsc1_monitor_11000 rhel7-1" [ style = bold] +"rsc1_demote_0 rhel7-1" [ style=bold color="green" fontcolor="black"] +"rsc1_monitor_11000 rhel7-1" [ style=bold color="green" fontcolor="black"] +"rsc2_monitor_10000 rhel7-2" [ style=dashed color="red" fontcolor="black"] +"rsc2_start_0 rhel7-2" -> "rsc2_monitor_10000 rhel7-2" [ style = dashed] +"rsc2_start_0 rhel7-2" [ style=dashed color="red" fontcolor="black"] +"rsc2_stop_0 rhel7-2" -> "rsc2_start_0 rhel7-2" [ style = dashed] +"rsc2_stop_0 rhel7-2" [ style=bold color="green" fontcolor="black"] +} diff --git a/cts/scheduler/no_quorum_demote.exp b/cts/scheduler/no_quorum_demote.exp new file mode 100644 index 0000000..245574c --- /dev/null +++ b/cts/scheduler/no_quorum_demote.exp @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cts/scheduler/no_quorum_demote.scores b/cts/scheduler/no_quorum_demote.scores new file mode 100644 index 0000000..dddc57b --- /dev/null +++ b/cts/scheduler/no_quorum_demote.scores @@ -0,0 +1,72 @@ +Allocation scores: +Using the original execution date of: 2020-06-17 17:26:35Z +pcmk__clone_allocate: rsc1-clone allocation score on rhel7-1: 0 +pcmk__clone_allocate: rsc1-clone allocation score on rhel7-2: 0 +pcmk__clone_allocate: rsc1-clone allocation score on rhel7-3: 0 +pcmk__clone_allocate: rsc1-clone allocation score on rhel7-4: 0 +pcmk__clone_allocate: rsc1-clone allocation score on rhel7-5: 0 +pcmk__clone_allocate: rsc1:0 allocation score on rhel7-1: 11 +pcmk__clone_allocate: rsc1:0 allocation score on rhel7-2: 0 +pcmk__clone_allocate: rsc1:0 allocation score on rhel7-3: 0 +pcmk__clone_allocate: rsc1:0 allocation score on rhel7-4: 0 +pcmk__clone_allocate: rsc1:0 allocation score on rhel7-5: 0 +pcmk__clone_allocate: rsc1:1 allocation score on rhel7-1: 0 +pcmk__clone_allocate: rsc1:1 allocation score on rhel7-2: 6 +pcmk__clone_allocate: rsc1:1 allocation score on rhel7-3: 0 +pcmk__clone_allocate: rsc1:1 allocation score on rhel7-4: 0 +pcmk__clone_allocate: rsc1:1 allocation score on rhel7-5: 0 +pcmk__clone_allocate: rsc1:2 allocation score on rhel7-1: 10 +pcmk__clone_allocate: rsc1:2 allocation score on rhel7-2: 5 +pcmk__clone_allocate: rsc1:2 allocation score on rhel7-3: 0 +pcmk__clone_allocate: rsc1:2 allocation score on rhel7-4: 0 +pcmk__clone_allocate: rsc1:2 allocation score on rhel7-5: 0 +pcmk__clone_allocate: rsc1:3 allocation score on rhel7-1: 10 +pcmk__clone_allocate: rsc1:3 allocation score on rhel7-2: 5 +pcmk__clone_allocate: rsc1:3 allocation score on rhel7-3: 0 +pcmk__clone_allocate: rsc1:3 allocation score on rhel7-4: 0 +pcmk__clone_allocate: rsc1:3 allocation score on rhel7-5: 0 +pcmk__clone_allocate: rsc1:4 allocation score on rhel7-1: 10 +pcmk__clone_allocate: rsc1:4 allocation score on rhel7-2: 5 +pcmk__clone_allocate: rsc1:4 allocation score on rhel7-3: 0 +pcmk__clone_allocate: rsc1:4 allocation score on rhel7-4: 0 +pcmk__clone_allocate: rsc1:4 allocation score on rhel7-5: 0 +pcmk__native_allocate: Fencing allocation score on rhel7-1: 0 +pcmk__native_allocate: Fencing allocation score on rhel7-2: 0 +pcmk__native_allocate: Fencing allocation score on rhel7-3: 0 +pcmk__native_allocate: Fencing allocation score on rhel7-4: 0 +pcmk__native_allocate: Fencing allocation score on rhel7-5: 0 +pcmk__native_allocate: rsc1:0 allocation score on rhel7-1: 11 +pcmk__native_allocate: rsc1:0 allocation score on rhel7-2: 0 +pcmk__native_allocate: rsc1:0 allocation score on rhel7-3: -INFINITY +pcmk__native_allocate: rsc1:0 allocation score on rhel7-4: -INFINITY +pcmk__native_allocate: rsc1:0 allocation score on rhel7-5: -INFINITY +pcmk__native_allocate: rsc1:1 allocation score on rhel7-1: -INFINITY +pcmk__native_allocate: rsc1:1 allocation score on rhel7-2: 6 +pcmk__native_allocate: rsc1:1 allocation score on rhel7-3: -INFINITY +pcmk__native_allocate: rsc1:1 allocation score on rhel7-4: -INFINITY +pcmk__native_allocate: rsc1:1 allocation score on rhel7-5: -INFINITY +pcmk__native_allocate: rsc1:2 allocation score on rhel7-1: -INFINITY +pcmk__native_allocate: rsc1:2 allocation score on rhel7-2: -INFINITY +pcmk__native_allocate: rsc1:2 allocation score on rhel7-3: -INFINITY +pcmk__native_allocate: rsc1:2 allocation score on rhel7-4: -INFINITY +pcmk__native_allocate: rsc1:2 allocation score on rhel7-5: -INFINITY +pcmk__native_allocate: rsc1:3 allocation score on rhel7-1: -INFINITY +pcmk__native_allocate: rsc1:3 allocation score on rhel7-2: -INFINITY +pcmk__native_allocate: rsc1:3 allocation score on rhel7-3: -INFINITY +pcmk__native_allocate: rsc1:3 allocation score on rhel7-4: -INFINITY +pcmk__native_allocate: rsc1:3 allocation score on rhel7-5: -INFINITY +pcmk__native_allocate: rsc1:4 allocation score on rhel7-1: -INFINITY +pcmk__native_allocate: rsc1:4 allocation score on rhel7-2: -INFINITY +pcmk__native_allocate: rsc1:4 allocation score on rhel7-3: -INFINITY +pcmk__native_allocate: rsc1:4 allocation score on rhel7-4: -INFINITY +pcmk__native_allocate: rsc1:4 allocation score on rhel7-5: -INFINITY +pcmk__native_allocate: rsc2 allocation score on rhel7-1: 0 +pcmk__native_allocate: rsc2 allocation score on rhel7-2: 0 +pcmk__native_allocate: rsc2 allocation score on rhel7-3: 0 +pcmk__native_allocate: rsc2 allocation score on rhel7-4: 0 +pcmk__native_allocate: rsc2 allocation score on rhel7-5: 0 +rsc1:0 promotion score on rhel7-1: 10 +rsc1:1 promotion score on rhel7-2: 5 +rsc1:2 promotion score on none: 0 +rsc1:3 promotion score on none: 0 +rsc1:4 promotion score on none: 0 diff --git a/cts/scheduler/no_quorum_demote.summary b/cts/scheduler/no_quorum_demote.summary new file mode 100644 index 0000000..9b69ca1 --- /dev/null +++ b/cts/scheduler/no_quorum_demote.summary @@ -0,0 +1,38 @@ +Using the original execution date of: 2020-06-17 17:26:35Z + +Current cluster status: +Online: [ rhel7-1 rhel7-2 ] +OFFLINE: [ rhel7-3 rhel7-4 rhel7-5 ] + + Fencing (stonith:fence_xvm): Started rhel7-1 + Clone Set: rsc1-clone [rsc1] (promotable) + Masters: [ rhel7-1 ] + Slaves: [ rhel7-2 ] + Stopped: [ rhel7-3 rhel7-4 rhel7-5 ] + rsc2 (ocf::pacemaker:Dummy): Started rhel7-2 + +Transition Summary: + * Stop Fencing ( rhel7-1 ) due to no quorum + * Demote rsc1:0 ( Master -> Slave rhel7-1 ) + * Stop rsc2 ( rhel7-2 ) due to no quorum + +Executing cluster transition: + * Resource action: Fencing stop on rhel7-1 + * Resource action: rsc1 cancel=10000 on rhel7-1 + * Pseudo action: rsc1-clone_demote_0 + * Resource action: rsc2 stop on rhel7-2 + * Resource action: rsc1 demote on rhel7-1 + * Pseudo action: rsc1-clone_demoted_0 + * Resource action: rsc1 monitor=11000 on rhel7-1 +Using the original execution date of: 2020-06-17 17:26:35Z + +Revised cluster status: +Online: [ rhel7-1 rhel7-2 ] +OFFLINE: [ rhel7-3 rhel7-4 rhel7-5 ] + + Fencing (stonith:fence_xvm): Stopped + Clone Set: rsc1-clone [rsc1] (promotable) + Slaves: [ rhel7-1 rhel7-2 ] + Stopped: [ rhel7-3 rhel7-4 rhel7-5 ] + rsc2 (ocf::pacemaker:Dummy): Stopped + diff --git a/cts/scheduler/no_quorum_demote.xml b/cts/scheduler/no_quorum_demote.xml new file mode 100644 index 0000000..8497f0a --- /dev/null +++ b/cts/scheduler/no_quorum_demote.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +