diff --git a/pengine/regression.sh b/pengine/regression.sh
index 78b8865d76..1d2abd4e28 100755
--- a/pengine/regression.sh
+++ b/pengine/regression.sh
@@ -1,352 +1,353 @@
 #!/bin/bash
 
  # Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
  # 
  # This program is free software; you can redistribute it and/or
  # modify it under the terms of the GNU General Public
  # License as published by the Free Software Foundation; either
  # version 2.1 of the License, or (at your option) any later version.
  # 
  # This software is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  # General Public License for more details.
  # 
  # You should have received a copy of the GNU General Public
  # License along with this library; if not, write to the Free Software
  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  #
 
 core=`dirname $0`
 . $core/regression.core.sh
 io_dir=$test_home/test10
 
 create_mode="true"
 info Generating test outputs for these tests...
 # do_test file description
 info Done.
 echo ""
 
 info Performing the following tests from $io_dir
 create_mode="false"
 
 echo ""
 do_test simple1 "Offline     "
 do_test simple2 "Start       "
 do_test simple3 "Start 2     "
 do_test simple4 "Start Failed"
 do_test simple6 "Stop Start  "
 do_test simple7 "Shutdown    "
 #do_test simple8 "Stonith	"
 #do_test simple9 "Lower version"
 #do_test simple10 "Higher version"
 do_test simple11 "Priority (ne)"
 do_test simple12 "Priority (eq)"
 do_test simple8 "Stickiness"
 
 echo ""
 do_test params-0 "Params: No change"
 do_test params-1 "Params: Changed"
 do_test params-2 "Params: Resource definition"
 do_test params-4 "Params: Reload"
 do_test novell-251689 "Resource definition change + target_role=stopped"
 do_test bug-lf-2106 "Restart all anonymous clone instances after config change"
 
 echo ""
 do_test orphan-0 "Orphan ignore"
 do_test orphan-1 "Orphan stop"
 
 echo ""
 do_test target-0 "Target Role : baseline"
 do_test target-1 "Target Role : master"
 do_test target-2 "Target Role : invalid"
 
 echo ""
 do_test date-1 "Dates" -t "2005-020"
 do_test date-2 "Date Spec - Pass" -t "2005-020T12:30"
 do_test date-3 "Date Spec - Fail" -t "2005-020T11:30"
 do_test probe-0 "Probe (anon clone)"
 do_test probe-1 "Pending Probe"
 do_test probe-2 "Correctly re-probe cloned groups"
 do_test probe-3 "Probe (pending node)"
 do_test probe-4 "Probe (pending node + stopped resource)" --rc 4
 do_test standby "Standby"
 do_test comments "Comments"
 
 echo ""
 do_test rsc_dep1 "Must not     "
 do_test rsc_dep3 "Must         "
 do_test rsc_dep5 "Must not 3   "
 do_test rsc_dep7 "Must 3       "
 do_test rsc_dep10 "Must (but cant)"
 do_test rsc_dep2  "Must (running) "
 do_test rsc_dep8  "Must (running : alt) "
 do_test rsc_dep4  "Must (running + move)"
 do_test asymmetric "Asymmetric - require explicit location constraints"
 
 echo ""
 do_test order1 "Order start 1     "
 do_test order2 "Order start 2     "
 do_test order3 "Order stop	  "
 do_test order4 "Order (multiple)  "
 do_test order5 "Order (move)  "
 do_test order6 "Order (move w/ restart)  "
 do_test order7 "Order (manditory)  "
 do_test order-optional "Order (score=0)  "
 do_test order-required "Order (score=INFINITY)  "
 do_test bug-lf-2171 "Prevent group start when clone is stopped"
 do_test order-clone "Clone ordering should be able to prevent startup of dependant clones"
 do_test order-sets "Ordering for resource sets"
 do_test order-serialize "Serialize resources without inhibiting migration"
 do_test order-serialize-set "Serialize a set of resources without inhibiting migration"
 
 echo ""
 do_test coloc-loop "Colocation - loop"
 do_test coloc-many-one "Colocation - many-to-one"
 do_test coloc-list "Colocation - many-to-one with list"
 do_test coloc-group "Colocation - groups"
 do_test coloc-slave-anti "Anti-colocation with slave shouldn't prevent master colocation"
 do_test coloc-attr "Colocation based on node attributes"
 do_test coloc-negative-group "Negative colocation with a group"
 do_test coloc-intra-set "Intra-set colocation"
 
 #echo ""
 #do_test agent1 "version: lt (empty)"
 #do_test agent2 "version: eq	"
 #do_test agent3 "version: gt	"
 
 echo ""
 do_test attrs1 "string: eq (and)     "
 do_test attrs2 "string: lt / gt (and)"
 do_test attrs3 "string: ne (or)      "
 do_test attrs4 "string: exists       "
 do_test attrs5 "string: not_exists   "
 do_test attrs6 "is_dc: true          "
 do_test attrs7 "is_dc: false         "
 do_test attrs8 "score_attribute      "
 
 echo ""
 do_test mon-rsc-1 "Schedule Monitor - start"
 do_test mon-rsc-2 "Schedule Monitor - move "
 do_test mon-rsc-3 "Schedule Monitor - pending start     "
 do_test mon-rsc-4 "Schedule Monitor - move/pending start"
 
 echo ""
 do_test rec-rsc-0 "Resource Recover - no start     "
 do_test rec-rsc-1 "Resource Recover - start        "
 do_test rec-rsc-2 "Resource Recover - monitor      "
 do_test rec-rsc-3 "Resource Recover - stop - ignore"
 do_test rec-rsc-4 "Resource Recover - stop - block "
 do_test rec-rsc-5 "Resource Recover - stop - fence "
 do_test rec-rsc-6 "Resource Recover - multiple - restart"
 do_test rec-rsc-7 "Resource Recover - multiple - stop   "
 do_test rec-rsc-8 "Resource Recover - multiple - block  "
 do_test rec-rsc-9 "Resource Recover - group/group"
 
 echo ""
 do_test quorum-1 "No quorum - ignore"
 do_test quorum-2 "No quorum - freeze"
 do_test quorum-3 "No quorum - stop  "
 do_test quorum-4 "No quorum - start anyway"
 do_test quorum-5 "No quorum - start anyway (group)"
 do_test quorum-6 "No quorum - start anyway (clone)"
 
 echo ""
 do_test rec-node-1 "Node Recover - Startup   - no fence"
 do_test rec-node-2 "Node Recover - Startup   - fence   "
 do_test rec-node-3 "Node Recover - HA down   - no fence"
 do_test rec-node-4 "Node Recover - HA down   - fence   "
 do_test rec-node-5 "Node Recover - CRM down  - no fence"
 do_test rec-node-6 "Node Recover - CRM down  - fence   "
 do_test rec-node-7 "Node Recover - no quorum - ignore  "
 do_test rec-node-8 "Node Recover - no quorum - freeze  "
 do_test rec-node-9 "Node Recover - no quorum - stop    "
 do_test rec-node-10 "Node Recover - no quorum - stop w/fence"
 do_test rec-node-11 "Node Recover - CRM down w/ group - fence   "
 do_test rec-node-12 "Node Recover - nothing active - fence   "
 do_test rec-node-13 "Node Recover - failed resource + shutdown - fence   "
 do_test rec-node-15 "Node Recover - unknown lrm section"
 do_test rec-node-14 "Serialize all stonith's"
 
 echo ""
 do_test multi1 "Multiple Active (stop/start)"
 
 echo ""
 do_test migrate-stop "Migration in a stopping stack"
 do_test migrate-start "Migration in a starting stack"
 do_test migrate-stop_start "Migration in a restarting stack"
 do_test migrate-stop-complex "Migration in a complex stopping stack"
 do_test migrate-start-complex "Migration in a complex starting stack"
 do_test migrate-stop-start-complex "Migration in a complex moving stack"
 
 do_test migrate-1 "Migrate (migrate)"
 do_test migrate-2 "Migrate (stable)"
 do_test migrate-3 "Migrate (failed migrate_to)"
 do_test migrate-4 "Migrate (failed migrate_from)"
 do_test novell-252693 "Migration in a stopping stack"
 do_test novell-252693-2 "Migration in a starting stack"
 do_test novell-252693-3 "Non-Migration in a starting and stopping stack"
 do_test bug-1820 "Migration in a group"
 do_test bug-1820-1 "Non-migration in a group"
 do_test migrate-5 "Primitive migration with a clone"
 
 #echo ""
 #do_test complex1 "Complex	"
 
 echo ""
 do_test group1 "Group		"
 do_test group2 "Group + Native	"
 do_test group3 "Group + Group	"
 do_test group4 "Group + Native (nothing)"
 do_test group5 "Group + Native (move)   "
 do_test group6 "Group + Group (move)    "
 do_test group7 "Group colocation"
 do_test group13 "Group colocation (cant run)"
 do_test group8 "Group anti-colocation"
 do_test group9 "Group recovery"
 do_test group10 "Group partial recovery"
 do_test group11 "Group target_role"
 do_test group14 "Group stop (graph terminated)"
 do_test group15 "-ve group colocation"
 do_test bug-1573 "Partial stop of a group with two children"
 do_test bug-1718 "Mandatory group ordering - Stop group_FUN"
 
 echo ""
 do_test clone-anon-probe-1 "Probe the correct (anonymous) clone instance for each node"
 do_test clone-anon-probe-2 "Avoid needless re-probing of anonymous clones"
 do_test clone-anon-failcount "Merge failcounts for anonymous clones"
 do_test inc0 "Incarnation start" 
 do_test inc1 "Incarnation start order" 
 do_test inc2 "Incarnation silent restart, stop, move"
 do_test inc3 "Inter-incarnation ordering, silent restart, stop, move"
 do_test inc4 "Inter-incarnation ordering, silent restart, stop, move (ordered)"
 do_test inc5 "Inter-incarnation ordering, silent restart, stop, move (restart 1)"
 do_test inc6 "Inter-incarnation ordering, silent restart, stop, move (restart 2)"
 do_test inc7 "Clone colocation"
 do_test inc8 "Clone anti-colocation"
 do_test inc9 "Non-unique clone"
 do_test inc10 "Non-unique clone (stop)"
 do_test inc11 "Primitive colocation with clones" 
 do_test inc12 "Clone shutdown" 
 do_test cloned-group "Make sure only the correct number of cloned groups are started"
 do_test clone-no-shuffle "Dont prioritize allocation of instances that must be moved"
 do_test clone-max-zero "Orphan processing with clone-max=0"
 do_test clone-anon-dup "Bug LF#2087 - Correctly parse the state of anonymous clones that are active more than once per node"
 do_test bug-lf-2160 "Dont shuffle clones due to colocation"
 do_test bug-lf-2213 "clone-node-max enforcement for cloned groups"
 do_test bug-lf-2153 "Clone ordering constraints"
 do_test bug-lf-2361 "Ensure clones observe mandatory ordering constraints if the LHS is unrunnable"
 do_test bug-lf-2317 "Avoid needless restart of primitive depending on a clone"
 
 echo ""
 do_test master-0 "Stopped -> Slave"
 do_test master-1 "Stopped -> Promote"
 do_test master-2 "Stopped -> Promote : notify"
 do_test master-3 "Stopped -> Promote : master location"
 do_test master-4 "Started -> Promote : master location"
 do_test master-5 "Promoted -> Promoted"
 do_test master-6 "Promoted -> Promoted (2)"
 do_test master-7 "Promoted -> Fenced"
 do_test master-8 "Promoted -> Fenced -> Moved"
 do_test master-9 "Stopped + Promotable + No quorum"
 do_test master-10 "Stopped -> Promotable : notify with monitor"
 do_test master-11 "Stopped -> Promote : colocation"
 do_test novell-239082 "Demote/Promote ordering"
 do_test novell-239087 "Stable master placement"
 do_test master-12 "Promotion based solely on rsc_location constraints"
 do_test master-13 "Include preferences of colocated resources when placing master"
 do_test master-demote "Ordering when actions depends on demoting a slave resource" 
 do_test master-ordering "Prevent resources from starting that need a master"
 do_test bug-1765 "Master-Master Colocation (dont stop the slaves)"
 do_test master-group "Promotion of cloned groups"
 do_test bug-lf-1852 "Don't shuffle master/slave instances unnecessarily"
 do_test master-failed-demote "Dont retry failed demote actions"
 do_test master-failed-demote-2 "Dont retry failed demote actions (notify=false)"
 do_test master-depend "Ensure resources that depend on the master don't get allocated until the master does"
 do_test master-reattach "Re-attach to a running master"
 do_test master-allow-start "Don't include master score if it would prevent allocation"
 do_test master-colocation "Allow master instances placemaker to be influenced by colocation constraints"
 do_test master-pseudo "Make sure promote/demote pseudo actions are created correctly"
 do_test master-role "Prevent target-role from promoting more than master-max instances"
 do_test bug-lf-2358 "Master-Master anti-colocation"
