File pacemaker-pengine-tests-no-quorum-policy=suicide.patch of Package pacemaker.14737
commit bb448289eb4aefd29cb9b8e075e9017c72b9ab7f
Author: Ken Gaillot <kgaillot@redhat.com>
Date: Thu Oct 5 15:52:02 2017 -0500
Test: pengine: add tests for no-quorum-policy=suicide
Index: pacemaker/pengine/regression.sh
===================================================================
--- pacemaker.orig/pengine/regression.sh
+++ pacemaker/pengine/regression.sh
@@ -239,6 +239,10 @@ do_test quorum-4 "No quorum - start anyw
do_test quorum-5 "No quorum - start anyway (group)"
do_test quorum-6 "No quorum - start anyway (clone)"
do_test bug-cl-5212 "No promotion with no-quorum-policy=freeze"
+do_test suicide-needed-inquorate "no-quorum-policy=suicide: suicide necessary"
+do_test suicide-not-needed-initial-quorum "no-quorum-policy=suicide: suicide not necessary at initial quorum"
+do_test suicide-not-needed-never-quorate "no-quorum-policy=suicide: suicide not necessary if never quorate"
+do_test suicide-not-needed-quorate "no-quorum-policy=suicide: suicide necessary if quorate"
echo ""
do_test rec-node-1 "Node Recover - Startup - no fence"
Index: pacemaker/pengine/test10/suicide-needed-inquorate.dot
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-needed-inquorate.dot
@@ -0,0 +1,11 @@
+digraph "g" {
+"all_stopped" [ style=bold color="green" fontcolor="orange"]
+"stonith 'reboot' node1" -> "stonith 'reboot' node3" [ style = bold]
+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"]
+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold]
+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"]
+"stonith 'reboot' node3" -> "stonith 'reboot' node2" [ style = bold]
+"stonith 'reboot' node3" [ style=bold color="green" fontcolor="black"]
+"stonith_complete" -> "all_stopped" [ style = bold]
+"stonith_complete" [ style=bold color="green" fontcolor="orange"]
+}
Index: pacemaker/pengine/test10/suicide-needed-inquorate.exp
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-needed-inquorate.exp
@@ -0,0 +1,67 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0">
+ <synapse id="0">
+ <action_set>
+ <crm_event id="5" operation="stonith" operation_key="stonith-node3-reboot" on_node="node3" on_node_uuid="3">
+ <attributes CRM_meta_on_node="node3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="reboot" />
+ <downed>
+ <node id="3"/>
+ </downed>
+ </crm_event>
+ </action_set>
+ <inputs>
+ <trigger>
+ <crm_event id="3" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="1"/>
+ </trigger>
+ </inputs>
+ </synapse>
+ <synapse id="1">
+ <action_set>
+ <crm_event id="4" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="2">
+ <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="2" CRM_meta_op_no_wait="true" CRM_meta_stonith_action="reboot" />
+ <downed>
+ <node id="2"/>
+ </downed>
+ </crm_event>
+ </action_set>
+ <inputs>
+ <trigger>
+ <crm_event id="5" operation="stonith" operation_key="stonith-node3-reboot" on_node="node3" on_node_uuid="3"/>
+ </trigger>
+ </inputs>
+ </synapse>
+ <synapse id="2">
+ <action_set>
+ <crm_event id="3" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="1">
+ <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="reboot" />
+ <downed>
+ <node id="1"/>
+ </downed>
+ </crm_event>
+ </action_set>
+ <inputs/>
+ </synapse>
+ <synapse id="3">
+ <action_set>
+ <pseudo_event id="2" operation="stonith_complete" operation_key="stonith_complete">
+ <attributes />
+ </pseudo_event>
+ </action_set>
+ <inputs>
+ <trigger>
+ <crm_event id="4" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="2"/>
+ </trigger>
+ </inputs>
+ </synapse>
+ <synapse id="4">
+ <action_set>
+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped">
+ <attributes />
+ </pseudo_event>
+ </action_set>
+ <inputs>
+ <trigger>
+ <pseudo_event id="2" operation="stonith_complete" operation_key="stonith_complete"/>
+ </trigger>
+ </inputs>
+ </synapse>
+</transition_graph>
Index: pacemaker/pengine/test10/suicide-needed-inquorate.scores
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-needed-inquorate.scores
@@ -0,0 +1,5 @@
+Allocation scores:
+Using the original execution date of: 2017-08-21 17:12:54Z
+native_color: Fencing allocation score on node1: 0
+native_color: Fencing allocation score on node2: 0
+native_color: Fencing allocation score on node3: 0
Index: pacemaker/pengine/test10/suicide-needed-inquorate.summary
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-needed-inquorate.summary
@@ -0,0 +1,27 @@
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Current cluster status:
+Node node1 (1): UNCLEAN (online)
+Node node2 (2): UNCLEAN (online)
+Node node3 (3): UNCLEAN (online)
+
+ Fencing (stonith:fence_xvm): Stopped
+
+Transition Summary:
+ * Fence (reboot) node3
+ * Fence (reboot) node2
+ * Fence (reboot) node1
+
+Executing cluster transition:
+ * Fencing node1 (reboot)
+ * Fencing node3 (reboot)
+ * Fencing node2 (reboot)
+ * Pseudo action: stonith_complete
+ * Pseudo action: all_stopped
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Revised cluster status:
+OFFLINE: [ node1 node2 node3 ]
+
+ Fencing (stonith:fence_xvm): Stopped
+
Index: pacemaker/pengine/test10/suicide-needed-inquorate.xml
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-needed-inquorate.xml
@@ -0,0 +1,42 @@
+<cib crm_feature_set="3.0.10" validate-with="pacemaker-2.5" epoch="49" num_updates="13" admin_epoch="0" cib-last-written="Mon Aug 21 12:12:00 2017" update-origin="node1" update-client="crm_resource" update-user="remote1" have-quorum="0" dc-uuid="2" execution-date="1503335574" no-quorum-panic="1">
+ <configuration>
+ <crm_config>
+ <cluster_property_set id="cib-bootstrap-options">
+ <nvpair id="cts-expected-quorum-votes" name="expected-quorum-votes" value="3"/>
+ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/>
+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.17-1"/>
+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/>
+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="suicide"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes>
+ <node id="1" uname="node1"/>
+ <node id="2" uname="node2"/>
+ <node id="3" uname="node3"/>
+ </nodes>
+ <resources>
+ <primitive id="Fencing" class="stonith" type="fence_xvm">
+ <meta_attributes id="Fencing-meta">
+ </meta_attributes>
+ <instance_attributes id="Fencing-params">
+ <nvpair id="Fencing-multicast_address" name="multicast_address" value="239.255.100.100"/>
+ <nvpair id="Fencing-pcmk_host_list" name="pcmk_host_list" value="node1 node2 node3"/>
+ </instance_attributes>
+ <operations>
+ <op id="Fencing-monitor-120s" interval="120s" name="monitor" timeout="120s"/>
+ <op id="Fencing-stop-0" interval="0" name="stop" timeout="60s"/>
+ <op id="Fencing-start-0" interval="0" name="start" timeout="60s"/>
+ </operations>
+ </primitive>
+ </resources>
+ <constraints/>
+ </configuration>
+ <status>
+ <node_state id="1" uname="node1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="2" uname="node2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="3" uname="node3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ </status>
+</cib>
Index: pacemaker/pengine/test10/suicide-not-needed-initial-quorum.dot
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-initial-quorum.dot
@@ -0,0 +1,11 @@
+digraph "g" {
+"Fencing_monitor_0 node1" -> "Fencing_start_0 node1" [ style = bold]
+"Fencing_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_0 node2" -> "Fencing_start_0 node1" [ style = bold]
+"Fencing_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_0 node3" -> "Fencing_start_0 node1" [ style = bold]
+"Fencing_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_120000 node1" [ style=bold color="green" fontcolor="black"]
+"Fencing_start_0 node1" -> "Fencing_monitor_120000 node1" [ style = bold]
+"Fencing_start_0 node1" [ style=bold color="green" fontcolor="black"]
+}
Index: pacemaker/pengine/test10/suicide-not-needed-initial-quorum.exp
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-initial-quorum.exp
@@ -0,0 +1,61 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0">
+ <synapse id="0">
+ <action_set>
+ <rsc_op id="6" operation="monitor" operation_key="Fencing_monitor_120000" on_node="node1" on_node_uuid="1">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_interval="120000" CRM_meta_name="monitor" CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs>
+ <trigger>
+ <rsc_op id="5" operation="start" operation_key="Fencing_start_0" on_node="node1" on_node_uuid="1"/>
+ </trigger>
+ </inputs>
+ </synapse>
+ <synapse id="1">
+ <action_set>
+ <rsc_op id="5" operation="start" operation_key="Fencing_start_0" on_node="node1" on_node_uuid="1">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_name="start" CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_timeout="60000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs>
+ <trigger>
+ <rsc_op id="2" operation="monitor" operation_key="Fencing_monitor_0" on_node="node1" on_node_uuid="1"/>
+ </trigger>
+ <trigger>
+ <rsc_op id="3" operation="monitor" operation_key="Fencing_monitor_0" on_node="node2" on_node_uuid="2"/>
+ </trigger>
+ <trigger>
+ <rsc_op id="4" operation="monitor" operation_key="Fencing_monitor_0" on_node="node3" on_node_uuid="3"/>
+ </trigger>
+ </inputs>
+ </synapse>
+ <synapse id="2">
+ <action_set>
+ <rsc_op id="4" operation="monitor" operation_key="Fencing_monitor_0" on_node="node3" on_node_uuid="3">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node3" CRM_meta_on_node_uuid="3" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+ <synapse id="3">
+ <action_set>
+ <rsc_op id="3" operation="monitor" operation_key="Fencing_monitor_0" on_node="node2" on_node_uuid="2">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="2" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+ <synapse id="4">
+ <action_set>
+ <rsc_op id="2" operation="monitor" operation_key="Fencing_monitor_0" on_node="node1" on_node_uuid="1">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+</transition_graph>
Index: pacemaker/pengine/test10/suicide-not-needed-initial-quorum.scores
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-initial-quorum.scores
@@ -0,0 +1,5 @@
+Allocation scores:
+Using the original execution date of: 2017-08-21 17:12:54Z
+native_color: Fencing allocation score on node1: 0
+native_color: Fencing allocation score on node2: 0
+native_color: Fencing allocation score on node3: 0
Index: pacemaker/pengine/test10/suicide-not-needed-initial-quorum.summary
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-initial-quorum.summary
@@ -0,0 +1,23 @@
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Current cluster status:
+Online: [ node1 node2 node3 ]
+
+ Fencing (stonith:fence_xvm): Stopped
+
+Transition Summary:
+ * Start Fencing ( node1 )
+
+Executing cluster transition:
+ * Resource action: Fencing monitor on node3
+ * Resource action: Fencing monitor on node2
+ * Resource action: Fencing monitor on node1
+ * Resource action: Fencing start on node1
+ * Resource action: Fencing monitor=120000 on node1
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Revised cluster status:
+Online: [ node1 node2 node3 ]
+
+ Fencing (stonith:fence_xvm): Started node1
+
Index: pacemaker/pengine/test10/suicide-not-needed-initial-quorum.xml
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-initial-quorum.xml
@@ -0,0 +1,42 @@
+<cib crm_feature_set="3.0.10" validate-with="pacemaker-2.5" epoch="49" num_updates="13" admin_epoch="0" cib-last-written="Mon Aug 21 12:12:00 2017" update-origin="node1" update-client="crm_resource" update-user="remote1" have-quorum="1" dc-uuid="2" execution-date="1503335574">
+ <configuration>
+ <crm_config>
+ <cluster_property_set id="cib-bootstrap-options">
+ <nvpair id="cts-expected-quorum-votes" name="expected-quorum-votes" value="3"/>
+ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/>
+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.17-1"/>
+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/>
+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="suicide"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes>
+ <node id="1" uname="node1"/>
+ <node id="2" uname="node2"/>
+ <node id="3" uname="node3"/>
+ </nodes>
+ <resources>
+ <primitive id="Fencing" class="stonith" type="fence_xvm">
+ <meta_attributes id="Fencing-meta">
+ </meta_attributes>
+ <instance_attributes id="Fencing-params">
+ <nvpair id="Fencing-multicast_address" name="multicast_address" value="239.255.100.100"/>
+ <nvpair id="Fencing-pcmk_host_list" name="pcmk_host_list" value="node1 node2 node3"/>
+ </instance_attributes>
+ <operations>
+ <op id="Fencing-monitor-120s" interval="120s" name="monitor" timeout="120s"/>
+ <op id="Fencing-stop-0" interval="0" name="stop" timeout="60s"/>
+ <op id="Fencing-start-0" interval="0" name="start" timeout="60s"/>
+ </operations>
+ </primitive>
+ </resources>
+ <constraints/>
+ </configuration>
+ <status>
+ <node_state id="1" uname="node1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="2" uname="node2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="3" uname="node3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ </status>
+</cib>
Index: pacemaker/pengine/test10/suicide-not-needed-never-quorate.dot
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-never-quorate.dot
@@ -0,0 +1,6 @@
+digraph "g" {
+"Fencing_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_120000 node1" [ style=dashed color="red" fontcolor="black"]
+}
Index: pacemaker/pengine/test10/suicide-not-needed-never-quorate.exp
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-never-quorate.exp
@@ -0,0 +1,29 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0">
+ <synapse id="0">
+ <action_set>
+ <rsc_op id="4" operation="monitor" operation_key="Fencing_monitor_0" on_node="node3" on_node_uuid="3">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node3" CRM_meta_on_node_uuid="3" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+ <synapse id="1">
+ <action_set>
+ <rsc_op id="3" operation="monitor" operation_key="Fencing_monitor_0" on_node="node2" on_node_uuid="2">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="2" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+ <synapse id="2">
+ <action_set>
+ <rsc_op id="2" operation="monitor" operation_key="Fencing_monitor_0" on_node="node1" on_node_uuid="1">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+</transition_graph>
Index: pacemaker/pengine/test10/suicide-not-needed-never-quorate.scores
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-never-quorate.scores
@@ -0,0 +1,5 @@
+Allocation scores:
+Using the original execution date of: 2017-08-21 17:12:54Z
+native_color: Fencing allocation score on node1: 0
+native_color: Fencing allocation score on node2: 0
+native_color: Fencing allocation score on node3: 0
Index: pacemaker/pengine/test10/suicide-not-needed-never-quorate.summary
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-never-quorate.summary
@@ -0,0 +1,21 @@
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Current cluster status:
+Online: [ node1 node2 node3 ]
+
+ Fencing (stonith:fence_xvm): Stopped
+
+Transition Summary:
+ * Start Fencing (node1 - blocked)
+
+Executing cluster transition:
+ * Resource action: Fencing monitor on node3
+ * Resource action: Fencing monitor on node2
+ * Resource action: Fencing monitor on node1
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Revised cluster status:
+Online: [ node1 node2 node3 ]
+
+ Fencing (stonith:fence_xvm): Stopped
+
Index: pacemaker/pengine/test10/suicide-not-needed-never-quorate.xml
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-never-quorate.xml
@@ -0,0 +1,42 @@
+<cib crm_feature_set="3.0.10" validate-with="pacemaker-2.5" epoch="49" num_updates="13" admin_epoch="0" cib-last-written="Mon Aug 21 12:12:00 2017" update-origin="node1" update-client="crm_resource" update-user="remote1" have-quorum="0" dc-uuid="2" execution-date="1503335574">
+ <configuration>
+ <crm_config>
+ <cluster_property_set id="cib-bootstrap-options">
+ <nvpair id="cts-expected-quorum-votes" name="expected-quorum-votes" value="3"/>
+ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/>
+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.17-1"/>
+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/>
+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="suicide"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes>
+ <node id="1" uname="node1"/>
+ <node id="2" uname="node2"/>
+ <node id="3" uname="node3"/>
+ </nodes>
+ <resources>
+ <primitive id="Fencing" class="stonith" type="fence_xvm">
+ <meta_attributes id="Fencing-meta">
+ </meta_attributes>
+ <instance_attributes id="Fencing-params">
+ <nvpair id="Fencing-multicast_address" name="multicast_address" value="239.255.100.100"/>
+ <nvpair id="Fencing-pcmk_host_list" name="pcmk_host_list" value="node1 node2 node3"/>
+ </instance_attributes>
+ <operations>
+ <op id="Fencing-monitor-120s" interval="120s" name="monitor" timeout="120s"/>
+ <op id="Fencing-stop-0" interval="0" name="stop" timeout="60s"/>
+ <op id="Fencing-start-0" interval="0" name="start" timeout="60s"/>
+ </operations>
+ </primitive>
+ </resources>
+ <constraints/>
+ </configuration>
+ <status>
+ <node_state id="1" uname="node1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="2" uname="node2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="3" uname="node3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ </status>
+</cib>
Index: pacemaker/pengine/test10/suicide-not-needed-quorate.dot
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-quorate.dot
@@ -0,0 +1,11 @@
+digraph "g" {
+"Fencing_monitor_0 node1" -> "Fencing_start_0 node1" [ style = bold]
+"Fencing_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_0 node2" -> "Fencing_start_0 node1" [ style = bold]
+"Fencing_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_0 node3" -> "Fencing_start_0 node1" [ style = bold]
+"Fencing_monitor_0 node3" [ style=bold color="green" fontcolor="black"]
+"Fencing_monitor_120000 node1" [ style=bold color="green" fontcolor="black"]
+"Fencing_start_0 node1" -> "Fencing_monitor_120000 node1" [ style = bold]
+"Fencing_start_0 node1" [ style=bold color="green" fontcolor="black"]
+}
Index: pacemaker/pengine/test10/suicide-not-needed-quorate.exp
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-quorate.exp
@@ -0,0 +1,61 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0">
+ <synapse id="0">
+ <action_set>
+ <rsc_op id="6" operation="monitor" operation_key="Fencing_monitor_120000" on_node="node1" on_node_uuid="1">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_interval="120000" CRM_meta_name="monitor" CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs>
+ <trigger>
+ <rsc_op id="5" operation="start" operation_key="Fencing_start_0" on_node="node1" on_node_uuid="1"/>
+ </trigger>
+ </inputs>
+ </synapse>
+ <synapse id="1">
+ <action_set>
+ <rsc_op id="5" operation="start" operation_key="Fencing_start_0" on_node="node1" on_node_uuid="1">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_name="start" CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_timeout="60000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs>
+ <trigger>
+ <rsc_op id="2" operation="monitor" operation_key="Fencing_monitor_0" on_node="node1" on_node_uuid="1"/>
+ </trigger>
+ <trigger>
+ <rsc_op id="3" operation="monitor" operation_key="Fencing_monitor_0" on_node="node2" on_node_uuid="2"/>
+ </trigger>
+ <trigger>
+ <rsc_op id="4" operation="monitor" operation_key="Fencing_monitor_0" on_node="node3" on_node_uuid="3"/>
+ </trigger>
+ </inputs>
+ </synapse>
+ <synapse id="2">
+ <action_set>
+ <rsc_op id="4" operation="monitor" operation_key="Fencing_monitor_0" on_node="node3" on_node_uuid="3">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node3" CRM_meta_on_node_uuid="3" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+ <synapse id="3">
+ <action_set>
+ <rsc_op id="3" operation="monitor" operation_key="Fencing_monitor_0" on_node="node2" on_node_uuid="2">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="2" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+ <synapse id="4">
+ <action_set>
+ <rsc_op id="2" operation="monitor" operation_key="Fencing_monitor_0" on_node="node1" on_node_uuid="1">
+ <primitive id="Fencing" class="stonith" type="fence_xvm"/>
+ <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="1" CRM_meta_op_target_rc="7" CRM_meta_timeout="120000" multicast_address="239.255.100.100" pcmk_host_list="node1 node2 node3"/>
+ </rsc_op>
+ </action_set>
+ <inputs/>
+ </synapse>
+</transition_graph>
Index: pacemaker/pengine/test10/suicide-not-needed-quorate.scores
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-quorate.scores
@@ -0,0 +1,5 @@
+Allocation scores:
+Using the original execution date of: 2017-08-21 17:12:54Z
+native_color: Fencing allocation score on node1: 0
+native_color: Fencing allocation score on node2: 0
+native_color: Fencing allocation score on node3: 0
Index: pacemaker/pengine/test10/suicide-not-needed-quorate.summary
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-quorate.summary
@@ -0,0 +1,23 @@
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Current cluster status:
+Online: [ node1 node2 node3 ]
+
+ Fencing (stonith:fence_xvm): Stopped
+
+Transition Summary:
+ * Start Fencing ( node1 )
+
+Executing cluster transition:
+ * Resource action: Fencing monitor on node3
+ * Resource action: Fencing monitor on node2
+ * Resource action: Fencing monitor on node1
+ * Resource action: Fencing start on node1
+ * Resource action: Fencing monitor=120000 on node1
+Using the original execution date of: 2017-08-21 17:12:54Z
+
+Revised cluster status:
+Online: [ node1 node2 node3 ]
+
+ Fencing (stonith:fence_xvm): Started node1
+
Index: pacemaker/pengine/test10/suicide-not-needed-quorate.xml
===================================================================
--- /dev/null
+++ pacemaker/pengine/test10/suicide-not-needed-quorate.xml
@@ -0,0 +1,42 @@
+<cib crm_feature_set="3.0.10" validate-with="pacemaker-2.5" epoch="49" num_updates="13" admin_epoch="0" cib-last-written="Mon Aug 21 12:12:00 2017" update-origin="node1" update-client="crm_resource" update-user="remote1" have-quorum="1" dc-uuid="2" execution-date="1503335574" no-quorum-panic="1">
+ <configuration>
+ <crm_config>
+ <cluster_property_set id="cib-bootstrap-options">
+ <nvpair id="cts-expected-quorum-votes" name="expected-quorum-votes" value="3"/>
+ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/>
+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.17-1"/>
+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/>
+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="suicide"/>
+ </cluster_property_set>
+ </crm_config>
+ <nodes>
+ <node id="1" uname="node1"/>
+ <node id="2" uname="node2"/>
+ <node id="3" uname="node3"/>
+ </nodes>
+ <resources>
+ <primitive id="Fencing" class="stonith" type="fence_xvm">
+ <meta_attributes id="Fencing-meta">
+ </meta_attributes>
+ <instance_attributes id="Fencing-params">
+ <nvpair id="Fencing-multicast_address" name="multicast_address" value="239.255.100.100"/>
+ <nvpair id="Fencing-pcmk_host_list" name="pcmk_host_list" value="node1 node2 node3"/>
+ </instance_attributes>
+ <operations>
+ <op id="Fencing-monitor-120s" interval="120s" name="monitor" timeout="120s"/>
+ <op id="Fencing-stop-0" interval="0" name="stop" timeout="60s"/>
+ <op id="Fencing-start-0" interval="0" name="start" timeout="60s"/>
+ </operations>
+ </primitive>
+ </resources>
+ <constraints/>
+ </configuration>
+ <status>
+ <node_state id="1" uname="node1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="2" uname="node2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ <node_state id="3" uname="node3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+ </node_state>
+ </status>
+</cib>