commit b537e9bceb8301f55aa4467e8fa0fc7e2a1b11f5
Author: David Vossel <dvossel@redhat.com>
Date:   Mon Jun 22 14:18:59 2015 -0400

    Low: pengine: regression test for guest remote node in group

diff --git a/pengine/regression.sh b/pengine/regression.sh
index 58c5fbb..2e31f31 100755
--- a/pengine/regression.sh
+++ b/pengine/regression.sh
@@ -784,6 +784,7 @@ do_test whitebox-orphan-ms   "Properly tear down orphan ms resources on remote-n
 do_test whitebox-unexpectedly-running "Recover container nodes the cluster did not start."
 do_test whitebox-migrate1 "Migrate both container and connection resource"
 do_test whitebox-imply-stop-on-fence "imply stop action on container node rsc when host node is fenced"
+do_test whitebox-nested-group "Verify guest remote-node works nested in a group"
 
 echo ""
 do_test remote-startup-probes  "Baremetal remote-node startup probes"
diff --git a/pengine/test10/whitebox-nested-group.dot b/pengine/test10/whitebox-nested-group.dot
new file mode 100644
index 0000000..068e1ed
--- /dev/null
+++ b/pengine/test10/whitebox-nested-group.dot
@@ -0,0 +1,121 @@
+ digraph "g" {
+"c7auto4_monitor_30000 c7auto1" [ style=bold color="green" fontcolor="black"]
+"c7auto4_start_0 c7auto1" -> "c7auto4_monitor_30000 c7auto1" [ style = bold]
+"c7auto4_start_0 c7auto1" -> "fake2_monitor_10000 c7auto4" [ style = bold]
+"c7auto4_start_0 c7auto1" -> "fake2_start_0 c7auto4" [ style = bold]
+"c7auto4_start_0 c7auto1" -> "fake5_monitor_10000 c7auto4" [ style = bold]
+"c7auto4_start_0 c7auto1" -> "fake5_start_0 c7auto4" [ style = bold]
+"c7auto4_start_0 c7auto1" -> "fake:2_monitor_10000 c7auto4" [ style = bold]
+"c7auto4_start_0 c7auto1" -> "fake:2_start_0 c7auto4" [ style = bold]
+"c7auto4_start_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"container_monitor_10000 c7auto1" [ style=bold color="green" fontcolor="black"]
+"container_start_0 c7auto1" -> "c7auto4_start_0 c7auto1" [ style = bold]
+"container_start_0 c7auto1" -> "container_monitor_10000 c7auto1" [ style = bold]
+"container_start_0 c7auto1" -> "fake_group_running_0" [ style = bold]
+"container_start_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake1_monitor_0 c7auto1" -> "probe_complete c7auto1" [ style = bold]
+"fake1_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake1_monitor_0 c7auto2" -> "probe_complete c7auto2" [ style = bold]
+"fake1_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake1_monitor_0 c7auto3" -> "probe_complete c7auto3" [ style = bold]
+"fake1_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake1_monitor_10000 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake1_start_0 c7auto3" -> "fake1_monitor_10000 c7auto3" [ style = bold]
+"fake1_start_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake2_monitor_0 c7auto1" -> "probe_complete c7auto1" [ style = bold]
+"fake2_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake2_monitor_0 c7auto2" -> "probe_complete c7auto2" [ style = bold]
+"fake2_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake2_monitor_0 c7auto3" -> "probe_complete c7auto3" [ style = bold]
+"fake2_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake2_monitor_10000 c7auto4" [ style=bold color="green" fontcolor="black"]
+"fake2_start_0 c7auto4" -> "fake2_monitor_10000 c7auto4" [ style = bold]
+"fake2_start_0 c7auto4" [ style=bold color="green" fontcolor="black"]
+"fake3_monitor_0 c7auto1" -> "probe_complete c7auto1" [ style = bold]
+"fake3_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake3_monitor_0 c7auto2" -> "probe_complete c7auto2" [ style = bold]
+"fake3_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake3_monitor_0 c7auto3" -> "probe_complete c7auto3" [ style = bold]
+"fake3_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake3_monitor_10000 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake3_start_0 c7auto2" -> "fake3_monitor_10000 c7auto2" [ style = bold]
+"fake3_start_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake4_monitor_0 c7auto1" -> "probe_complete c7auto1" [ style = bold]
+"fake4_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake4_monitor_0 c7auto2" -> "probe_complete c7auto2" [ style = bold]
+"fake4_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake4_monitor_0 c7auto3" -> "probe_complete c7auto3" [ style = bold]
+"fake4_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake4_monitor_10000 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake4_start_0 c7auto3" -> "fake4_monitor_10000 c7auto3" [ style = bold]
+"fake4_start_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake5_monitor_0 c7auto1" -> "probe_complete c7auto1" [ style = bold]
+"fake5_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake5_monitor_0 c7auto2" -> "probe_complete c7auto2" [ style = bold]
+"fake5_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake5_monitor_0 c7auto3" -> "probe_complete c7auto3" [ style = bold]
+"fake5_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake5_monitor_10000 c7auto4" [ style=bold color="green" fontcolor="black"]
+"fake5_start_0 c7auto4" -> "fake5_monitor_10000 c7auto4" [ style = bold]
+"fake5_start_0 c7auto4" [ style=bold color="green" fontcolor="black"]
+"fake:0_monitor_0 c7auto2" -> "probe_complete c7auto2" [ style = bold]
+"fake:0_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake:0_monitor_10000 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake:0_start_0 c7auto2" -> "fake:0_monitor_10000 c7auto2" [ style = bold]
+"fake:0_start_0 c7auto2" -> "fake_clone_running_0" [ style = bold]
+"fake:0_start_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake:1_monitor_0 c7auto3" -> "probe_complete c7auto3" [ style = bold]
+"fake:1_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake:1_monitor_10000 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake:1_start_0 c7auto3" -> "fake:1_monitor_10000 c7auto3" [ style = bold]
+"fake:1_start_0 c7auto3" -> "fake_clone_running_0" [ style = bold]
+"fake:1_start_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake:2_monitor_10000 c7auto4" [ style=bold color="green" fontcolor="black"]
+"fake:2_start_0 c7auto4" -> "fake:2_monitor_10000 c7auto4" [ style = bold]
+"fake:2_start_0 c7auto4" -> "fake_clone_running_0" [ style = bold]
+"fake:2_start_0 c7auto4" [ style=bold color="green" fontcolor="black"]
+"fake:3_monitor_0 c7auto1" -> "probe_complete c7auto1" [ style = bold]
+"fake:3_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake:3_monitor_10000 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake:3_start_0 c7auto1" -> "fake:3_monitor_10000 c7auto1" [ style = bold]
+"fake:3_start_0 c7auto1" -> "fake_clone_running_0" [ style = bold]
+"fake:3_start_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake_clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"fake_clone_start_0" -> "fake:0_start_0 c7auto2" [ style = bold]
+"fake_clone_start_0" -> "fake:1_start_0 c7auto3" [ style = bold]
+"fake_clone_start_0" -> "fake:2_start_0 c7auto4" [ style = bold]
+"fake_clone_start_0" -> "fake:3_start_0 c7auto1" [ style = bold]
+"fake_clone_start_0" -> "fake_clone_running_0" [ style = bold]
+"fake_clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"fake_fs_monitor_0 c7auto1" -> "probe_complete c7auto1" [ style = bold]
+"fake_fs_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake_fs_monitor_0 c7auto2" -> "probe_complete c7auto2" [ style = bold]
+"fake_fs_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"]
+"fake_fs_monitor_0 c7auto3" -> "probe_complete c7auto3" [ style = bold]
+"fake_fs_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"]
+"fake_fs_monitor_10000 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake_fs_start_0 c7auto1" -> "container_start_0 c7auto1" [ style = bold]
+"fake_fs_start_0 c7auto1" -> "fake_fs_monitor_10000 c7auto1" [ style = bold]
+"fake_fs_start_0 c7auto1" -> "fake_group_running_0" [ style = bold]
+"fake_fs_start_0 c7auto1" [ style=bold color="green" fontcolor="black"]
+"fake_group_running_0" [ style=bold color="green" fontcolor="orange"]
+"fake_group_start_0" -> "container_start_0 c7auto1" [ style = bold]
+"fake_group_start_0" -> "fake_fs_start_0 c7auto1" [ style = bold]
+"fake_group_start_0" -> "fake_group_running_0" [ style = bold]
+"fake_group_start_0" [ style=bold color="green" fontcolor="orange"]
+"probe_complete c7auto1" [ style=bold color="green" fontcolor="black"]
+"probe_complete c7auto2" [ style=bold color="green" fontcolor="black"]
+"probe_complete c7auto3" [ style=bold color="green" fontcolor="black"]
+"probe_complete" -> "container_start_0 c7auto1" [ style = bold]
+"probe_complete" -> "fake1_start_0 c7auto3" [ style = bold]
+"probe_complete" -> "fake2_start_0 c7auto4" [ style = bold]
+"probe_complete" -> "fake3_start_0 c7auto2" [ style = bold]
+"probe_complete" -> "fake4_start_0 c7auto3" [ style = bold]
+"probe_complete" -> "fake5_start_0 c7auto4" [ style = bold]
+"probe_complete" -> "fake:0_start_0 c7auto2" [ style = bold]
+"probe_complete" -> "fake:1_start_0 c7auto3" [ style = bold]
+"probe_complete" -> "fake:2_start_0 c7auto4" [ style = bold]
+"probe_complete" -> "fake:3_start_0 c7auto1" [ style = bold]
+"probe_complete" -> "fake_fs_start_0 c7auto1" [ style = bold]
+"probe_complete" [ style=bold color="green" fontcolor="orange"]
+}
diff --git a/pengine/test10/whitebox-nested-group.exp b/pengine/test10/whitebox-nested-group.exp
new file mode 100644
index 0000000..47a6249
--- /dev/null
+++ b/pengine/test10/whitebox-nested-group.exp
@@ -0,0 +1,698 @@
+<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="32" operation="monitor" operation_key="fake1_monitor_10000" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="31" operation="start" operation_key="fake1_start_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="1">
+    <action_set>
+      <rsc_op id="31" operation="start" operation_key="fake1_start_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_name="start" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="2">
+    <action_set>
+      <rsc_op id="22" operation="monitor" operation_key="fake1_monitor_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="3">
+    <action_set>
+      <rsc_op id="14" operation="monitor" operation_key="fake1_monitor_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="4">
+    <action_set>
+      <rsc_op id="6" operation="monitor" operation_key="fake1_monitor_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="5">
+    <action_set>
+      <rsc_op id="34" operation="monitor" operation_key="fake2_monitor_10000" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1">
+        <primitive id="fake2" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="33" operation="start" operation_key="fake2_start_0" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="6">
+    <action_set>
+      <rsc_op id="33" operation="start" operation_key="fake2_start_0" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1">
+        <primitive id="fake2" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_name="start" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="7">
+    <action_set>
+      <rsc_op id="23" operation="monitor" operation_key="fake2_monitor_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake2" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="8">
+    <action_set>
+      <rsc_op id="15" operation="monitor" operation_key="fake2_monitor_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake2" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="9">
+    <action_set>
+      <rsc_op id="7" operation="monitor" operation_key="fake2_monitor_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake2" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="10">
+    <action_set>
+      <rsc_op id="36" operation="monitor" operation_key="fake3_monitor_10000" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="35" operation="start" operation_key="fake3_start_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="11">
+    <action_set>
+      <rsc_op id="35" operation="start" operation_key="fake3_start_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_name="start" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="12">
+    <action_set>
+      <rsc_op id="24" operation="monitor" operation_key="fake3_monitor_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="13">
+    <action_set>
+      <rsc_op id="16" operation="monitor" operation_key="fake3_monitor_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="14">
+    <action_set>
+      <rsc_op id="8" operation="monitor" operation_key="fake3_monitor_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="15">
+    <action_set>
+      <rsc_op id="38" operation="monitor" operation_key="fake4_monitor_10000" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake4" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="37" operation="start" operation_key="fake4_start_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="16">
+    <action_set>
+      <rsc_op id="37" operation="start" operation_key="fake4_start_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake4" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_name="start" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="17">
+    <action_set>
+      <rsc_op id="25" operation="monitor" operation_key="fake4_monitor_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake4" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="18">
+    <action_set>
+      <rsc_op id="17" operation="monitor" operation_key="fake4_monitor_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake4" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="19">
+    <action_set>
+      <rsc_op id="9" operation="monitor" operation_key="fake4_monitor_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake4" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="20">
+    <action_set>
+      <rsc_op id="40" operation="monitor" operation_key="fake5_monitor_10000" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1">
+        <primitive id="fake5" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="39" operation="start" operation_key="fake5_start_0" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="21">
+    <action_set>
+      <rsc_op id="39" operation="start" operation_key="fake5_start_0" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1">
+        <primitive id="fake5" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_name="start" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="22">
+    <action_set>
+      <rsc_op id="26" operation="monitor" operation_key="fake5_monitor_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake5" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="23">
+    <action_set>
+      <rsc_op id="18" operation="monitor" operation_key="fake5_monitor_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake5" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="24">
+    <action_set>
+      <rsc_op id="10" operation="monitor" operation_key="fake5_monitor_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake5" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="25">
+    <action_set>
+      <rsc_op id="42" operation="monitor" operation_key="fake:0_monitor_10000" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake" long-id="fake:0" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="41" operation="start" operation_key="fake:0_start_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="26">
+    <action_set>
+      <rsc_op id="41" operation="start" operation_key="fake:0_start_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake" long-id="fake:0" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="49" operation="start" operation_key="fake_clone_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="27">
+    <action_set>
+      <rsc_op id="19" operation="monitor" operation_key="fake:0_monitor_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake" long-id="fake:0" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="28">
+    <action_set>
+      <rsc_op id="44" operation="monitor" operation_key="fake:1_monitor_10000" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake" long-id="fake:1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="43" operation="start" operation_key="fake:1_start_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="29">
+    <action_set>
+      <rsc_op id="43" operation="start" operation_key="fake:1_start_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake" long-id="fake:1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="49" operation="start" operation_key="fake_clone_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="30">
+    <action_set>
+      <rsc_op id="27" operation="monitor" operation_key="fake:1_monitor_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake" long-id="fake:1" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="31">
+    <action_set>
+      <rsc_op id="46" operation="monitor" operation_key="fake:2_monitor_10000" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1">
+        <primitive id="fake" long-id="fake:2" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="45" operation="start" operation_key="fake:2_start_0" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="32">
+    <action_set>
+      <rsc_op id="45" operation="start" operation_key="fake:2_start_0" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1">
+        <primitive id="fake" long-id="fake:2" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="49" operation="start" operation_key="fake_clone_start_0"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="33">
+    <action_set>
+      <rsc_op id="48" operation="monitor" operation_key="fake:3_monitor_10000" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake" long-id="fake:3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="47" operation="start" operation_key="fake:3_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="34">
+    <action_set>
+      <rsc_op id="47" operation="start" operation_key="fake:3_start_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake" long-id="fake:3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="49" operation="start" operation_key="fake_clone_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="35">
+    <action_set>
+      <rsc_op id="11" operation="monitor" operation_key="fake:3_monitor_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake" long-id="fake:3" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="36" priority="1000000">
+    <action_set>
+      <pseudo_event id="50" operation="running" operation_key="fake_clone_running_0">
+        <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="41" operation="start" operation_key="fake:0_start_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="43" operation="start" operation_key="fake:1_start_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="45" operation="start" operation_key="fake:2_start_0" on_node="c7auto4" on_node_uuid="c7auto4" router_node="c7auto1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="47" operation="start" operation_key="fake:3_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="49" operation="start" operation_key="fake_clone_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="37">
+    <action_set>
+      <pseudo_event id="49" operation="start" operation_key="fake_clone_start_0">
+        <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="38">
+    <action_set>
+      <pseudo_event id="58" operation="running" operation_key="fake_group_running_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="53" operation="start" operation_key="fake_fs_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="55" operation="start" operation_key="container_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="57" operation="start" operation_key="fake_group_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="39">
+    <action_set>
+      <pseudo_event id="57" operation="start" operation_key="fake_group_start_0">
+        <attributes CRM_meta_timeout="20000" />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="40">
+    <action_set>
+      <rsc_op id="54" operation="monitor" operation_key="fake_fs_monitor_10000" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake_fs" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="53" operation="start" operation_key="fake_fs_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="41">
+    <action_set>
+      <rsc_op id="53" operation="start" operation_key="fake_fs_start_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake_fs" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_name="start" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="57" operation="start" operation_key="fake_group_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="42">
+    <action_set>
+      <rsc_op id="28" operation="monitor" operation_key="fake_fs_monitor_0" on_node="c7auto3" on_node_uuid="3">
+        <primitive id="fake_fs" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="43">
+    <action_set>
+      <rsc_op id="20" operation="monitor" operation_key="fake_fs_monitor_0" on_node="c7auto2" on_node_uuid="2">
+        <primitive id="fake_fs" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="44">
+    <action_set>
+      <rsc_op id="12" operation="monitor" operation_key="fake_fs_monitor_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="fake_fs" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs/>
+  </synapse>
+  <synapse id="45">
+    <action_set>
+      <rsc_op id="56" operation="monitor" operation_key="container_monitor_10000" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="container" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_remote_node="c7auto4" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="55" operation="start" operation_key="container_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="46">
+    <action_set>
+      <rsc_op id="55" operation="start" operation_key="container_start_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="container" class="ocf" provider="heartbeat" type="Dummy"/>
+        <attributes CRM_meta_name="start" CRM_meta_remote_node="c7auto4" CRM_meta_timeout="20000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="53" operation="start" operation_key="fake_fs_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <pseudo_event id="57" operation="start" operation_key="fake_group_start_0"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="47">
+    <action_set>
+      <rsc_op id="62" operation="monitor" operation_key="c7auto4_monitor_30000" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="c7auto4" class="ocf" provider="pacemaker" type="remote"/>
+        <attributes CRM_meta_container="container" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="48">
+    <action_set>
+      <rsc_op id="61" operation="start" operation_key="c7auto4_start_0" on_node="c7auto1" on_node_uuid="1">
+        <primitive id="c7auto4" class="ocf" provider="pacemaker" type="remote"/>
+        <attributes CRM_meta_container="container" CRM_meta_name="start" CRM_meta_timeout="60000" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="55" operation="start" operation_key="container_start_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="49" priority="1000000">
+    <action_set>
+      <rsc_op id="21" operation="probe_complete" operation_key="probe_complete-c7auto3" on_node="c7auto3" on_node_uuid="3">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="22" operation="monitor" operation_key="fake1_monitor_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="23" operation="monitor" operation_key="fake2_monitor_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="24" operation="monitor" operation_key="fake3_monitor_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="25" operation="monitor" operation_key="fake4_monitor_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="26" operation="monitor" operation_key="fake5_monitor_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="27" operation="monitor" operation_key="fake:1_monitor_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="28" operation="monitor" operation_key="fake_fs_monitor_0" on_node="c7auto3" on_node_uuid="3"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="50" priority="1000000">
+    <action_set>
+      <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c7auto2" on_node="c7auto2" on_node_uuid="2">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="14" operation="monitor" operation_key="fake1_monitor_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="15" operation="monitor" operation_key="fake2_monitor_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="16" operation="monitor" operation_key="fake3_monitor_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="17" operation="monitor" operation_key="fake4_monitor_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="18" operation="monitor" operation_key="fake5_monitor_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="19" operation="monitor" operation_key="fake:0_monitor_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="20" operation="monitor" operation_key="fake_fs_monitor_0" on_node="c7auto2" on_node_uuid="2"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="51" priority="1000000">
+    <action_set>
+      <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-c7auto1" on_node="c7auto1" on_node_uuid="1">
+        <attributes CRM_meta_op_no_wait="true" />
+      </rsc_op>
+    </action_set>
+    <inputs>
+      <trigger>
+        <rsc_op id="6" operation="monitor" operation_key="fake1_monitor_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="7" operation="monitor" operation_key="fake2_monitor_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="8" operation="monitor" operation_key="fake3_monitor_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="9" operation="monitor" operation_key="fake4_monitor_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="10" operation="monitor" operation_key="fake5_monitor_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="11" operation="monitor" operation_key="fake:3_monitor_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+      <trigger>
+        <rsc_op id="12" operation="monitor" operation_key="fake_fs_monitor_0" on_node="c7auto1" on_node_uuid="1"/>
+      </trigger>
+    </inputs>
+  </synapse>
+  <synapse id="52">
+    <action_set>
+      <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete">
+        <attributes />
+      </pseudo_event>
+    </action_set>
+    <inputs/>
+  </synapse>
+</transition_graph>
diff --git a/pengine/test10/whitebox-nested-group.scores b/pengine/test10/whitebox-nested-group.scores
new file mode 100644
index 0000000..9671939
--- /dev/null
+++ b/pengine/test10/whitebox-nested-group.scores
@@ -0,0 +1,85 @@
+Allocation scores:
+clone_color: fake:0 allocation score on c7auto1: 0
+clone_color: fake:0 allocation score on c7auto2: 0
+clone_color: fake:0 allocation score on c7auto3: 0
+clone_color: fake:0 allocation score on c7auto4: 0
+clone_color: fake:1 allocation score on c7auto1: 0
+clone_color: fake:1 allocation score on c7auto2: 0
+clone_color: fake:1 allocation score on c7auto3: 0
+clone_color: fake:1 allocation score on c7auto4: 0
+clone_color: fake:2 allocation score on c7auto1: 0
+clone_color: fake:2 allocation score on c7auto2: 0
+clone_color: fake:2 allocation score on c7auto3: 0
+clone_color: fake:2 allocation score on c7auto4: 0
+clone_color: fake:3 allocation score on c7auto1: 0
+clone_color: fake:3 allocation score on c7auto2: 0
+clone_color: fake:3 allocation score on c7auto3: 0
+clone_color: fake:3 allocation score on c7auto4: 0
+clone_color: fake_clone allocation score on c7auto1: 0
+clone_color: fake_clone allocation score on c7auto2: 0
+clone_color: fake_clone allocation score on c7auto3: 0
+clone_color: fake_clone allocation score on c7auto4: 0
+group_color: container allocation score on c7auto1: 0
+group_color: container allocation score on c7auto2: 0
+group_color: container allocation score on c7auto3: 0
+group_color: container allocation score on c7auto4: -INFINITY
+group_color: fake_fs allocation score on c7auto1: 0
+group_color: fake_fs allocation score on c7auto2: 0
+group_color: fake_fs allocation score on c7auto3: 0
+group_color: fake_fs allocation score on c7auto4: 0
+group_color: fake_group allocation score on c7auto1: 0
+group_color: fake_group allocation score on c7auto2: 0
+group_color: fake_group allocation score on c7auto3: 0
+group_color: fake_group allocation score on c7auto4: 0
+native_color: c7auto4 allocation score on c7auto1: 0
+native_color: c7auto4 allocation score on c7auto2: -INFINITY
+native_color: c7auto4 allocation score on c7auto3: -INFINITY
+native_color: c7auto4 allocation score on c7auto4: -INFINITY
+native_color: container allocation score on c7auto1: 0
+native_color: container allocation score on c7auto2: -INFINITY
+native_color: container allocation score on c7auto3: -INFINITY
+native_color: container allocation score on c7auto4: -INFINITY
+native_color: fake1 allocation score on c7auto1: 0
+native_color: fake1 allocation score on c7auto2: 0
+native_color: fake1 allocation score on c7auto3: 0
+native_color: fake1 allocation score on c7auto4: 0
+native_color: fake2 allocation score on c7auto1: 0
+native_color: fake2 allocation score on c7auto2: 0
+native_color: fake2 allocation score on c7auto3: 0
+native_color: fake2 allocation score on c7auto4: 0
+native_color: fake3 allocation score on c7auto1: 0
+native_color: fake3 allocation score on c7auto2: 0
+native_color: fake3 allocation score on c7auto3: 0
+native_color: fake3 allocation score on c7auto4: 0
+native_color: fake4 allocation score on c7auto1: 0
+native_color: fake4 allocation score on c7auto2: 0
+native_color: fake4 allocation score on c7auto3: 0
+native_color: fake4 allocation score on c7auto4: 0
+native_color: fake5 allocation score on c7auto1: 0
+native_color: fake5 allocation score on c7auto2: 0
+native_color: fake5 allocation score on c7auto3: 0
+native_color: fake5 allocation score on c7auto4: 0
+native_color: fake:0 allocation score on c7auto1: 0
+native_color: fake:0 allocation score on c7auto2: 0
+native_color: fake:0 allocation score on c7auto3: 0
+native_color: fake:0 allocation score on c7auto4: 0
+native_color: fake:1 allocation score on c7auto1: 0
+native_color: fake:1 allocation score on c7auto2: -INFINITY
+native_color: fake:1 allocation score on c7auto3: 0
+native_color: fake:1 allocation score on c7auto4: 0
+native_color: fake:2 allocation score on c7auto1: 0
+native_color: fake:2 allocation score on c7auto2: -INFINITY
+native_color: fake:2 allocation score on c7auto3: -INFINITY
+native_color: fake:2 allocation score on c7auto4: 0
+native_color: fake:3 allocation score on c7auto1: 0
+native_color: fake:3 allocation score on c7auto2: -INFINITY
+native_color: fake:3 allocation score on c7auto3: -INFINITY
+native_color: fake:3 allocation score on c7auto4: -INFINITY
+native_color: fake_fs allocation score on c7auto1: 0
+native_color: fake_fs allocation score on c7auto2: 0
+native_color: fake_fs allocation score on c7auto3: 0
+native_color: fake_fs allocation score on c7auto4: -INFINITY
+native_color: shooter allocation score on c7auto1: 0
+native_color: shooter allocation score on c7auto2: 0
+native_color: shooter allocation score on c7auto3: 0
+native_color: shooter allocation score on c7auto4: -INFINITY
diff --git a/pengine/test10/whitebox-nested-group.summary b/pengine/test10/whitebox-nested-group.summary
new file mode 100644
index 0000000..068d2a2
--- /dev/null
+++ b/pengine/test10/whitebox-nested-group.summary
@@ -0,0 +1,98 @@
+
+Current cluster status:
+Online: [ c7auto1 c7auto2 c7auto3 ]
+
+ shooter	(stonith:fence_phd_kvm):	Started c7auto2
+ fake1	(ocf::heartbeat:Dummy):	Stopped
+ fake2	(ocf::heartbeat:Dummy):	Stopped
+ fake3	(ocf::heartbeat:Dummy):	Stopped
+ fake4	(ocf::heartbeat:Dummy):	Stopped
+ fake5	(ocf::heartbeat:Dummy):	Stopped
+ Clone Set: fake_clone [fake]
+     Stopped: [ c7auto1 c7auto2 c7auto3 c7auto4 ]
+ Resource Group: fake_group
+     fake_fs	(ocf::heartbeat:Dummy):	Stopped
+     container	(ocf::heartbeat:Dummy):	Stopped
+
+Transition Summary:
+ * Start   fake1	(c7auto3)
+ * Start   fake2	(c7auto4)
+ * Start   fake3	(c7auto2)
+ * Start   fake4	(c7auto3)
+ * Start   fake5	(c7auto4)
+ * Start   fake:0	(c7auto2)
+ * Start   fake:1	(c7auto3)
+ * Start   fake:2	(c7auto4)
+ * Start   fake:3	(c7auto1)
+ * Start   fake_fs	(c7auto1)
+ * Start   container	(c7auto1)
+ * Start   c7auto4	(c7auto1)
+
+Executing cluster transition:
+ * Resource action: fake1           monitor on c7auto3
+ * Resource action: fake1           monitor on c7auto2
+ * Resource action: fake1           monitor on c7auto1
+ * Resource action: fake2           monitor on c7auto3
+ * Resource action: fake2           monitor on c7auto2
+ * Resource action: fake2           monitor on c7auto1
+ * Resource action: fake3           monitor on c7auto3
+ * Resource action: fake3           monitor on c7auto2
+ * Resource action: fake3           monitor on c7auto1
+ * Resource action: fake4           monitor on c7auto3
+ * Resource action: fake4           monitor on c7auto2
+ * Resource action: fake4           monitor on c7auto1
+ * Resource action: fake5           monitor on c7auto3
+ * Resource action: fake5           monitor on c7auto2
+ * Resource action: fake5           monitor on c7auto1
+ * Resource action: fake:0          monitor on c7auto2
+ * Resource action: fake:1          monitor on c7auto3
+ * Resource action: fake:3          monitor on c7auto1
+ * Pseudo action:   fake_clone_start_0
+ * Pseudo action:   fake_group_start_0
+ * Resource action: fake_fs         monitor on c7auto3
+ * Resource action: fake_fs         monitor on c7auto2
+ * Resource action: fake_fs         monitor on c7auto1
+ * Pseudo action:   probe_complete
+ * Resource action: fake1           start on c7auto3
+ * Resource action: fake3           start on c7auto2
+ * Resource action: fake4           start on c7auto3
+ * Resource action: fake:0          start on c7auto2
+ * Resource action: fake:1          start on c7auto3
+ * Resource action: fake:3          start on c7auto1
+ * Resource action: fake_fs         start on c7auto1
+ * Resource action: container       start on c7auto1
+ * Resource action: c7auto4         start on c7auto1
+ * Resource action: fake1           monitor=10000 on c7auto3
+ * Resource action: fake2           start on c7auto4
+ * Resource action: fake3           monitor=10000 on c7auto2
+ * Resource action: fake4           monitor=10000 on c7auto3
+ * Resource action: fake5           start on c7auto4
+ * Resource action: fake:0          monitor=10000 on c7auto2
+ * Resource action: fake:1          monitor=10000 on c7auto3
+ * Resource action: fake:2          start on c7auto4
+ * Resource action: fake:3          monitor=10000 on c7auto1
+ * Pseudo action:   fake_clone_running_0
+ * Pseudo action:   fake_group_running_0
+ * Resource action: fake_fs         monitor=10000 on c7auto1
+ * Resource action: container       monitor=10000 on c7auto1
+ * Resource action: c7auto4         monitor=30000 on c7auto1
+ * Resource action: fake2           monitor=10000 on c7auto4
+ * Resource action: fake5           monitor=10000 on c7auto4
+ * Resource action: fake:2          monitor=10000 on c7auto4
+
+Revised cluster status:
+Online: [ c7auto1 c7auto2 c7auto3 ]
+Containers: [ c7auto4:container ]
+
+ shooter	(stonith:fence_phd_kvm):	Started c7auto2
+ fake1	(ocf::heartbeat:Dummy):	Started c7auto3
+ fake2	(ocf::heartbeat:Dummy):	Started c7auto4
+ fake3	(ocf::heartbeat:Dummy):	Started c7auto2
+ fake4	(ocf::heartbeat:Dummy):	Started c7auto3
+ fake5	(ocf::heartbeat:Dummy):	Started c7auto4
+ Clone Set: fake_clone [fake]
+     Started: [ c7auto1 c7auto2 c7auto3 c7auto4 ]
+ Resource Group: fake_group
+     fake_fs	(ocf::heartbeat:Dummy):	Started c7auto1
+     container	(ocf::heartbeat:Dummy):	Started c7auto1
+
diff --git a/pengine/test10/whitebox-nested-group.xml b/pengine/test10/whitebox-nested-group.xml
new file mode 100644
index 0000000..94e27a3
--- /dev/null
+++ b/pengine/test10/whitebox-nested-group.xml
@@ -0,0 +1,151 @@
+<cib crm_feature_set="3.0.10" validate-with="pacemaker-2.3" epoch="10" num_updates="1" admin_epoch="0" cib-last-written="Mon Jun 22 11:56:24 2015" have-quorum="1" dc-uuid="1">
+  <configuration>
+    <crm_config>
+      <cluster_property_set id="cib-bootstrap-options">
+        <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.12-4dc87a4"/>
+        <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/>
+        <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/>
+      </cluster_property_set>
+    </crm_config>
+    <nodes>
+      <node id="1" uname="c7auto1"/>
+      <node id="2" uname="c7auto2"/>
+      <node id="3" uname="c7auto3"/>
+    </nodes>
+    <resources>
+      <primitive class="stonith" id="shooter" type="fence_phd_kvm">
+        <instance_attributes id="shooter-instance_attributes"/>
+        <operations>
+          <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/>
+        </operations>
+      </primitive>
+      <primitive class="ocf" id="fake1" provider="heartbeat" type="Dummy">
+        <operations>
+          <op id="fake1-start-timeout-20" interval="0s" name="start" timeout="20"/>
+          <op id="fake1-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+          <op id="fake1-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+        </operations>
+      </primitive>
+      <primitive class="ocf" id="fake2" provider="heartbeat" type="Dummy">
+        <operations>
+          <op id="fake2-start-timeout-20" interval="0s" name="start" timeout="20"/>
+          <op id="fake2-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+          <op id="fake2-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+        </operations>
+      </primitive>
+      <primitive class="ocf" id="fake3" provider="heartbeat" type="Dummy">
+        <operations>
+          <op id="fake3-start-timeout-20" interval="0s" name="start" timeout="20"/>
+          <op id="fake3-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+          <op id="fake3-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+        </operations>
+      </primitive>
+      <primitive class="ocf" id="fake4" provider="heartbeat" type="Dummy">
+        <operations>
+          <op id="fake4-start-timeout-20" interval="0s" name="start" timeout="20"/>
+          <op id="fake4-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+          <op id="fake4-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+        </operations>
+      </primitive>
+      <primitive class="ocf" id="fake5" provider="heartbeat" type="Dummy">
+        <operations>
+          <op id="fake5-start-timeout-20" interval="0s" name="start" timeout="20"/>
+          <op id="fake5-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+          <op id="fake5-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+        </operations>
+      </primitive>
+      <clone id="fake_clone">
+        <primitive class="ocf" id="fake" provider="heartbeat" type="Dummy">
+          <operations>
+            <op id="fake-start-timeout-20" interval="0s" name="start" timeout="20"/>
+            <op id="fake-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+            <op id="fake-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+          </operations>
+        </primitive>
+      </clone>
+      <group id="fake_group">
+        <primitive class="ocf" id="fake_fs" provider="heartbeat" type="Dummy">
+          <instance_attributes id="fake_fs-instance_attributes"/>
+          <operations>
+            <op id="fake_fs-start-timeout-20" interval="0s" name="start" timeout="20"/>
+            <op id="fake_fs-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+            <op id="fake_fs-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+          </operations>
+        </primitive>
+        <primitive class="ocf" id="container" provider="heartbeat" type="Dummy">
+          <instance_attributes id="container-instance_attributes"/>
+          <operations>
+            <op id="container-start-timeout-20" interval="0s" name="start" timeout="20"/>
+            <op id="container-stop-timeout-20" interval="0s" name="stop" timeout="20"/>
+            <op id="container-monitor-interval-10" interval="10" name="monitor" timeout="20"/>
+          </operations>
+          <meta_attributes id="container-meta_attributes">
+            <nvpair id="container-meta_attributes-remote-node" name="remote-node" value="c7auto4"/>
+          </meta_attributes>
+        </primitive>
+      </group>
+    </resources>
+    <constraints/>
+  </configuration>
+  <status>
+    <node_state id="1" uname="c7auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+      <lrm id="1">
+        <lrm_resources>
+          <lrm_resource id="shooter" type="fence_phd_kvm" class="stonith">
+            <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="11:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:0;11:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto1" call-id="13" rc-code="0" op-status="0" interval="0" last-run="1434988458" last-rc-change="1434988458" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="10:4:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:0;10:4:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto1" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1434988250" exec-time="5" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+          <lrm_resource id="container" type="Dummy" class="ocf" provider="heartbeat">
+            <lrm_rsc_op id="container_last_0" operation_key="container_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="12:6:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:0;12:6:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto1" call-id="18" rc-code="0" op-status="0" interval="0" last-run="1434988517" last-rc-change="1434988517" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" fake " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="container_monitor_10000" operation_key="container_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="15:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:0;15:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto1" call-id="15" rc-code="0" op-status="0" interval="10000" last-rc-change="1434988459" exec-time="7" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+        </lrm_resources>
+      </lrm>
+      <transient_attributes id="1">
+        <instance_attributes id="status-1">
+          <nvpair id="status-1-shutdown" name="shutdown" value="0"/>
+          <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/>
+        </instance_attributes>
+      </transient_attributes>
+    </node_state>
+    <node_state id="2" uname="c7auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+      <lrm id="2">
+        <lrm_resources>
+          <lrm_resource id="shooter" type="fence_phd_kvm" class="stonith">
+            <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="12:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:0;12:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto2" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1434988459" last-rc-change="1434988459" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+            <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="13:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:0;13:5:0:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto2" call-id="11" rc-code="0" op-status="0" interval="60000" last-rc-change="1434988460" exec-time="6" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/>
+          </lrm_resource>
+          <lrm_resource id="container" type="Dummy" class="ocf" provider="heartbeat">
+            <lrm_rsc_op id="container_last_0" operation_key="container_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="8:5:7:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:7;8:5:7:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto2" call-id="9" rc-code="7" op-status="0" interval="0" last-run="1434988459" last-rc-change="1434988459" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" fake " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+          </lrm_resource>
+        </lrm_resources>
+      </lrm>
+      <transient_attributes id="2">
+        <instance_attributes id="status-2">
+          <nvpair id="status-2-shutdown" name="shutdown" value="0"/>
+          <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/>
+        </instance_attributes>
+      </transient_attributes>
+    </node_state>
+    <node_state id="3" uname="c7auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member">
+      <lrm id="3">
+        <lrm_resources>
+          <lrm_resource id="shooter" type="fence_phd_kvm" class="stonith">
+            <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="8:4:7:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:7;8:4:7:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto3" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1434988248" last-rc-change="1434988248" exec-time="996" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+          </lrm_resource>
+          <lrm_resource id="container" type="Dummy" class="ocf" provider="heartbeat">
+            <lrm_rsc_op id="container_last_0" operation_key="container_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.10" transition-key="10:5:7:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" transition-magic="0:7;10:5:7:cee9d25f-bc4b-4fff-99d9-a897f2ea8953" on_node="c7auto3" call-id="9" rc-code="7" op-status="0" interval="0" last-run="1434988458" last-rc-change="1434988458" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" fake " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/>
+          </lrm_resource>
+        </lrm_resources>
+      </lrm>
+      <transient_attributes id="3">
+        <instance_attributes id="status-3">
+          <nvpair id="status-3-shutdown" name="shutdown" value="0"/>
+          <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/>
+        </instance_attributes>
+      </transient_attributes>
+    </node_state>
+    <node_state remote_node="true" id="c7auto4" uname="c7auto4" crm-debug-origin="remote_node_init_status" node_fenced="0"/>
+  </status>
+</cib>