+do_test master-promotion-constraint "Mandatory master colocation constraints"
 
 echo ""
 do_test managed-0 "Managed (reference)"
 do_test managed-1 "Not managed - down "
 do_test managed-2 "Not managed - up   "
 
 echo ""
 do_test interleave-0 "Interleave (reference)"
 do_test interleave-1 "coloc - not interleaved"
 do_test interleave-2 "coloc - interleaved   "
 do_test interleave-3 "coloc - interleaved (2)"
 do_test interleave-pseudo-stop "Interleaved clone during stonith"
 do_test interleave-stop "Interleaved clone during stop"
 do_test interleave-restart "Interleaved clone during dependancy restart"
 
 echo ""
 do_test notify-0 "Notify reference"
 do_test notify-1 "Notify simple"
 do_test notify-2 "Notify simple, confirm"
 do_test notify-3 "Notify move, confirm"
 do_test novell-239079 "Notification priority"
 #do_test notify-2 "Notify - 764"
 
 echo ""
 do_test 594 "OSDL #594"
 do_test 662 "OSDL #662"
 do_test 696 "OSDL #696"
 do_test 726 "OSDL #726"
 do_test 735 "OSDL #735"
 do_test 764 "OSDL #764"
 do_test 797 "OSDL #797"
 do_test 829 "OSDL #829"
 do_test 994 "OSDL #994"
 do_test 994-2 "OSDL #994 - with a dependant resource"
 do_test 1360 "OSDL #1360 - Clone stickiness"
 do_test 1484 "OSDL #1484 - on_fail=stop"
 do_test 1494 "OSDL #1494 - Clone stability"
 do_test unrunnable-1 "Unrunnable"
 do_test stonith-0 "Stonith loop - 1"
 do_test stonith-1 "Stonith loop - 2"
 do_test stonith-2 "Stonith loop - 3"
 do_test stonith-3 "Stonith startup"
 do_test bug-1572-1 "Recovery of groups depending on master/slave"
 do_test bug-1572-2 "Recovery of groups depending on master/slave when the master is never re-promoted"
 do_test bug-1685 "Depends-on-master ordering"
 do_test bug-1822 "Dont promote partially active groups"
 do_test bug-pm-11 "New resource added to a m/s group"
 do_test bug-pm-12 "Recover only the failed portion of a cloned group"
 do_test bug-n-387749 "Don't shuffle clone instances"
 do_test bug-n-385265 "Don't ignore the failure stickiness of group children - resource_idvscommon should stay stopped"
 do_test bug-n-385265-2 "Ensure groups are migrated instead of remaining partially active on the current node"
 do_test bug-lf-1920 "Correctly handle probes that find active resources"
 do_test bnc-515172 "Location constraint with multiple expressions"
 do_test colocate-primitive-with-clone "Optional colocation with a clone"
 do_test use-after-free-merge "Use-after-free in native_merge_weights"
 
 echo ""
 do_test systemhealth1  "System Health ()               #1"
 do_test systemhealth2  "System Health ()               #2"
 do_test systemhealth3  "System Health ()               #3"
 do_test systemhealthn1 "System Health (None)           #1"
 do_test systemhealthn2 "System Health (None)           #2"
 do_test systemhealthn3 "System Health (None)           #3"
 do_test systemhealthm1 "System Health (Migrate On Red) #1"
 do_test systemhealthm2 "System Health (Migrate On Red) #2"
 do_test systemhealthm3 "System Health (Migrate On Red) #3"
 do_test systemhealtho1 "System Health (Only Green)     #1"
 do_test systemhealtho2 "System Health (Only Green)     #2"
 do_test systemhealtho3 "System Health (Only Green)     #3"
 do_test systemhealthp1 "System Health (Progessive)     #1"
 do_test systemhealthp2 "System Health (Progessive)     #2"
 do_test systemhealthp3 "System Health (Progessive)     #3"
 
 echo ""
 do_test utilization "Placement Strategy - utilization"
 do_test minimal     "Placement Strategy - minimal"
 do_test balanced    "Placement Strategy - balanced"
 
 echo ""
 
 test_results
