280d18b941
pacemaker-pengine-nvpair-id-ref.patch pacemaker-pengine-nvpair-id-ref-test.patch OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=116
300 lines
13 KiB
Diff
300 lines
13 KiB
Diff
commit 8165b88cb8ef05c82631a20c089b64c5ee419ac9
|
|
Author: Gao,Yan <ygao@suse.com>
|
|
Date: Fri Mar 7 16:08:29 2014 +0800
|
|
|
|
Test: pengine: Support id-ref in nvpair with optional "name"
|
|
|
|
diff --git a/pengine/regression.sh b/pengine/regression.sh
|
|
index 07c3c35..6c52811 100755
|
|
--- a/pengine/regression.sh
|
|
+++ b/pengine/regression.sh
|
|
@@ -93,6 +93,7 @@ do_test params-5 "Params: Restart based on probe digest"
|
|
do_test novell-251689 "Resource definition change + target_role=stopped"
|
|
do_test bug-lf-2106 "Restart all anonymous clone instances after config change"
|
|
do_test params-6 "Params: Detect reload in previously migrated resource"
|
|
+do_test nvpair-id-ref "Support id-ref in nvpair with optional name"
|
|
|
|
echo ""
|
|
do_test target-0 "Target Role : baseline"
|
|
diff --git a/pengine/test10/nvpair-id-ref.dot b/pengine/test10/nvpair-id-ref.dot
|
|
new file mode 100644
|
|
index 0000000..f3aaaa5
|
|
--- /dev/null
|
|
+++ b/pengine/test10/nvpair-id-ref.dot
|
|
@@ -0,0 +1,23 @@
|
|
+digraph "g" {
|
|
+"probe_complete node1" -> "probe_complete" [ style = bold]
|
|
+"probe_complete node1" [ style=bold color="green" fontcolor="black"]
|
|
+"probe_complete node2" -> "probe_complete" [ style = bold]
|
|
+"probe_complete node2" [ style=bold color="green" fontcolor="black"]
|
|
+"probe_complete" -> "rsc1_start_0 node2" [ style = bold]
|
|
+"probe_complete" -> "rsc2_start_0 node1" [ style = bold]
|
|
+"probe_complete" [ style=bold color="green" fontcolor="orange"]
|
|
+"rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold]
|
|
+"rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
|
|
+"rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold]
|
|
+"rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
|
|
+"rsc1_monitor_10000 node2" [ style=bold color="green" fontcolor="black"]
|
|
+"rsc1_start_0 node2" -> "rsc1_monitor_10000 node2" [ style = bold]
|
|
+"rsc1_start_0 node2" [ style=bold color="green" fontcolor="black"]
|
|
+"rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold]
|
|
+"rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black"]
|
|
+"rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold]
|
|
+"rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black"]
|
|
+"rsc2_monitor_10000 node1" [ style=bold color="green" fontcolor="black"]
|
|
+"rsc2_start_0 node1" -> "rsc2_monitor_10000 node1" [ style = bold]
|
|
+"rsc2_start_0 node1" [ style=bold color="green" fontcolor="black"]
|
|
+}
|
|
diff --git a/pengine/test10/nvpair-id-ref.exp b/pengine/test10/nvpair-id-ref.exp
|
|
new file mode 100644
|
|
index 0000000..bad4db0
|
|
--- /dev/null
|
|
+++ b/pengine/test10/nvpair-id-ref.exp
|
|
@@ -0,0 +1,135 @@
|
|
+<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="12" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node2" on_node_uuid="node2">
|
|
+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs>
|
|
+ <trigger>
|
|
+ <rsc_op id="11" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2"/>
|
|
+ </trigger>
|
|
+ </inputs>
|
|
+ </synapse>
|
|
+ <synapse id="1">
|
|
+ <action_set>
|
|
+ <rsc_op id="11" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2">
|
|
+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_timeout="20000" fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs>
|
|
+ <trigger>
|
|
+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
|
|
+ </trigger>
|
|
+ </inputs>
|
|
+ </synapse>
|
|
+ <synapse id="2">
|
|
+ <action_set>
|
|
+ <rsc_op id="7" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2">
|
|
+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs/>
|
|
+ </synapse>
|
|
+ <synapse id="3">
|
|
+ <action_set>
|
|
+ <rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1">
|
|
+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs/>
|
|
+ </synapse>
|
|
+ <synapse id="4">
|
|
+ <action_set>
|
|
+ <rsc_op id="14" operation="monitor" operation_key="rsc2_monitor_10000" on_node="node1" on_node_uuid="node1">
|
|
+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" fake="common-value" fake_fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs>
|
|
+ <trigger>
|
|
+ <rsc_op id="13" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1"/>
|
|
+ </trigger>
|
|
+ </inputs>
|
|
+ </synapse>
|
|
+ <synapse id="5">
|
|
+ <action_set>
|
|
+ <rsc_op id="13" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1">
|
|
+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_timeout="20000" fake="common-value" fake_fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs>
|
|
+ <trigger>
|
|
+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
|
|
+ </trigger>
|
|
+ </inputs>
|
|
+ </synapse>
|
|
+ <synapse id="6">
|
|
+ <action_set>
|
|
+ <rsc_op id="8" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2">
|
|
+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" fake="common-value" fake_fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs/>
|
|
+ </synapse>
|
|
+ <synapse id="7">
|
|
+ <action_set>
|
|
+ <rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1">
|
|
+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/>
|
|
+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" fake="common-value" fake_fake="common-value"/>
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs/>
|
|
+ </synapse>
|
|
+ <synapse id="8" priority="1000000">
|
|
+ <action_set>
|
|
+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2">
|
|
+ <attributes CRM_meta_op_no_wait="true" />
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs>
|
|
+ <trigger>
|
|
+ <rsc_op id="7" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2"/>
|
|
+ </trigger>
|
|
+ <trigger>
|
|
+ <rsc_op id="8" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2"/>
|
|
+ </trigger>
|
|
+ </inputs>
|
|
+ </synapse>
|
|
+ <synapse id="9" priority="1000000">
|
|
+ <action_set>
|
|
+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1">
|
|
+ <attributes CRM_meta_op_no_wait="true" />
|
|
+ </rsc_op>
|
|
+ </action_set>
|
|
+ <inputs>
|
|
+ <trigger>
|
|
+ <rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1"/>
|
|
+ </trigger>
|
|
+ <trigger>
|
|
+ <rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1"/>
|
|
+ </trigger>
|
|
+ </inputs>
|
|
+ </synapse>
|
|
+ <synapse id="10">
|
|
+ <action_set>
|
|
+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete">
|
|
+ <attributes />
|
|
+ </pseudo_event>
|
|
+ </action_set>
|
|
+ <inputs>
|
|
+ <trigger>
|
|
+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/>
|
|
+ </trigger>
|
|
+ <trigger>
|
|
+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/>
|
|
+ </trigger>
|
|
+ </inputs>
|
|
+ </synapse>
|
|
+</transition_graph>
|
|
diff --git a/pengine/test10/nvpair-id-ref.scores b/pengine/test10/nvpair-id-ref.scores
|
|
new file mode 100644
|
|
index 0000000..fb86bf6
|
|
--- /dev/null
|
|
+++ b/pengine/test10/nvpair-id-ref.scores
|
|
@@ -0,0 +1,7 @@
|
|
+Allocation scores:
|
|
+native_color: rsc1 allocation score on node1: 0
|
|
+native_color: rsc1 allocation score on node2: 0
|
|
+native_color: rsc2 allocation score on node1: 0
|
|
+native_color: rsc2 allocation score on node2: 0
|
|
+native_color: rsc_stonith allocation score on node1: 0
|
|
+native_color: rsc_stonith allocation score on node2: 0
|
|
diff --git a/pengine/test10/nvpair-id-ref.summary b/pengine/test10/nvpair-id-ref.summary
|
|
new file mode 100644
|
|
index 0000000..dbe685f
|
|
--- /dev/null
|
|
+++ b/pengine/test10/nvpair-id-ref.summary
|
|
@@ -0,0 +1,30 @@
|
|
+
|
|
+Current cluster status:
|
|
+Online: [ node1 node2 ]
|
|
+
|
|
+ rsc_stonith (stonith:null): Started node1
|
|
+ rsc1 (ocf::pacemaker:Dummy): Stopped
|
|
+ rsc2 (ocf::pacemaker:Dummy): Stopped
|
|
+
|
|
+Transition Summary:
|
|
+ * Start rsc1 (node2)
|
|
+ * Start rsc2 (node1)
|
|
+
|
|
+Executing cluster transition:
|
|
+ * Resource action: rsc1 monitor on node2
|
|
+ * Resource action: rsc1 monitor on node1
|
|
+ * Resource action: rsc2 monitor on node2
|
|
+ * Resource action: rsc2 monitor on node1
|
|
+ * Pseudo action: probe_complete
|
|
+ * Resource action: rsc1 start on node2
|
|
+ * Resource action: rsc2 start on node1
|
|
+ * Resource action: rsc1 monitor=10000 on node2
|
|
+ * Resource action: rsc2 monitor=10000 on node1
|
|
+
|
|
+Revised cluster status:
|
|
+Online: [ node1 node2 ]
|
|
+
|
|
+ rsc_stonith (stonith:null): Started node1
|
|
+ rsc1 (ocf::pacemaker:Dummy): Started node2
|
|
+ rsc2 (ocf::pacemaker:Dummy): Started node1
|
|
+
|
|
diff --git a/pengine/test10/nvpair-id-ref.xml b/pengine/test10/nvpair-id-ref.xml
|
|
new file mode 100644
|
|
index 0000000..9b3e28f
|
|
--- /dev/null
|
|
+++ b/pengine/test10/nvpair-id-ref.xml
|
|
@@ -0,0 +1,56 @@
|
|
+<cib epoch="1" num_updates="22" admin_epoch="0" validate-with="pacemaker-1.1" cib-last-written="Fri Jul 13 13:51:21 2012" have-quorum="1">
|
|
+ <configuration>
|
|
+ <crm_config>
|
|
+ <cluster_property_set id="cib-bootstrap-options">
|
|
+ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/>
|
|
+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/>
|
|
+ </cluster_property_set>
|
|
+ </crm_config>
|
|
+ <nodes>
|
|
+ <node id="node1" type="normal" uname="node1"/>
|
|
+ <node id="node2" type="normal" uname="node2"/>
|
|
+ </nodes>
|
|
+ <resources>
|
|
+ <primitive class="stonith" id="rsc_stonith" type="null"/>
|
|
+ <primitive class="ocf" id="rsc1" provider="pacemaker" type="Dummy">
|
|
+ <instance_attributes id="rsc1-instance_attributes">
|
|
+ <nvpair id="rsc1-instance_attributes-fake" name="fake" value="common-value"/>
|
|
+ </instance_attributes>
|
|
+ <operations>
|
|
+ <op id="rsc1-monitor-10" interval="10" name="monitor"/>
|
|
+ </operations>
|
|
+ </primitive>
|
|
+ <primitive class="ocf" id="rsc2" provider="pacemaker" type="Dummy">
|
|
+ <instance_attributes id="rsc2-instance_attributes">
|
|
+ <nvpair id-ref="rsc1-instance_attributes-fake"/>
|
|
+ <nvpair id-ref="rsc1-instance_attributes-fake" name="fake_fake"/>
|
|
+ </instance_attributes>
|
|
+ <operations>
|
|
+ <op id="rsc2-monitor-10" interval="10" name="monitor"/>
|
|
+ </operations>
|
|
+ </primitive>
|
|
+ </resources>
|
|
+ <constraints/>
|
|
+ </configuration>
|
|
+ <status>
|
|
+ <node_state id="node1" uname="node1" ha="active" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate">
|
|
+ <lrm id="node1">
|
|
+ <lrm_resources>
|
|
+ <lrm_resource id="rsc_stonith" class="stonith" type="null">
|
|
+ <lrm_rsc_op id="rsc_stonith_monitor_0" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.5" transition-key="1:-1:7:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:7;1:-1:7:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
|
|
+ <lrm_rsc_op id="rsc_stonith_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.5" transition-key="2:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;2:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="2" rc-code="0" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
|
|
+ </lrm_resource>
|
|
+ </lrm_resources>
|
|
+ </lrm>
|
|
+ </node_state>
|
|
+ <node_state id="node2" uname="node2" ha="active" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="crm_simulate">
|
|
+ <lrm id="node2">
|
|
+ <lrm_resources>
|
|
+ <lrm_resource id="rsc_stonith" class="stonith" type="null">
|
|
+ <lrm_rsc_op id="rsc_stonith_monitor_0" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.5" transition-key="1:-1:7:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:7;1:-1:7:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
|
|
+ </lrm_resource>
|
|
+ </lrm_resources>
|
|
+ </lrm>
|
|
+ </node_state>
|
|
+ </status>
|
|
+</cib>
|