diff --git a/include/crm/crm.h b/include/crm/crm.h
index 41279b0..37bc5ce 100644
--- a/include/crm/crm.h
+++ b/include/crm/crm.h
@@ -133,6 +133,7 @@ extern char *crm_system_name;
# define CRM_OP_REPROBE "probe_again"
# define CRM_OP_CLEAR_FAILCOUNT "clear_failcount"
# define CRM_OP_RELAXED_SET "one-or-more"
+# define CRM_OP_RELAXED_CLONE "clone-one-or-more"
# define CRM_OP_RM_NODE_CACHE "rm_node_cache"
# define CRMD_JOINSTATE_DOWN "down"
diff --git a/pengine/constraints.c b/pengine/constraints.c
index a2ce9c4..7054a8e 100644
--- a/pengine/constraints.c
+++ b/pengine/constraints.c
@@ -255,6 +255,7 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set)
resource_t *rsc_then = NULL;
resource_t *rsc_first = NULL;
gboolean invert_bool = TRUE;
+ gboolean require_all = TRUE;
enum pe_order_kind kind = pe_order_kind_mandatory;
enum pe_ordering cons_weight = pe_order_optional;
@@ -264,6 +265,7 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set)
const char *action_first = NULL;
const char *instance_then = NULL;
const char *instance_first = NULL;
+ const char *require_all_s = NULL;
const char *id = crm_element_value(xml_obj, XML_ATTR_ID);
const char *invert = crm_element_value(xml_obj, XML_CONS_ATTR_SYMMETRICAL);
@@ -343,6 +345,14 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set)
}
}
+ require_all_s = crm_element_value(xml_obj, "require-all");
+ if (require_all_s
+ && crm_is_true(require_all_s) == FALSE
+ && rsc_first->variant >= pe_clone) {
+
+ require_all = FALSE;
+ }
+
cons_weight = pe_order_optional;
kind = get_ordering_type(xml_obj);
@@ -356,7 +366,29 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set)
} else {
cons_weight |= get_flags(id, kind, action_first, action_then, FALSE);
}
- order_id = new_rsc_order(rsc_first, action_first, rsc_then, action_then, cons_weight, data_set);
+
+ if (require_all == FALSE) {
+ GListPtr rIter = NULL;
+ char *task = crm_concat(CRM_OP_RELAXED_CLONE, id, ':');
+ action_t *unordered_action = get_pseudo_op(task, data_set);
+ free(task);
+
+ update_action_flags(unordered_action, pe_action_requires_any);
+
+ for (rIter = rsc_first->children; id && rIter; rIter = rIter->next) {
+ resource_t *child = rIter->data;
+
+ custom_action_order(child, generate_op_key(child->id, action_first, 0), NULL,
+ NULL, NULL, unordered_action,
+ pe_order_one_or_more | pe_order_implies_then_printed, data_set);
+ }
+
+ order_id = custom_action_order(NULL, NULL, unordered_action,
+ rsc_then, generate_op_key(rsc_then->id, action_then, 0), NULL,
+ cons_weight | pe_order_runnable_left, data_set);
+ } else {
+ order_id = new_rsc_order(rsc_first, action_first, rsc_then, action_then, cons_weight, data_set);
+ }
pe_rsc_trace(rsc_first, "order-%d (%s): %s_%s before %s_%s flags=0x%.6x",
order_id, id, rsc_first->id, action_first, rsc_then->id, action_then, cons_weight);
@@ -387,6 +419,7 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set)
}
cons_weight |= get_flags(id, kind, action_first, action_then, TRUE);
+
order_id = new_rsc_order(rsc_then, action_then, rsc_first, action_first, cons_weight, data_set);
pe_rsc_trace(rsc_then, "order-%d (%s): %s_%s before %s_%s flags=0x%.6x",
diff --git a/pengine/regression.sh b/pengine/regression.sh
index 3a244d7..c2bc7fb 100755
--- a/pengine/regression.sh
+++ b/pengine/regression.sh
@@ -126,6 +126,16 @@ do_test one-or-more-5 "Start A and F even though C and D are stopped"
do_test one-or-more-6 "Leave A running even though B is stopped"
do_test one-or-more-7 "Leave A running even though C is stopped"
do_test bug-5140-require-all-false "Allow basegrp:0 to stop"
+do_test clone-require-all-1 "clone B starts node 3 and 4"
+do_test clone-require-all-2 "clone B remains stopped everywhere"
+do_test clone-require-all-3 "clone B stops everywhere because A stops everywhere"
+do_test clone-require-all-4 "clone B remains on node 3 and 4 with only one instance of A remaining."
+do_test clone-require-all-5 "clone B starts on node 1 3 and 4"
+do_test clone-require-all-6 "clone B remains active after shutting down instances of A"
+do_test clone-require-all-7 "clone A and B both start at the same time. all instances of A start before B."
+do_test clone-require-all-no-interleave-1 "C starts everywhere after A and B"
+do_test clone-require-all-no-interleave-2 "C starts on nodes 1, 2, and 4 with only one active instance of B"
+do_test clone-require-all-no-interleave-3 "C remains active when instance of B is stopped on one node and started on another."
echo ""
do_test order1 "Order start 1 "
diff --git a/pengine/test10/clone-require-all-1.dot b/pengine/test10/clone-require-all-1.dot
new file mode 100644
index 0000000..9856969
--- /dev/null
+++ b/pengine/test10/clone-require-all-1.dot
@@ -0,0 +1,15 @@
+ digraph "g" {
+"B-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = bold]
+"B-clone_start_0" -> "B:1_start_0 rhel7-auto4" [ style = bold]
+"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold]
+"B-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"B:1_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B:1_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold]
+"B:1_start_0 rhel7-auto4" -> "B:1_monitor_10000 rhel7-auto4" [ style = bold]
+"B:1_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold]
+"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold]
+"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/clone-require-all-1.exp b/pengine/test10/clone-require-all-1.exp
new file mode 100644
index 0000000..c2d1abd
--- /dev/null
+++ b/pengine/test10/clone-require-all-1.exp
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-1.scores b/pengine/test10/clone-require-all-1.scores
new file mode 100644
index 0000000..fe3ce21
--- /dev/null
+++ b/pengine/test10/clone-require-all-1.scores
@@ -0,0 +1,77 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: 0
+clone_color: A-clone allocation score on rhel7-auto2: 0
+clone_color: A-clone allocation score on rhel7-auto3: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto4: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto1: 1
+clone_color: A:0 allocation score on rhel7-auto2: 0
+clone_color: A:0 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto1: 0
+clone_color: A:1 allocation score on rhel7-auto2: 1
+clone_color: A:1 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto1: 0
+clone_color: A:2 allocation score on rhel7-auto2: 0
+clone_color: A:2 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto1: 0
+clone_color: A:3 allocation score on rhel7-auto2: 0
+clone_color: A:3 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto4: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: 1
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: -INFINITY
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: 0
+native_color: A:1 allocation score on rhel7-auto2: 1
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 0
+native_color: B:0 allocation score on rhel7-auto4: 0
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: -INFINITY
+native_color: B:1 allocation score on rhel7-auto4: 0
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-1.summary b/pengine/test10/clone-require-all-1.summary
new file mode 100644
index 0000000..2cbb97d
--- /dev/null
+++ b/pengine/test10/clone-require-all-1.summary
@@ -0,0 +1,34 @@
+
+Current cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 ]
+ Stopped: [ rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+Transition Summary:
+ * Start B:0 (rhel7-auto3)
+ * Start B:1 (rhel7-auto4)
+
+Executing cluster transition:
+ * Pseudo action: B-clone_start_0
+ * Resource action: B start on rhel7-auto3
+ * Resource action: B start on rhel7-auto4
+ * Pseudo action: B-clone_running_0
+ * Resource action: B monitor=10000 on rhel7-auto3
+ * Resource action: B monitor=10000 on rhel7-auto4
+
+Revised cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 ]
+ Stopped: [ rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 ]
+
diff --git a/pengine/test10/clone-require-all-1.xml b/pengine/test10/clone-require-all-1.xml
new file mode 100644
index 0000000..724fac1
--- /dev/null
+++ b/pengine/test10/clone-require-all-1.xml
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-2.dot b/pengine/test10/clone-require-all-2.dot
new file mode 100644
index 0000000..4f830ce
--- /dev/null
+++ b/pengine/test10/clone-require-all-2.dot
@@ -0,0 +1,42 @@
+ digraph "g" {
+"A-clone_running_0" [ style=dashed color="red" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = dashed]
+"A-clone_start_0" -> "A_start_0 " [ style = dashed]
+"A-clone_start_0" [ style=dashed color="red" fontcolor="orange"]
+"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto2" [ style = bold]
+"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stopped_0" -> "A-clone_start_0" [ style = dashed]
+"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"A_start_0 " -> "A-clone_running_0" [ style = dashed]
+"A_start_0 " [ style=dashed color="red" fontcolor="black"]
+"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto1" -> "A_start_0 " [ style = dashed]
+"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"A_stop_0 rhel7-auto2" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto2" -> "A_start_0 " [ style = dashed]
+"A_stop_0 rhel7-auto2" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"B-clone_running_0" [ style=dashed color="red" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = dashed]
+"B-clone_start_0" -> "B:1_start_0 rhel7-auto3" [ style = dashed]
+"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = dashed]
+"B-clone_start_0" [ style=dashed color="red" fontcolor="orange"]
+"B:1_monitor_10000 rhel7-auto3" [ style=dashed color="red" fontcolor="black"]
+"B:1_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = dashed]
+"B:1_start_0 rhel7-auto3" -> "B:1_monitor_10000 rhel7-auto3" [ style = dashed]
+"B:1_start_0 rhel7-auto3" [ style=dashed color="red" fontcolor="black"]
+"B_monitor_10000 rhel7-auto4" [ style=dashed color="red" fontcolor="black"]
+"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = dashed]
+"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = dashed]
+"B_start_0 rhel7-auto4" [ style=dashed color="red" fontcolor="black"]
+"all_stopped" [ style=bold color="green" fontcolor="orange"]
+"shooter_monitor_60000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"shooter_start_0 rhel7-auto3" -> "shooter_monitor_60000 rhel7-auto3" [ style = bold]
+"shooter_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"shooter_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold]
+"shooter_stop_0 rhel7-auto1" -> "shooter_start_0 rhel7-auto3" [ style = bold]
+"shooter_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/clone-require-all-2.exp b/pengine/test10/clone-require-all-2.exp
new file mode 100644
index 0000000..a5ad63f
--- /dev/null
+++ b/pengine/test10/clone-require-all-2.exp
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-2.scores b/pengine/test10/clone-require-all-2.scores
new file mode 100644
index 0000000..cdbf611
--- /dev/null
+++ b/pengine/test10/clone-require-all-2.scores
@@ -0,0 +1,77 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: 0
+clone_color: A-clone allocation score on rhel7-auto2: 0
+clone_color: A-clone allocation score on rhel7-auto3: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto4: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto1: 1
+clone_color: A:0 allocation score on rhel7-auto2: 0
+clone_color: A:0 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto1: 0
+clone_color: A:1 allocation score on rhel7-auto2: 1
+clone_color: A:1 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto1: 0
+clone_color: A:2 allocation score on rhel7-auto2: 0
+clone_color: A:2 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto1: 0
+clone_color: A:3 allocation score on rhel7-auto2: 0
+clone_color: A:3 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto4: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: -INFINITY
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: -INFINITY
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: -INFINITY
+native_color: A:1 allocation score on rhel7-auto2: -INFINITY
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 0
+native_color: B:0 allocation score on rhel7-auto4: 0
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: 0
+native_color: B:1 allocation score on rhel7-auto4: -INFINITY
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-2.summary b/pengine/test10/clone-require-all-2.summary
new file mode 100644
index 0000000..d4b2519
--- /dev/null
+++ b/pengine/test10/clone-require-all-2.summary
@@ -0,0 +1,41 @@
+
+Current cluster status:
+Node rhel7-auto1 (1): standby
+Node rhel7-auto2 (2): standby
+Online: [ rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 ]
+ Stopped: [ rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+Transition Summary:
+ * Move shooter (Started rhel7-auto1 -> rhel7-auto3)
+ * Stop A:0 (rhel7-auto1)
+ * Stop A:1 (rhel7-auto2)
+ * Start B:0 (rhel7-auto4 - blocked)
+ * Start B:1 (rhel7-auto3 - blocked)
+
+Executing cluster transition:
+ * Resource action: shooter stop on rhel7-auto1
+ * Pseudo action: A-clone_stop_0
+ * Resource action: shooter start on rhel7-auto3
+ * Resource action: A stop on rhel7-auto1
+ * Resource action: A stop on rhel7-auto2
+ * Pseudo action: A-clone_stopped_0
+ * Pseudo action: all_stopped
+ * Resource action: shooter monitor=60000 on rhel7-auto3
+
+Revised cluster status:
+Node rhel7-auto1 (1): standby
+Node rhel7-auto2 (2): standby
+Online: [ rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto3
+ Clone Set: A-clone [A]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
diff --git a/pengine/test10/clone-require-all-2.xml b/pengine/test10/clone-require-all-2.xml
new file mode 100644
index 0000000..1fd9576
--- /dev/null
+++ b/pengine/test10/clone-require-all-2.xml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-3.dot b/pengine/test10/clone-require-all-3.dot
new file mode 100644
index 0000000..d93693d
--- /dev/null
+++ b/pengine/test10/clone-require-all-3.dot
@@ -0,0 +1,57 @@
+ digraph "g" {
+"A-clone_running_0" [ style=dashed color="red" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = dashed]
+"A-clone_start_0" -> "A_start_0 " [ style = dashed]
+"A-clone_start_0" [ style=dashed color="red" fontcolor="orange"]
+"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto2" [ style = bold]
+"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stopped_0" -> "A-clone_start_0" [ style = dashed]
+"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"A_start_0 " -> "A-clone_running_0" [ style = dashed]
+"A_start_0 " [ style=dashed color="red" fontcolor="black"]
+"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto1" -> "A_start_0 " [ style = dashed]
+"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"A_stop_0 rhel7-auto2" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto2" -> "A_start_0 " [ style = dashed]
+"A_stop_0 rhel7-auto2" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"B-clone_running_0" [ style=dashed color="red" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = dashed]
+"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = dashed]
+"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = dashed]
+"B-clone_start_0" [ style=dashed color="red" fontcolor="orange"]
+"B-clone_stop_0" -> "B-clone_stopped_0" [ style = bold]
+"B-clone_stop_0" -> "B_stop_0 rhel7-auto3" [ style = bold]
+"B-clone_stop_0" -> "B_stop_0 rhel7-auto4" [ style = bold]
+"B-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_stopped_0" -> "A-clone_stop_0" [ style = bold]
+"B-clone_stopped_0" -> "B-clone_start_0" [ style = dashed]
+"B-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"B_monitor_10000 rhel7-auto3" [ style=dashed color="red" fontcolor="black"]
+"B_monitor_10000 rhel7-auto4" [ style=dashed color="red" fontcolor="black"]
+"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = dashed]
+"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = dashed]
+"B_start_0 rhel7-auto3" [ style=dashed color="red" fontcolor="black"]
+"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = dashed]
+"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = dashed]
+"B_start_0 rhel7-auto4" [ style=dashed color="red" fontcolor="black"]
+"B_stop_0 rhel7-auto3" -> "B-clone_stopped_0" [ style = bold]
+"B_stop_0 rhel7-auto3" -> "B_start_0 rhel7-auto3" [ style = dashed]
+"B_stop_0 rhel7-auto3" -> "all_stopped" [ style = bold]
+"B_stop_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B_stop_0 rhel7-auto4" -> "B-clone_stopped_0" [ style = bold]
+"B_stop_0 rhel7-auto4" -> "B_start_0 rhel7-auto4" [ style = dashed]
+"B_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold]
+"B_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"all_stopped" [ style=bold color="green" fontcolor="orange"]
+"shooter_monitor_60000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"shooter_start_0 rhel7-auto3" -> "shooter_monitor_60000 rhel7-auto3" [ style = bold]
+"shooter_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"shooter_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold]
+"shooter_stop_0 rhel7-auto1" -> "shooter_start_0 rhel7-auto3" [ style = bold]
+"shooter_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/clone-require-all-3.exp b/pengine/test10/clone-require-all-3.exp
new file mode 100644
index 0000000..02eea7a
--- /dev/null
+++ b/pengine/test10/clone-require-all-3.exp
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-3.scores b/pengine/test10/clone-require-all-3.scores
new file mode 100644
index 0000000..814a972
--- /dev/null
+++ b/pengine/test10/clone-require-all-3.scores
@@ -0,0 +1,77 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: 0
+clone_color: A-clone allocation score on rhel7-auto2: 0
+clone_color: A-clone allocation score on rhel7-auto3: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto4: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto1: 1
+clone_color: A:0 allocation score on rhel7-auto2: 0
+clone_color: A:0 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto1: 0
+clone_color: A:1 allocation score on rhel7-auto2: 1
+clone_color: A:1 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto1: 0
+clone_color: A:2 allocation score on rhel7-auto2: 0
+clone_color: A:2 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto1: 0
+clone_color: A:3 allocation score on rhel7-auto2: 0
+clone_color: A:3 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto4: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto3: 1
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 1
+clone_color: B:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: -INFINITY
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: -INFINITY
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: -INFINITY
+native_color: A:1 allocation score on rhel7-auto2: -INFINITY
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 1
+native_color: B:0 allocation score on rhel7-auto4: -INFINITY
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: 0
+native_color: B:1 allocation score on rhel7-auto4: 1
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-3.summary b/pengine/test10/clone-require-all-3.summary
new file mode 100644
index 0000000..68191b1
--- /dev/null
+++ b/pengine/test10/clone-require-all-3.summary
@@ -0,0 +1,46 @@
+
+Current cluster status:
+Node rhel7-auto1 (1): standby
+Node rhel7-auto2 (2): standby
+Online: [ rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 ]
+ Stopped: [ rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 ]
+
+Transition Summary:
+ * Move shooter (Started rhel7-auto1 -> rhel7-auto3)
+ * Stop A:0 (rhel7-auto1)
+ * Stop A:1 (rhel7-auto2)
+ * Stop B:0 (Started rhel7-auto3)
+ * Stop B:1 (Started rhel7-auto4)
+
+Executing cluster transition:
+ * Resource action: shooter stop on rhel7-auto1
+ * Pseudo action: B-clone_stop_0
+ * Resource action: shooter start on rhel7-auto3
+ * Resource action: B stop on rhel7-auto3
+ * Resource action: B stop on rhel7-auto4
+ * Pseudo action: B-clone_stopped_0
+ * Resource action: shooter monitor=60000 on rhel7-auto3
+ * Pseudo action: A-clone_stop_0
+ * Resource action: A stop on rhel7-auto1
+ * Resource action: A stop on rhel7-auto2
+ * Pseudo action: A-clone_stopped_0
+ * Pseudo action: all_stopped
+
+Revised cluster status:
+Node rhel7-auto1 (1): standby
+Node rhel7-auto2 (2): standby
+Online: [ rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto3
+ Clone Set: A-clone [A]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
diff --git a/pengine/test10/clone-require-all-3.xml b/pengine/test10/clone-require-all-3.xml
new file mode 100644
index 0000000..b04f0e2
--- /dev/null
+++ b/pengine/test10/clone-require-all-3.xml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-4.dot b/pengine/test10/clone-require-all-4.dot
new file mode 100644
index 0000000..4b9521f
--- /dev/null
+++ b/pengine/test10/clone-require-all-4.dot
@@ -0,0 +1,24 @@
+ digraph "g" {
+"A-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = bold]
+"A-clone_start_0" -> "A_start_0 " [ style = dashed]
+"A-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold]
+"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stopped_0" -> "A-clone_start_0" [ style = bold]
+"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"A_start_0 " -> "A-clone_running_0" [ style = dashed]
+"A_start_0 " [ style=dashed color="red" fontcolor="black"]
+"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto1" -> "A_start_0 " [ style = dashed]
+"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"all_stopped" [ style=bold color="green" fontcolor="orange"]
+"shooter_monitor_60000 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"shooter_start_0 rhel7-auto2" -> "shooter_monitor_60000 rhel7-auto2" [ style = bold]
+"shooter_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"shooter_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold]
+"shooter_stop_0 rhel7-auto1" -> "shooter_start_0 rhel7-auto2" [ style = bold]
+"shooter_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+}
diff --git a/pengine/test10/clone-require-all-4.exp b/pengine/test10/clone-require-all-4.exp
new file mode 100644
index 0000000..53c1529
--- /dev/null
+++ b/pengine/test10/clone-require-all-4.exp
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-4.scores b/pengine/test10/clone-require-all-4.scores
new file mode 100644
index 0000000..c602a1d
--- /dev/null
+++ b/pengine/test10/clone-require-all-4.scores
@@ -0,0 +1,77 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: 0
+clone_color: A-clone allocation score on rhel7-auto2: 0
+clone_color: A-clone allocation score on rhel7-auto3: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto4: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto1: 1
+clone_color: A:0 allocation score on rhel7-auto2: 0
+clone_color: A:0 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto1: 0
+clone_color: A:1 allocation score on rhel7-auto2: 1
+clone_color: A:1 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto1: 0
+clone_color: A:2 allocation score on rhel7-auto2: 0
+clone_color: A:2 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto1: 0
+clone_color: A:3 allocation score on rhel7-auto2: 0
+clone_color: A:3 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto4: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto3: 1
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 1
+clone_color: B:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: -INFINITY
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: -INFINITY
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: -INFINITY
+native_color: A:1 allocation score on rhel7-auto2: 1
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 1
+native_color: B:0 allocation score on rhel7-auto4: 0
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: -INFINITY
+native_color: B:1 allocation score on rhel7-auto4: 1
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-4.summary b/pengine/test10/clone-require-all-4.summary
new file mode 100644
index 0000000..49ae3bd
--- /dev/null
+++ b/pengine/test10/clone-require-all-4.summary
@@ -0,0 +1,40 @@
+
+Current cluster status:
+Node rhel7-auto1 (1): standby
+Online: [ rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 ]
+ Stopped: [ rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 ]
+
+Transition Summary:
+ * Move shooter (Started rhel7-auto1 -> rhel7-auto2)
+ * Stop A:0 (rhel7-auto1)
+
+Executing cluster transition:
+ * Resource action: shooter stop on rhel7-auto1
+ * Pseudo action: A-clone_stop_0
+ * Resource action: shooter start on rhel7-auto2
+ * Resource action: A stop on rhel7-auto1
+ * Pseudo action: A-clone_stopped_0
+ * Pseudo action: A-clone_start_0
+ * Pseudo action: all_stopped
+ * Resource action: shooter monitor=60000 on rhel7-auto2
+ * Pseudo action: A-clone_running_0
+
+Revised cluster status:
+Node rhel7-auto1 (1): standby
+Online: [ rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto2
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto2 ]
+ Stopped: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 ]
+
diff --git a/pengine/test10/clone-require-all-4.xml b/pengine/test10/clone-require-all-4.xml
new file mode 100644
index 0000000..8bfd27f
--- /dev/null
+++ b/pengine/test10/clone-require-all-4.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-5.dot b/pengine/test10/clone-require-all-5.dot
new file mode 100644
index 0000000..ce5a593
--- /dev/null
+++ b/pengine/test10/clone-require-all-5.dot
@@ -0,0 +1,31 @@
+ digraph "g" {
+"A-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = bold]
+"A-clone_start_0" -> "A_start_0 rhel7-auto3" [ style = bold]
+"A-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"A_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"A_start_0 rhel7-auto3" -> "A-clone_running_0" [ style = bold]
+"A_start_0 rhel7-auto3" -> "A_monitor_10000 rhel7-auto3" [ style = bold]
+"A_start_0 rhel7-auto3" -> "clone-one-or-more:order-A-clone-B-clone-mandatory" [ style = bold]
+"A_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = bold]
+"B-clone_start_0" -> "B:1_start_0 rhel7-auto3" [ style = bold]
+"B-clone_start_0" -> "B:2_start_0 rhel7-auto1" [ style = bold]
+"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = bold]
+"B-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"B:1_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B:1_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold]
+"B:1_start_0 rhel7-auto3" -> "B:1_monitor_10000 rhel7-auto3" [ style = bold]
+"B:1_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B:2_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"B:2_start_0 rhel7-auto1" -> "B-clone_running_0" [ style = bold]
+"B:2_start_0 rhel7-auto1" -> "B:2_monitor_10000 rhel7-auto1" [ style = bold]
+"B:2_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"B_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold]
+"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = bold]
+"B_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"clone-one-or-more:order-A-clone-B-clone-mandatory" -> "B-clone_start_0" [ style = bold]
+"clone-one-or-more:order-A-clone-B-clone-mandatory" [ style=bold color="green" fontcolor="orange"]
+}
diff --git a/pengine/test10/clone-require-all-5.exp b/pengine/test10/clone-require-all-5.exp
new file mode 100644
index 0000000..abb4d25
--- /dev/null
+++ b/pengine/test10/clone-require-all-5.exp
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-5.scores b/pengine/test10/clone-require-all-5.scores
new file mode 100644
index 0000000..cca6739
--- /dev/null
+++ b/pengine/test10/clone-require-all-5.scores
@@ -0,0 +1,77 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: 0
+clone_color: A-clone allocation score on rhel7-auto2: 0
+clone_color: A-clone allocation score on rhel7-auto3: 0
+clone_color: A-clone allocation score on rhel7-auto4: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto1: 1
+clone_color: A:0 allocation score on rhel7-auto2: 0
+clone_color: A:0 allocation score on rhel7-auto3: 0
+clone_color: A:0 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto1: 0
+clone_color: A:1 allocation score on rhel7-auto2: 1
+clone_color: A:1 allocation score on rhel7-auto3: 0
+clone_color: A:1 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto1: 0
+clone_color: A:2 allocation score on rhel7-auto2: 0
+clone_color: A:2 allocation score on rhel7-auto3: 0
+clone_color: A:2 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto1: 0
+clone_color: A:3 allocation score on rhel7-auto2: 0
+clone_color: A:3 allocation score on rhel7-auto3: 0
+clone_color: A:3 allocation score on rhel7-auto4: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto1: 0
+clone_color: B-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: 0
+clone_color: B:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: 0
+clone_color: B:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: 0
+clone_color: B:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: 0
+clone_color: B:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: 1
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: 0
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: 0
+native_color: A:1 allocation score on rhel7-auto2: 1
+native_color: A:1 allocation score on rhel7-auto3: 0
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: 0
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: 0
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 0
+native_color: B:0 allocation score on rhel7-auto4: 0
+native_color: B:1 allocation score on rhel7-auto1: 0
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: 0
+native_color: B:1 allocation score on rhel7-auto4: -INFINITY
+native_color: B:2 allocation score on rhel7-auto1: 0
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-5.summary b/pengine/test10/clone-require-all-5.summary
new file mode 100644
index 0000000..2820093
--- /dev/null
+++ b/pengine/test10/clone-require-all-5.summary
@@ -0,0 +1,43 @@
+
+Current cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 ]
+ Stopped: [ rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+Transition Summary:
+ * Start A:2 (rhel7-auto3)
+ * Start B:0 (rhel7-auto4)
+ * Start B:1 (rhel7-auto3)
+ * Start B:2 (rhel7-auto1)
+
+Executing cluster transition:
+ * Pseudo action: A-clone_start_0
+ * Resource action: A start on rhel7-auto3
+ * Pseudo action: A-clone_running_0
+ * Pseudo action: clone-one-or-more:order-A-clone-B-clone-mandatory
+ * Resource action: A monitor=10000 on rhel7-auto3
+ * Pseudo action: B-clone_start_0
+ * Resource action: B start on rhel7-auto4
+ * Resource action: B start on rhel7-auto3
+ * Resource action: B start on rhel7-auto1
+ * Pseudo action: B-clone_running_0
+ * Resource action: B monitor=10000 on rhel7-auto4
+ * Resource action: B monitor=10000 on rhel7-auto3
+ * Resource action: B monitor=10000 on rhel7-auto1
+
+Revised cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Stopped: [ rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto2 ]
+
diff --git a/pengine/test10/clone-require-all-5.xml b/pengine/test10/clone-require-all-5.xml
new file mode 100644
index 0000000..1079dae
--- /dev/null
+++ b/pengine/test10/clone-require-all-5.xml
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-6.dot b/pengine/test10/clone-require-all-6.dot
new file mode 100644
index 0000000..3ee5c89
--- /dev/null
+++ b/pengine/test10/clone-require-all-6.dot
@@ -0,0 +1,23 @@
+ digraph "g" {
+"A-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = bold]
+"A-clone_start_0" -> "A_start_0 " [ style = dashed]
+"A-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto3" [ style = bold]
+"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stopped_0" -> "A-clone_start_0" [ style = bold]
+"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"A_start_0 " -> "A-clone_running_0" [ style = dashed]
+"A_start_0 " [ style=dashed color="red" fontcolor="black"]
+"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto1" -> "A_start_0 " [ style = dashed]
+"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"A_stop_0 rhel7-auto3" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto3" -> "A_start_0 " [ style = dashed]
+"A_stop_0 rhel7-auto3" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"all_stopped" [ style=bold color="green" fontcolor="orange"]
+}
diff --git a/pengine/test10/clone-require-all-6.exp b/pengine/test10/clone-require-all-6.exp
new file mode 100644
index 0000000..8cc4c57
--- /dev/null
+++ b/pengine/test10/clone-require-all-6.exp
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-6.scores b/pengine/test10/clone-require-all-6.scores
new file mode 100644
index 0000000..4e8ee5a
--- /dev/null
+++ b/pengine/test10/clone-require-all-6.scores
@@ -0,0 +1,77 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto2: 0
+clone_color: A-clone allocation score on rhel7-auto3: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto4: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto2: 0
+clone_color: A:0 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto2: 1
+clone_color: A:1 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto2: 0
+clone_color: A:2 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto2: 0
+clone_color: A:3 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto4: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto1: 0
+clone_color: B-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: 1
+clone_color: B:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: 0
+clone_color: B:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto3: 1
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: 0
+clone_color: B:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 1
+clone_color: B:3 allocation score on rhel7-auto1: 0
+clone_color: B:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: -INFINITY
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: -INFINITY
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: -INFINITY
+native_color: A:1 allocation score on rhel7-auto2: 1
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: 1
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: -INFINITY
+native_color: B:0 allocation score on rhel7-auto4: -INFINITY
+native_color: B:1 allocation score on rhel7-auto1: 0
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: 1
+native_color: B:1 allocation score on rhel7-auto4: 0
+native_color: B:2 allocation score on rhel7-auto1: 0
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: 1
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-6.summary b/pengine/test10/clone-require-all-6.summary
new file mode 100644
index 0000000..6561ea3
--- /dev/null
+++ b/pengine/test10/clone-require-all-6.summary
@@ -0,0 +1,36 @@
+
+Current cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Stopped: [ rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto2 ]
+
+Transition Summary:
+ * Stop A:0 (rhel7-auto1)
+ * Stop A:2 (rhel7-auto3)
+
+Executing cluster transition:
+ * Pseudo action: A-clone_stop_0
+ * Resource action: A stop on rhel7-auto1
+ * Resource action: A stop on rhel7-auto3
+ * Pseudo action: A-clone_stopped_0
+ * Pseudo action: A-clone_start_0
+ * Pseudo action: all_stopped
+ * Pseudo action: A-clone_running_0
+
+Revised cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto2 ]
+ Stopped: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto2 ]
+
diff --git a/pengine/test10/clone-require-all-6.xml b/pengine/test10/clone-require-all-6.xml
new file mode 100644
index 0000000..5222b33
--- /dev/null
+++ b/pengine/test10/clone-require-all-6.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-7.dot b/pengine/test10/clone-require-all-7.dot
new file mode 100644
index 0000000..baa87a2
--- /dev/null
+++ b/pengine/test10/clone-require-all-7.dot
@@ -0,0 +1,51 @@
+ digraph "g" {
+"A-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = bold]
+"A-clone_start_0" -> "A:0_start_0 rhel7-auto2" [ style = bold]
+"A-clone_start_0" -> "A:1_start_0 rhel7-auto1" [ style = bold]
+"A-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"A:0_monitor_0 rhel7-auto2" -> "probe_complete rhel7-auto2" [ style = bold]
+"A:0_monitor_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"A:0_monitor_0 rhel7-auto3" -> "probe_complete rhel7-auto3" [ style = bold]
+"A:0_monitor_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"A:0_monitor_0 rhel7-auto4" -> "probe_complete rhel7-auto4" [ style = bold]
+"A:0_monitor_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"A:0_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"A:0_start_0 rhel7-auto2" -> "A-clone_running_0" [ style = bold]
+"A:0_start_0 rhel7-auto2" -> "A:0_monitor_10000 rhel7-auto2" [ style = bold]
+"A:0_start_0 rhel7-auto2" -> "clone-one-or-more:order-A-clone-B-clone-mandatory" [ style = bold]
+"A:0_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"A:1_monitor_0 rhel7-auto1" -> "probe_complete rhel7-auto1" [ style = bold]
+"A:1_monitor_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"A:1_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"A:1_start_0 rhel7-auto1" -> "A-clone_running_0" [ style = bold]
+"A:1_start_0 rhel7-auto1" -> "A:1_monitor_10000 rhel7-auto1" [ style = bold]
+"A:1_start_0 rhel7-auto1" -> "clone-one-or-more:order-A-clone-B-clone-mandatory" [ style = bold]
+"A:1_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"B-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = bold]
+"B-clone_start_0" -> "B:1_start_0 rhel7-auto4" [ style = bold]
+"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold]
+"B-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"B:1_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B:1_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold]
+"B:1_start_0 rhel7-auto4" -> "B:1_monitor_10000 rhel7-auto4" [ style = bold]
+"B:1_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold]
+"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold]
+"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"clone-one-or-more:order-A-clone-B-clone-mandatory" -> "B-clone_start_0" [ style = bold]
+"clone-one-or-more:order-A-clone-B-clone-mandatory" [ style=bold color="green" fontcolor="orange"]
+"probe_complete rhel7-auto1" -> "probe_complete" [ style = bold]
+"probe_complete rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"probe_complete rhel7-auto2" -> "probe_complete" [ style = bold]
+"probe_complete rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"probe_complete rhel7-auto3" -> "probe_complete" [ style = bold]
+"probe_complete rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"probe_complete rhel7-auto4" -> "probe_complete" [ style = bold]
+"probe_complete rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"probe_complete" -> "A:0_start_0 rhel7-auto2" [ style = bold]
+"probe_complete" -> "A:1_start_0 rhel7-auto1" [ style = bold]
+"probe_complete" [ style=bold color="green" fontcolor="orange"]
+}
diff --git a/pengine/test10/clone-require-all-7.exp b/pengine/test10/clone-require-all-7.exp
new file mode 100644
index 0000000..d37a82f
--- /dev/null
+++ b/pengine/test10/clone-require-all-7.exp
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-7.scores b/pengine/test10/clone-require-all-7.scores
new file mode 100644
index 0000000..8c61fd1
--- /dev/null
+++ b/pengine/test10/clone-require-all-7.scores
@@ -0,0 +1,77 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: 0
+clone_color: A-clone allocation score on rhel7-auto2: 0
+clone_color: A-clone allocation score on rhel7-auto3: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto4: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto1: 0
+clone_color: A:0 allocation score on rhel7-auto2: 0
+clone_color: A:0 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto1: 0
+clone_color: A:1 allocation score on rhel7-auto2: 0
+clone_color: A:1 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto1: 0
+clone_color: A:2 allocation score on rhel7-auto2: 0
+clone_color: A:2 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto4: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto1: 0
+clone_color: A:3 allocation score on rhel7-auto2: 0
+clone_color: A:3 allocation score on rhel7-auto3: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto4: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: 0
+native_color: A:0 allocation score on rhel7-auto2: 0
+native_color: A:0 allocation score on rhel7-auto3: -INFINITY
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: 0
+native_color: A:1 allocation score on rhel7-auto2: -INFINITY
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 0
+native_color: B:0 allocation score on rhel7-auto4: 0
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: -INFINITY
+native_color: B:1 allocation score on rhel7-auto4: 0
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-7.summary b/pengine/test10/clone-require-all-7.summary
new file mode 100644
index 0000000..411f738
--- /dev/null
+++ b/pengine/test10/clone-require-all-7.summary
@@ -0,0 +1,47 @@
+
+Current cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+Transition Summary:
+ * Start A:0 (rhel7-auto2)
+ * Start A:1 (rhel7-auto1)
+ * Start B:0 (rhel7-auto3)
+ * Start B:1 (rhel7-auto4)
+
+Executing cluster transition:
+ * Resource action: A:0 monitor on rhel7-auto4
+ * Resource action: A:0 monitor on rhel7-auto3
+ * Resource action: A:0 monitor on rhel7-auto2
+ * Resource action: A:1 monitor on rhel7-auto1
+ * Pseudo action: A-clone_start_0
+ * Pseudo action: probe_complete
+ * Resource action: A:0 start on rhel7-auto2
+ * Resource action: A:1 start on rhel7-auto1
+ * Pseudo action: A-clone_running_0
+ * Pseudo action: clone-one-or-more:order-A-clone-B-clone-mandatory
+ * Resource action: A:0 monitor=10000 on rhel7-auto2
+ * Resource action: A:1 monitor=10000 on rhel7-auto1
+ * Pseudo action: B-clone_start_0
+ * Resource action: B start on rhel7-auto3
+ * Resource action: B start on rhel7-auto4
+ * Pseudo action: B-clone_running_0
+ * Resource action: B monitor=10000 on rhel7-auto3
+ * Resource action: B monitor=10000 on rhel7-auto4
+
+Revised cluster status:
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto1 rhel7-auto2 ]
+ Stopped: [ rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto3 rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 ]
+
diff --git a/pengine/test10/clone-require-all-7.xml b/pengine/test10/clone-require-all-7.xml
new file mode 100644
index 0000000..6aea47b
--- /dev/null
+++ b/pengine/test10/clone-require-all-7.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-no-interleave-1.dot b/pengine/test10/clone-require-all-no-interleave-1.dot
new file mode 100644
index 0000000..d03703b
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-1.dot
@@ -0,0 +1,40 @@
+ digraph "g" {
+"A-clone_running_0" -> "B-clone_start_0" [ style = bold]
+"A-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = bold]
+"A-clone_start_0" -> "A_start_0 rhel7-auto3" [ style = bold]
+"A-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"A_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"A_start_0 rhel7-auto3" -> "A-clone_running_0" [ style = bold]
+"A_start_0 rhel7-auto3" -> "A_monitor_10000 rhel7-auto3" [ style = bold]
+"A_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = bold]
+"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold]
+"B-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold]
+"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold]
+"B_start_0 rhel7-auto3" -> "clone-one-or-more:order-B-clone-C-clone-mandatory" [ style = bold]
+"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"C-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"C-clone_start_0" -> "C-clone_running_0" [ style = bold]
+"C-clone_start_0" -> "C:1_start_0 rhel7-auto1" [ style = bold]
+"C-clone_start_0" -> "C:2_start_0 rhel7-auto3" [ style = bold]
+"C-clone_start_0" -> "C_start_0 rhel7-auto2" [ style = bold]
+"C-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"C:1_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"C:1_start_0 rhel7-auto1" -> "C-clone_running_0" [ style = bold]
+"C:1_start_0 rhel7-auto1" -> "C:1_monitor_10000 rhel7-auto1" [ style = bold]
+"C:1_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"C:2_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"C:2_start_0 rhel7-auto3" -> "C-clone_running_0" [ style = bold]
+"C:2_start_0 rhel7-auto3" -> "C:2_monitor_10000 rhel7-auto3" [ style = bold]
+"C:2_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"C_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"C_start_0 rhel7-auto2" -> "C-clone_running_0" [ style = bold]
+"C_start_0 rhel7-auto2" -> "C_monitor_10000 rhel7-auto2" [ style = bold]
+"C_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"clone-one-or-more:order-B-clone-C-clone-mandatory" -> "C-clone_start_0" [ style = bold]
+"clone-one-or-more:order-B-clone-C-clone-mandatory" [ style=bold color="green" fontcolor="orange"]
+}
diff --git a/pengine/test10/clone-require-all-no-interleave-1.exp b/pengine/test10/clone-require-all-no-interleave-1.exp
new file mode 100644
index 0000000..7048f51
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-1.exp
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-no-interleave-1.scores b/pengine/test10/clone-require-all-no-interleave-1.scores
new file mode 100644
index 0000000..f6d3232
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-1.scores
@@ -0,0 +1,113 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto3: 0
+clone_color: A-clone allocation score on rhel7-auto4: 0
+clone_color: A:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto3: 0
+clone_color: A:0 allocation score on rhel7-auto4: 0
+clone_color: A:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto3: 0
+clone_color: A:1 allocation score on rhel7-auto4: 0
+clone_color: A:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto3: 0
+clone_color: A:2 allocation score on rhel7-auto4: 0
+clone_color: A:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto3: 0
+clone_color: A:3 allocation score on rhel7-auto4: 0
+clone_color: B-clone allocation score on rhel7-auto1: 0
+clone_color: B-clone allocation score on rhel7-auto2: 0
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: 0
+clone_color: B:0 allocation score on rhel7-auto2: 0
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: 0
+clone_color: B:1 allocation score on rhel7-auto2: 0
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: 0
+clone_color: B:2 allocation score on rhel7-auto2: 0
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: 0
+clone_color: B:3 allocation score on rhel7-auto2: 0
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+clone_color: C-clone allocation score on rhel7-auto1: 0
+clone_color: C-clone allocation score on rhel7-auto2: 0
+clone_color: C-clone allocation score on rhel7-auto3: 0
+clone_color: C-clone allocation score on rhel7-auto4: 0
+clone_color: C:0 allocation score on rhel7-auto1: 0
+clone_color: C:0 allocation score on rhel7-auto2: 0
+clone_color: C:0 allocation score on rhel7-auto3: 0
+clone_color: C:0 allocation score on rhel7-auto4: 0
+clone_color: C:1 allocation score on rhel7-auto1: 0
+clone_color: C:1 allocation score on rhel7-auto2: 0
+clone_color: C:1 allocation score on rhel7-auto3: 0
+clone_color: C:1 allocation score on rhel7-auto4: 0
+clone_color: C:2 allocation score on rhel7-auto1: 0
+clone_color: C:2 allocation score on rhel7-auto2: 0
+clone_color: C:2 allocation score on rhel7-auto3: 0
+clone_color: C:2 allocation score on rhel7-auto4: 0
+clone_color: C:3 allocation score on rhel7-auto1: 0
+clone_color: C:3 allocation score on rhel7-auto2: 0
+clone_color: C:3 allocation score on rhel7-auto3: 0
+clone_color: C:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: -INFINITY
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: 0
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: -INFINITY
+native_color: A:1 allocation score on rhel7-auto2: -INFINITY
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 0
+native_color: B:0 allocation score on rhel7-auto4: -INFINITY
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: -INFINITY
+native_color: B:1 allocation score on rhel7-auto4: -INFINITY
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: C:0 allocation score on rhel7-auto1: 0
+native_color: C:0 allocation score on rhel7-auto2: 0
+native_color: C:0 allocation score on rhel7-auto3: 0
+native_color: C:0 allocation score on rhel7-auto4: -INFINITY
+native_color: C:1 allocation score on rhel7-auto1: 0
+native_color: C:1 allocation score on rhel7-auto2: -INFINITY
+native_color: C:1 allocation score on rhel7-auto3: 0
+native_color: C:1 allocation score on rhel7-auto4: -INFINITY
+native_color: C:2 allocation score on rhel7-auto1: -INFINITY
+native_color: C:2 allocation score on rhel7-auto2: -INFINITY
+native_color: C:2 allocation score on rhel7-auto3: 0
+native_color: C:2 allocation score on rhel7-auto4: -INFINITY
+native_color: C:3 allocation score on rhel7-auto1: -INFINITY
+native_color: C:3 allocation score on rhel7-auto2: -INFINITY
+native_color: C:3 allocation score on rhel7-auto3: -INFINITY
+native_color: C:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-no-interleave-1.summary b/pengine/test10/clone-require-all-no-interleave-1.summary
new file mode 100644
index 0000000..dd4bc99
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-1.summary
@@ -0,0 +1,54 @@
+
+Current cluster status:
+Node rhel7-auto4 (4): standby
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: C-clone [C]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+Transition Summary:
+ * Start A:0 (rhel7-auto3)
+ * Start B:0 (rhel7-auto3)
+ * Start C:0 (rhel7-auto2)
+ * Start C:1 (rhel7-auto1)
+ * Start C:2 (rhel7-auto3)
+
+Executing cluster transition:
+ * Pseudo action: A-clone_start_0
+ * Resource action: A start on rhel7-auto3
+ * Pseudo action: A-clone_running_0
+ * Pseudo action: B-clone_start_0
+ * Resource action: A monitor=10000 on rhel7-auto3
+ * Resource action: B start on rhel7-auto3
+ * Pseudo action: B-clone_running_0
+ * Pseudo action: clone-one-or-more:order-B-clone-C-clone-mandatory
+ * Resource action: B monitor=10000 on rhel7-auto3
+ * Pseudo action: C-clone_start_0
+ * Resource action: C start on rhel7-auto2
+ * Resource action: C start on rhel7-auto1
+ * Resource action: C start on rhel7-auto3
+ * Pseudo action: C-clone_running_0
+ * Resource action: C monitor=10000 on rhel7-auto2
+ * Resource action: C monitor=10000 on rhel7-auto1
+ * Resource action: C monitor=10000 on rhel7-auto3
+
+Revised cluster status:
+Node rhel7-auto4 (4): standby
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto3 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto3 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+ Clone Set: C-clone [C]
+ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Stopped: [ rhel7-auto4 ]
+
diff --git a/pengine/test10/clone-require-all-no-interleave-1.xml b/pengine/test10/clone-require-all-no-interleave-1.xml
new file mode 100644
index 0000000..4630f96
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-1.xml
@@ -0,0 +1,177 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-no-interleave-2.dot b/pengine/test10/clone-require-all-no-interleave-2.dot
new file mode 100644
index 0000000..1d7f8be
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-2.dot
@@ -0,0 +1,40 @@
+ digraph "g" {
+"A-clone_running_0" -> "B-clone_start_0" [ style = bold]
+"A-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = bold]
+"A-clone_start_0" -> "A_start_0 rhel7-auto4" [ style = bold]
+"A-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"A_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"A_start_0 rhel7-auto4" -> "A-clone_running_0" [ style = bold]
+"A_start_0 rhel7-auto4" -> "A_monitor_10000 rhel7-auto4" [ style = bold]
+"A_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = bold]
+"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = bold]
+"B-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"B_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold]
+"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = bold]
+"B_start_0 rhel7-auto4" -> "clone-one-or-more:order-B-clone-C-clone-mandatory" [ style = bold]
+"B_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"C-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"C-clone_start_0" -> "C-clone_running_0" [ style = bold]
+"C-clone_start_0" -> "C:1_start_0 rhel7-auto1" [ style = bold]
+"C-clone_start_0" -> "C:2_start_0 rhel7-auto4" [ style = bold]
+"C-clone_start_0" -> "C_start_0 rhel7-auto2" [ style = bold]
+"C-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"C:1_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"C:1_start_0 rhel7-auto1" -> "C-clone_running_0" [ style = bold]
+"C:1_start_0 rhel7-auto1" -> "C:1_monitor_10000 rhel7-auto1" [ style = bold]
+"C:1_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"]
+"C:2_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"C:2_start_0 rhel7-auto4" -> "C-clone_running_0" [ style = bold]
+"C:2_start_0 rhel7-auto4" -> "C:2_monitor_10000 rhel7-auto4" [ style = bold]
+"C:2_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"C_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"C_start_0 rhel7-auto2" -> "C-clone_running_0" [ style = bold]
+"C_start_0 rhel7-auto2" -> "C_monitor_10000 rhel7-auto2" [ style = bold]
+"C_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"]
+"clone-one-or-more:order-B-clone-C-clone-mandatory" -> "C-clone_start_0" [ style = bold]
+"clone-one-or-more:order-B-clone-C-clone-mandatory" [ style=bold color="green" fontcolor="orange"]
+}
diff --git a/pengine/test10/clone-require-all-no-interleave-2.exp b/pengine/test10/clone-require-all-no-interleave-2.exp
new file mode 100644
index 0000000..35a2df6
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-2.exp
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-no-interleave-2.scores b/pengine/test10/clone-require-all-no-interleave-2.scores
new file mode 100644
index 0000000..50e054e
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-2.scores
@@ -0,0 +1,113 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto3: 0
+clone_color: A-clone allocation score on rhel7-auto4: 0
+clone_color: A:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto3: 0
+clone_color: A:0 allocation score on rhel7-auto4: 0
+clone_color: A:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto3: 0
+clone_color: A:1 allocation score on rhel7-auto4: 0
+clone_color: A:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto3: 0
+clone_color: A:2 allocation score on rhel7-auto4: 0
+clone_color: A:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto3: 0
+clone_color: A:3 allocation score on rhel7-auto4: 0
+clone_color: B-clone allocation score on rhel7-auto1: 0
+clone_color: B-clone allocation score on rhel7-auto2: 0
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: 0
+clone_color: B:0 allocation score on rhel7-auto2: 0
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 0
+clone_color: B:1 allocation score on rhel7-auto1: 0
+clone_color: B:1 allocation score on rhel7-auto2: 0
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: 0
+clone_color: B:2 allocation score on rhel7-auto2: 0
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: 0
+clone_color: B:3 allocation score on rhel7-auto2: 0
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+clone_color: C-clone allocation score on rhel7-auto1: 0
+clone_color: C-clone allocation score on rhel7-auto2: 0
+clone_color: C-clone allocation score on rhel7-auto3: 0
+clone_color: C-clone allocation score on rhel7-auto4: 0
+clone_color: C:0 allocation score on rhel7-auto1: 0
+clone_color: C:0 allocation score on rhel7-auto2: 0
+clone_color: C:0 allocation score on rhel7-auto3: 0
+clone_color: C:0 allocation score on rhel7-auto4: 0
+clone_color: C:1 allocation score on rhel7-auto1: 0
+clone_color: C:1 allocation score on rhel7-auto2: 0
+clone_color: C:1 allocation score on rhel7-auto3: 0
+clone_color: C:1 allocation score on rhel7-auto4: 0
+clone_color: C:2 allocation score on rhel7-auto1: 0
+clone_color: C:2 allocation score on rhel7-auto2: 0
+clone_color: C:2 allocation score on rhel7-auto3: 0
+clone_color: C:2 allocation score on rhel7-auto4: 0
+clone_color: C:3 allocation score on rhel7-auto1: 0
+clone_color: C:3 allocation score on rhel7-auto2: 0
+clone_color: C:3 allocation score on rhel7-auto3: 0
+clone_color: C:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: -INFINITY
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: -INFINITY
+native_color: A:0 allocation score on rhel7-auto4: 0
+native_color: A:1 allocation score on rhel7-auto1: -INFINITY
+native_color: A:1 allocation score on rhel7-auto2: -INFINITY
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: -INFINITY
+native_color: B:0 allocation score on rhel7-auto4: 0
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: -INFINITY
+native_color: B:1 allocation score on rhel7-auto4: -INFINITY
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: C:0 allocation score on rhel7-auto1: 0
+native_color: C:0 allocation score on rhel7-auto2: 0
+native_color: C:0 allocation score on rhel7-auto3: -INFINITY
+native_color: C:0 allocation score on rhel7-auto4: 0
+native_color: C:1 allocation score on rhel7-auto1: 0
+native_color: C:1 allocation score on rhel7-auto2: -INFINITY
+native_color: C:1 allocation score on rhel7-auto3: -INFINITY
+native_color: C:1 allocation score on rhel7-auto4: 0
+native_color: C:2 allocation score on rhel7-auto1: -INFINITY
+native_color: C:2 allocation score on rhel7-auto2: -INFINITY
+native_color: C:2 allocation score on rhel7-auto3: -INFINITY
+native_color: C:2 allocation score on rhel7-auto4: 0
+native_color: C:3 allocation score on rhel7-auto1: -INFINITY
+native_color: C:3 allocation score on rhel7-auto2: -INFINITY
+native_color: C:3 allocation score on rhel7-auto3: -INFINITY
+native_color: C:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-no-interleave-2.summary b/pengine/test10/clone-require-all-no-interleave-2.summary
new file mode 100644
index 0000000..f16be9b
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-2.summary
@@ -0,0 +1,54 @@
+
+Current cluster status:
+Node rhel7-auto3 (3): standby
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+ Clone Set: C-clone [C]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ]
+
+Transition Summary:
+ * Start A:0 (rhel7-auto4)
+ * Start B:0 (rhel7-auto4)
+ * Start C:0 (rhel7-auto2)
+ * Start C:1 (rhel7-auto1)
+ * Start C:2 (rhel7-auto4)
+
+Executing cluster transition:
+ * Pseudo action: A-clone_start_0
+ * Resource action: A start on rhel7-auto4
+ * Pseudo action: A-clone_running_0
+ * Pseudo action: B-clone_start_0
+ * Resource action: A monitor=10000 on rhel7-auto4
+ * Resource action: B start on rhel7-auto4
+ * Pseudo action: B-clone_running_0
+ * Pseudo action: clone-one-or-more:order-B-clone-C-clone-mandatory
+ * Resource action: B monitor=10000 on rhel7-auto4
+ * Pseudo action: C-clone_start_0
+ * Resource action: C start on rhel7-auto2
+ * Resource action: C start on rhel7-auto1
+ * Resource action: C start on rhel7-auto4
+ * Pseudo action: C-clone_running_0
+ * Resource action: C monitor=10000 on rhel7-auto2
+ * Resource action: C monitor=10000 on rhel7-auto1
+ * Resource action: C monitor=10000 on rhel7-auto4
+
+Revised cluster status:
+Node rhel7-auto3 (3): standby
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Clone Set: C-clone [C]
+ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+ Stopped: [ rhel7-auto3 ]
+
diff --git a/pengine/test10/clone-require-all-no-interleave-2.xml b/pengine/test10/clone-require-all-no-interleave-2.xml
new file mode 100644
index 0000000..214a7c7
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-2.xml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-no-interleave-3.dot b/pengine/test10/clone-require-all-no-interleave-3.dot
new file mode 100644
index 0000000..58f97a5
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-3.dot
@@ -0,0 +1,60 @@
+ digraph "g" {
+"A-clone_running_0" -> "B-clone_start_0" [ style = bold]
+"A-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_start_0" -> "A-clone_running_0" [ style = bold]
+"A-clone_start_0" -> "A_start_0 rhel7-auto3" [ style = bold]
+"A-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold]
+"A-clone_stop_0" -> "A_stop_0 rhel7-auto4" [ style = bold]
+"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"A-clone_stopped_0" -> "A-clone_start_0" [ style = bold]
+"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"A_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"A_start_0 rhel7-auto3" -> "A-clone_running_0" [ style = bold]
+"A_start_0 rhel7-auto3" -> "A_monitor_10000 rhel7-auto3" [ style = bold]
+"A_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"A_stop_0 rhel7-auto4" -> "A-clone_stopped_0" [ style = bold]
+"A_stop_0 rhel7-auto4" -> "A_start_0 rhel7-auto3" [ style = bold]
+"A_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold]
+"A_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"B-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_start_0" -> "B-clone_running_0" [ style = bold]
+"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold]
+"B-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_stop_0" -> "B-clone_stopped_0" [ style = bold]
+"B-clone_stop_0" -> "B_stop_0 rhel7-auto4" [ style = bold]
+"B-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"B-clone_stopped_0" -> "A-clone_stop_0" [ style = bold]
+"B-clone_stopped_0" -> "B-clone_start_0" [ style = bold]
+"B-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold]
+"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold]
+"B_start_0 rhel7-auto3" -> "clone-one-or-more:order-B-clone-C-clone-mandatory" [ style = bold]
+"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"B_stop_0 rhel7-auto4" -> "B-clone_stopped_0" [ style = bold]
+"B_stop_0 rhel7-auto4" -> "B_start_0 rhel7-auto3" [ style = bold]
+"B_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold]
+"B_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"C-clone_running_0" [ style=bold color="green" fontcolor="orange"]
+"C-clone_start_0" -> "C-clone_running_0" [ style = bold]
+"C-clone_start_0" -> "C_start_0 rhel7-auto3" [ style = bold]
+"C-clone_start_0" [ style=bold color="green" fontcolor="orange"]
+"C-clone_stop_0" -> "C-clone_stopped_0" [ style = bold]
+"C-clone_stop_0" -> "C_stop_0 rhel7-auto4" [ style = bold]
+"C-clone_stop_0" [ style=bold color="green" fontcolor="orange"]
+"C-clone_stopped_0" -> "B-clone_stop_0" [ style = bold]
+"C-clone_stopped_0" -> "C-clone_start_0" [ style = bold]
+"C-clone_stopped_0" [ style=bold color="green" fontcolor="orange"]
+"C_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"C_start_0 rhel7-auto3" -> "C-clone_running_0" [ style = bold]
+"C_start_0 rhel7-auto3" -> "C_monitor_10000 rhel7-auto3" [ style = bold]
+"C_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"]
+"C_stop_0 rhel7-auto4" -> "C-clone_stopped_0" [ style = bold]
+"C_stop_0 rhel7-auto4" -> "C_start_0 rhel7-auto3" [ style = bold]
+"C_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold]
+"C_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"]
+"all_stopped" [ style=bold color="green" fontcolor="orange"]
+"clone-one-or-more:order-B-clone-C-clone-mandatory" -> "C-clone_start_0" [ style = bold]
+"clone-one-or-more:order-B-clone-C-clone-mandatory" [ style=bold color="green" fontcolor="orange"]
+}
diff --git a/pengine/test10/clone-require-all-no-interleave-3.exp b/pengine/test10/clone-require-all-no-interleave-3.exp
new file mode 100644
index 0000000..8aba35e
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-3.exp
@@ -0,0 +1,322 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pengine/test10/clone-require-all-no-interleave-3.scores b/pengine/test10/clone-require-all-no-interleave-3.scores
new file mode 100644
index 0000000..70dd2d1
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-3.scores
@@ -0,0 +1,113 @@
+Allocation scores:
+clone_color: A-clone allocation score on rhel7-auto1: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto2: -INFINITY
+clone_color: A-clone allocation score on rhel7-auto3: 0
+clone_color: A-clone allocation score on rhel7-auto4: 0
+clone_color: A:0 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:0 allocation score on rhel7-auto3: 0
+clone_color: A:0 allocation score on rhel7-auto4: 1
+clone_color: A:1 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:1 allocation score on rhel7-auto3: 0
+clone_color: A:1 allocation score on rhel7-auto4: 0
+clone_color: A:2 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:2 allocation score on rhel7-auto3: 0
+clone_color: A:2 allocation score on rhel7-auto4: 0
+clone_color: A:3 allocation score on rhel7-auto1: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto2: -INFINITY
+clone_color: A:3 allocation score on rhel7-auto3: 0
+clone_color: A:3 allocation score on rhel7-auto4: 0
+clone_color: B-clone allocation score on rhel7-auto1: 0
+clone_color: B-clone allocation score on rhel7-auto2: 0
+clone_color: B-clone allocation score on rhel7-auto3: 0
+clone_color: B-clone allocation score on rhel7-auto4: 0
+clone_color: B:0 allocation score on rhel7-auto1: 0
+clone_color: B:0 allocation score on rhel7-auto2: 0
+clone_color: B:0 allocation score on rhel7-auto3: 0
+clone_color: B:0 allocation score on rhel7-auto4: 1
+clone_color: B:1 allocation score on rhel7-auto1: 0
+clone_color: B:1 allocation score on rhel7-auto2: 0
+clone_color: B:1 allocation score on rhel7-auto3: 0
+clone_color: B:1 allocation score on rhel7-auto4: 0
+clone_color: B:2 allocation score on rhel7-auto1: 0
+clone_color: B:2 allocation score on rhel7-auto2: 0
+clone_color: B:2 allocation score on rhel7-auto3: 0
+clone_color: B:2 allocation score on rhel7-auto4: 0
+clone_color: B:3 allocation score on rhel7-auto1: 0
+clone_color: B:3 allocation score on rhel7-auto2: 0
+clone_color: B:3 allocation score on rhel7-auto3: 0
+clone_color: B:3 allocation score on rhel7-auto4: 0
+clone_color: C-clone allocation score on rhel7-auto1: 0
+clone_color: C-clone allocation score on rhel7-auto2: 0
+clone_color: C-clone allocation score on rhel7-auto3: 0
+clone_color: C-clone allocation score on rhel7-auto4: 0
+clone_color: C:0 allocation score on rhel7-auto1: 0
+clone_color: C:0 allocation score on rhel7-auto2: 0
+clone_color: C:0 allocation score on rhel7-auto3: 0
+clone_color: C:0 allocation score on rhel7-auto4: 1
+clone_color: C:1 allocation score on rhel7-auto1: 1
+clone_color: C:1 allocation score on rhel7-auto2: 0
+clone_color: C:1 allocation score on rhel7-auto3: 0
+clone_color: C:1 allocation score on rhel7-auto4: 0
+clone_color: C:2 allocation score on rhel7-auto1: 0
+clone_color: C:2 allocation score on rhel7-auto2: 1
+clone_color: C:2 allocation score on rhel7-auto3: 0
+clone_color: C:2 allocation score on rhel7-auto4: 0
+clone_color: C:3 allocation score on rhel7-auto1: 0
+clone_color: C:3 allocation score on rhel7-auto2: 0
+clone_color: C:3 allocation score on rhel7-auto3: 0
+clone_color: C:3 allocation score on rhel7-auto4: 0
+native_color: A:0 allocation score on rhel7-auto1: -INFINITY
+native_color: A:0 allocation score on rhel7-auto2: -INFINITY
+native_color: A:0 allocation score on rhel7-auto3: 0
+native_color: A:0 allocation score on rhel7-auto4: -INFINITY
+native_color: A:1 allocation score on rhel7-auto1: -INFINITY
+native_color: A:1 allocation score on rhel7-auto2: -INFINITY
+native_color: A:1 allocation score on rhel7-auto3: -INFINITY
+native_color: A:1 allocation score on rhel7-auto4: -INFINITY
+native_color: A:2 allocation score on rhel7-auto1: -INFINITY
+native_color: A:2 allocation score on rhel7-auto2: -INFINITY
+native_color: A:2 allocation score on rhel7-auto3: -INFINITY
+native_color: A:2 allocation score on rhel7-auto4: -INFINITY
+native_color: A:3 allocation score on rhel7-auto1: -INFINITY
+native_color: A:3 allocation score on rhel7-auto2: -INFINITY
+native_color: A:3 allocation score on rhel7-auto3: -INFINITY
+native_color: A:3 allocation score on rhel7-auto4: -INFINITY
+native_color: B:0 allocation score on rhel7-auto1: -INFINITY
+native_color: B:0 allocation score on rhel7-auto2: -INFINITY
+native_color: B:0 allocation score on rhel7-auto3: 0
+native_color: B:0 allocation score on rhel7-auto4: -INFINITY
+native_color: B:1 allocation score on rhel7-auto1: -INFINITY
+native_color: B:1 allocation score on rhel7-auto2: -INFINITY
+native_color: B:1 allocation score on rhel7-auto3: -INFINITY
+native_color: B:1 allocation score on rhel7-auto4: -INFINITY
+native_color: B:2 allocation score on rhel7-auto1: -INFINITY
+native_color: B:2 allocation score on rhel7-auto2: -INFINITY
+native_color: B:2 allocation score on rhel7-auto3: -INFINITY
+native_color: B:2 allocation score on rhel7-auto4: -INFINITY
+native_color: B:3 allocation score on rhel7-auto1: -INFINITY
+native_color: B:3 allocation score on rhel7-auto2: -INFINITY
+native_color: B:3 allocation score on rhel7-auto3: -INFINITY
+native_color: B:3 allocation score on rhel7-auto4: -INFINITY
+native_color: C:0 allocation score on rhel7-auto1: -INFINITY
+native_color: C:0 allocation score on rhel7-auto2: -INFINITY
+native_color: C:0 allocation score on rhel7-auto3: 0
+native_color: C:0 allocation score on rhel7-auto4: -INFINITY
+native_color: C:1 allocation score on rhel7-auto1: 1
+native_color: C:1 allocation score on rhel7-auto2: -INFINITY
+native_color: C:1 allocation score on rhel7-auto3: 0
+native_color: C:1 allocation score on rhel7-auto4: -INFINITY
+native_color: C:2 allocation score on rhel7-auto1: 0
+native_color: C:2 allocation score on rhel7-auto2: 1
+native_color: C:2 allocation score on rhel7-auto3: 0
+native_color: C:2 allocation score on rhel7-auto4: -INFINITY
+native_color: C:3 allocation score on rhel7-auto1: -INFINITY
+native_color: C:3 allocation score on rhel7-auto2: -INFINITY
+native_color: C:3 allocation score on rhel7-auto3: -INFINITY
+native_color: C:3 allocation score on rhel7-auto4: -INFINITY
+native_color: shooter allocation score on rhel7-auto1: 0
+native_color: shooter allocation score on rhel7-auto2: 0
+native_color: shooter allocation score on rhel7-auto3: 0
+native_color: shooter allocation score on rhel7-auto4: 0
diff --git a/pengine/test10/clone-require-all-no-interleave-3.summary b/pengine/test10/clone-require-all-no-interleave-3.summary
new file mode 100644
index 0000000..4379644
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-3.summary
@@ -0,0 +1,61 @@
+
+Current cluster status:
+Node rhel7-auto4 (4): standby
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto4 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Clone Set: C-clone [C]
+ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+ Stopped: [ rhel7-auto3 ]
+
+Transition Summary:
+ * Move A:0 (Started rhel7-auto4 -> rhel7-auto3)
+ * Move B:0 (Started rhel7-auto4 -> rhel7-auto3)
+ * Move C:0 (Started rhel7-auto4 -> rhel7-auto3)
+
+Executing cluster transition:
+ * Pseudo action: C-clone_stop_0
+ * Resource action: C stop on rhel7-auto4
+ * Pseudo action: C-clone_stopped_0
+ * Pseudo action: B-clone_stop_0
+ * Resource action: B stop on rhel7-auto4
+ * Pseudo action: B-clone_stopped_0
+ * Pseudo action: A-clone_stop_0
+ * Resource action: A stop on rhel7-auto4
+ * Pseudo action: A-clone_stopped_0
+ * Pseudo action: A-clone_start_0
+ * Pseudo action: all_stopped
+ * Resource action: A start on rhel7-auto3
+ * Pseudo action: A-clone_running_0
+ * Pseudo action: B-clone_start_0
+ * Resource action: A monitor=10000 on rhel7-auto3
+ * Resource action: B start on rhel7-auto3
+ * Pseudo action: B-clone_running_0
+ * Pseudo action: clone-one-or-more:order-B-clone-C-clone-mandatory
+ * Resource action: B monitor=10000 on rhel7-auto3
+ * Pseudo action: C-clone_start_0
+ * Resource action: C start on rhel7-auto3
+ * Pseudo action: C-clone_running_0
+ * Resource action: C monitor=10000 on rhel7-auto3
+
+Revised cluster status:
+Node rhel7-auto4 (4): standby
+Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+
+ shooter (stonith:fence_xvm): Started rhel7-auto1
+ Clone Set: A-clone [A]
+ Started: [ rhel7-auto3 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+ Clone Set: B-clone [B]
+ Started: [ rhel7-auto3 ]
+ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ]
+ Clone Set: C-clone [C]
+ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ]
+ Stopped: [ rhel7-auto4 ]
+
diff --git a/pengine/test10/clone-require-all-no-interleave-3.xml b/pengine/test10/clone-require-all-no-interleave-3.xml
new file mode 100644
index 0000000..8a9bea8
--- /dev/null
+++ b/pengine/test10/clone-require-all-no-interleave-3.xml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/xml/constraints-2.3.rng b/xml/constraints-2.3.rng
new file mode 100644
index 0000000..d9a4701
--- /dev/null
+++ b/xml/constraints-2.3.rng
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ group
+ listed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ stop
+ demote
+ fence
+ freeze
+
+
+
+
+
+
+
+
+ always
+ never
+ exclusive
+
+
+
+
+
+ start
+ promote
+ demote
+ stop
+
+
+
+
+
+ Stopped
+ Started
+ Master
+ Slave
+
+
+
+
+
+ Optional
+ Mandatory
+ Serialize
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/xml/constraints-next.rng b/xml/constraints-next.rng
index 0defe8f..9d11003 100644
--- a/xml/constraints-next.rng
+++ b/xml/constraints-next.rng
@@ -154,6 +154,9 @@
+
+
+