diff --git a/pengine/test10/master-promotion-constraint.dot b/pengine/test10/master-promotion-constraint.dot
new file mode 100644
index 0000000000..0cc25b5181
--- /dev/null
+++ b/pengine/test10/master-promotion-constraint.dot
@@ -0,0 +1,12 @@
+digraph "g" {
+"Cancel s0:1_monitor_20000 hex-14" -> "s0:1_demote_0 hex-14" [ style = bold]
+"Cancel s0:1_monitor_20000 hex-14" [ style=bold color="green" fontcolor="black"  ]
+"ms0_demote_0" -> "ms0_demoted_0" [ style = bold]
+"ms0_demote_0" -> "s0:1_demote_0 hex-14" [ style = bold]
+"ms0_demote_0" [ style=bold color="green" fontcolor="orange"  ]
+"ms0_demoted_0" [ style=bold color="green" fontcolor="orange"  ]
+"s0:1_demote_0 hex-14" -> "ms0_demoted_0" [ style = bold]
+"s0:1_demote_0 hex-14" -> "s0:1_monitor_21000 hex-14" [ style = bold]
+"s0:1_demote_0 hex-14" [ style=bold color="green" fontcolor="black"  ]
+"s0:1_monitor_21000 hex-14" [ style=bold color="green" fontcolor="black"  ]
+}
diff --git a/pengine/test10/master-promotion-constraint.exp b/pengine/test10/master-promotion-constraint.exp
new file mode 100644
index 0000000000..bc5b2c27f2
--- /dev/null
+++ b/pengine/test10/master-promotion-constraint.exp
@@ -0,0 +1,64 @@
+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0">
+  <synapse id="0">
+    <action_set>
+      <rsc_op id="1" operation="cancel" operation_key="s0:1_monitor_20000" on_node="hex-14" on_node_uuid="hex-14">
+        <primitive id="s0:1" long-id="ms0:s0:1" class="ocf" provider="pacemaker" type="Stateful"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="20000" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_operation="monitor" CRM_meta_role="Master" CRM_meta_timeout="20000" crm_feature_set="3.0.1"/>
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="1">
+    <action_set>
+      <rsc_op id="18" operation="demote" operation_key="s0:1_demote_0" on_node="hex-14" on_node_uuid="hex-14">
+        <primitive id="s0:1" long-id="ms0:s0:1" class="ocf" provider="pacemaker" type="Stateful"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.1"/>
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="1" operation="cancel" operation_key="s0:1_monitor_20000" on_node="hex-14" on_node_uuid="hex-14"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="demote" operation_key="ms0_demote_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="2">
+    <action_set>
+      <rsc_op id="19" operation="monitor" operation_key="s0:1_monitor_21000" on_node="hex-14" on_node_uuid="hex-14">
+        <primitive id="s0:1" long-id="ms0:s0:1" class="ocf" provider="pacemaker" type="Stateful"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="21000" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_role="Slave" CRM_meta_timeout="20000" crm_feature_set="3.0.1"/>
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="18" operation="demote" operation_key="s0:1_demote_0" on_node="hex-14" on_node_uuid="hex-14"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="3">
+    <action_set>
+      <pseudo_event id="26" operation="demote" operation_key="ms0_demote_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.1"/>
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="4" priority="1000000">
+    <action_set>
+      <pseudo_event id="27" operation="demoted" operation_key="ms0_demoted_0">
+        <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.1"/>
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="18" operation="demote" operation_key="s0:1_demote_0" on_node="hex-14" on_node_uuid="hex-14"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="26" operation="demote" operation_key="ms0_demote_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+</transition_graph>
+
diff --git a/pengine/test10/master-promotion-constraint.scores b/pengine/test10/master-promotion-constraint.scores
new file mode 100644
index 0000000000..b952806b57
--- /dev/null
+++ b/pengine/test10/master-promotion-constraint.scores
@@ -0,0 +1,26 @@
+Allocation scores:
+native_color: fencing-sbd allocation score on hex-13: 0
+native_color: fencing-sbd allocation score on hex-14: 0
+group_color: g0 allocation score on hex-13: 0
+group_color: g0 allocation score on hex-14: 0
+group_color: d0 allocation score on hex-13: 0
+group_color: d0 allocation score on hex-14: 0
+group_color: d1 allocation score on hex-13: 0
+group_color: d1 allocation score on hex-14: 0
+native_color: d0 allocation score on hex-13: -INFINITY
+native_color: d0 allocation score on hex-14: -INFINITY
+native_color: d1 allocation score on hex-13: -INFINITY
+native_color: d1 allocation score on hex-14: -INFINITY
+clone_color: ms0 allocation score on hex-13: 0
+clone_color: ms0 allocation score on hex-14: 0
+clone_color: s0:0 allocation score on hex-13: 6
+clone_color: s0:0 allocation score on hex-14: 0
+clone_color: s0:1 allocation score on hex-13: 0
+clone_color: s0:1 allocation score on hex-14: 11
+native_color: s0:1 allocation score on hex-13: 0
+native_color: s0:1 allocation score on hex-14: 11
+native_color: s0:0 allocation score on hex-13: 6
+native_color: s0:0 allocation score on hex-14: -INFINITY
+s0:2 promotion score on none: 0
+s0:1 promotion score on hex-14: -INFINITY
+s0:0 promotion score on hex-13: -INFINITY
diff --git a/pengine/test10/master-promotion-constraint.xml b/pengine/test10/master-promotion-constraint.xml
new file mode 100644
index 0000000000..556b3b5495
--- /dev/null
+++ b/pengine/test10/master-promotion-constraint.xml
@@ -0,0 +1,148 @@
+<cib validate-with="pacemaker-1.2" crm_feature_set="3.0.1" have-quorum="1" admin_epoch="0" epoch="2526" num_updates="3" cib-last-written="Thu Apr 29 13:28:51 2010" dc-uuid="hex-13">
+  <configuration>
+    <crm_config>
+      <cluster_property_set id="cib-bootstrap-options">
+        <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.1-536bf0b9d3ba6d412c67b27f89682ae9380b28ff"/>
+        <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="openais"/>
+        <nvpair id="cib-bootstrap-options-expected-quorum-votes" name="expected-quorum-votes" value="2"/>
+        <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/>
+        <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1271327761"/>
+        <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/>
+      </cluster_property_set>
+    </crm_config>
+    <nodes>
+      <node id="hex-13" type="normal" uname="hex-13">
+        <instance_attributes id="nodes-hex-13">
+          <nvpair id="nodes-hex-13-standby" name="standby" value="off"/>
+        </instance_attributes>
+      </node>
+      <node id="hex-14" type="normal" uname="hex-14">
+        <instance_attributes id="nodes-hex-14">
+          <nvpair id="nodes-hex-14-standby" name="standby" value="off"/>
+        </instance_attributes>
+      </node>
+    </nodes>
+    <resources>
+      <primitive class="stonith" id="fencing-sbd" type="external/sbd">
+        <instance_attributes id="fencing-sbd-instance_attributes">
+          <nvpair id="fencing-sbd-instance_attributes-sbd_device" name="sbd_device" value="/dev/disk/by-id/dm-uuid-part1-mpath-3600508b400105b5a0001500000280000"/>
+        </instance_attributes>
+      </primitive>
+      <group id="g0">
+        <primitive class="ocf" id="d0" provider="pacemaker" type="Dummy">
+          <operations>
+            <op id="d0-monitor-30s" interval="30s" name="monitor"/>
+          </operations>
+        </primitive>
+        <primitive class="ocf" id="d1" provider="pacemaker" type="Dummy">
+          <operations>
+            <op id="d1-monitor-30s" interval="30s" name="monitor"/>
+          </operations>
+        </primitive>
+        <meta_attributes id="g0-meta_attributes">
+          <nvpair id="g0-meta_attributes-target-role" name="target-role" value="Stopped"/>
+        </meta_attributes>
+      </group>
+      <master id="ms0">
+        <primitive class="ocf" id="s0" provider="pacemaker" type="Stateful">
+          <operations>
+            <op id="s0-monitor-20s" interval="20s" name="monitor" role="Master"/>
+            <op id="s0-monitor-21s" interval="21s" name="monitor" role="Slave"/>
+          </operations>
+        </primitive>
+      </master>
+    </resources>
+    <constraints>
+      <rsc_order first="g0" id="promote-after-g0" score="INFINITY" then="ms0" then-action="promote"/>
+      <rsc_colocation id="master-with-g0" rsc="ms0" rsc-role="Master" score="INFINITY" with-rsc="g0"/>
+    </constraints>
+    <rsc_defaults/>
+    <op_defaults/>
+  </configuration>
+  <status>
+    <node_state id="hex-14" uname="hex-14" ha="active" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="do_update_resource" shutdown="0">
+      <transient_attributes id="hex-14">
+        <instance_attributes id="status-hex-14">
+          <nvpair id="status-hex-14-probe_complete" name="probe_complete" value="true"/>
+          <nvpair id="status-hex-14-master-s0:1" name="master-s0:1" value="10"/>
+        </instance_attributes>
+      </transient_attributes>
+      <lrm id="hex-14">
+        <lrm_resources>
+          <lrm_resource id="s0:0" type="Stateful" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="s0:0_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="7:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;7:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1271847917" last-rc-change="1271847917" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="17:55:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;17:55:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="91" rc-code="0" op-status="0" interval="0" last-run="1271850326" last-rc-change="1271850326" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_promote_0" operation="promote" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="16:62:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;16:62:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="98" rc-code="0" op-status="0" interval="0" last-run="1271850348" last-rc-change="1271850348" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_demote_0" operation="demote" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="17:64:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;17:64:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="100" rc-code="0" op-status="0" interval="0" last-run="1271850376" last-rc-change="1271850376" exec-time="140" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="20:65:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;20:65:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="101" rc-code="0" op-status="0" interval="0" last-run="1271850376" last-rc-change="1271850376" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+          </lrm_resource>
+          <lrm_resource id="fencing-sbd" type="external/sbd" class="stonith">
+            <lrm_rsc_op id="fencing-sbd_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="4:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;4:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="2" rc-code="7" op-status="0" interval="0" last-run="1271847917" last-rc-change="1271847917" exec-time="10" queue-time="0" op-digest="1b2da9a9eccfb02ece7adbc4ed32df29"/>
+            <lrm_rsc_op id="fencing-sbd_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="8:0:0:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:0;8:0:0:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1271847917" last-rc-change="1271847917" exec-time="10" queue-time="0" op-digest="1b2da9a9eccfb02ece7adbc4ed32df29"/>
+            <lrm_rsc_op id="fencing-sbd_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="8:31:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;8:31:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="52" rc-code="0" op-status="0" interval="0" last-run="1271850189" last-rc-change="1271850189" exec-time="0" queue-time="0" op-digest="1b2da9a9eccfb02ece7adbc4ed32df29"/>
+          </lrm_resource>
+          <lrm_resource id="s0:1" type="Stateful" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="s0:1_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="24:54:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;24:54:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="89" rc-code="0" op-status="0" interval="0" last-run="1271850326" last-rc-change="1271850326" exec-time="140" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="20:66:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;20:66:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="102" rc-code="0" op-status="0" interval="0" last-run="1271850376" last-rc-change="1271850376" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:1_promote_0" operation="promote" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="26:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;26:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="108" rc-code="0" op-status="0" interval="0" last-run="1271851045" last-rc-change="1271851045" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:1_monitor_20000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="25:75:8:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:8;25:75:8:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="109" rc-code="8" op-status="0" interval="20000" last-run="1271851045" last-rc-change="1271851045" exec-time="30" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+          <lrm_resource id="d0" type="Dummy" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="d0_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="5:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;5:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="3" rc-code="7" op-status="0" interval="0" last-run="1271847917" last-rc-change="1271847917" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d0_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="10:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;10:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="104" rc-code="0" op-status="0" interval="0" last-run="1271851045" last-rc-change="1271851045" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d0_stop_0" operation="stop" crm-debug-origin="crm_simulate" crm_feature_set="3.0.1" transition-key="106:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;106:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="106" rc-code="0" op-status="0" interval="0" last-run="1271850338" last-rc-change="1271850338" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d0_monitor_30000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="11:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;11:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="105" rc-code="0" op-status="0" interval="30000" last-run="1271851045" last-rc-change="1271851045" exec-time="30" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+          <lrm_resource id="d1" type="Dummy" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="d1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="6:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;6:0:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="4" rc-code="7" op-status="0" interval="0" last-run="1271847917" last-rc-change="1271847917" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d1_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="13:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;13:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="106" rc-code="0" op-status="0" interval="0" last-run="1271851045" last-rc-change="1271851045" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d1_stop_0" operation="stop" crm-debug-origin="crm_simulate" crm_feature_set="3.0.1" transition-key="108:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;108:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="108" rc-code="0" op-status="0" interval="0" last-run="1271850337" last-rc-change="1271850337" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d1_monitor_30000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="14:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;14:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="107" rc-code="0" op-status="0" interval="30000" last-run="1271851045" last-rc-change="1271851045" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+        </lrm_resources>
+      </lrm>
+    </node_state>
+    <node_state id="hex-13" uname="hex-13" ha="active" in_ccm="true" crmd="online" join="member" expected="member" crm-debug-origin="do_update_resource" shutdown="0">
+      <transient_attributes id="hex-13">
+        <instance_attributes id="status-hex-13">
+          <nvpair id="status-hex-13-probe_complete" name="probe_complete" value="true"/>
+          <nvpair id="status-hex-13-master-s0:0" name="master-s0:0" value="5"/>
+        </instance_attributes>
+      </transient_attributes>
+      <lrm id="hex-13">
+        <lrm_resources>
+          <lrm_resource id="s0:0" type="Stateful" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="s0:0_demote_0" operation="demote" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="22:73:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;22:73:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="125" rc-code="0" op-status="0" interval="0" last-run="1271851044" last-rc-change="1271851044" exec-time="60" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="19:54:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;19:54:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="101" rc-code="0" op-status="0" interval="0" last-run="1271850326" last-rc-change="1271850326" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="17:66:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;17:66:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="115" rc-code="0" op-status="0" interval="0" last-run="1271850376" last-rc-change="1271850376" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_promote_0" operation="promote" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="20:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;20:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="124" rc-code="0" op-status="0" interval="0" last-run="1271850543" last-rc-change="1271850543" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:0_monitor_21000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="22:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;22:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="127" rc-code="0" op-status="0" interval="21000" last-run="1271851045" last-rc-change="1271851045" exec-time="30" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+          <lrm_resource id="fencing-sbd" type="external/sbd" class="stonith">
+            <lrm_rsc_op id="fencing-sbd_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="4:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;4:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="2" rc-code="7" op-status="0" interval="0" last-run="1271848123" last-rc-change="1271848123" exec-time="70" queue-time="0" op-digest="1b2da9a9eccfb02ece7adbc4ed32df29"/>
+            <lrm_rsc_op id="fencing-sbd_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="9:31:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;9:31:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="72" rc-code="0" op-status="0" interval="0" last-run="1271850190" last-rc-change="1271850190" exec-time="0" queue-time="0" op-digest="1b2da9a9eccfb02ece7adbc4ed32df29"/>
+          </lrm_resource>
+          <lrm_resource id="s0:1" type="Stateful" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="s0:1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="7:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;7:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1271848123" last-rc-change="1271848123" exec-time="210" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:1_promote_0" operation="promote" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="23:30:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;23:30:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="70" rc-code="0" op-status="0" interval="0" last-run="1271850171" last-rc-change="1271850171" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:1_demote_0" operation="demote" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="24:31:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;24:31:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="71" rc-code="0" op-status="0" interval="0" last-run="1271850189" last-rc-change="1271850189" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="20:55:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;20:55:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="102" rc-code="0" op-status="0" interval="0" last-run="1271850326" last-rc-change="1271850326" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="s0:1_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="25:65:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;25:65:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="114" rc-code="0" op-status="0" interval="0" last-run="1271850376" last-rc-change="1271850376" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+          </lrm_resource>
+          <lrm_resource id="d0" type="Dummy" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="d0_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="5:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;5:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="3" rc-code="7" op-status="0" interval="0" last-run="1271848123" last-rc-change="1271848123" exec-time="210" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d0_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="9:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;9:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="128" rc-code="0" op-status="0" interval="0" last-run="1271851045" last-rc-change="1271851045" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d0_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="9:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;9:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="120" rc-code="0" op-status="0" interval="0" last-run="1271850543" last-rc-change="1271850543" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d0_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="10:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;10:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="121" rc-code="0" op-status="0" interval="30000" last-run="1271851023" last-rc-change="1271850543" exec-time="30" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+          <lrm_resource id="d1" type="Dummy" class="ocf" provider="pacemaker">
+            <lrm_rsc_op id="d1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="6:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" transition-magic="0:7;6:10:7:5ba55dc1-3fdf-47bc-be76-0c1edf5e6bdb" call-id="4" rc-code="7" op-status="0" interval="0" last-run="1271848123" last-rc-change="1271848123" exec-time="210" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d1_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.1" transition-key="12:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;12:74:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="126" rc-code="0" op-status="0" interval="0" last-run="1271851045" last-rc-change="1271851045" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="11:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;11:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="122" rc-code="0" op-status="0" interval="0" last-run="1271850543" last-rc-change="1271850543" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="d1_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.1" transition-key="12:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" transition-magic="0:0;12:72:0:ec96f7d6-e7e9-402a-b872-c77aba4c8691" call-id="123" rc-code="0" op-status="0" interval="30000" last-run="1271851023" last-rc-change="1271850543" exec-time="30" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+        </lrm_resources>
+      </lrm>
+    </node_state>
+  </status>
+</cib>