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 @@ + + +