From cf34f4c950704f5ac05ed9553b3b900ea33e1190 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Thu, 17 Aug 2017 11:48:17 +1000 Subject: [PATCH 01/21] PE/attrd: Allow bundle resources to read/write attributes based on the physical host rather than the container name --- include/crm/msg_xml.h | 1 + include/crm/pengine/internal.h | 2 + include/crm_internal.h | 3 ++ lib/pengine/common.c | 48 ++++++++++++++++++++++ lib/pengine/container.c | 5 ++- lib/pengine/unpack.c | 22 +++++----- lib/pengine/utils.c | 4 +- lib/pengine/variant.h | 1 + pengine/allocate.c | 3 +- pengine/constraints.c | 8 ++-- pengine/graph.c | 39 ++++++++++++++++++ pengine/master.c | 16 +++----- pengine/native.c | 16 ++++---- pengine/test10/bug-cl-5247.exp | 26 ++++++------ pengine/test10/bug-rh-1097457.exp | 22 +++++----- pengine/test10/bundle-nested-colocation.exp | 18 ++++----- pengine/test10/bundle-order-partial-start-2.exp | 20 ++++----- pengine/test10/bundle-order-partial-start.exp | 20 ++++----- pengine/test10/bundle-order-partial-stop.exp | 18 ++++----- pengine/test10/bundle-order-startup-clone-2.exp | 54 ++++++++++++------------- pengine/test10/bundle-order-startup-clone.exp | 8 ++-- pengine/test10/bundle-order-startup.exp | 20 ++++----- pengine/test10/bundle-order-stop-clone.exp | 2 +- pengine/test10/bundle-order-stop.exp | 18 ++++----- pengine/test10/guest-node-host-dies.exp | 14 +++---- pengine/test10/whitebox-asymmetric.exp | 4 +- pengine/test10/whitebox-fail1.exp | 12 +++--- pengine/test10/whitebox-fail2.exp | 12 +++--- pengine/test10/whitebox-fail3.exp | 10 ++--- pengine/test10/whitebox-imply-stop-on-fence.exp | 6 +-- pengine/test10/whitebox-move.exp | 12 +++--- pengine/test10/whitebox-ms-ordering-move.exp | 8 ++-- pengine/test10/whitebox-ms-ordering.exp | 8 ++-- pengine/test10/whitebox-nested-group.exp | 12 +++--- pengine/test10/whitebox-orphan-ms.exp | 8 ++-- pengine/test10/whitebox-orphaned.exp | 8 ++-- pengine/test10/whitebox-start.exp | 10 ++--- pengine/test10/whitebox-stop.exp | 8 ++-- tools/attrd_updater.c | 30 ++++++++++++++ tools/crm_mon.c | 2 +- 40 files changed, 339 insertions(+), 219 deletions(-) diff --git a/include/crm/msg_xml.h b/include/crm/msg_xml.h index 8cf22f3..5209cb1 100644 --- a/include/crm/msg_xml.h +++ b/include/crm/msg_xml.h @@ -194,6 +194,7 @@ # define XML_CIB_TAG_RSC_TEMPLATE "template" +# define XML_RSC_ATTR_TARGET "container-attribute-target" # define XML_RSC_ATTR_ISOLATION_INSTANCE "isolation-instance" # define XML_RSC_ATTR_ISOLATION_WRAPPER "isolation-wrapper" # define XML_RSC_ATTR_ISOLATION_HOST "isolation-host" diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h index 5db90aa..d91f54a 100644 --- a/include/crm/pengine/internal.h +++ b/include/crm/pengine/internal.h @@ -298,5 +298,7 @@ bool remote_id_conflict(const char *remote_name, pe_working_set_t *data); void common_print(resource_t * rsc, const char *pre_text, const char *name, node_t *node, long options, void *print_data); resource_t *find_container_child(const char *stem, resource_t * rsc, node_t *node); bool fix_remote_addr(resource_t * rsc); +const char *node_attribute_calculated(pe_node_t *node, const char *name, resource_t *rsc); +const char *node_attribute_raw(pe_node_t *node, const char *name); #endif diff --git a/include/crm_internal.h b/include/crm_internal.h index acfca07..e1b25ff 100644 --- a/include/crm_internal.h +++ b/include/crm_internal.h @@ -289,6 +289,9 @@ long crm_read_pidfile(const char *filename); # define ATTRD_OP_SYNC "sync" # define ATTRD_OP_SYNC_RESPONSE "sync-response" +# define PCMK_ENV_PHYSICAL_HOST "physical_host" + + # if SUPPORT_COROSYNC # if CS_USES_LIBQB # include diff --git a/lib/pengine/common.c b/lib/pengine/common.c index 446b7f0..0e21aaa 100644 --- a/lib/pengine/common.c +++ b/lib/pengine/common.c @@ -431,3 +431,51 @@ add_hash_param(GHashTable * hash, const char *name, const char *value) g_hash_table_insert(hash, strdup(name), strdup(value)); } } + +const char * +node_attribute_calculated(pe_node_t *node, const char *name, resource_t *rsc) +{ + const char *source; + + if(node == NULL) { + return NULL; + + } else if(rsc == NULL) { + return g_hash_table_lookup(node->details->attrs, name); + } + + source = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET); + if(source == NULL || safe_str_eq("host", source) == FALSE) { + return g_hash_table_lookup(node->details->attrs, name); + } + + /* Use attributes set for the containers location + * instead of for the container itself + * + * Useful when the container is using the host's local + * storage + */ + + CRM_ASSERT(node->details->remote_rsc); + CRM_ASSERT(node->details->remote_rsc->container); + + if(node->details->remote_rsc->container->running_on) { + pe_node_t *host = node->details->remote_rsc->container->running_on->data; + pe_rsc_trace(rsc, "%s: Looking for %s on the container host %s", rsc->id, name, host->details->uname); + return g_hash_table_lookup(host->details->attrs, name); + } + + pe_rsc_trace(rsc, "%s: Not looking for %s on the container host: %s is inactive", + rsc->id, name, node->details->remote_rsc->container->id); + return NULL; +} + +const char * +node_attribute_raw(pe_node_t *node, const char *name) +{ + if(node == NULL) { + return NULL; + } + return g_hash_table_lookup(node->details->attrs, name); +} + diff --git a/lib/pengine/container.c b/lib/pengine/container.c index 118e716..53965cf 100644 --- a/lib/pengine/container.c +++ b/lib/pengine/container.c @@ -764,8 +764,12 @@ container_unpack(resource_t * rsc, pe_working_set_t * data_set) offset += allocate_ip(container_data, tuple, buffer+offset, max-offset); container_data->tuples = g_list_append(container_data->tuples, tuple); + container_data->attribute_target = g_hash_table_lookup(tuple->child->meta, XML_RSC_ATTR_TARGET); } container_data->docker_host_options = buffer; + if(container_data->attribute_target) { + g_hash_table_replace(rsc->meta, strdup(XML_RSC_ATTR_TARGET), strdup(container_data->attribute_target)); + } } else { // Just a naked container, no pacemaker-remote @@ -782,7 +786,6 @@ container_unpack(resource_t * rsc, pe_working_set_t * data_set) container_data->docker_host_options = buffer; } - for (GListPtr gIter = container_data->tuples; gIter != NULL; gIter = gIter->next) { container_grouping_t *tuple = (container_grouping_t *)gIter->data; // TODO: Remove from list if create_container() returns TRUE diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c index 0790148..6e0651e 100644 --- a/lib/pengine/unpack.c +++ b/lib/pengine/unpack.c @@ -1070,7 +1070,7 @@ unpack_handle_remote_attrs(node_t *this_node, xmlNode *state, pe_working_set_t * attrs = find_xml_node(state, XML_TAG_TRANSIENT_NODEATTRS, FALSE); add_node_attrs(attrs, this_node, TRUE, data_set); - shutdown = g_hash_table_lookup(this_node->details->attrs, XML_CIB_ATTR_SHUTDOWN); + shutdown = node_attribute_raw(this_node, XML_CIB_ATTR_SHUTDOWN); if (shutdown != NULL && safe_str_neq("0", shutdown)) { crm_info("Node %s is shutting down", this_node->details->uname); this_node->details->shutdown = TRUE; @@ -1079,18 +1079,18 @@ unpack_handle_remote_attrs(node_t *this_node, xmlNode *state, pe_working_set_t * } } - if (crm_is_true(g_hash_table_lookup(this_node->details->attrs, "standby"))) { + if (crm_is_true(node_attribute_raw(this_node, "standby"))) { crm_info("Node %s is in standby-mode", this_node->details->uname); this_node->details->standby = TRUE; } - if (crm_is_true(g_hash_table_lookup(this_node->details->attrs, "maintenance")) || + if (crm_is_true(node_attribute_raw(this_node, "maintenance")) || (rsc && !is_set(rsc->flags, pe_rsc_managed))) { crm_info("Node %s is in maintenance-mode", this_node->details->uname); this_node->details->maintenance = TRUE; } - resource_discovery_enabled = g_hash_table_lookup(this_node->details->attrs, XML_NODE_ATTR_RSC_DISCOVERY); + resource_discovery_enabled = node_attribute_raw(this_node, XML_NODE_ATTR_RSC_DISCOVERY); if (resource_discovery_enabled && !crm_is_true(resource_discovery_enabled)) { if (is_baremetal_remote_node(this_node) && is_not_set(data_set->flags, pe_flag_stonith_enabled)) { crm_warn("ignoring %s attribute on baremetal remote node %s, disabling resource discovery requires stonith to be enabled.", @@ -1246,17 +1246,17 @@ unpack_status(xmlNode * status, pe_working_set_t * data_set) attrs = find_xml_node(state, XML_TAG_TRANSIENT_NODEATTRS, FALSE); add_node_attrs(attrs, this_node, TRUE, data_set); - if (crm_is_true(g_hash_table_lookup(this_node->details->attrs, "standby"))) { + if (crm_is_true(node_attribute_raw(this_node, "standby"))) { crm_info("Node %s is in standby-mode", this_node->details->uname); this_node->details->standby = TRUE; } - if (crm_is_true(g_hash_table_lookup(this_node->details->attrs, "maintenance"))) { + if (crm_is_true(node_attribute_raw(this_node, "maintenance"))) { crm_info("Node %s is in maintenance-mode", this_node->details->uname); this_node->details->maintenance = TRUE; } - resource_discovery_enabled = g_hash_table_lookup(this_node->details->attrs, XML_NODE_ATTR_RSC_DISCOVERY); + resource_discovery_enabled = node_attribute_raw(this_node, XML_NODE_ATTR_RSC_DISCOVERY); if (resource_discovery_enabled && !crm_is_true(resource_discovery_enabled)) { crm_warn("ignoring %s attribute on node %s, disabling resource discovery is not allowed on cluster nodes", XML_NODE_ATTR_RSC_DISCOVERY, this_node->details->uname); @@ -1342,7 +1342,7 @@ determine_online_status_fencing(pe_working_set_t * data_set, xmlNode * node_stat const char *is_peer = crm_element_value(node_state, XML_NODE_IS_PEER); const char *in_cluster = crm_element_value(node_state, XML_NODE_IN_CLUSTER); const char *exp_state = crm_element_value(node_state, XML_NODE_EXPECTED); - const char *terminate = g_hash_table_lookup(this_node->details->attrs, "terminate"); + const char *terminate = node_attribute_raw(this_node, "terminate"); /* - XML_NODE_IN_CLUSTER ::= true|false @@ -1516,7 +1516,7 @@ determine_online_status(xmlNode * node_state, node_t * this_node, pe_working_set this_node->details->shutdown = FALSE; this_node->details->expected_up = FALSE; - shutdown = g_hash_table_lookup(this_node->details->attrs, XML_CIB_ATTR_SHUTDOWN); + shutdown = node_attribute_raw(this_node, XML_CIB_ATTR_SHUTDOWN); if (shutdown != NULL && safe_str_neq("0", shutdown)) { this_node->details->shutdown = TRUE; @@ -3368,8 +3368,8 @@ add_node_attrs(xmlNode * xml_obj, node_t * node, gboolean overwrite, pe_working_ unpack_instance_attributes(data_set->input, xml_obj, XML_TAG_ATTR_SETS, NULL, node->details->attrs, NULL, overwrite, data_set->now); - if (g_hash_table_lookup(node->details->attrs, "#site-name") == NULL) { - const char *site_name = g_hash_table_lookup(node->details->attrs, "site-name"); + if (node_attribute_raw(node, "#site-name") == NULL) { + const char *site_name = node_attribute_raw(node, "site-name"); if (site_name) { /* Prefix '#' to the key */ diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c index cb1ed08..c44a1c8 100644 --- a/lib/pengine/utils.c +++ b/lib/pengine/utils.c @@ -1989,10 +1987,8 @@ fencing_action_digest_cmp(resource_t * rsc, node_t * node, pe_working_set_t * da char *key = generate_op_key(rsc->id, STONITH_DIGEST_TASK, 0); op_digest_cache_t *data = rsc_action_digest(rsc, STONITH_DIGEST_TASK, key, node, NULL, data_set); - const char *digest_all = g_hash_table_lookup(node->details->attrs, - CRM_ATTR_DIGESTS_ALL); - const char *digest_secure = g_hash_table_lookup(node->details->attrs, - CRM_ATTR_DIGESTS_SECURE); + const char *digest_all = node_attribute_raw(node, CRM_ATTR_DIGESTS_ALL); + const char *digest_secure = node_attribute_raw(node, CRM_ATTR_DIGESTS_SECURE); /* No 'reloads' for fencing device changes * diff --git a/lib/pengine/variant.h b/lib/pengine/variant.h index c8fe159..4ceaa6b 100644 --- a/lib/pengine/variant.h +++ b/lib/pengine/variant.h @@ -100,6 +100,7 @@ typedef struct container_variant_data_s { char *docker_host_options; char *docker_run_options; char *docker_run_command; + const char *attribute_target; resource_t *child; diff --git a/pengine/allocate.c b/pengine/allocate.c index 01b5b98..958fb23 100644 --- a/pengine/allocate.c +++ b/pengine/allocate.c @@ -861,7 +861,6 @@ apply_system_health(pe_working_set_t * data_set) rsc2node_new(health_strategy, rsc, system_health, NULL, node, data_set); } } - } return TRUE; @@ -898,7 +897,7 @@ probe_resources(pe_working_set_t * data_set) for (GListPtr gIter = data_set->nodes; gIter != NULL; gIter = gIter->next) { node_t *node = (node_t *) gIter->data; - const char *probed = g_hash_table_lookup(node->details->attrs, CRM_OP_PROBED); + const char *probed = node_attribute_raw(node, CRM_OP_PROBED); if (is_container_remote_node(node)) { /* TODO enable guest node probes once ordered probing is implemented */ diff --git a/pengine/constraints.c b/pengine/constraints.c index 77a0152..fdc4186 100644 --- a/pengine/constraints.c +++ b/pengine/constraints.c @@ -957,7 +957,7 @@ unpack_location(xmlNode * xml_obj, pe_working_set_t * data_set) } static int -get_node_score(const char *rule, const char *score, gboolean raw, node_t * node) +get_node_score(const char *rule, const char *score, gboolean raw, node_t * node, resource_t *rsc) { int score_f = 0; @@ -968,7 +968,7 @@ get_node_score(const char *rule, const char *score, gboolean raw, node_t * node) score_f = char2score(score); } else { - const char *attr_score = g_hash_table_lookup(node->details->attrs, score); + const char *attr_score = node_attribute_calculated(node, score, rsc); if (attr_score == NULL) { crm_debug("Rule %s: node %s did not have a value for %s", @@ -1060,7 +1060,7 @@ generate_location_rule(resource_t * rsc, xmlNode * rule_xml, const char *discove for (gIter = match_L; gIter != NULL; gIter = gIter->next) { node_t *node = (node_t *) gIter->data; - node->weight = get_node_score(rule_id, score, raw_score, node); + node->weight = get_node_score(rule_id, score, raw_score, node, rsc); } } @@ -1073,7 +1073,7 @@ generate_location_rule(resource_t * rsc, xmlNode * rule_xml, const char *discove crm_trace("Rule %s %s on %s", ID(rule_xml), accept ? "passed" : "failed", node->details->uname); - score_f = get_node_score(rule_id, score, raw_score, node); + score_f = get_node_score(rule_id, score, raw_score, node, rsc); /* if(accept && score_f == -INFINITY) { */ /* accept = FALSE; */ /* } */ diff --git a/pengine/graph.c b/pengine/graph.c index a446fe5..3c5dc6b 100644 --- a/pengine/graph.c +++ b/pengine/graph.c @@ -1162,6 +1162,45 @@ action2xml(action_t * action, gboolean as_input, pe_working_set_t *data_set) hash2smartfield((gpointer)"pcmk_external_ip", (gpointer)value, (gpointer)args_xml); } + if(is_container_remote_node(action->node)) { + pe_node_t *host = NULL; + enum action_tasks task = text2task(action->task); + + if(task == action_notify || task == action_notified) { + const char *n_task = g_hash_table_lookup(action->meta, "notify_operation"); + task = text2task(n_task); + } + + // Differentiate between up and down actions + switch (task) { + case stop_rsc: + case stopped_rsc: + case action_demote: + case action_demoted: + if(action->node->details->remote_rsc->container->running_on) { + host = action->node->details->remote_rsc->container->running_on->data; + } + break; + case start_rsc: + case started_rsc: + case monitor_rsc: + case action_promote: + case action_promoted: + if(action->node->details->remote_rsc->container->allocated_to) { + host = action->node->details->remote_rsc->container->allocated_to; + } + break; + default: + break; + } + + if(host) { + hash2metafield((gpointer)XML_RSC_ATTR_TARGET, + (gpointer)g_hash_table_lookup(action->rsc->meta, XML_RSC_ATTR_TARGET), (gpointer)args_xml); + hash2metafield((gpointer)PCMK_ENV_PHYSICAL_HOST, (gpointer)host->details->uname, (gpointer)args_xml); + } + } + } else if (safe_str_eq(action->task, CRM_OP_FENCE) && action->node) { g_hash_table_foreach(action->node->details->attrs, hash2metafield, args_xml); } diff --git a/pengine/master.c b/pengine/master.c index 8c39f49..2631da8 100644 --- a/pengine/master.c +++ b/pengine/master.c @@ -511,12 +511,7 @@ master_score(resource_t * rsc, node_t * node, int not_set_value) attr_name = calloc(1, len); sprintf(attr_name, "master-%s", name); - if (node) { - attr_value = g_hash_table_lookup(node->details->attrs, attr_name); - pe_rsc_trace(rsc, "%s: %s[%s] = %s", rsc->id, attr_name, node->details->uname, - crm_str(attr_value)); - } - + attr_value = node_attribute_calculated(node, attr_name, rsc); if (attr_value != NULL) { score = char2score(attr_value); } @@ -949,11 +944,11 @@ node_hash_update_one(GHashTable * hash, node_t * other, const char *attr, int sc } else if (attr == NULL) { attr = "#" XML_ATTR_UNAME; } - - value = g_hash_table_lookup(other->details->attrs, attr); + + value = node_attribute_raw(other, attr); g_hash_table_iter_init(&iter, hash); while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { - const char *tmp = g_hash_table_lookup(node->details->attrs, attr); + const char *tmp = node_attribute_raw(node, attr); if (safe_str_eq(value, tmp)) { crm_trace("%s: %d + %d", node->details->uname, node->weight, other->weight); @@ -993,8 +988,7 @@ master_rsc_colocation_rh(resource_t * rsc_lh, resource_t * rsc_rh, rsc_colocatio } else if (is_set(rsc_lh->flags, pe_rsc_provisional)) { GListPtr rhs = NULL; - gIter = rsc_rh->children; - for (; gIter != NULL; gIter = gIter->next) { + for (gIter = rsc_rh->children; gIter != NULL; gIter = gIter->next) { resource_t *child_rsc = (resource_t *) gIter->data; node_t *chosen = child_rsc->fns->location(child_rsc, NULL, FALSE); enum rsc_role_e next_role = child_rsc->fns->state(child_rsc, FALSE); diff --git a/pengine/native.c b/pengine/native.c index fe7b966..37cf541 100644 --- a/pengine/native.c +++ b/pengine/native.c @@ -203,7 +203,7 @@ node_list_attr_score(GHashTable * list, const char *attr, const char *value) weight = -INFINITY; } if (weight > best_score || best_node == NULL) { - const char *tmp = g_hash_table_lookup(node->details->attrs, attr); + const char *tmp = node_attribute_raw(node, attr); if (safe_str_eq(value, tmp)) { best_score = weight; @@ -238,7 +238,7 @@ node_hash_update(GHashTable * list1, GHashTable * list2, const char *attr, float CRM_LOG_ASSERT(node != NULL); if(node == NULL) { continue; }; - score = node_list_attr_score(list2, attr, g_hash_table_lookup(node->details->attrs, attr)); + score = node_list_attr_score(list2, attr, node_attribute_raw(node, attr)); new_score = merge_weights(factor * score, node->weight); if (factor < 0 && score < 0) { @@ -1630,8 +1630,8 @@ influence_priority(resource_t * rsc_lh, resource_t * rsc_rh, rsc_colocation_t * return; } - lh_value = g_hash_table_lookup(rsc_lh->allocated_to->details->attrs, attribute); - rh_value = g_hash_table_lookup(rsc_rh->allocated_to->details->attrs, attribute); + lh_value = node_attribute_raw(rsc_lh->allocated_to, attribute); + rh_value = node_attribute_raw(rsc_rh->allocated_to, attribute); if (!safe_str_eq(lh_value, rh_value)) { if(constraint->score == INFINITY && constraint->role_lh == RSC_ROLE_MASTER) { @@ -1669,7 +1669,7 @@ colocation_match(resource_t * rsc_lh, resource_t * rsc_rh, rsc_colocation_t * co } if (rsc_rh->allocated_to) { - value = g_hash_table_lookup(rsc_rh->allocated_to->details->attrs, attribute); + value = node_attribute_raw(rsc_rh->allocated_to, attribute); do_check = TRUE; } else if (constraint->score < 0) { @@ -1683,7 +1683,7 @@ colocation_match(resource_t * rsc_lh, resource_t * rsc_rh, rsc_colocation_t * co g_hash_table_iter_init(&iter, work); while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { - tmp = g_hash_table_lookup(node->details->attrs, attribute); + tmp = node_attribute_raw(node, attribute); if (do_check && safe_str_eq(tmp, value)) { if (constraint->score < INFINITY) { pe_rsc_trace(rsc_lh, "%s: %s.%s += %d", constraint->id, rsc_lh->id, @@ -2492,7 +2492,7 @@ StopRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * d if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { action_t *unfence = pe_fence_op(current, "on", TRUE, NULL, data_set); - const char *unfenced = g_hash_table_lookup(current->details->attrs, CRM_ATTR_UNFENCED); + const char *unfenced = node_attribute_raw(current, CRM_ATTR_UNFENCED); order_actions(stop, unfence, pe_order_implies_first); if (unfenced == NULL || safe_str_eq("0", unfenced)) { @@ -2515,7 +2515,7 @@ StartRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { action_t *unfence = pe_fence_op(next, "on", TRUE, NULL, data_set); - const char *unfenced = g_hash_table_lookup(next->details->attrs, CRM_ATTR_UNFENCED); + const char *unfenced = node_attribute_raw(next, CRM_ATTR_UNFENCED); order_actions(unfence, start, pe_order_implies_then); diff --git a/pengine/test10/bug-cl-5247.exp b/pengine/test10/bug-cl-5247.exp index e7bac9c..2ec83c0 100644 --- a/pengine/test10/bug-cl-5247.exp +++ b/pengine/test10/bug-cl-5247.exp @@ -269,7 +269,7 @@ - + @@ -282,7 +282,7 @@ - + @@ -300,7 +300,7 @@ - + @@ -319,7 +319,7 @@ - + @@ -332,7 +332,7 @@ - + @@ -353,7 +353,7 @@ - + @@ -395,7 +395,7 @@ - + @@ -413,7 +413,7 @@ - + @@ -429,7 +429,7 @@ - + @@ -442,7 +442,7 @@ - + @@ -455,7 +455,7 @@ - + @@ -468,7 +468,7 @@ - + @@ -484,7 +484,7 @@ - + diff --git a/pengine/test10/bug-rh-1097457.exp b/pengine/test10/bug-rh-1097457.exp index bf62647..eb9b225 100644 --- a/pengine/test10/bug-rh-1097457.exp +++ b/pengine/test10/bug-rh-1097457.exp @@ -76,7 +76,7 @@ - + @@ -92,7 +92,7 @@ - + @@ -168,7 +168,7 @@ - + @@ -192,7 +192,7 @@ - + @@ -211,7 +211,7 @@ - + @@ -227,7 +227,7 @@ - + @@ -254,7 +254,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -310,7 +310,7 @@ - + @@ -326,7 +326,7 @@ - + diff --git a/pengine/test10/bundle-nested-colocation.exp b/pengine/test10/bundle-nested-colocation.exp index c82ee16..916c44b 100644 --- a/pengine/test10/bundle-nested-colocation.exp +++ b/pengine/test10/bundle-nested-colocation.exp @@ -3,7 +3,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -67,7 +67,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -121,7 +121,7 @@ - + @@ -140,7 +140,7 @@ - + diff --git a/pengine/test10/bundle-order-partial-start-2.exp b/pengine/test10/bundle-order-partial-start-2.exp index b533469..f600983 100644 --- a/pengine/test10/bundle-order-partial-start-2.exp +++ b/pengine/test10/bundle-order-partial-start-2.exp @@ -3,7 +3,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -125,7 +125,7 @@ - + @@ -141,7 +141,7 @@ - + @@ -157,7 +157,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -299,7 +299,7 @@ - + @@ -312,7 +312,7 @@ - + @@ -328,7 +328,7 @@ - + diff --git a/pengine/test10/bundle-order-partial-start.exp b/pengine/test10/bundle-order-partial-start.exp index 1f8a3e1..d48fccf 100644 --- a/pengine/test10/bundle-order-partial-start.exp +++ b/pengine/test10/bundle-order-partial-start.exp @@ -3,7 +3,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -125,7 +125,7 @@ - + @@ -141,7 +141,7 @@ - + @@ -157,7 +157,7 @@ - + @@ -267,7 +267,7 @@ - + @@ -280,7 +280,7 @@ - + @@ -293,7 +293,7 @@ - + @@ -309,7 +309,7 @@ - + diff --git a/pengine/test10/bundle-order-partial-stop.exp b/pengine/test10/bundle-order-partial-stop.exp index 937bc59..1dff657 100644 --- a/pengine/test10/bundle-order-partial-stop.exp +++ b/pengine/test10/bundle-order-partial-stop.exp @@ -3,7 +3,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -144,7 +144,7 @@ - + @@ -163,7 +163,7 @@ - + @@ -280,7 +280,7 @@ - + @@ -293,7 +293,7 @@ - + @@ -306,7 +306,7 @@ - + @@ -319,7 +319,7 @@ - + @@ -338,7 +338,7 @@ - + diff --git a/pengine/test10/bundle-order-startup-clone-2.exp b/pengine/test10/bundle-order-startup-clone-2.exp index c0910a7..7d18d29 100644 --- a/pengine/test10/bundle-order-startup-clone-2.exp +++ b/pengine/test10/bundle-order-startup-clone-2.exp @@ -260,7 +260,7 @@ - + @@ -276,7 +276,7 @@ - + @@ -292,7 +292,7 @@ - + @@ -311,7 +311,7 @@ - + @@ -327,7 +327,7 @@ - + @@ -343,7 +343,7 @@ - + @@ -365,7 +365,7 @@ - + @@ -381,7 +381,7 @@ - + @@ -397,7 +397,7 @@ - + @@ -1010,7 +1010,7 @@ - + @@ -1023,7 +1023,7 @@ - + @@ -1036,7 +1036,7 @@ - + @@ -1049,7 +1049,7 @@ - + @@ -1074,7 +1074,7 @@ - + @@ -1096,7 +1096,7 @@ - + @@ -1115,7 +1115,7 @@ - + @@ -1128,7 +1128,7 @@ - + @@ -1141,7 +1141,7 @@ - + @@ -1154,7 +1154,7 @@ - + @@ -1179,7 +1179,7 @@ - + @@ -1204,7 +1204,7 @@ - + @@ -1226,7 +1226,7 @@ - + @@ -1239,7 +1239,7 @@ - + @@ -1252,7 +1252,7 @@ - + @@ -1265,7 +1265,7 @@ - + @@ -1290,7 +1290,7 @@ - + @@ -1315,7 +1315,7 @@ - + diff --git a/pengine/test10/bundle-order-startup-clone.exp b/pengine/test10/bundle-order-startup-clone.exp index 197529f..8c8ba6aa 100644 --- a/pengine/test10/bundle-order-startup-clone.exp +++ b/pengine/test10/bundle-order-startup-clone.exp @@ -119,7 +119,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -170,7 +170,7 @@ - + diff --git a/pengine/test10/bundle-order-startup.exp b/pengine/test10/bundle-order-startup.exp index 161c1ae..03b064a 100644 --- a/pengine/test10/bundle-order-startup.exp +++ b/pengine/test10/bundle-order-startup.exp @@ -3,7 +3,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -35,7 +35,7 @@ - + @@ -198,7 +198,7 @@ - + @@ -214,7 +214,7 @@ - + @@ -230,7 +230,7 @@ - + @@ -340,7 +340,7 @@ - + @@ -353,7 +353,7 @@ - + @@ -372,7 +372,7 @@ - + @@ -391,7 +391,7 @@ - + diff --git a/pengine/test10/bundle-order-stop-clone.exp b/pengine/test10/bundle-order-stop-clone.exp index c359e00..e78e235 100644 --- a/pengine/test10/bundle-order-stop-clone.exp +++ b/pengine/test10/bundle-order-stop-clone.exp @@ -173,7 +173,7 @@ - + diff --git a/pengine/test10/bundle-order-stop.exp b/pengine/test10/bundle-order-stop.exp index 937bc59..1dff657 100644 --- a/pengine/test10/bundle-order-stop.exp +++ b/pengine/test10/bundle-order-stop.exp @@ -3,7 +3,7 @@ - + @@ -16,7 +16,7 @@ - + @@ -144,7 +144,7 @@ - + @@ -163,7 +163,7 @@ - + @@ -280,7 +280,7 @@ - + @@ -293,7 +293,7 @@ - + @@ -306,7 +306,7 @@ - + @@ -319,7 +319,7 @@ - + @@ -338,7 +338,7 @@ - + diff --git a/pengine/test10/guest-node-host-dies.exp b/pengine/test10/guest-node-host-dies.exp index 235813d..cd8d81a 100644 --- a/pengine/test10/guest-node-host-dies.exp +++ b/pengine/test10/guest-node-host-dies.exp @@ -144,7 +144,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -196,7 +196,7 @@ - + @@ -214,7 +214,7 @@ - + @@ -230,7 +230,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -270,7 +270,7 @@ - + diff --git a/pengine/test10/whitebox-asymmetric.exp b/pengine/test10/whitebox-asymmetric.exp index 67d6c76..1178fb6 100644 --- a/pengine/test10/whitebox-asymmetric.exp +++ b/pengine/test10/whitebox-asymmetric.exp @@ -3,7 +3,7 @@ - + @@ -19,7 +19,7 @@ - + diff --git a/pengine/test10/whitebox-fail1.exp b/pengine/test10/whitebox-fail1.exp index 5c4b26c..4cb6136 100644 --- a/pengine/test10/whitebox-fail1.exp +++ b/pengine/test10/whitebox-fail1.exp @@ -32,7 +32,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -158,7 +158,7 @@ - + @@ -179,7 +179,7 @@ - + diff --git a/pengine/test10/whitebox-fail2.exp b/pengine/test10/whitebox-fail2.exp index 5c4b26c..4cb6136 100644 --- a/pengine/test10/whitebox-fail2.exp +++ b/pengine/test10/whitebox-fail2.exp @@ -32,7 +32,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -72,7 +72,7 @@ - + @@ -142,7 +142,7 @@ - + @@ -158,7 +158,7 @@ - + @@ -179,7 +179,7 @@ - + diff --git a/pengine/test10/whitebox-fail3.exp b/pengine/test10/whitebox-fail3.exp index 95fc289..ec28f12 100644 --- a/pengine/test10/whitebox-fail3.exp +++ b/pengine/test10/whitebox-fail3.exp @@ -12,7 +12,7 @@ - + @@ -40,7 +40,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -98,7 +98,7 @@ - + @@ -114,7 +114,7 @@ - + diff --git a/pengine/test10/whitebox-imply-stop-on-fence.exp b/pengine/test10/whitebox-imply-stop-on-fence.exp index 9beb51d..6639eb9 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.exp +++ b/pengine/test10/whitebox-imply-stop-on-fence.exp @@ -272,7 +272,7 @@ - + @@ -288,7 +288,7 @@ - + @@ -309,7 +309,7 @@ - + diff --git a/pengine/test10/whitebox-move.exp b/pengine/test10/whitebox-move.exp index ecea360..4461890 100644 --- a/pengine/test10/whitebox-move.exp +++ b/pengine/test10/whitebox-move.exp @@ -29,7 +29,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -64,7 +64,7 @@ - + @@ -130,7 +130,7 @@ - + @@ -149,7 +149,7 @@ - + @@ -158,7 +158,7 @@ - + diff --git a/pengine/test10/whitebox-ms-ordering-move.exp b/pengine/test10/whitebox-ms-ordering-move.exp index 3b5598f..dc5e473 100644 --- a/pengine/test10/whitebox-ms-ordering-move.exp +++ b/pengine/test10/whitebox-ms-ordering-move.exp @@ -29,7 +29,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -83,7 +83,7 @@ - + diff --git a/pengine/test10/whitebox-ms-ordering.exp b/pengine/test10/whitebox-ms-ordering.exp index 43cb49a..e5eb99c 100644 --- a/pengine/test10/whitebox-ms-ordering.exp +++ b/pengine/test10/whitebox-ms-ordering.exp @@ -101,7 +101,7 @@ - + @@ -129,7 +129,7 @@ - + @@ -223,7 +223,7 @@ - + @@ -239,7 +239,7 @@ - + diff --git a/pengine/test10/whitebox-nested-group.exp b/pengine/test10/whitebox-nested-group.exp index 979a0f5..388c4d4 100644 --- a/pengine/test10/whitebox-nested-group.exp +++ b/pengine/test10/whitebox-nested-group.exp @@ -62,7 +62,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -248,7 +248,7 @@ - + @@ -264,7 +264,7 @@ - + @@ -386,7 +386,7 @@ - + @@ -402,7 +402,7 @@ - + diff --git a/pengine/test10/whitebox-orphan-ms.exp b/pengine/test10/whitebox-orphan-ms.exp index 6df1b8d..ef81317 100644 --- a/pengine/test10/whitebox-orphan-ms.exp +++ b/pengine/test10/whitebox-orphan-ms.exp @@ -135,7 +135,7 @@ - + @@ -151,7 +151,7 @@ - + @@ -167,7 +167,7 @@ - + @@ -176,7 +176,7 @@ - + diff --git a/pengine/test10/whitebox-orphaned.exp b/pengine/test10/whitebox-orphaned.exp index 32f8141..334e594 100644 --- a/pengine/test10/whitebox-orphaned.exp +++ b/pengine/test10/whitebox-orphaned.exp @@ -3,7 +3,7 @@ - + @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -65,7 +65,7 @@ - + diff --git a/pengine/test10/whitebox-start.exp b/pengine/test10/whitebox-start.exp index 11438e9..ccccf60 100644 --- a/pengine/test10/whitebox-start.exp +++ b/pengine/test10/whitebox-start.exp @@ -12,7 +12,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -86,7 +86,7 @@ - + @@ -140,7 +140,7 @@ - + diff --git a/pengine/test10/whitebox-stop.exp b/pengine/test10/whitebox-stop.exp index a1aa3ba..354b6d4 100644 --- a/pengine/test10/whitebox-stop.exp +++ b/pengine/test10/whitebox-stop.exp @@ -16,7 +16,7 @@ - + @@ -52,7 +52,7 @@ - + @@ -65,7 +65,7 @@ - + @@ -78,7 +78,7 @@ - + diff --git a/tools/attrd_updater.c b/tools/attrd_updater.c index 91bc4b4..33d751b 100644 --- a/tools/attrd_updater.c +++ b/tools/attrd_updater.c @@ -79,6 +79,7 @@ static int do_query(const char *attr_name, const char *attr_node, gboolean query static int do_update(char command, const char *attr_node, const char *attr_name, const char *attr_value, const char *attr_section, const char *attr_set, const char *attr_dampen, int attr_options); +static const char *get_hostname(const char *name); int main(int argc, char **argv) @@ -198,6 +199,8 @@ main(int argc, char **argv) crm_help('?', EX_USAGE); #endif } else { + + attr_node = get_hostname(attr_node); crm_exit(do_update(command, attr_node, attr_name, attr_value, attr_section, attr_set, attr_dampen, attr_options)); } @@ -351,6 +354,8 @@ do_query(const char *attr_name, const char *attr_node, gboolean query_all) attr_node = "localhost"; } + attr_node = get_hostname(attr_node); + /* Build and send attrd request, and get XML reply */ rc = send_attrd_query(attr_name, attr_node, &reply); if (rc != pcmk_ok) { @@ -394,3 +399,28 @@ do_update(char command, const char *attr_node, const char *attr_name, } return rc; } + +static const char * +get_hostname(const char *name) +{ + if(name != NULL + && safe_str_neq(name, "auto") + && safe_str_neq(name, "localhost")) { + return name; + + } else { + const char *target = getenv(crm_meta_name(XML_RSC_ATTR_TARGET)); + const char *host_pyhsical = getenv(crm_meta_name(PCMK_ENV_PHYSICAL_HOST)); + const char *host_pcmk = getenv("OCF_RESKEY_" CRM_META "_" XML_LRM_ATTR_TARGET); + + /* It is important we use the names by which the PE knows us */ + if(safe_str_eq(target, "host") && host_pyhsical != NULL) { + return host_pyhsical; + + } else if(host_pcmk) { + return host_pcmk; + } + } + + return name; +} diff --git a/tools/crm_mon.c b/tools/crm_mon.c index 29fc0e3..cad468e 100644 --- a/tools/crm_mon.c +++ b/tools/crm_mon.c @@ -1726,7 +1726,7 @@ print_node_attribute(gpointer name, gpointer user_data) const char *value = NULL; struct mon_attr_data *data = (struct mon_attr_data *) user_data; - value = g_hash_table_lookup(data->node->details->attrs, name); + value = node_attribute_raw(data->node, name); /* Print attribute name and value */ switch (output_format) { -- 1.8.3.1 From 50e264254fcdf90f5ad0ce429938c15495f99acb Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Thu, 24 Aug 2017 14:34:46 +1000 Subject: [PATCH 02/21] Fix: attrd: Allow values for all nodes to be queried --- tools/attrd_updater.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/attrd_updater.c b/tools/attrd_updater.c index 33d751b..de75496 100644 --- a/tools/attrd_updater.c +++ b/tools/attrd_updater.c @@ -351,11 +351,11 @@ do_query(const char *attr_name, const char *attr_node, gboolean query_all) attr_node = NULL; } else if (attr_node == NULL) { crm_debug("User did not specify node for query, using localhost"); - attr_node = "localhost"; + attr_node = get_hostname(attr_node); + } else { + attr_node = get_hostname(attr_node); } - attr_node = get_hostname(attr_node); - /* Build and send attrd request, and get XML reply */ rc = send_attrd_query(attr_name, attr_node, &reply); if (rc != pcmk_ok) { -- 1.8.3.1 From 67ebfc43eabf77e72d784084e23d3031bfc19710 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Thu, 24 Aug 2017 14:35:29 +1000 Subject: [PATCH 03/21] Fix: PE: Correctly interpret colocation with bundles --- pengine/graph.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pengine/graph.c b/pengine/graph.c index 3c5dc6b..990d8b8 100644 --- a/pengine/graph.c +++ b/pengine/graph.c @@ -413,9 +413,10 @@ graph_update_action(action_t * first, action_t * then, node_t * node, } static void -mark_start_blocked(resource_t *rsc) +mark_start_blocked(resource_t *rsc, resource_t *reason) { GListPtr gIter = rsc->actions; + char *reason_text = crm_strdup_printf("colocation with %s", reason->id); for (; gIter != NULL; gIter = gIter->next) { action_t *action = (action_t *) gIter->data; @@ -424,11 +425,12 @@ mark_start_blocked(resource_t *rsc) continue; } if (is_set(action->flags, pe_action_runnable)) { - clear_bit(action->flags, pe_action_runnable); + pe_action_set_flag_reason(__FUNCTION__, __LINE__, action, NULL, reason_text, pe_action_runnable, FALSE); update_colo_start_chain(action); update_action(action); } } + free(reason_text); } void @@ -445,6 +447,11 @@ update_colo_start_chain(action_t *action) return; } + if(rsc->parent) { + /* uber_parent() stops _before_ the bundle */ + rsc = rsc->parent; + } + /* if rsc has children, all the children need to have start set to * unrunnable before we follow the colo chain for the parent. */ for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { @@ -458,7 +465,7 @@ update_colo_start_chain(action_t *action) for (gIter = rsc->rsc_cons_lhs; gIter != NULL; gIter = gIter->next) { rsc_colocation_t *colocate_with = (rsc_colocation_t *)gIter->data; if (colocate_with->score == INFINITY) { - mark_start_blocked(colocate_with->rsc_lh); + mark_start_blocked(colocate_with->rsc_lh, action->rsc); } } } @@ -490,7 +497,7 @@ update_action(action_t * then) if (then->required_runnable_before == 0) { then->required_runnable_before = 1; } - clear_bit(then->flags, pe_action_runnable); + pe_clear_action_bit(then, pe_action_runnable); /* We are relying on the pe_order_one_or_more clause of * graph_update_action(), called as part of the: * @@ -1585,7 +1592,7 @@ graph_has_loop(action_t * init_action, action_t * action, action_wrapper_t * wra } done: - clear_bit(wrapper->action->flags, pe_action_tracking); + pe_clear_action_bit(wrapper->action, pe_action_tracking); return has_loop; } -- 1.8.3.1 From 3392d49b99c8d594af54549a41c962c46e26d7fd Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Fri, 25 Aug 2017 12:46:37 +1000 Subject: [PATCH 04/21] PE: bundle: Send an additional host list when container-attribute-target=host The list is modified to use the name of the host where the bundles are running so that agents can map between the two sets when necessary. --- lib/pengine/container.c | 1 + pengine/clone.c | 8 +++--- pengine/notif.c | 68 ++++++++++++++++++++++++++++++++++++++----------- pengine/notif.h | 2 +- 4 files changed, 59 insertions(+), 20 deletions(-) diff --git a/lib/pengine/container.c b/lib/pengine/container.c index 53965cf..5831b58 100644 --- a/lib/pengine/container.c +++ b/lib/pengine/container.c @@ -769,6 +769,7 @@ container_unpack(resource_t * rsc, pe_working_set_t * data_set) container_data->docker_host_options = buffer; if(container_data->attribute_target) { g_hash_table_replace(rsc->meta, strdup(XML_RSC_ATTR_TARGET), strdup(container_data->attribute_target)); + g_hash_table_replace(container_data->child->meta, strdup(XML_RSC_ATTR_TARGET), strdup(container_data->attribute_target)); } } else { diff --git a/pengine/clone.c b/pengine/clone.c index 1722166..41cb5cb 100644 --- a/pengine/clone.c +++ b/pengine/clone.c @@ -1227,25 +1227,25 @@ clone_expand(resource_t * rsc, pe_working_set_t * data_set) if (clone_data->start_notify) { collect_notification_data(rsc, TRUE, TRUE, clone_data->start_notify); - expand_notification_data(clone_data->start_notify, data_set); + expand_notification_data(rsc, clone_data->start_notify, data_set); create_notifications(rsc, clone_data->start_notify, data_set); } if (clone_data->stop_notify) { collect_notification_data(rsc, TRUE, TRUE, clone_data->stop_notify); - expand_notification_data(clone_data->stop_notify, data_set); + expand_notification_data(rsc, clone_data->stop_notify, data_set); create_notifications(rsc, clone_data->stop_notify, data_set); } if (clone_data->promote_notify) { collect_notification_data(rsc, TRUE, TRUE, clone_data->promote_notify); - expand_notification_data(clone_data->promote_notify, data_set); + expand_notification_data(rsc, clone_data->promote_notify, data_set); create_notifications(rsc, clone_data->promote_notify, data_set); } if (clone_data->demote_notify) { collect_notification_data(rsc, TRUE, TRUE, clone_data->demote_notify); - expand_notification_data(clone_data->demote_notify, data_set); + expand_notification_data(rsc, clone_data->demote_notify, data_set); create_notifications(rsc, clone_data->demote_notify, data_set); } diff --git a/pengine/notif.c b/pengine/notif.c index b8135b5..19a9751 100644 --- a/pengine/notif.c +++ b/pengine/notif.c @@ -17,6 +17,7 @@ */ #include +#include #include #include #include @@ -81,33 +82,60 @@ static notify_entry_t *dup_notify_entry(notify_entry_t *entry) return dup; } -static char * -expand_node_list(GListPtr list) +static void +expand_node_list(GListPtr list, char **uname, char **metal) { GListPtr gIter = NULL; char *node_list = NULL; + char *metal_list = NULL; + CRM_ASSERT(uname != NULL); if (list == NULL) { - return strdup(" "); + *uname = strdup(" "); + if(metal) { + *metal = strdup(" "); + } + return; } for (gIter = list; gIter != NULL; gIter = gIter->next) { + int len = 0; + int existing_len = 0; node_t *node = (node_t *) gIter->data; - if (node->details->uname) { - int existing_len = 0; - int len = 2 + strlen(node->details->uname); + CRM_ASSERT(node->details->uname); + len = 2 + strlen(node->details->uname); + + if(node_list) { + existing_len = strlen(node_list); + } +// crm_trace("Adding %s (%dc) at offset %d", node->details->uname, len - 2, existing_len); + node_list = realloc_safe(node_list, len + existing_len); + sprintf(node_list + existing_len, "%s%s", existing_len == 0 ? "":" ", node->details->uname); + + if(metal) { + existing_len = 0; + if(metal_list) { + existing_len = strlen(metal_list); + } - if(node_list) { - existing_len = strlen(node_list); + if(node->details->remote_rsc + && node->details->remote_rsc->container + && node->details->remote_rsc->container->running_on) { + node = node->details->remote_rsc->container->running_on->data; } - crm_trace("Adding %s (%dc) at offset %d", node->details->uname, len - 2, existing_len); - node_list = realloc_safe(node_list, len + existing_len); - sprintf(node_list + existing_len, "%s%s", existing_len == 0 ? "":" ", node->details->uname); + + CRM_ASSERT(node->details->uname); + len = 2 + strlen(node->details->uname); + metal_list = realloc_safe(metal_list, len + existing_len); + sprintf(metal_list + existing_len, "%s%s", existing_len == 0 ? "":" ", node->details->uname); } } - return node_list; + *uname = node_list; + if(metal) { + *metal = metal_list; + } } static void @@ -495,7 +523,7 @@ collect_notification_data(resource_t * rsc, gboolean state, gboolean activity, } gboolean -expand_notification_data(notify_data_t * n_data, pe_working_set_t * data_set) +expand_notification_data(resource_t *rsc, notify_data_t * n_data, pe_working_set_t * data_set) { /* Expand the notification entries into a key=value hashtable * This hashtable is later used in action2xml() @@ -503,6 +531,7 @@ expand_notification_data(notify_data_t * n_data, pe_working_set_t * data_set) gboolean required = FALSE; char *rsc_list = NULL; char *node_list = NULL; + char *metal_list = NULL; GListPtr nodes = NULL; if (n_data->stop) { @@ -576,13 +605,22 @@ expand_notification_data(notify_data_t * n_data, pe_working_set_t * data_set) g_hash_table_insert(n_data->keys, strdup("notify_inactive_resource"), rsc_list); nodes = g_hash_table_get_values(n_data->allowed_nodes); - node_list = expand_node_list(nodes); + expand_node_list(nodes, &node_list, NULL); g_hash_table_insert(n_data->keys, strdup("notify_available_uname"), node_list); g_list_free(nodes); - node_list = expand_node_list(data_set->nodes); + expand_node_list(data_set->nodes, &node_list, &metal_list); g_hash_table_insert(n_data->keys, strdup("notify_all_uname"), node_list); + { + const char *source = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET); + if(safe_str_eq("host", source)) { + g_hash_table_insert(n_data->keys, strdup("notify_all_hosts"), metal_list); + } else { + free(metal_list); + } + } + if (required && n_data->pre) { update_action_flags(n_data->pre, pe_action_optional | pe_action_clear, __FUNCTION__, __LINE__); update_action_flags(n_data->pre_done, pe_action_optional | pe_action_clear, __FUNCTION__, __LINE__); diff --git a/pengine/notif.h b/pengine/notif.h index f299342..da68874 100644 --- a/pengine/notif.h +++ b/pengine/notif.h @@ -28,7 +28,7 @@ notify_data_t * create_notification_boundaries(resource_t *rsc, void collect_notification_data(resource_t *rsc, gboolean state, gboolean activity, notify_data_t *n_data); -gboolean expand_notification_data(notify_data_t *n_data, +gboolean expand_notification_data(resource_t *rsc, notify_data_t *n_data, pe_working_set_t *data_set); void create_notifications(resource_t *rsc, notify_data_t *n_data, -- 1.8.3.1 From ccbdb2a215bad69c9e6ac2d74c0bbb1d1719db5a Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Mon, 28 Aug 2017 12:17:16 +1000 Subject: [PATCH 05/21] Tools: Allow bundle resources to read/write master scores based on the same logic as attrd (cf34f4c) --- include/crm/attrd.h | 2 ++ lib/common/utils.c | 28 ++++++++++++++++++++++++++++ pacemaker.spec.in | 4 +++- tools/Makefile.am | 2 +- tools/attrd_updater.c | 40 +++++++++------------------------------- tools/crm_attribute.c | 14 ++++++-------- tools/crm_master | 6 ++---- 7 files changed, 51 insertions(+), 45 deletions(-) diff --git a/include/crm/attrd.h b/include/crm/attrd.h index e294838..240f192 100644 --- a/include/crm/attrd.h +++ b/include/crm/attrd.h @@ -24,6 +24,8 @@ #define attrd_opt_remote 0x001 #define attrd_opt_private 0x002 +const char *attrd_get_target(const char *name); + int attrd_update_delegate(crm_ipc_t * ipc, char command, const char *host, const char *name, const char *value, const char *section, const char *set, const char *dampen, const char *user_name, int options); diff --git a/lib/common/utils.c b/lib/common/utils.c index f594c12..290a661 100644 --- a/lib/common/utils.c +++ b/lib/common/utils.c @@ -2156,3 +2156,31 @@ crm_gnutls_global_init(void) gnutls_global_init(); } #endif + +const char * +attrd_get_target(const char *name) +{ + if(safe_str_eq(name, "auto") || safe_str_eq(name, "localhost")) { + name = NULL; + } + + if(name != NULL) { + return name; + + } else { + const char *target = getenv(crm_meta_name(XML_RSC_ATTR_TARGET)); + const char *host_pyhsical = getenv(crm_meta_name(PCMK_ENV_PHYSICAL_HOST)); + const char *host_pcmk = getenv("OCF_RESKEY_" CRM_META "_" XML_LRM_ATTR_TARGET); + + /* It is important we use the names by which the PE knows us */ + if(safe_str_eq(target, "host") && host_pyhsical != NULL) { + return host_pyhsical; + + } else if(host_pcmk) { + return host_pcmk; + } + } + + // TODO? Call get_local_node_name() if name == NULL + return name; +} diff --git a/pacemaker.spec.in b/pacemaker.spec.in index 642af74..d0bc2c3 100644 --- a/pacemaker.spec.in +++ b/pacemaker.spec.in @@ -601,6 +601,7 @@ exit 0 %exclude %{_sbindir}/pacemaker_remoted %{_libexecdir}/pacemaker/* +%{_sbindir}/attrd_updater %{_sbindir}/crm_attribute %{_sbindir}/crm_master %{_sbindir}/crm_node @@ -619,6 +620,7 @@ exit 0 %doc %{_mandir}/man7/ocf_pacemaker_o2cb.* %doc %{_mandir}/man7/ocf_pacemaker_remote.* %doc %{_mandir}/man8/crm_attribute.* +%doc %{_mandir}/man8/attrd_updater.* %doc %{_mandir}/man8/crm_node.* %doc %{_mandir}/man8/crm_master.* %if %{with cman} @@ -668,7 +670,6 @@ exit 0 %config(noreplace) %{_sysconfdir}/init/crm_mon.conf %endif -%{_sbindir}/attrd_updater %{_sbindir}/cibadmin %{_sbindir}/crm_diff %{_sbindir}/crm_error @@ -704,6 +705,7 @@ exit 0 %exclude %{_mandir}/man7/ocf_pacemaker_o2cb.* %exclude %{_mandir}/man7/ocf_pacemaker_remote.* %doc %{_mandir}/man8/* +%exclude %{_mandir}/man8/attrd_updater.* %exclude %{_mandir}/man8/crm_attribute.* %exclude %{_mandir}/man8/crm_node.* %exclude %{_mandir}/man8/crm_master.* diff --git a/tools/Makefile.am b/tools/Makefile.am index 3548035..a601b8d 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -121,7 +121,7 @@ iso8601_SOURCES = test.iso8601.c iso8601_LDADD = $(COMMONLIBS) attrd_updater_SOURCES = attrd_updater.c -attrd_updater_LDADD = $(COMMONLIBS) +attrd_updater_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la $(COMMONLIBS) crm_ticket_SOURCES = crm_ticket.c crm_ticket_LDADD = $(top_builddir)/lib/pengine/libpe_rules.la \ diff --git a/tools/attrd_updater.c b/tools/attrd_updater.c index de75496..5e8b837 100644 --- a/tools/attrd_updater.c +++ b/tools/attrd_updater.c @@ -32,6 +32,7 @@ #include #include +#include /* *INDENT-OFF* */ static struct crm_option long_options[] = { @@ -79,7 +80,6 @@ static int do_query(const char *attr_name, const char *attr_node, gboolean query static int do_update(char command, const char *attr_node, const char *attr_name, const char *attr_value, const char *attr_section, const char *attr_set, const char *attr_dampen, int attr_options); -static const char *get_hostname(const char *name); int main(int argc, char **argv) @@ -200,7 +200,10 @@ main(int argc, char **argv) #endif } else { - attr_node = get_hostname(attr_node); + attr_node = attrd_get_target(attr_node); + if (attr_node == NULL) { + attr_node = get_local_node_name(); + } crm_exit(do_update(command, attr_node, attr_name, attr_value, attr_section, attr_set, attr_dampen, attr_options)); } @@ -349,11 +352,11 @@ do_query(const char *attr_name, const char *attr_node, gboolean query_all) /* Decide which node(s) to query */ if (query_all == TRUE) { attr_node = NULL; - } else if (attr_node == NULL) { - crm_debug("User did not specify node for query, using localhost"); - attr_node = get_hostname(attr_node); } else { - attr_node = get_hostname(attr_node); + attr_node = attrd_get_target(attr_node); + if (attr_node == NULL) { + attr_node = get_local_node_name(); + } } /* Build and send attrd request, and get XML reply */ @@ -399,28 +402,3 @@ do_update(char command, const char *attr_node, const char *attr_name, } return rc; } - -static const char * -get_hostname(const char *name) -{ - if(name != NULL - && safe_str_neq(name, "auto") - && safe_str_neq(name, "localhost")) { - return name; - - } else { - const char *target = getenv(crm_meta_name(XML_RSC_ATTR_TARGET)); - const char *host_pyhsical = getenv(crm_meta_name(PCMK_ENV_PHYSICAL_HOST)); - const char *host_pcmk = getenv("OCF_RESKEY_" CRM_META "_" XML_LRM_ATTR_TARGET); - - /* It is important we use the names by which the PE knows us */ - if(safe_str_eq(target, "host") && host_pyhsical != NULL) { - return host_pyhsical; - - } else if(host_pcmk) { - return host_pcmk; - } - } - - return name; -} diff --git a/tools/crm_attribute.c b/tools/crm_attribute.c index 60ded8d..b511282 100644 --- a/tools/crm_attribute.c +++ b/tools/crm_attribute.c @@ -246,15 +246,13 @@ main(int argc, char **argv) } else if (safe_str_eq(type, XML_CIB_TAG_CRMCONFIG)) { } else if (safe_str_neq(type, XML_CIB_TAG_TICKETS)) { + /* If we are being called from a resource agent via the cluster, + * the correct local node name will be passed as an environment + * variable. Otherwise, we have to ask the cluster. + */ + dest_uname = attrd_get_target(dest_uname); if (dest_uname == NULL) { - /* If we are being called from a resource agent via the cluster, - * the correct local node name will be passed as an environment - * variable. Otherwise, we have to ask the cluster. - */ - dest_uname = getenv("OCF_RESKEY_" CRM_META "_" XML_LRM_ATTR_TARGET); - if (dest_uname == NULL) { - dest_uname = get_local_node_name(); - } + dest_uname = get_local_node_name(); } rc = query_node_uuid(the_cib, dest_uname, &dest_node, &is_remote_node); diff --git a/tools/crm_master b/tools/crm_master index 7cce64d..7e31cea 100755 --- a/tools/crm_master +++ b/tools/crm_master @@ -1,7 +1,5 @@ #!/bin/bash -target=`crm_node -n` - TEMP=`getopt -o qDGQVN:U:v:i:l:r: --long version,help,resource:,node:,uname:,attr-value:,id:,update:,delete-attr,get-value,attr-id:,lifetime:,quiet \ -n 'crm_master' -- "$@"` @@ -12,7 +10,7 @@ eval set -- "$TEMP" while true ; do case "$1" in - -N|--node|-U|--uname) target="$2"; shift; shift;; + -N|--node|-U|--uname) options="$options $1 $2"; shift; shift;; -v|--attr-value|--update|-i|--id|--attr-id|-l|--lifetime) options="$options $1 $2"; shift; shift;; -Q|-q|--quiet|-D|--delete-attr|-G|--get-value|-V) options="$options $1"; shift;; -r|--resource) OCF_RESOURCE_INSTANCE=$2; shift; shift;; @@ -53,4 +51,4 @@ if [ -z "$OCF_RESOURCE_INSTANCE" ]; then exit 1 fi -crm_attribute -N $target -n master-$OCF_RESOURCE_INSTANCE $options +crm_attribute -n master-$OCF_RESOURCE_INSTANCE $options -- 1.8.3.1 From e3485d6fd5e9e6ec05d9cd6682d46da3e463d6c7 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Wed, 13 Sep 2017 13:31:09 +1000 Subject: [PATCH 06/21] Fix: PE: Prevent graph loops when fencing the host out from underneath a bundle --- pengine/allocate.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pengine/allocate.c b/pengine/allocate.c index 958fb23..d610035 100644 --- a/pengine/allocate.c +++ b/pengine/allocate.c @@ -1416,7 +1416,14 @@ fence_guest(pe_node_t *node, pe_action_t *done, pe_working_set_t *data_set) * it is restarted, so we always order pseudo-fencing after stop, not start * (even though start might be closer to what is done for a real reboot). */ - if (stop) { + if(stop && is_set(stop->flags, pe_action_pseudo)) { + pe_action_t *parent_stonith_op = pe_fence_op(stop->node, NULL, FALSE, NULL, data_set); + crm_info("Implying guest node %s is down (action %d) after %s fencing", + node->details->uname, stonith_op->id, stop->node->details->uname); + order_actions(parent_stonith_op, stonith_op, + pe_order_runnable_left|pe_order_implies_then); + + } else if (stop) { order_actions(stop, stonith_op, pe_order_runnable_left|pe_order_implies_then); crm_info("Implying guest node %s is down (action %d) " -- 1.8.3.1 From 2709e5c2e231e80da557acf3b736f970516ffbb9 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Wed, 13 Sep 2017 14:14:31 +1000 Subject: [PATCH 07/21] Fix: PE: Do not send notifications to unclean bundles --- pengine/notif.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pengine/notif.c b/pengine/notif.c index 19a9751..76c5a4a 100644 --- a/pengine/notif.c +++ b/pengine/notif.c @@ -691,7 +691,7 @@ create_notifications(resource_t * rsc, notify_data_t * n_data, pe_working_set_t * action. There's no reason to send the fenced node a stop notification */ if (stop && is_set(stop->flags, pe_action_pseudo) && - current_node->details->unclean) { + (current_node->details->unclean || current_node->details->remote_requires_reset) ) { continue; } -- 1.8.3.1 From d29ba5dce8d2bccf4a0c906c3bd02a87f7e42974 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Wed, 13 Sep 2017 20:06:15 +1000 Subject: [PATCH 08/21] Test: PE: Update bundle fence ordering --- pengine/test10/complex_enforce_colo.summary | 4 ++-- pengine/test10/enforce-colo1.summary | 2 +- pengine/test10/whitebox-imply-stop-on-fence.dot | 4 ++-- pengine/test10/whitebox-imply-stop-on-fence.exp | 4 ++-- pengine/test10/whitebox-imply-stop-on-fence.summary | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pengine/test10/complex_enforce_colo.summary b/pengine/test10/complex_enforce_colo.summary index 2332269..0426e98 100644 --- a/pengine/test10/complex_enforce_colo.summary +++ b/pengine/test10/complex_enforce_colo.summary @@ -113,7 +113,7 @@ Transition Summary: * Stop glance-api:2 (rhos6-node3) * Stop cinder-api ( rhos6-node1 ) due to unrunnable keystone-clone running * Stop cinder-scheduler ( rhos6-node1 ) due to required cinder-api start - * Stop cinder-volume ( rhos6-node1 ) + * Stop cinder-volume ( rhos6-node1 ) due to colocation with cinder-scheduler * Stop swift-account:0 (rhos6-node1) * Stop swift-account:1 (rhos6-node2) * Stop swift-account:2 (rhos6-node3) @@ -194,7 +194,7 @@ Transition Summary: * Stop heat-api-cloudwatch:0 ( rhos6-node1 ) due to required heat-api-cfn:0 start * Stop heat-api-cloudwatch:1 ( rhos6-node2 ) due to required heat-api-cfn:1 start * Stop heat-api-cloudwatch:2 ( rhos6-node3 ) due to required heat-api-cfn:2 start - * Stop heat-engine ( rhos6-node2 ) due to required heat-api-cloudwatch-clone running + * Stop heat-engine ( rhos6-node2 ) due to colocation with heat-api-cloudwatch-clone Executing cluster transition: * Pseudo action: glance-api-clone_stop_0 diff --git a/pengine/test10/enforce-colo1.summary b/pengine/test10/enforce-colo1.summary index 64815ae..4968326 100644 --- a/pengine/test10/enforce-colo1.summary +++ b/pengine/test10/enforce-colo1.summary @@ -10,7 +10,7 @@ Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] central (ocf::heartbeat:Dummy): Started rhel7-auto3 Transition Summary: - * Stop engine ( rhel7-auto3 ) + * Stop engine ( rhel7-auto3 ) due to colocation with central * Stop keystone:0 (rhel7-auto2) due to node availability * Stop keystone:1 (rhel7-auto3) due to node availability * Stop keystone:2 (rhel7-auto1) due to node availability diff --git a/pengine/test10/whitebox-imply-stop-on-fence.dot b/pengine/test10/whitebox-imply-stop-on-fence.dot index 5885d4b..8ef42fd 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.dot +++ b/pengine/test10/whitebox-imply-stop-on-fence.dot @@ -7,7 +7,6 @@ "R-lxc-01_kiff-01_stop_0 kiff-01" -> "R-lxc-01_kiff-01_start_0 kiff-02" [ style = bold] "R-lxc-01_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] "R-lxc-01_kiff-01_stop_0 kiff-01" -> "shared0-clone_stop_0" [ style = bold] -"R-lxc-01_kiff-01_stop_0 kiff-01" -> "stonith 'reboot' lxc-01_kiff-01" [ style = bold] "R-lxc-01_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] "R-lxc-02_kiff-01_monitor_10000 kiff-02" [ style=bold color="green" fontcolor="black"] "R-lxc-02_kiff-01_start_0 kiff-02" -> "R-lxc-02_kiff-01_monitor_10000 kiff-02" [ style = bold] @@ -16,7 +15,6 @@ "R-lxc-02_kiff-01_stop_0 kiff-01" -> "R-lxc-02_kiff-01_start_0 kiff-02" [ style = bold] "R-lxc-02_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] "R-lxc-02_kiff-01_stop_0 kiff-01" -> "shared0-clone_stop_0" [ style = bold] -"R-lxc-02_kiff-01_stop_0 kiff-01" -> "stonith 'reboot' lxc-02_kiff-01" [ style = bold] "R-lxc-02_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] "all_stopped" -> "fence-kiff-02_start_0 kiff-02" [ style = bold] "all_stopped" [ style=bold color="green" fontcolor="orange"] @@ -77,6 +75,8 @@ "stonith 'reboot' kiff-01" -> "lxc-02_kiff-01_stop_0 kiff-01" [ style = bold] "stonith 'reboot' kiff-01" -> "shared0-clone_stop_0" [ style = bold] "stonith 'reboot' kiff-01" -> "shared0_stop_0 kiff-01" [ style = bold] +"stonith 'reboot' kiff-01" -> "stonith 'reboot' lxc-01_kiff-01" [ style = bold] +"stonith 'reboot' kiff-01" -> "stonith 'reboot' lxc-02_kiff-01" [ style = bold] "stonith 'reboot' kiff-01" -> "stonith_complete" [ style = bold] "stonith 'reboot' kiff-01" [ style=bold color="green" fontcolor="black"] "stonith 'reboot' lxc-01_kiff-01" -> "stonith_complete" [ style = bold] diff --git a/pengine/test10/whitebox-imply-stop-on-fence.exp b/pengine/test10/whitebox-imply-stop-on-fence.exp index 6639eb9..d1e22ee 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.exp +++ b/pengine/test10/whitebox-imply-stop-on-fence.exp @@ -417,7 +417,7 @@ - + @@ -432,7 +432,7 @@ - + diff --git a/pengine/test10/whitebox-imply-stop-on-fence.summary b/pengine/test10/whitebox-imply-stop-on-fence.summary index a3e9ce8..87d7b4f 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.summary +++ b/pengine/test10/whitebox-imply-stop-on-fence.summary @@ -43,15 +43,15 @@ Executing cluster transition: * Fencing kiff-01 (reboot) * Pseudo action: lxc-01_kiff-01_stop_0 * Pseudo action: lxc-02_kiff-01_stop_0 - * Pseudo action: R-lxc-01_kiff-01_stop_0 - * Pseudo action: R-lxc-02_kiff-01_stop_0 * Pseudo action: stonith-lxc-02_kiff-01-reboot on lxc-02_kiff-01 * Pseudo action: stonith-lxc-01_kiff-01-reboot on lxc-01_kiff-01 * Pseudo action: stonith_complete + * Pseudo action: R-lxc-01_kiff-01_stop_0 + * Pseudo action: R-lxc-02_kiff-01_stop_0 + * Pseudo action: vm-fs_stop_0 * Pseudo action: shared0-clone_stop_0 * Resource action: R-lxc-01_kiff-01 start on kiff-02 * Resource action: R-lxc-02_kiff-01 start on kiff-02 - * Pseudo action: vm-fs_stop_0 * Resource action: lxc-01_kiff-01 start on kiff-02 * Resource action: lxc-02_kiff-01 start on kiff-02 * Pseudo action: shared0_stop_0 -- 1.8.3.1 From 8f19403bdaf4722b82d794c10e9911976bd68b82 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Wed, 13 Sep 2017 20:14:21 +1000 Subject: [PATCH 09/21] Test: PE: Prevent graph loops when fencing the host out from underneath a bundle --- pengine/regression.sh | 2 + pengine/test10/bundle-order-fencing.dot | 442 ++++++ pengine/test10/bundle-order-fencing.exp | 1982 +++++++++++++++++++++++++++ pengine/test10/bundle-order-fencing.scores | 1148 ++++++++++++++++ pengine/test10/bundle-order-fencing.summary | 222 +++ pengine/test10/bundle-order-fencing.xml | 799 +++++++++++ 6 files changed, 4595 insertions(+) create mode 100644 pengine/test10/bundle-order-fencing.dot create mode 100644 pengine/test10/bundle-order-fencing.exp create mode 100644 pengine/test10/bundle-order-fencing.scores create mode 100644 pengine/test10/bundle-order-fencing.summary create mode 100644 pengine/test10/bundle-order-fencing.xml diff --git a/pengine/regression.sh b/pengine/regression.sh index d1a8a3f..6c3be88 100755 --- a/pengine/regression.sh +++ b/pengine/regression.sh @@ -811,6 +811,8 @@ do_test bundle-order-startup-clone-2 "Bundle startup with clones" do_test bundle-order-stop-clone "Stop bundle because clone is stopping" do_test bundle-nested-colocation "Colocation of nested connection resources" +do_test bundle-order-fencing "Order pseudo bundle fencing after parent node fencing if both are happening" + echo "" do_test whitebox-fail1 "Fail whitebox container rsc." do_test whitebox-fail2 "Fail whitebox container rsc lrmd connection." diff --git a/pengine/test10/bundle-order-fencing.dot b/pengine/test10/bundle-order-fencing.dot new file mode 100644 index 0000000..0db9605 --- /dev/null +++ b/pengine/test10/bundle-order-fencing.dot @@ -0,0 +1,442 @@ +digraph "g" { +"Cancel redis_monitor_45000 redis-bundle-1" -> "redis_promote_0 redis-bundle-1" [ style = bold] +"Cancel redis_monitor_45000 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"Cancel redis_monitor_60000 redis-bundle-1" -> "redis_promote_0 redis-bundle-1" [ style = bold] +"Cancel redis_monitor_60000 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"all_stopped" -> "stonith-fence_ipmilan-5254000dcb3f_start_0 controller-2" [ style = bold] +"all_stopped" -> "stonith-fence_ipmilan-5254003e8e97_start_0 controller-1" [ style = bold] +"all_stopped" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-0_monitor_60000 controller-2" [ style=dashed color="red" fontcolor="black"] +"galera-bundle-0_start_0 controller-2" -> "galera-bundle-0_monitor_60000 controller-2" [ style = dashed] +"galera-bundle-0_start_0 controller-2" -> "galera_monitor_20000 galera-bundle-0" [ style = dashed] +"galera-bundle-0_start_0 controller-2" -> "galera_monitor_30000 galera-bundle-0" [ style = dashed] +"galera-bundle-0_start_0 controller-2" -> "galera_start_0 galera-bundle-0" [ style = dashed] +"galera-bundle-0_start_0 controller-2" [ style=dashed color="red" fontcolor="black"] +"galera-bundle-0_stop_0 controller-0" -> "all_stopped" [ style = bold] +"galera-bundle-0_stop_0 controller-0" -> "galera-bundle-0_start_0 controller-2" [ style = dashed] +"galera-bundle-0_stop_0 controller-0" -> "galera-bundle-docker-0_stop_0 controller-0" [ style = bold] +"galera-bundle-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-docker-0_stop_0 controller-0" -> "all_stopped" [ style = bold] +"galera-bundle-docker-0_stop_0 controller-0" -> "galera-bundle_stopped_0" [ style = bold] +"galera-bundle-docker-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-master_demote_0" -> "galera-bundle-master_demoted_0" [ style = bold] +"galera-bundle-master_demote_0" -> "galera_demote_0 galera-bundle-0" [ style = bold] +"galera-bundle-master_demote_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-master_demoted_0" -> "galera-bundle-master_start_0" [ style = bold] +"galera-bundle-master_demoted_0" -> "galera-bundle-master_stop_0" [ style = bold] +"galera-bundle-master_demoted_0" -> "galera-bundle_demoted_0" [ style = bold] +"galera-bundle-master_demoted_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-master_running_0" -> "galera-bundle_running_0" [ style = bold] +"galera-bundle-master_running_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-master_start_0" -> "galera-bundle-master_running_0" [ style = bold] +"galera-bundle-master_start_0" -> "galera_start_0 galera-bundle-0" [ style = dashed] +"galera-bundle-master_start_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-master_stop_0" -> "galera-bundle-master_stopped_0" [ style = bold] +"galera-bundle-master_stop_0" -> "galera_stop_0 galera-bundle-0" [ style = bold] +"galera-bundle-master_stop_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-master_stopped_0" -> "galera-bundle-master_start_0" [ style = bold] +"galera-bundle-master_stopped_0" -> "galera-bundle_stopped_0" [ style = bold] +"galera-bundle-master_stopped_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle_demote_0" -> "galera-bundle-master_demote_0" [ style = bold] +"galera-bundle_demote_0" -> "galera-bundle_demoted_0" [ style = bold] +"galera-bundle_demote_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle_demoted_0" -> "galera-bundle_start_0" [ style = bold] +"galera-bundle_demoted_0" -> "galera-bundle_stop_0" [ style = bold] +"galera-bundle_demoted_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle_running_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle_start_0" -> "galera-bundle-master_start_0" [ style = bold] +"galera-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle_stop_0" -> "galera-bundle-docker-0_stop_0 controller-0" [ style = bold] +"galera-bundle_stop_0" -> "galera-bundle-master_stop_0" [ style = bold] +"galera-bundle_stop_0" -> "galera_stop_0 galera-bundle-0" [ style = bold] +"galera-bundle_stop_0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle_stopped_0" -> "galera-bundle_start_0" [ style = bold] +"galera-bundle_stopped_0" [ style=bold color="green" fontcolor="orange"] +"galera_demote_0 galera-bundle-0" -> "galera-bundle-master_demoted_0" [ style = bold] +"galera_demote_0 galera-bundle-0" -> "galera_monitor_20000 galera-bundle-0" [ style = dashed] +"galera_demote_0 galera-bundle-0" -> "galera_monitor_30000 galera-bundle-0" [ style = dashed] +"galera_demote_0 galera-bundle-0" -> "galera_stop_0 galera-bundle-0" [ style = bold] +"galera_demote_0 galera-bundle-0" [ style=bold color="green" fontcolor="orange"] +"galera_monitor_20000 galera-bundle-0" [ style=dashed color="red" fontcolor="black"] +"galera_monitor_30000 galera-bundle-0" [ style=dashed color="red" fontcolor="black"] +"galera_start_0 galera-bundle-0" -> "galera-bundle-master_running_0" [ style = dashed] +"galera_start_0 galera-bundle-0" -> "galera_monitor_20000 galera-bundle-0" [ style = dashed] +"galera_start_0 galera-bundle-0" -> "galera_monitor_30000 galera-bundle-0" [ style = dashed] +"galera_start_0 galera-bundle-0" [ style=dashed color="red" fontcolor="black"] +"galera_stop_0 galera-bundle-0" -> "all_stopped" [ style = bold] +"galera_stop_0 galera-bundle-0" -> "galera-bundle-master_stopped_0" [ style = bold] +"galera_stop_0 galera-bundle-0" -> "galera_start_0 galera-bundle-0" [ style = dashed] +"galera_stop_0 galera-bundle-0" [ style=bold color="green" fontcolor="orange"] +"haproxy-bundle-docker-0_stop_0 controller-0" -> "all_stopped" [ style = bold] +"haproxy-bundle-docker-0_stop_0 controller-0" -> "haproxy-bundle_stopped_0" [ style = bold] +"haproxy-bundle-docker-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"haproxy-bundle_stop_0" -> "haproxy-bundle-docker-0_stop_0 controller-0" [ style = bold] +"haproxy-bundle_stop_0" [ style=bold color="green" fontcolor="orange"] +"haproxy-bundle_stopped_0" -> "ip-10.0.0.109_stop_0 controller-0" [ style = bold] +"haproxy-bundle_stopped_0" -> "ip-172.17.4.11_stop_0 controller-0" [ style = bold] +"haproxy-bundle_stopped_0" -> "ip-192.168.24.7_stop_0 controller-0" [ style = bold] +"haproxy-bundle_stopped_0" [ style=bold color="green" fontcolor="orange"] +"ip-10.0.0.109_monitor_10000 controller-1" [ style=bold color="green" fontcolor="black"] +"ip-10.0.0.109_start_0 controller-1" -> "ip-10.0.0.109_monitor_10000 controller-1" [ style = bold] +"ip-10.0.0.109_start_0 controller-1" [ style=bold color="green" fontcolor="black"] +"ip-10.0.0.109_stop_0 controller-0" -> "all_stopped" [ style = bold] +"ip-10.0.0.109_stop_0 controller-0" -> "ip-10.0.0.109_start_0 controller-1" [ style = bold] +"ip-10.0.0.109_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"ip-172.17.4.11_monitor_10000 controller-1" [ style=bold color="green" fontcolor="black"] +"ip-172.17.4.11_start_0 controller-1" -> "ip-172.17.4.11_monitor_10000 controller-1" [ style = bold] +"ip-172.17.4.11_start_0 controller-1" [ style=bold color="green" fontcolor="black"] +"ip-172.17.4.11_stop_0 controller-0" -> "all_stopped" [ style = bold] +"ip-172.17.4.11_stop_0 controller-0" -> "ip-172.17.4.11_start_0 controller-1" [ style = bold] +"ip-172.17.4.11_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"ip-192.168.24.7_monitor_10000 controller-2" [ style=bold color="green" fontcolor="black"] +"ip-192.168.24.7_start_0 controller-2" -> "ip-192.168.24.7_monitor_10000 controller-2" [ style = bold] +"ip-192.168.24.7_start_0 controller-2" [ style=bold color="green" fontcolor="black"] +"ip-192.168.24.7_stop_0 controller-0" -> "all_stopped" [ style = bold] +"ip-192.168.24.7_stop_0 controller-0" -> "ip-192.168.24.7_start_0 controller-2" [ style = bold] +"ip-192.168.24.7_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-0_monitor_60000 controller-1" [ style=dashed color="red" fontcolor="black"] +"rabbitmq-bundle-0_start_0 controller-1" -> "rabbitmq-bundle-0_monitor_60000 controller-1" [ style = dashed] +"rabbitmq-bundle-0_start_0 controller-1" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] +"rabbitmq-bundle-0_start_0 controller-1" -> "rabbitmq_start_0 rabbitmq-bundle-0" [ style = dashed] +"rabbitmq-bundle-0_start_0 controller-1" [ style=dashed color="red" fontcolor="black"] +"rabbitmq-bundle-0_stop_0 controller-0" -> "all_stopped" [ style = bold] +"rabbitmq-bundle-0_stop_0 controller-0" -> "rabbitmq-bundle-0_start_0 controller-1" [ style = dashed] +"rabbitmq-bundle-0_stop_0 controller-0" -> "rabbitmq-bundle-docker-0_stop_0 controller-0" [ style = bold] +"rabbitmq-bundle-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq-bundle_running_0" [ style = bold] +"rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] +"rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] +"rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "rabbitmq-bundle-clone_pre_notify_start_0" [ style = bold] +"rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "rabbitmq-bundle_stopped_0" [ style = bold] +"rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_confirmed-pre_notify_start_0" -> "rabbitmq-bundle-clone_post_notify_running_0" [ style = bold] +"rabbitmq-bundle-clone_confirmed-pre_notify_start_0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq-bundle-clone_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" -> "rabbitmq-bundle-clone_post_notify_stopped_0" [ style = bold] +"rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" -> "rabbitmq-bundle-clone_stop_0" [ style = bold] +"rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +"rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq_post_notify_running_0 rabbitmq-bundle-0" [ style = bold] +"rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq_post_notify_running_0 rabbitmq-bundle-1" [ style = bold] +"rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq_post_notify_running_0 rabbitmq-bundle-2" [ style = bold] +"rabbitmq-bundle-clone_post_notify_running_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_post_notify_stopped_0" -> "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" [ style = bold] +"rabbitmq-bundle-clone_post_notify_stopped_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" [ style = bold] +"rabbitmq-bundle-clone_post_notify_stopped_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-2" [ style = bold] +"rabbitmq-bundle-clone_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_pre_notify_start_0" -> "rabbitmq-bundle-clone_confirmed-pre_notify_start_0" [ style = bold] +"rabbitmq-bundle-clone_pre_notify_start_0" -> "rabbitmq_pre_notify_start_0 rabbitmq-bundle-1" [ style = bold] +"rabbitmq-bundle-clone_pre_notify_start_0" -> "rabbitmq_pre_notify_start_0 rabbitmq-bundle-2" [ style = bold] +"rabbitmq-bundle-clone_pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_pre_notify_stop_0" -> "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style = bold] +"rabbitmq-bundle-clone_pre_notify_stop_0" -> "rabbitmq_pre_notify_stop_0 rabbitmq-bundle-1" [ style = bold] +"rabbitmq-bundle-clone_pre_notify_stop_0" -> "rabbitmq_pre_notify_stop_0 rabbitmq-bundle-2" [ style = bold] +"rabbitmq-bundle-clone_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_running_0" -> "rabbitmq-bundle-clone_post_notify_running_0" [ style = bold] +"rabbitmq-bundle-clone_running_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_start_0" -> "rabbitmq-bundle-clone_running_0" [ style = bold] +"rabbitmq-bundle-clone_start_0" -> "rabbitmq_start_0 rabbitmq-bundle-0" [ style = dashed] +"rabbitmq-bundle-clone_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_stop_0" -> "rabbitmq-bundle-clone_stopped_0" [ style = bold] +"rabbitmq-bundle-clone_stop_0" -> "rabbitmq_stop_0 rabbitmq-bundle-0" [ style = bold] +"rabbitmq-bundle-clone_stop_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-clone_stopped_0" -> "rabbitmq-bundle-clone_post_notify_stopped_0" [ style = bold] +"rabbitmq-bundle-clone_stopped_0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq-bundle-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-docker-0_stop_0 controller-0" -> "all_stopped" [ style = bold] +"rabbitmq-bundle-docker-0_stop_0 controller-0" -> "rabbitmq-bundle_stopped_0" [ style = bold] +"rabbitmq-bundle-docker-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle_running_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle_start_0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle_stop_0" -> "rabbitmq-bundle-clone_stop_0" [ style = bold] +"rabbitmq-bundle_stop_0" -> "rabbitmq-bundle-docker-0_stop_0 controller-0" [ style = bold] +"rabbitmq-bundle_stop_0" -> "rabbitmq_stop_0 rabbitmq-bundle-0" [ style = bold] +"rabbitmq-bundle_stop_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle_stopped_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq_confirmed-post_notify_stonith_0" -> "all_stopped" [ style = bold] +"rabbitmq_confirmed-post_notify_stonith_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style=dashed color="red" fontcolor="black"] +"rabbitmq_post_notify_running_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +"rabbitmq_post_notify_running_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq_post_notify_running_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +"rabbitmq_post_notify_running_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq_post_notify_running_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +"rabbitmq_post_notify_running_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" [ style = bold] +"rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" -> "rabbitmq_confirmed-post_notify_stonith_0" [ style = bold] +"rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq_post_notify_stonith_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" [ style = bold] +"rabbitmq_post_notify_stonith_0 rabbitmq-bundle-2" -> "rabbitmq_confirmed-post_notify_stonith_0" [ style = bold] +"rabbitmq_post_notify_stonith_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq_post_notify_stonith_0" -> "rabbitmq_confirmed-post_notify_stonith_0" [ style = bold] +"rabbitmq_post_notify_stonith_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" [ style = bold] +"rabbitmq_post_notify_stonith_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-2" [ style = bold] +"rabbitmq_post_notify_stonith_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq_pre_notify_start_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-pre_notify_start_0" [ style = bold] +"rabbitmq_pre_notify_start_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq_pre_notify_start_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-pre_notify_start_0" [ style = bold] +"rabbitmq_pre_notify_start_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq_pre_notify_stop_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style = bold] +"rabbitmq_pre_notify_stop_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq_pre_notify_stop_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style = bold] +"rabbitmq_pre_notify_stop_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq_start_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_running_0" [ style = dashed] +"rabbitmq_start_0 rabbitmq-bundle-0" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] +"rabbitmq_start_0 rabbitmq-bundle-0" [ style=dashed color="red" fontcolor="black"] +"rabbitmq_stop_0 rabbitmq-bundle-0" -> "all_stopped" [ style = bold] +"rabbitmq_stop_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_stopped_0" [ style = bold] +"rabbitmq_stop_0 rabbitmq-bundle-0" -> "rabbitmq_start_0 rabbitmq-bundle-0" [ style = dashed] +"rabbitmq_stop_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-0_monitor_60000 controller-1" [ style=dashed color="red" fontcolor="black"] +"redis-bundle-0_start_0 controller-1" -> "redis-bundle-0_monitor_60000 controller-1" [ style = dashed] +"redis-bundle-0_start_0 controller-1" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +"redis-bundle-0_start_0 controller-1" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] +"redis-bundle-0_start_0 controller-1" -> "redis_start_0 redis-bundle-0" [ style = dashed] +"redis-bundle-0_start_0 controller-1" [ style=dashed color="red" fontcolor="black"] +"redis-bundle-0_stop_0 controller-0" -> "all_stopped" [ style = bold] +"redis-bundle-0_stop_0 controller-0" -> "redis-bundle-0_start_0 controller-1" [ style = dashed] +"redis-bundle-0_stop_0 controller-0" -> "redis-bundle-docker-0_stop_0 controller-0" [ style = bold] +"redis-bundle-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-docker-0_stop_0 controller-0" -> "all_stopped" [ style = bold] +"redis-bundle-docker-0_stop_0 controller-0" -> "redis-bundle_stopped_0" [ style = bold] +"redis-bundle-docker-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis-bundle-master_pre_notify_promote_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis-bundle-master_pre_notify_start_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis-bundle-master_pre_notify_stop_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis-bundle_demoted_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis_monitor_20000 redis-bundle-1" [ style = bold] +"redis-bundle-master_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-post_notify_promoted_0" -> "redis-bundle_promoted_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_promoted_0" -> "redis_monitor_20000 redis-bundle-1" [ style = bold] +"redis-bundle-master_confirmed-post_notify_promoted_0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +"redis-bundle-master_confirmed-post_notify_promoted_0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] +"redis-bundle-master_confirmed-post_notify_promoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-post_notify_running_0" -> "redis-bundle-master_pre_notify_promote_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_running_0" -> "redis-bundle_running_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_20000 redis-bundle-1" [ style = bold] +"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] +"redis-bundle-master_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] +"redis-bundle-master_confirmed-post_notify_stopped_0" -> "redis-bundle-master_pre_notify_promote_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_stopped_0" -> "redis-bundle-master_pre_notify_start_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_stopped_0" -> "redis-bundle_stopped_0" [ style = bold] +"redis-bundle-master_confirmed-post_notify_stopped_0" -> "redis_monitor_20000 redis-bundle-1" [ style = bold] +"redis-bundle-master_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-pre_notify_demote_0" -> "redis-bundle-master_demote_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_demote_0" -> "redis-bundle-master_post_notify_demoted_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_demote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-pre_notify_promote_0" -> "redis-bundle-master_post_notify_promoted_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_promote_0" -> "redis-bundle-master_promote_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-pre_notify_start_0" -> "redis-bundle-master_post_notify_running_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_start_0" -> "redis-bundle-master_start_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_confirmed-pre_notify_stop_0" -> "redis-bundle-master_post_notify_stopped_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_stop_0" -> "redis-bundle-master_stop_0" [ style = bold] +"redis-bundle-master_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_demote_0" -> "redis-bundle-master_demoted_0" [ style = bold] +"redis-bundle-master_demote_0" -> "redis_demote_0 redis-bundle-0" [ style = bold] +"redis-bundle-master_demote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_demoted_0" -> "redis-bundle-master_post_notify_demoted_0" [ style = bold] +"redis-bundle-master_demoted_0" -> "redis-bundle-master_promote_0" [ style = bold] +"redis-bundle-master_demoted_0" -> "redis-bundle-master_start_0" [ style = bold] +"redis-bundle-master_demoted_0" -> "redis-bundle-master_stop_0" [ style = bold] +"redis-bundle-master_demoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_post_notify_demoted_0" -> "redis-bundle-master_confirmed-post_notify_demoted_0" [ style = bold] +"redis-bundle-master_post_notify_demoted_0" -> "redis_post_notify_demoted_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_post_notify_demoted_0" -> "redis_post_notify_demoted_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_post_notify_demoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_post_notify_promoted_0" -> "redis-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] +"redis-bundle-master_post_notify_promoted_0" -> "redis_post_notify_promoted_0 redis-bundle-0" [ style = bold] +"redis-bundle-master_post_notify_promoted_0" -> "redis_post_notify_promoted_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_post_notify_promoted_0" -> "redis_post_notify_promoted_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_post_notify_promoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_post_notify_running_0" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +"redis-bundle-master_post_notify_running_0" -> "redis_post_notify_running_0 redis-bundle-0" [ style = bold] +"redis-bundle-master_post_notify_running_0" -> "redis_post_notify_running_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_post_notify_running_0" -> "redis_post_notify_running_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_post_notify_running_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_post_notify_stopped_0" -> "redis-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] +"redis-bundle-master_post_notify_stopped_0" -> "redis_post_notify_stonith_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_post_notify_stopped_0" -> "redis_post_notify_stonith_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_pre_notify_demote_0" -> "redis-bundle-master_confirmed-pre_notify_demote_0" [ style = bold] +"redis-bundle-master_pre_notify_demote_0" -> "redis_pre_notify_demote_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_pre_notify_demote_0" -> "redis_pre_notify_demote_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_pre_notify_demote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_pre_notify_promote_0" -> "redis-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] +"redis-bundle-master_pre_notify_promote_0" -> "redis_pre_notify_promote_0 redis-bundle-0" [ style = bold] +"redis-bundle-master_pre_notify_promote_0" -> "redis_pre_notify_promote_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_pre_notify_promote_0" -> "redis_pre_notify_promote_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_pre_notify_start_0" -> "redis-bundle-master_confirmed-pre_notify_start_0" [ style = bold] +"redis-bundle-master_pre_notify_start_0" -> "redis_pre_notify_start_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_pre_notify_start_0" -> "redis_pre_notify_start_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_pre_notify_stop_0" -> "redis-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] +"redis-bundle-master_pre_notify_stop_0" -> "redis_pre_notify_stop_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_pre_notify_stop_0" -> "redis_pre_notify_stop_0 redis-bundle-2" [ style = bold] +"redis-bundle-master_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_promote_0" -> "redis_promote_0 redis-bundle-1" [ style = bold] +"redis-bundle-master_promote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_promoted_0" -> "redis-bundle-master_post_notify_promoted_0" [ style = bold] +"redis-bundle-master_promoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_running_0" -> "redis-bundle-master_post_notify_running_0" [ style = bold] +"redis-bundle-master_running_0" -> "redis-bundle-master_promote_0" [ style = bold] +"redis-bundle-master_running_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_start_0" -> "redis-bundle-master_running_0" [ style = bold] +"redis-bundle-master_start_0" -> "redis_start_0 redis-bundle-0" [ style = dashed] +"redis-bundle-master_start_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_stop_0" -> "redis-bundle-master_stopped_0" [ style = bold] +"redis-bundle-master_stop_0" -> "redis_stop_0 redis-bundle-0" [ style = bold] +"redis-bundle-master_stop_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-master_stopped_0" -> "redis-bundle-master_post_notify_stopped_0" [ style = bold] +"redis-bundle-master_stopped_0" -> "redis-bundle-master_promote_0" [ style = bold] +"redis-bundle-master_stopped_0" -> "redis-bundle-master_start_0" [ style = bold] +"redis-bundle-master_stopped_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_demote_0" -> "redis-bundle-master_demote_0" [ style = bold] +"redis-bundle_demote_0" -> "redis-bundle_demoted_0" [ style = bold] +"redis-bundle_demote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_demoted_0" -> "redis-bundle_promote_0" [ style = bold] +"redis-bundle_demoted_0" -> "redis-bundle_start_0" [ style = bold] +"redis-bundle_demoted_0" -> "redis-bundle_stop_0" [ style = bold] +"redis-bundle_demoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_promote_0" -> "redis-bundle-master_promote_0" [ style = bold] +"redis-bundle_promote_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_promoted_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_running_0" -> "redis-bundle_promote_0" [ style = bold] +"redis-bundle_running_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_start_0" -> "redis-bundle-master_start_0" [ style = bold] +"redis-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_stop_0" -> "redis-bundle-docker-0_stop_0 controller-0" [ style = bold] +"redis-bundle_stop_0" -> "redis-bundle-master_stop_0" [ style = bold] +"redis-bundle_stop_0" -> "redis_stop_0 redis-bundle-0" [ style = bold] +"redis-bundle_stop_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle_stopped_0" -> "redis-bundle_promote_0" [ style = bold] +"redis-bundle_stopped_0" -> "redis-bundle_start_0" [ style = bold] +"redis-bundle_stopped_0" [ style=bold color="green" fontcolor="orange"] +"redis_confirmed-post_notify_stonith_0" -> "all_stopped" [ style = bold] +"redis_confirmed-post_notify_stonith_0" -> "redis_monitor_20000 redis-bundle-1" [ style = bold] +"redis_confirmed-post_notify_stonith_0" [ style=bold color="green" fontcolor="orange"] +"redis_demote_0 redis-bundle-0" -> "redis-bundle-master_demoted_0" [ style = bold] +"redis_demote_0 redis-bundle-0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +"redis_demote_0 redis-bundle-0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] +"redis_demote_0 redis-bundle-0" -> "redis_stop_0 redis-bundle-0" [ style = bold] +"redis_demote_0 redis-bundle-0" [ style=bold color="green" fontcolor="orange"] +"redis_monitor_20000 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_monitor_45000 redis-bundle-0" [ style=dashed color="red" fontcolor="black"] +"redis_monitor_60000 redis-bundle-0" [ style=dashed color="red" fontcolor="black"] +"redis_post_notify_demoted_0 redis-bundle-1" -> "redis-bundle-master_confirmed-post_notify_demoted_0" [ style = bold] +"redis_post_notify_demoted_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_demoted_0 redis-bundle-2" -> "redis-bundle-master_confirmed-post_notify_demoted_0" [ style = bold] +"redis_post_notify_demoted_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_promoted_0 redis-bundle-0" -> "redis-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] +"redis_post_notify_promoted_0 redis-bundle-0" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_promoted_0 redis-bundle-1" -> "redis-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] +"redis_post_notify_promoted_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_promoted_0 redis-bundle-2" -> "redis-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] +"redis_post_notify_promoted_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_running_0 redis-bundle-0" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +"redis_post_notify_running_0 redis-bundle-0" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_running_0 redis-bundle-1" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +"redis_post_notify_running_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_running_0 redis-bundle-2" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +"redis_post_notify_running_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_stonith_0 redis-bundle-1" -> "redis-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] +"redis_post_notify_stonith_0 redis-bundle-1" -> "redis_confirmed-post_notify_stonith_0" [ style = bold] +"redis_post_notify_stonith_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_stonith_0 redis-bundle-2" -> "redis-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] +"redis_post_notify_stonith_0 redis-bundle-2" -> "redis_confirmed-post_notify_stonith_0" [ style = bold] +"redis_post_notify_stonith_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_post_notify_stonith_0" -> "redis_confirmed-post_notify_stonith_0" [ style = bold] +"redis_post_notify_stonith_0" -> "redis_post_notify_stonith_0 redis-bundle-1" [ style = bold] +"redis_post_notify_stonith_0" -> "redis_post_notify_stonith_0 redis-bundle-2" [ style = bold] +"redis_post_notify_stonith_0" [ style=bold color="green" fontcolor="orange"] +"redis_pre_notify_demote_0 redis-bundle-1" -> "redis-bundle-master_confirmed-pre_notify_demote_0" [ style = bold] +"redis_pre_notify_demote_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_demote_0 redis-bundle-2" -> "redis-bundle-master_confirmed-pre_notify_demote_0" [ style = bold] +"redis_pre_notify_demote_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_promote_0 redis-bundle-0" -> "redis-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] +"redis_pre_notify_promote_0 redis-bundle-0" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_promote_0 redis-bundle-1" -> "redis-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] +"redis_pre_notify_promote_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_promote_0 redis-bundle-2" -> "redis-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] +"redis_pre_notify_promote_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_start_0 redis-bundle-1" -> "redis-bundle-master_confirmed-pre_notify_start_0" [ style = bold] +"redis_pre_notify_start_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_start_0 redis-bundle-2" -> "redis-bundle-master_confirmed-pre_notify_start_0" [ style = bold] +"redis_pre_notify_start_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_stop_0 redis-bundle-1" -> "redis-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] +"redis_pre_notify_stop_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_pre_notify_stop_0 redis-bundle-2" -> "redis-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] +"redis_pre_notify_stop_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +"redis_promote_0 redis-bundle-1" -> "redis-bundle-master_promoted_0" [ style = bold] +"redis_promote_0 redis-bundle-1" -> "redis_monitor_20000 redis-bundle-1" [ style = bold] +"redis_promote_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +"redis_start_0 redis-bundle-0" -> "redis-bundle-master_running_0" [ style = dashed] +"redis_start_0 redis-bundle-0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +"redis_start_0 redis-bundle-0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] +"redis_start_0 redis-bundle-0" [ style=dashed color="red" fontcolor="black"] +"redis_stop_0 redis-bundle-0" -> "all_stopped" [ style = bold] +"redis_stop_0 redis-bundle-0" -> "redis-bundle-master_stopped_0" [ style = bold] +"redis_stop_0 redis-bundle-0" -> "redis_start_0 redis-bundle-0" [ style = dashed] +"redis_stop_0 redis-bundle-0" [ style=bold color="green" fontcolor="orange"] +"stonith 'off' galera-bundle-0" -> "galera-bundle-master_stop_0" [ style = bold] +"stonith 'off' galera-bundle-0" -> "galera_demote_0 galera-bundle-0" [ style = bold] +"stonith 'off' galera-bundle-0" -> "galera_stop_0 galera-bundle-0" [ style = bold] +"stonith 'off' galera-bundle-0" -> "stonith_complete" [ style = bold] +"stonith 'off' galera-bundle-0" [ style=bold color="green" fontcolor="orange"] +"stonith 'off' rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_stop_0" [ style = bold] +"stonith 'off' rabbitmq-bundle-0" -> "rabbitmq_post_notify_stonith_0" [ style = bold] +"stonith 'off' rabbitmq-bundle-0" -> "rabbitmq_stop_0 rabbitmq-bundle-0" [ style = bold] +"stonith 'off' rabbitmq-bundle-0" -> "stonith_complete" [ style = bold] +"stonith 'off' rabbitmq-bundle-0" [ style=bold color="green" fontcolor="orange"] +"stonith 'off' redis-bundle-0" -> "redis-bundle-master_stop_0" [ style = bold] +"stonith 'off' redis-bundle-0" -> "redis_demote_0 redis-bundle-0" [ style = bold] +"stonith 'off' redis-bundle-0" -> "redis_post_notify_stonith_0" [ style = bold] +"stonith 'off' redis-bundle-0" -> "redis_stop_0 redis-bundle-0" [ style = bold] +"stonith 'off' redis-bundle-0" -> "stonith_complete" [ style = bold] +"stonith 'off' redis-bundle-0" [ style=bold color="green" fontcolor="orange"] +"stonith 'reboot' controller-0" -> "galera-bundle-0_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "galera-bundle-docker-0_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "haproxy-bundle-docker-0_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "ip-10.0.0.109_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "ip-172.17.4.11_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "ip-192.168.24.7_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "rabbitmq-bundle-0_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "rabbitmq-bundle-docker-0_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "redis-bundle-0_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "redis-bundle-docker-0_stop_0 controller-0" [ style = bold] +"stonith 'reboot' controller-0" -> "stonith 'off' galera-bundle-0" [ style = bold] +"stonith 'reboot' controller-0" -> "stonith 'off' rabbitmq-bundle-0" [ style = bold] +"stonith 'reboot' controller-0" -> "stonith 'off' redis-bundle-0" [ style = bold] +"stonith 'reboot' controller-0" -> "stonith_complete" [ style = bold] +"stonith 'reboot' controller-0" [ style=bold color="green" fontcolor="black"] +"stonith-fence_ipmilan-5254000dcb3f_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] +"stonith-fence_ipmilan-5254000dcb3f_start_0 controller-2" -> "stonith-fence_ipmilan-5254000dcb3f_monitor_60000 controller-2" [ style = bold] +"stonith-fence_ipmilan-5254000dcb3f_start_0 controller-2" [ style=bold color="green" fontcolor="black"] +"stonith-fence_ipmilan-5254000dcb3f_stop_0 controller-0" -> "all_stopped" [ style = bold] +"stonith-fence_ipmilan-5254000dcb3f_stop_0 controller-0" -> "stonith-fence_ipmilan-5254000dcb3f_start_0 controller-2" [ style = bold] +"stonith-fence_ipmilan-5254000dcb3f_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"stonith-fence_ipmilan-5254003e8e97_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] +"stonith-fence_ipmilan-5254003e8e97_start_0 controller-1" -> "stonith-fence_ipmilan-5254003e8e97_monitor_60000 controller-1" [ style = bold] +"stonith-fence_ipmilan-5254003e8e97_start_0 controller-1" [ style=bold color="green" fontcolor="black"] +"stonith-fence_ipmilan-5254003e8e97_stop_0 controller-0" -> "all_stopped" [ style = bold] +"stonith-fence_ipmilan-5254003e8e97_stop_0 controller-0" -> "stonith-fence_ipmilan-5254003e8e97_start_0 controller-1" [ style = bold] +"stonith-fence_ipmilan-5254003e8e97_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"stonith_complete" -> "all_stopped" [ style = bold] +"stonith_complete" -> "galera-bundle-0_start_0 controller-2" [ style = dashed] +"stonith_complete" -> "galera_start_0 galera-bundle-0" [ style = dashed] +"stonith_complete" -> "ip-10.0.0.109_start_0 controller-1" [ style = bold] +"stonith_complete" -> "ip-172.17.4.11_start_0 controller-1" [ style = bold] +"stonith_complete" -> "ip-192.168.24.7_start_0 controller-2" [ style = bold] +"stonith_complete" -> "rabbitmq-bundle-0_start_0 controller-1" [ style = dashed] +"stonith_complete" -> "rabbitmq_start_0 rabbitmq-bundle-0" [ style = dashed] +"stonith_complete" -> "redis-bundle-0_start_0 controller-1" [ style = dashed] +"stonith_complete" -> "redis_promote_0 redis-bundle-1" [ style = bold] +"stonith_complete" -> "redis_start_0 redis-bundle-0" [ style = dashed] +"stonith_complete" [ style=bold color="green" fontcolor="orange"] +} diff --git a/pengine/test10/bundle-order-fencing.exp b/pengine/test10/bundle-order-fencing.exp new file mode 100644 index 0000000..d072d85 --- /dev/null +++ b/pengine/test10/bundle-order-fencing.exp @@ -0,0 +1,1982 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pengine/test10/bundle-order-fencing.scores b/pengine/test10/bundle-order-fencing.scores new file mode 100644 index 0000000..9037624 --- /dev/null +++ b/pengine/test10/bundle-order-fencing.scores @@ -0,0 +1,1148 @@ +Allocation scores: +Using the original execution date of: 2017-09-12 10:51:59Z +clone_color: galera-bundle-master allocation score on controller-0: -INFINITY +clone_color: galera-bundle-master allocation score on controller-1: -INFINITY +clone_color: galera-bundle-master allocation score on controller-2: -INFINITY +clone_color: galera-bundle-master allocation score on galera-bundle-0: 0 +clone_color: galera-bundle-master allocation score on galera-bundle-1: 0 +clone_color: galera-bundle-master allocation score on galera-bundle-2: 0 +clone_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: galera-bundle-master allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: galera-bundle-master allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: galera:0 allocation score on controller-0: -INFINITY +clone_color: galera:0 allocation score on controller-1: -INFINITY +clone_color: galera:0 allocation score on controller-2: -INFINITY +clone_color: galera:0 allocation score on galera-bundle-0: INFINITY +clone_color: galera:0 allocation score on galera-bundle-1: -INFINITY +clone_color: galera:0 allocation score on galera-bundle-2: -INFINITY +clone_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: galera:0 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: galera:0 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: galera:1 allocation score on controller-0: -INFINITY +clone_color: galera:1 allocation score on controller-1: -INFINITY +clone_color: galera:1 allocation score on controller-2: -INFINITY +clone_color: galera:1 allocation score on galera-bundle-0: -INFINITY +clone_color: galera:1 allocation score on galera-bundle-1: INFINITY +clone_color: galera:1 allocation score on galera-bundle-2: -INFINITY +clone_color: galera:1 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: galera:1 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: galera:1 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: galera:2 allocation score on controller-0: -INFINITY +clone_color: galera:2 allocation score on controller-1: -INFINITY +clone_color: galera:2 allocation score on controller-2: -INFINITY +clone_color: galera:2 allocation score on galera-bundle-0: -INFINITY +clone_color: galera:2 allocation score on galera-bundle-1: -INFINITY +clone_color: galera:2 allocation score on galera-bundle-2: INFINITY +clone_color: galera:2 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: galera:2 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: galera:2 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: rabbitmq-bundle-clone allocation score on controller-0: -INFINITY +clone_color: rabbitmq-bundle-clone allocation score on controller-1: -INFINITY +clone_color: rabbitmq-bundle-clone allocation score on controller-2: -INFINITY +clone_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-0: 0 +clone_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-1: 0 +clone_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-2: 0 +clone_color: rabbitmq:0 allocation score on controller-0: -INFINITY +clone_color: rabbitmq:0 allocation score on controller-1: -INFINITY +clone_color: rabbitmq:0 allocation score on controller-2: -INFINITY +clone_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: INFINITY +clone_color: rabbitmq:0 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: rabbitmq:0 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: rabbitmq:1 allocation score on controller-0: -INFINITY +clone_color: rabbitmq:1 allocation score on controller-1: -INFINITY +clone_color: rabbitmq:1 allocation score on controller-2: -INFINITY +clone_color: rabbitmq:1 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: rabbitmq:1 allocation score on rabbitmq-bundle-1: INFINITY +clone_color: rabbitmq:1 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: rabbitmq:2 allocation score on controller-0: -INFINITY +clone_color: rabbitmq:2 allocation score on controller-1: -INFINITY +clone_color: rabbitmq:2 allocation score on controller-2: -INFINITY +clone_color: rabbitmq:2 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: rabbitmq:2 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: rabbitmq:2 allocation score on rabbitmq-bundle-2: INFINITY +clone_color: redis-bundle-master allocation score on controller-0: -INFINITY +clone_color: redis-bundle-master allocation score on controller-1: -INFINITY +clone_color: redis-bundle-master allocation score on controller-2: -INFINITY +clone_color: redis-bundle-master allocation score on galera-bundle-0: -INFINITY +clone_color: redis-bundle-master allocation score on galera-bundle-1: -INFINITY +clone_color: redis-bundle-master allocation score on galera-bundle-2: -INFINITY +clone_color: redis-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: redis-bundle-master allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: redis-bundle-master allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: redis-bundle-master allocation score on redis-bundle-0: 0 +clone_color: redis-bundle-master allocation score on redis-bundle-1: 0 +clone_color: redis-bundle-master allocation score on redis-bundle-2: 0 +clone_color: redis:0 allocation score on controller-0: -INFINITY +clone_color: redis:0 allocation score on controller-1: -INFINITY +clone_color: redis:0 allocation score on controller-2: -INFINITY +clone_color: redis:0 allocation score on galera-bundle-0: -INFINITY +clone_color: redis:0 allocation score on galera-bundle-1: -INFINITY +clone_color: redis:0 allocation score on galera-bundle-2: -INFINITY +clone_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: redis:0 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: redis:0 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: redis:0 allocation score on redis-bundle-0: INFINITY +clone_color: redis:0 allocation score on redis-bundle-1: -INFINITY +clone_color: redis:0 allocation score on redis-bundle-2: -INFINITY +clone_color: redis:1 allocation score on controller-0: -INFINITY +clone_color: redis:1 allocation score on controller-1: -INFINITY +clone_color: redis:1 allocation score on controller-2: -INFINITY +clone_color: redis:1 allocation score on galera-bundle-0: -INFINITY +clone_color: redis:1 allocation score on galera-bundle-1: -INFINITY +clone_color: redis:1 allocation score on galera-bundle-2: -INFINITY +clone_color: redis:1 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: redis:1 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: redis:1 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: redis:1 allocation score on redis-bundle-0: -INFINITY +clone_color: redis:1 allocation score on redis-bundle-1: INFINITY +clone_color: redis:1 allocation score on redis-bundle-2: -INFINITY +clone_color: redis:2 allocation score on controller-0: -INFINITY +clone_color: redis:2 allocation score on controller-1: -INFINITY +clone_color: redis:2 allocation score on controller-2: -INFINITY +clone_color: redis:2 allocation score on galera-bundle-0: -INFINITY +clone_color: redis:2 allocation score on galera-bundle-1: -INFINITY +clone_color: redis:2 allocation score on galera-bundle-2: -INFINITY +clone_color: redis:2 allocation score on rabbitmq-bundle-0: -INFINITY +clone_color: redis:2 allocation score on rabbitmq-bundle-1: -INFINITY +clone_color: redis:2 allocation score on rabbitmq-bundle-2: -INFINITY +clone_color: redis:2 allocation score on redis-bundle-0: -INFINITY +clone_color: redis:2 allocation score on redis-bundle-1: -INFINITY +clone_color: redis:2 allocation score on redis-bundle-2: INFINITY +container_color: galera-bundle allocation score on controller-0: 0 +container_color: galera-bundle allocation score on controller-1: 0 +container_color: galera-bundle allocation score on controller-2: 0 +container_color: galera-bundle allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera-bundle-0 allocation score on controller-0: INFINITY +container_color: galera-bundle-0 allocation score on controller-1: 0 +container_color: galera-bundle-0 allocation score on controller-2: 0 +container_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle-0 allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle-0 allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera-bundle-1 allocation score on controller-0: 0 +container_color: galera-bundle-1 allocation score on controller-1: INFINITY +container_color: galera-bundle-1 allocation score on controller-2: 0 +container_color: galera-bundle-1 allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle-1 allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle-1 allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera-bundle-2 allocation score on controller-0: 0 +container_color: galera-bundle-2 allocation score on controller-1: 0 +container_color: galera-bundle-2 allocation score on controller-2: INFINITY +container_color: galera-bundle-2 allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle-2 allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle-2 allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera-bundle-docker-0 allocation score on controller-0: INFINITY +container_color: galera-bundle-docker-0 allocation score on controller-1: 0 +container_color: galera-bundle-docker-0 allocation score on controller-2: 0 +container_color: galera-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera-bundle-docker-1 allocation score on controller-0: 0 +container_color: galera-bundle-docker-1 allocation score on controller-1: INFINITY +container_color: galera-bundle-docker-1 allocation score on controller-2: 0 +container_color: galera-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera-bundle-docker-2 allocation score on controller-0: 0 +container_color: galera-bundle-docker-2 allocation score on controller-1: 0 +container_color: galera-bundle-docker-2 allocation score on controller-2: INFINITY +container_color: galera-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera-bundle-master allocation score on controller-0: 0 +container_color: galera-bundle-master allocation score on controller-1: 0 +container_color: galera-bundle-master allocation score on controller-2: 0 +container_color: galera-bundle-master allocation score on galera-bundle-0: -INFINITY +container_color: galera-bundle-master allocation score on galera-bundle-1: -INFINITY +container_color: galera-bundle-master allocation score on galera-bundle-2: -INFINITY +container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera-bundle-master allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera-bundle-master allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera:0 allocation score on controller-0: 0 +container_color: galera:0 allocation score on controller-1: 0 +container_color: galera:0 allocation score on controller-2: 0 +container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-1: -INFINITY +container_color: galera:0 allocation score on galera-bundle-2: -INFINITY +container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera:0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera:0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera:1 allocation score on controller-0: 0 +container_color: galera:1 allocation score on controller-1: 0 +container_color: galera:1 allocation score on controller-2: 0 +container_color: galera:1 allocation score on galera-bundle-0: -INFINITY +container_color: galera:1 allocation score on galera-bundle-1: -INFINITY +container_color: galera:1 allocation score on galera-bundle-2: -INFINITY +container_color: galera:1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera:1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera:1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: galera:2 allocation score on controller-0: 0 +container_color: galera:2 allocation score on controller-1: 0 +container_color: galera:2 allocation score on controller-2: 0 +container_color: galera:2 allocation score on galera-bundle-0: -INFINITY +container_color: galera:2 allocation score on galera-bundle-1: -INFINITY +container_color: galera:2 allocation score on galera-bundle-2: -INFINITY +container_color: galera:2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: galera:2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: galera:2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on controller-0: 0 +container_color: haproxy-bundle allocation score on controller-0: 0 +container_color: haproxy-bundle allocation score on controller-0: 0 +container_color: haproxy-bundle allocation score on controller-0: 0 +container_color: haproxy-bundle allocation score on controller-0: 0 +container_color: haproxy-bundle allocation score on controller-0: 0 +container_color: haproxy-bundle allocation score on controller-0: 0 +container_color: haproxy-bundle allocation score on controller-1: 0 +container_color: haproxy-bundle allocation score on controller-1: 0 +container_color: haproxy-bundle allocation score on controller-1: 0 +container_color: haproxy-bundle allocation score on controller-1: 0 +container_color: haproxy-bundle allocation score on controller-1: 0 +container_color: haproxy-bundle allocation score on controller-1: 0 +container_color: haproxy-bundle allocation score on controller-1: 0 +container_color: haproxy-bundle allocation score on controller-2: 0 +container_color: haproxy-bundle allocation score on controller-2: 0 +container_color: haproxy-bundle allocation score on controller-2: 0 +container_color: haproxy-bundle allocation score on controller-2: 0 +container_color: haproxy-bundle allocation score on controller-2: 0 +container_color: haproxy-bundle allocation score on controller-2: 0 +container_color: haproxy-bundle allocation score on controller-2: 0 +container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-0: INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-0 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on controller-2: 0 +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-0: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +container_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +container_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-0: 0 +container_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on controller-2: 0 +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: rabbitmq-bundle allocation score on controller-0: 0 +container_color: rabbitmq-bundle allocation score on controller-1: 0 +container_color: rabbitmq-bundle allocation score on controller-2: 0 +container_color: rabbitmq-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq-bundle-0 allocation score on controller-0: INFINITY +container_color: rabbitmq-bundle-0 allocation score on controller-1: 0 +container_color: rabbitmq-bundle-0 allocation score on controller-2: 0 +container_color: rabbitmq-bundle-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq-bundle-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq-bundle-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq-bundle-1 allocation score on controller-0: 0 +container_color: rabbitmq-bundle-1 allocation score on controller-1: INFINITY +container_color: rabbitmq-bundle-1 allocation score on controller-2: 0 +container_color: rabbitmq-bundle-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq-bundle-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq-bundle-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq-bundle-2 allocation score on controller-0: 0 +container_color: rabbitmq-bundle-2 allocation score on controller-1: 0 +container_color: rabbitmq-bundle-2 allocation score on controller-2: INFINITY +container_color: rabbitmq-bundle-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq-bundle-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq-bundle-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq-bundle-clone allocation score on controller-0: 0 +container_color: rabbitmq-bundle-clone allocation score on controller-1: 0 +container_color: rabbitmq-bundle-clone allocation score on controller-2: 0 +container_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-0: 0 +container_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-1: 0 +container_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-2: 0 +container_color: rabbitmq-bundle-docker-0 allocation score on controller-0: INFINITY +container_color: rabbitmq-bundle-docker-0 allocation score on controller-1: 0 +container_color: rabbitmq-bundle-docker-0 allocation score on controller-2: 0 +container_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq-bundle-docker-1 allocation score on controller-0: 0 +container_color: rabbitmq-bundle-docker-1 allocation score on controller-1: INFINITY +container_color: rabbitmq-bundle-docker-1 allocation score on controller-2: 0 +container_color: rabbitmq-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq-bundle-docker-2 allocation score on controller-0: 0 +container_color: rabbitmq-bundle-docker-2 allocation score on controller-1: 0 +container_color: rabbitmq-bundle-docker-2 allocation score on controller-2: INFINITY +container_color: rabbitmq-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq:0 allocation score on controller-0: 0 +container_color: rabbitmq:0 allocation score on controller-1: 0 +container_color: rabbitmq:0 allocation score on controller-2: 0 +container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: INFINITY +container_color: rabbitmq:0 allocation score on rabbitmq-bundle-1: 0 +container_color: rabbitmq:0 allocation score on rabbitmq-bundle-2: 0 +container_color: rabbitmq:1 allocation score on controller-0: 0 +container_color: rabbitmq:1 allocation score on controller-1: 0 +container_color: rabbitmq:1 allocation score on controller-2: 0 +container_color: rabbitmq:1 allocation score on rabbitmq-bundle-0: 0 +container_color: rabbitmq:1 allocation score on rabbitmq-bundle-1: INFINITY +container_color: rabbitmq:1 allocation score on rabbitmq-bundle-2: 0 +container_color: rabbitmq:2 allocation score on controller-0: 0 +container_color: rabbitmq:2 allocation score on controller-1: 0 +container_color: rabbitmq:2 allocation score on controller-2: 0 +container_color: rabbitmq:2 allocation score on rabbitmq-bundle-0: 0 +container_color: rabbitmq:2 allocation score on rabbitmq-bundle-1: 0 +container_color: rabbitmq:2 allocation score on rabbitmq-bundle-2: INFINITY +container_color: redis-bundle allocation score on controller-0: 0 +container_color: redis-bundle allocation score on controller-1: 0 +container_color: redis-bundle allocation score on controller-2: 0 +container_color: redis-bundle allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle allocation score on redis-bundle-2: -INFINITY +container_color: redis-bundle-0 allocation score on controller-0: INFINITY +container_color: redis-bundle-0 allocation score on controller-1: 0 +container_color: redis-bundle-0 allocation score on controller-2: 0 +container_color: redis-bundle-0 allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle-0 allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle-0 allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle-0 allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle-0 allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle-0 allocation score on redis-bundle-2: -INFINITY +container_color: redis-bundle-1 allocation score on controller-0: 0 +container_color: redis-bundle-1 allocation score on controller-1: INFINITY +container_color: redis-bundle-1 allocation score on controller-2: 0 +container_color: redis-bundle-1 allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle-1 allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle-1 allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle-1 allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle-1 allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle-1 allocation score on redis-bundle-2: -INFINITY +container_color: redis-bundle-2 allocation score on controller-0: 0 +container_color: redis-bundle-2 allocation score on controller-1: 0 +container_color: redis-bundle-2 allocation score on controller-2: INFINITY +container_color: redis-bundle-2 allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle-2 allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle-2 allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle-2 allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle-2 allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle-2 allocation score on redis-bundle-2: -INFINITY +container_color: redis-bundle-docker-0 allocation score on controller-0: INFINITY +container_color: redis-bundle-docker-0 allocation score on controller-1: 0 +container_color: redis-bundle-docker-0 allocation score on controller-2: 0 +container_color: redis-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +container_color: redis-bundle-docker-1 allocation score on controller-0: 0 +container_color: redis-bundle-docker-1 allocation score on controller-1: INFINITY +container_color: redis-bundle-docker-1 allocation score on controller-2: 0 +container_color: redis-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +container_color: redis-bundle-docker-2 allocation score on controller-0: 0 +container_color: redis-bundle-docker-2 allocation score on controller-1: 0 +container_color: redis-bundle-docker-2 allocation score on controller-2: INFINITY +container_color: redis-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +container_color: redis-bundle-master allocation score on controller-0: 0 +container_color: redis-bundle-master allocation score on controller-1: 0 +container_color: redis-bundle-master allocation score on controller-2: 0 +container_color: redis-bundle-master allocation score on galera-bundle-0: -INFINITY +container_color: redis-bundle-master allocation score on galera-bundle-1: -INFINITY +container_color: redis-bundle-master allocation score on galera-bundle-2: -INFINITY +container_color: redis-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis-bundle-master allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis-bundle-master allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis-bundle-master allocation score on redis-bundle-0: -INFINITY +container_color: redis-bundle-master allocation score on redis-bundle-1: -INFINITY +container_color: redis-bundle-master allocation score on redis-bundle-2: -INFINITY +container_color: redis:0 allocation score on controller-0: 0 +container_color: redis:0 allocation score on controller-1: 0 +container_color: redis:0 allocation score on controller-2: 0 +container_color: redis:0 allocation score on galera-bundle-0: -INFINITY +container_color: redis:0 allocation score on galera-bundle-1: -INFINITY +container_color: redis:0 allocation score on galera-bundle-2: -INFINITY +container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis:0 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis:0 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-1: -INFINITY +container_color: redis:0 allocation score on redis-bundle-2: -INFINITY +container_color: redis:1 allocation score on controller-0: 0 +container_color: redis:1 allocation score on controller-1: 0 +container_color: redis:1 allocation score on controller-2: 0 +container_color: redis:1 allocation score on galera-bundle-0: -INFINITY +container_color: redis:1 allocation score on galera-bundle-1: -INFINITY +container_color: redis:1 allocation score on galera-bundle-2: -INFINITY +container_color: redis:1 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis:1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis:1 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis:1 allocation score on redis-bundle-0: -INFINITY +container_color: redis:1 allocation score on redis-bundle-1: -INFINITY +container_color: redis:1 allocation score on redis-bundle-2: -INFINITY +container_color: redis:2 allocation score on controller-0: 0 +container_color: redis:2 allocation score on controller-1: 0 +container_color: redis:2 allocation score on controller-2: 0 +container_color: redis:2 allocation score on galera-bundle-0: -INFINITY +container_color: redis:2 allocation score on galera-bundle-1: -INFINITY +container_color: redis:2 allocation score on galera-bundle-2: -INFINITY +container_color: redis:2 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: redis:2 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: redis:2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: redis:2 allocation score on redis-bundle-0: -INFINITY +container_color: redis:2 allocation score on redis-bundle-1: -INFINITY +container_color: redis:2 allocation score on redis-bundle-2: -INFINITY +galera:0 promotion score on galera-bundle-0: -1 +galera:1 promotion score on galera-bundle-1: 100 +galera:2 promotion score on galera-bundle-2: 100 +native_color: galera-bundle-0 allocation score on controller-0: INFINITY +native_color: galera-bundle-0 allocation score on controller-1: 0 +native_color: galera-bundle-0 allocation score on controller-2: 0 +native_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY +native_color: galera-bundle-0 allocation score on galera-bundle-1: -INFINITY +native_color: galera-bundle-0 allocation score on galera-bundle-2: -INFINITY +native_color: galera-bundle-0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera-bundle-0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera-bundle-0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera-bundle-1 allocation score on controller-0: 0 +native_color: galera-bundle-1 allocation score on controller-1: INFINITY +native_color: galera-bundle-1 allocation score on controller-2: 0 +native_color: galera-bundle-1 allocation score on galera-bundle-0: -INFINITY +native_color: galera-bundle-1 allocation score on galera-bundle-1: -INFINITY +native_color: galera-bundle-1 allocation score on galera-bundle-2: -INFINITY +native_color: galera-bundle-1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera-bundle-1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera-bundle-1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera-bundle-2 allocation score on controller-0: 0 +native_color: galera-bundle-2 allocation score on controller-1: 0 +native_color: galera-bundle-2 allocation score on controller-2: INFINITY +native_color: galera-bundle-2 allocation score on galera-bundle-0: -INFINITY +native_color: galera-bundle-2 allocation score on galera-bundle-1: -INFINITY +native_color: galera-bundle-2 allocation score on galera-bundle-2: -INFINITY +native_color: galera-bundle-2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera-bundle-2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera-bundle-2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera-bundle-docker-0 allocation score on controller-0: -INFINITY +native_color: galera-bundle-docker-0 allocation score on controller-1: -INFINITY +native_color: galera-bundle-docker-0 allocation score on controller-2: -INFINITY +native_color: galera-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +native_color: galera-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +native_color: galera-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +native_color: galera-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera-bundle-docker-1 allocation score on controller-0: -INFINITY +native_color: galera-bundle-docker-1 allocation score on controller-1: INFINITY +native_color: galera-bundle-docker-1 allocation score on controller-2: 0 +native_color: galera-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +native_color: galera-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +native_color: galera-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +native_color: galera-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera-bundle-docker-2 allocation score on controller-0: -INFINITY +native_color: galera-bundle-docker-2 allocation score on controller-1: -INFINITY +native_color: galera-bundle-docker-2 allocation score on controller-2: INFINITY +native_color: galera-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +native_color: galera-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +native_color: galera-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +native_color: galera-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera:0 allocation score on controller-0: -INFINITY +native_color: galera:0 allocation score on controller-1: -INFINITY +native_color: galera:0 allocation score on controller-2: -INFINITY +native_color: galera:0 allocation score on galera-bundle-0: INFINITY +native_color: galera:0 allocation score on galera-bundle-1: -INFINITY +native_color: galera:0 allocation score on galera-bundle-2: -INFINITY +native_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera:0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera:0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera:1 allocation score on controller-0: -INFINITY +native_color: galera:1 allocation score on controller-1: -INFINITY +native_color: galera:1 allocation score on controller-2: -INFINITY +native_color: galera:1 allocation score on galera-bundle-0: -INFINITY +native_color: galera:1 allocation score on galera-bundle-1: INFINITY +native_color: galera:1 allocation score on galera-bundle-2: -INFINITY +native_color: galera:1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera:1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera:1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: galera:2 allocation score on controller-0: -INFINITY +native_color: galera:2 allocation score on controller-1: -INFINITY +native_color: galera:2 allocation score on controller-2: -INFINITY +native_color: galera:2 allocation score on galera-bundle-0: -INFINITY +native_color: galera:2 allocation score on galera-bundle-1: -INFINITY +native_color: galera:2 allocation score on galera-bundle-2: INFINITY +native_color: galera:2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: galera:2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: galera:2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on controller-0: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on controller-1: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on controller-2: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on controller-0: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on controller-1: 0 +native_color: haproxy-bundle-docker-1 allocation score on controller-2: INFINITY +native_color: haproxy-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on controller-0: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on controller-1: INFINITY +native_color: haproxy-bundle-docker-2 allocation score on controller-2: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +native_color: haproxy-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +native_color: ip-10.0.0.109 allocation score on controller-0: -INFINITY +native_color: ip-10.0.0.109 allocation score on controller-1: 0 +native_color: ip-10.0.0.109 allocation score on controller-2: 0 +native_color: ip-10.0.0.109 allocation score on galera-bundle-0: -INFINITY +native_color: ip-10.0.0.109 allocation score on galera-bundle-1: -INFINITY +native_color: ip-10.0.0.109 allocation score on galera-bundle-2: -INFINITY +native_color: ip-10.0.0.109 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: ip-10.0.0.109 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: ip-10.0.0.109 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: ip-10.0.0.109 allocation score on redis-bundle-0: -INFINITY +native_color: ip-10.0.0.109 allocation score on redis-bundle-1: -INFINITY +native_color: ip-10.0.0.109 allocation score on redis-bundle-2: -INFINITY +native_color: ip-172.17.1.14 allocation score on controller-0: -INFINITY +native_color: ip-172.17.1.14 allocation score on controller-1: 0 +native_color: ip-172.17.1.14 allocation score on controller-2: INFINITY +native_color: ip-172.17.1.14 allocation score on galera-bundle-0: -INFINITY +native_color: ip-172.17.1.14 allocation score on galera-bundle-1: -INFINITY +native_color: ip-172.17.1.14 allocation score on galera-bundle-2: -INFINITY +native_color: ip-172.17.1.14 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: ip-172.17.1.14 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: ip-172.17.1.14 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: ip-172.17.1.14 allocation score on redis-bundle-0: -INFINITY +native_color: ip-172.17.1.14 allocation score on redis-bundle-1: -INFINITY +native_color: ip-172.17.1.14 allocation score on redis-bundle-2: -INFINITY +native_color: ip-172.17.1.19 allocation score on controller-0: -INFINITY +native_color: ip-172.17.1.19 allocation score on controller-1: 0 +native_color: ip-172.17.1.19 allocation score on controller-2: INFINITY +native_color: ip-172.17.1.19 allocation score on galera-bundle-0: -INFINITY +native_color: ip-172.17.1.19 allocation score on galera-bundle-1: -INFINITY +native_color: ip-172.17.1.19 allocation score on galera-bundle-2: -INFINITY +native_color: ip-172.17.1.19 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: ip-172.17.1.19 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: ip-172.17.1.19 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: ip-172.17.1.19 allocation score on redis-bundle-0: -INFINITY +native_color: ip-172.17.1.19 allocation score on redis-bundle-1: -INFINITY +native_color: ip-172.17.1.19 allocation score on redis-bundle-2: -INFINITY +native_color: ip-172.17.3.19 allocation score on controller-0: -INFINITY +native_color: ip-172.17.3.19 allocation score on controller-1: 0 +native_color: ip-172.17.3.19 allocation score on controller-2: INFINITY +native_color: ip-172.17.3.19 allocation score on galera-bundle-0: -INFINITY +native_color: ip-172.17.3.19 allocation score on galera-bundle-1: -INFINITY +native_color: ip-172.17.3.19 allocation score on galera-bundle-2: -INFINITY +native_color: ip-172.17.3.19 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: ip-172.17.3.19 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: ip-172.17.3.19 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: ip-172.17.3.19 allocation score on redis-bundle-0: -INFINITY +native_color: ip-172.17.3.19 allocation score on redis-bundle-1: -INFINITY +native_color: ip-172.17.3.19 allocation score on redis-bundle-2: -INFINITY +native_color: ip-172.17.4.11 allocation score on controller-0: -INFINITY +native_color: ip-172.17.4.11 allocation score on controller-1: 0 +native_color: ip-172.17.4.11 allocation score on controller-2: 0 +native_color: ip-172.17.4.11 allocation score on galera-bundle-0: -INFINITY +native_color: ip-172.17.4.11 allocation score on galera-bundle-1: -INFINITY +native_color: ip-172.17.4.11 allocation score on galera-bundle-2: -INFINITY +native_color: ip-172.17.4.11 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: ip-172.17.4.11 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: ip-172.17.4.11 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: ip-172.17.4.11 allocation score on redis-bundle-0: -INFINITY +native_color: ip-172.17.4.11 allocation score on redis-bundle-1: -INFINITY +native_color: ip-172.17.4.11 allocation score on redis-bundle-2: -INFINITY +native_color: ip-192.168.24.7 allocation score on controller-0: -INFINITY +native_color: ip-192.168.24.7 allocation score on controller-1: 0 +native_color: ip-192.168.24.7 allocation score on controller-2: 0 +native_color: ip-192.168.24.7 allocation score on galera-bundle-0: -INFINITY +native_color: ip-192.168.24.7 allocation score on galera-bundle-1: -INFINITY +native_color: ip-192.168.24.7 allocation score on galera-bundle-2: -INFINITY +native_color: ip-192.168.24.7 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: ip-192.168.24.7 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: ip-192.168.24.7 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: ip-192.168.24.7 allocation score on redis-bundle-0: -INFINITY +native_color: ip-192.168.24.7 allocation score on redis-bundle-1: -INFINITY +native_color: ip-192.168.24.7 allocation score on redis-bundle-2: -INFINITY +native_color: openstack-cinder-volume allocation score on controller-0: 0 +native_color: openstack-cinder-volume allocation score on controller-1: 0 +native_color: openstack-cinder-volume allocation score on controller-2: INFINITY +native_color: openstack-cinder-volume allocation score on galera-bundle-0: -INFINITY +native_color: openstack-cinder-volume allocation score on galera-bundle-1: -INFINITY +native_color: openstack-cinder-volume allocation score on galera-bundle-2: -INFINITY +native_color: openstack-cinder-volume allocation score on rabbitmq-bundle-0: -INFINITY +native_color: openstack-cinder-volume allocation score on rabbitmq-bundle-1: -INFINITY +native_color: openstack-cinder-volume allocation score on rabbitmq-bundle-2: -INFINITY +native_color: openstack-cinder-volume allocation score on redis-bundle-0: -INFINITY +native_color: openstack-cinder-volume allocation score on redis-bundle-1: -INFINITY +native_color: openstack-cinder-volume allocation score on redis-bundle-2: -INFINITY +native_color: rabbitmq-bundle-0 allocation score on controller-0: INFINITY +native_color: rabbitmq-bundle-0 allocation score on controller-1: 0 +native_color: rabbitmq-bundle-0 allocation score on controller-2: 0 +native_color: rabbitmq-bundle-0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq-bundle-0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq-bundle-0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq-bundle-1 allocation score on controller-0: 0 +native_color: rabbitmq-bundle-1 allocation score on controller-1: INFINITY +native_color: rabbitmq-bundle-1 allocation score on controller-2: 0 +native_color: rabbitmq-bundle-1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq-bundle-1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq-bundle-1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq-bundle-2 allocation score on controller-0: 0 +native_color: rabbitmq-bundle-2 allocation score on controller-1: 0 +native_color: rabbitmq-bundle-2 allocation score on controller-2: INFINITY +native_color: rabbitmq-bundle-2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq-bundle-2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq-bundle-2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq-bundle-docker-0 allocation score on controller-0: -INFINITY +native_color: rabbitmq-bundle-docker-0 allocation score on controller-1: -INFINITY +native_color: rabbitmq-bundle-docker-0 allocation score on controller-2: -INFINITY +native_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq-bundle-docker-1 allocation score on controller-0: -INFINITY +native_color: rabbitmq-bundle-docker-1 allocation score on controller-1: INFINITY +native_color: rabbitmq-bundle-docker-1 allocation score on controller-2: 0 +native_color: rabbitmq-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq-bundle-docker-2 allocation score on controller-0: -INFINITY +native_color: rabbitmq-bundle-docker-2 allocation score on controller-1: -INFINITY +native_color: rabbitmq-bundle-docker-2 allocation score on controller-2: INFINITY +native_color: rabbitmq-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq:0 allocation score on controller-0: -INFINITY +native_color: rabbitmq:0 allocation score on controller-1: -INFINITY +native_color: rabbitmq:0 allocation score on controller-2: -INFINITY +native_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: INFINITY +native_color: rabbitmq:0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq:0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq:1 allocation score on controller-0: -INFINITY +native_color: rabbitmq:1 allocation score on controller-1: -INFINITY +native_color: rabbitmq:1 allocation score on controller-2: -INFINITY +native_color: rabbitmq:1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq:1 allocation score on rabbitmq-bundle-1: INFINITY +native_color: rabbitmq:1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: rabbitmq:2 allocation score on controller-0: -INFINITY +native_color: rabbitmq:2 allocation score on controller-1: -INFINITY +native_color: rabbitmq:2 allocation score on controller-2: -INFINITY +native_color: rabbitmq:2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: rabbitmq:2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: rabbitmq:2 allocation score on rabbitmq-bundle-2: INFINITY +native_color: redis-bundle-0 allocation score on controller-0: INFINITY +native_color: redis-bundle-0 allocation score on controller-1: 0 +native_color: redis-bundle-0 allocation score on controller-2: 0 +native_color: redis-bundle-0 allocation score on galera-bundle-0: -INFINITY +native_color: redis-bundle-0 allocation score on galera-bundle-1: -INFINITY +native_color: redis-bundle-0 allocation score on galera-bundle-2: -INFINITY +native_color: redis-bundle-0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis-bundle-0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis-bundle-0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis-bundle-0 allocation score on redis-bundle-0: -INFINITY +native_color: redis-bundle-0 allocation score on redis-bundle-1: -INFINITY +native_color: redis-bundle-0 allocation score on redis-bundle-2: -INFINITY +native_color: redis-bundle-1 allocation score on controller-0: 0 +native_color: redis-bundle-1 allocation score on controller-1: INFINITY +native_color: redis-bundle-1 allocation score on controller-2: 0 +native_color: redis-bundle-1 allocation score on galera-bundle-0: -INFINITY +native_color: redis-bundle-1 allocation score on galera-bundle-1: -INFINITY +native_color: redis-bundle-1 allocation score on galera-bundle-2: -INFINITY +native_color: redis-bundle-1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis-bundle-1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis-bundle-1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis-bundle-1 allocation score on redis-bundle-0: -INFINITY +native_color: redis-bundle-1 allocation score on redis-bundle-1: -INFINITY +native_color: redis-bundle-1 allocation score on redis-bundle-2: -INFINITY +native_color: redis-bundle-2 allocation score on controller-0: 0 +native_color: redis-bundle-2 allocation score on controller-1: 0 +native_color: redis-bundle-2 allocation score on controller-2: INFINITY +native_color: redis-bundle-2 allocation score on galera-bundle-0: -INFINITY +native_color: redis-bundle-2 allocation score on galera-bundle-1: -INFINITY +native_color: redis-bundle-2 allocation score on galera-bundle-2: -INFINITY +native_color: redis-bundle-2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis-bundle-2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis-bundle-2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis-bundle-2 allocation score on redis-bundle-0: -INFINITY +native_color: redis-bundle-2 allocation score on redis-bundle-1: -INFINITY +native_color: redis-bundle-2 allocation score on redis-bundle-2: -INFINITY +native_color: redis-bundle-docker-0 allocation score on controller-0: -INFINITY +native_color: redis-bundle-docker-0 allocation score on controller-1: -INFINITY +native_color: redis-bundle-docker-0 allocation score on controller-2: -INFINITY +native_color: redis-bundle-docker-0 allocation score on galera-bundle-0: -INFINITY +native_color: redis-bundle-docker-0 allocation score on galera-bundle-1: -INFINITY +native_color: redis-bundle-docker-0 allocation score on galera-bundle-2: -INFINITY +native_color: redis-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis-bundle-docker-0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis-bundle-docker-0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis-bundle-docker-0 allocation score on redis-bundle-0: -INFINITY +native_color: redis-bundle-docker-0 allocation score on redis-bundle-1: -INFINITY +native_color: redis-bundle-docker-0 allocation score on redis-bundle-2: -INFINITY +native_color: redis-bundle-docker-1 allocation score on controller-0: -INFINITY +native_color: redis-bundle-docker-1 allocation score on controller-1: INFINITY +native_color: redis-bundle-docker-1 allocation score on controller-2: 0 +native_color: redis-bundle-docker-1 allocation score on galera-bundle-0: -INFINITY +native_color: redis-bundle-docker-1 allocation score on galera-bundle-1: -INFINITY +native_color: redis-bundle-docker-1 allocation score on galera-bundle-2: -INFINITY +native_color: redis-bundle-docker-1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis-bundle-docker-1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis-bundle-docker-1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis-bundle-docker-1 allocation score on redis-bundle-0: -INFINITY +native_color: redis-bundle-docker-1 allocation score on redis-bundle-1: -INFINITY +native_color: redis-bundle-docker-1 allocation score on redis-bundle-2: -INFINITY +native_color: redis-bundle-docker-2 allocation score on controller-0: -INFINITY +native_color: redis-bundle-docker-2 allocation score on controller-1: -INFINITY +native_color: redis-bundle-docker-2 allocation score on controller-2: INFINITY +native_color: redis-bundle-docker-2 allocation score on galera-bundle-0: -INFINITY +native_color: redis-bundle-docker-2 allocation score on galera-bundle-1: -INFINITY +native_color: redis-bundle-docker-2 allocation score on galera-bundle-2: -INFINITY +native_color: redis-bundle-docker-2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis-bundle-docker-2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis-bundle-docker-2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis-bundle-docker-2 allocation score on redis-bundle-0: -INFINITY +native_color: redis-bundle-docker-2 allocation score on redis-bundle-1: -INFINITY +native_color: redis-bundle-docker-2 allocation score on redis-bundle-2: -INFINITY +native_color: redis:0 allocation score on controller-0: -INFINITY +native_color: redis:0 allocation score on controller-1: -INFINITY +native_color: redis:0 allocation score on controller-2: -INFINITY +native_color: redis:0 allocation score on galera-bundle-0: -INFINITY +native_color: redis:0 allocation score on galera-bundle-1: -INFINITY +native_color: redis:0 allocation score on galera-bundle-2: -INFINITY +native_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis:0 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis:0 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis:0 allocation score on redis-bundle-0: INFINITY +native_color: redis:0 allocation score on redis-bundle-1: -INFINITY +native_color: redis:0 allocation score on redis-bundle-2: -INFINITY +native_color: redis:1 allocation score on controller-0: -INFINITY +native_color: redis:1 allocation score on controller-1: -INFINITY +native_color: redis:1 allocation score on controller-2: -INFINITY +native_color: redis:1 allocation score on galera-bundle-0: -INFINITY +native_color: redis:1 allocation score on galera-bundle-1: -INFINITY +native_color: redis:1 allocation score on galera-bundle-2: -INFINITY +native_color: redis:1 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis:1 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis:1 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis:1 allocation score on redis-bundle-0: -INFINITY +native_color: redis:1 allocation score on redis-bundle-1: INFINITY +native_color: redis:1 allocation score on redis-bundle-2: -INFINITY +native_color: redis:2 allocation score on controller-0: -INFINITY +native_color: redis:2 allocation score on controller-1: -INFINITY +native_color: redis:2 allocation score on controller-2: -INFINITY +native_color: redis:2 allocation score on galera-bundle-0: -INFINITY +native_color: redis:2 allocation score on galera-bundle-1: -INFINITY +native_color: redis:2 allocation score on galera-bundle-2: -INFINITY +native_color: redis:2 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: redis:2 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: redis:2 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: redis:2 allocation score on redis-bundle-0: -INFINITY +native_color: redis:2 allocation score on redis-bundle-1: -INFINITY +native_color: redis:2 allocation score on redis-bundle-2: INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on controller-0: INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on controller-1: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on controller-2: 0 +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on galera-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on galera-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on galera-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on rabbitmq-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on rabbitmq-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on rabbitmq-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on redis-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on redis-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-5254000dcb3f allocation score on redis-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on controller-0: INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on controller-1: 0 +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on controller-2: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on galera-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on galera-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on galera-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on rabbitmq-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on rabbitmq-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on rabbitmq-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on redis-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on redis-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-5254003e8e97 allocation score on redis-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on controller-0: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on controller-1: 0 +native_color: stonith-fence_ipmilan-525400efba5c allocation score on controller-2: INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on galera-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on galera-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on galera-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on rabbitmq-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on rabbitmq-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on rabbitmq-bundle-2: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on redis-bundle-0: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on redis-bundle-1: -INFINITY +native_color: stonith-fence_ipmilan-525400efba5c allocation score on redis-bundle-2: -INFINITY +redis:0 promotion score on redis-bundle-0: -1 +redis:1 promotion score on redis-bundle-1: 1 +redis:2 promotion score on redis-bundle-2: 1 diff --git a/pengine/test10/bundle-order-fencing.summary b/pengine/test10/bundle-order-fencing.summary new file mode 100644 index 0000000..e2128cb --- /dev/null +++ b/pengine/test10/bundle-order-fencing.summary @@ -0,0 +1,222 @@ +Using the original execution date of: 2017-09-12 10:51:59Z + +Current cluster status: +Node controller-0 (1): UNCLEAN (offline) +Online: [ controller-1 controller-2 ] +Containers: [ galera-bundle-1:galera-bundle-docker-1 galera-bundle-2:galera-bundle-docker-2 rabbitmq-bundle-1:rabbitmq-bundle-docker-1 rabbitmq-bundle-2:rabbitmq-bundle-docker-2 redis-bundle-1:redis-bundle-docker-1 redis-bundle-2:redis-bundle-docker-2 ] + + Docker container set: rabbitmq-bundle [192.168.24.1:8787/rhosp12/openstack-rabbitmq-docker:pcmklatest] + rabbitmq-bundle-0 (ocf::heartbeat:rabbitmq-cluster): FAILED controller-0 (UNCLEAN) + rabbitmq-bundle-1 (ocf::heartbeat:rabbitmq-cluster): Started controller-1 + rabbitmq-bundle-2 (ocf::heartbeat:rabbitmq-cluster): Started controller-2 + Docker container set: galera-bundle [192.168.24.1:8787/rhosp12/openstack-mariadb-docker:pcmklatest] + galera-bundle-0 (ocf::heartbeat:galera): FAILED Master controller-0 (UNCLEAN) + galera-bundle-1 (ocf::heartbeat:galera): Master controller-1 + galera-bundle-2 (ocf::heartbeat:galera): Master controller-2 + Docker container set: redis-bundle [192.168.24.1:8787/rhosp12/openstack-redis-docker:pcmklatest] + redis-bundle-0 (ocf::heartbeat:redis): FAILED Master controller-0 (UNCLEAN) + redis-bundle-1 (ocf::heartbeat:redis): Slave controller-1 + redis-bundle-2 (ocf::heartbeat:redis): Slave controller-2 + ip-192.168.24.7 (ocf::heartbeat:IPaddr2): Started controller-0 (UNCLEAN) + ip-10.0.0.109 (ocf::heartbeat:IPaddr2): Started controller-0 (UNCLEAN) + ip-172.17.1.14 (ocf::heartbeat:IPaddr2): Started controller-2 + ip-172.17.1.19 (ocf::heartbeat:IPaddr2): Started controller-2 + ip-172.17.3.19 (ocf::heartbeat:IPaddr2): Started controller-2 + ip-172.17.4.11 (ocf::heartbeat:IPaddr2): Started controller-0 (UNCLEAN) + Docker container set: haproxy-bundle [192.168.24.1:8787/rhosp12/openstack-haproxy-docker:pcmklatest] + haproxy-bundle-docker-0 (ocf::heartbeat:docker): Started controller-0 (UNCLEAN) + haproxy-bundle-docker-1 (ocf::heartbeat:docker): Started controller-2 + haproxy-bundle-docker-2 (ocf::heartbeat:docker): Started controller-1 + openstack-cinder-volume (systemd:openstack-cinder-volume): Started controller-2 + stonith-fence_ipmilan-525400efba5c (stonith:fence_ipmilan): Started controller-2 + stonith-fence_ipmilan-5254003e8e97 (stonith:fence_ipmilan): Started controller-0 (UNCLEAN) + stonith-fence_ipmilan-5254000dcb3f (stonith:fence_ipmilan): Started controller-0 (UNCLEAN) + +Transition Summary: + * Fence (off) redis-bundle-0 (resource: redis-bundle-docker-0) 'guest is unclean' + * Fence (off) rabbitmq-bundle-0 (resource: rabbitmq-bundle-docker-0) 'guest is unclean' + * Fence (off) galera-bundle-0 (resource: galera-bundle-docker-0) 'guest is unclean' + * Fence (reboot) controller-0 'peer is no longer part of the cluster' + * Stop rabbitmq-bundle-docker-0 ( controller-0 ) due to node availability + * Stop rabbitmq-bundle-0 ( controller-0 ) due to unrunnable rabbitmq-bundle-docker-0 start + * Stop rabbitmq:0 ( rabbitmq-bundle-0 ) due to unrunnable rabbitmq-bundle-docker-0 start + * Stop galera-bundle-docker-0 ( controller-0 ) due to node availability + * Stop galera-bundle-0 ( controller-0 ) due to unrunnable galera-bundle-docker-0 start + * Stop galera:0 ( Master galera-bundle-0 ) due to unrunnable galera-bundle-docker-0 start + * Stop redis-bundle-docker-0 ( controller-0 ) due to node availability + * Stop redis-bundle-0 ( controller-0 ) due to unrunnable redis-bundle-docker-0 start + * Stop redis:0 ( Master redis-bundle-0 ) due to unrunnable redis-bundle-docker-0 start + * Promote redis:1 ( Slave -> Master redis-bundle-1 ) + * Move ip-192.168.24.7 ( controller-0 -> controller-2 ) + * Move ip-10.0.0.109 ( controller-0 -> controller-1 ) + * Move ip-172.17.4.11 ( controller-0 -> controller-1 ) + * Stop haproxy-bundle-docker-0 ( controller-0 ) due to node availability + * Move stonith-fence_ipmilan-5254003e8e97 ( controller-0 -> controller-1 ) + * Move stonith-fence_ipmilan-5254000dcb3f ( controller-0 -> controller-2 ) + +Executing cluster transition: + * Pseudo action: rabbitmq-bundle-clone_pre_notify_stop_0 + * Resource action: redis cancel=45000 on redis-bundle-1 + * Resource action: redis cancel=60000 on redis-bundle-1 + * Pseudo action: redis-bundle-master_pre_notify_demote_0 + * Pseudo action: stonith-fence_ipmilan-5254003e8e97_stop_0 + * Pseudo action: stonith-fence_ipmilan-5254000dcb3f_stop_0 + * Pseudo action: haproxy-bundle_stop_0 + * Pseudo action: redis-bundle_demote_0 + * Pseudo action: galera-bundle_demote_0 + * Pseudo action: rabbitmq-bundle_stop_0 + * Pseudo action: rabbitmq-bundle_start_0 + * Fencing controller-0 (reboot) + * Resource action: rabbitmq notify on rabbitmq-bundle-1 + * Resource action: rabbitmq notify on rabbitmq-bundle-2 + * Pseudo action: rabbitmq-bundle-clone_confirmed-pre_notify_stop_0 + * Pseudo action: rabbitmq-bundle-0_stop_0 + * Pseudo action: galera-bundle-master_demote_0 + * Pseudo action: galera-bundle-0_stop_0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-pre_notify_demote_0 + * Pseudo action: redis-bundle-master_demote_0 + * Pseudo action: redis-bundle-0_stop_0 + * Pseudo action: haproxy-bundle-docker-0_stop_0 + * Pseudo action: stonith-redis-bundle-0-off on redis-bundle-0 + * Pseudo action: stonith-rabbitmq-bundle-0-off on rabbitmq-bundle-0 + * Pseudo action: stonith-galera-bundle-0-off on galera-bundle-0 + * Pseudo action: stonith_complete + * Pseudo action: haproxy-bundle_stopped_0 + * Pseudo action: rabbitmq_post_notify_stop_0 + * Pseudo action: rabbitmq-bundle-clone_stop_0 + * Pseudo action: rabbitmq-bundle-docker-0_stop_0 + * Pseudo action: galera_demote_0 + * Pseudo action: galera-bundle-master_demoted_0 + * Pseudo action: redis_post_notify_stop_0 + * Pseudo action: redis_demote_0 + * Pseudo action: redis-bundle-master_demoted_0 + * Pseudo action: ip-192.168.24.7_stop_0 + * Pseudo action: ip-10.0.0.109_stop_0 + * Pseudo action: ip-172.17.4.11_stop_0 + * Pseudo action: galera-bundle_demoted_0 + * Pseudo action: galera-bundle_stop_0 + * Pseudo action: rabbitmq_stop_0 + * Pseudo action: rabbitmq-bundle-clone_stopped_0 + * Pseudo action: galera-bundle-master_stop_0 + * Pseudo action: galera-bundle-docker-0_stop_0 + * Pseudo action: redis-bundle-master_post_notify_demoted_0 + * Resource action: ip-192.168.24.7 start on controller-2 + * Resource action: ip-10.0.0.109 start on controller-1 + * Resource action: ip-172.17.4.11 start on controller-1 + * Pseudo action: rabbitmq-bundle-clone_post_notify_stopped_0 + * Pseudo action: galera_stop_0 + * Pseudo action: galera-bundle-master_stopped_0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-post_notify_demoted_0 + * Pseudo action: redis-bundle-master_pre_notify_stop_0 + * Resource action: ip-192.168.24.7 monitor=10000 on controller-2 + * Resource action: ip-10.0.0.109 monitor=10000 on controller-1 + * Resource action: ip-172.17.4.11 monitor=10000 on controller-1 + * Pseudo action: redis-bundle_demoted_0 + * Pseudo action: redis-bundle_stop_0 + * Pseudo action: galera-bundle_stopped_0 + * Pseudo action: galera-bundle_start_0 + * Resource action: rabbitmq notify on rabbitmq-bundle-1 + * Resource action: rabbitmq notify on rabbitmq-bundle-2 + * Pseudo action: rabbitmq-bundle-clone_confirmed-post_notify_stopped_0 + * Pseudo action: rabbitmq-bundle-clone_pre_notify_start_0 + * Pseudo action: galera-bundle-master_start_0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-pre_notify_stop_0 + * Pseudo action: redis-bundle-master_stop_0 + * Pseudo action: redis-bundle-docker-0_stop_0 + * Pseudo action: rabbitmq-bundle_stopped_0 + * Pseudo action: rabbitmq_notified_0 + * Resource action: rabbitmq notify on rabbitmq-bundle-1 + * Resource action: rabbitmq notify on rabbitmq-bundle-2 + * Pseudo action: rabbitmq-bundle-clone_confirmed-pre_notify_start_0 + * Pseudo action: rabbitmq-bundle-clone_start_0 + * Pseudo action: galera-bundle-master_running_0 + * Pseudo action: redis_stop_0 + * Pseudo action: redis-bundle-master_stopped_0 + * Pseudo action: galera-bundle_running_0 + * Pseudo action: rabbitmq-bundle-clone_running_0 + * Pseudo action: redis-bundle-master_post_notify_stopped_0 + * Pseudo action: rabbitmq-bundle-clone_post_notify_running_0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-post_notify_stopped_0 + * Pseudo action: redis-bundle-master_pre_notify_start_0 + * Pseudo action: redis-bundle_stopped_0 + * Pseudo action: redis-bundle_start_0 + * Resource action: rabbitmq notify on rabbitmq-bundle-0 + * Resource action: rabbitmq notify on rabbitmq-bundle-1 + * Resource action: rabbitmq notify on rabbitmq-bundle-2 + * Pseudo action: rabbitmq-bundle-clone_confirmed-post_notify_running_0 + * Pseudo action: redis_notified_0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-pre_notify_start_0 + * Pseudo action: redis-bundle-master_start_0 + * Pseudo action: rabbitmq-bundle_running_0 + * Pseudo action: all_stopped + * Pseudo action: redis-bundle-master_running_0 + * Resource action: stonith-fence_ipmilan-5254003e8e97 start on controller-1 + * Resource action: stonith-fence_ipmilan-5254000dcb3f start on controller-2 + * Pseudo action: redis-bundle-master_post_notify_running_0 + * Resource action: stonith-fence_ipmilan-5254003e8e97 monitor=60000 on controller-1 + * Resource action: stonith-fence_ipmilan-5254000dcb3f monitor=60000 on controller-2 + * Resource action: redis notify on redis-bundle-0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-post_notify_running_0 + * Pseudo action: redis-bundle_running_0 + * Pseudo action: redis-bundle-master_pre_notify_promote_0 + * Pseudo action: redis-bundle_promote_0 + * Resource action: redis notify on redis-bundle-0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-pre_notify_promote_0 + * Pseudo action: redis-bundle-master_promote_0 + * Resource action: redis promote on redis-bundle-1 + * Pseudo action: redis-bundle-master_promoted_0 + * Pseudo action: redis-bundle-master_post_notify_promoted_0 + * Resource action: redis notify on redis-bundle-0 + * Resource action: redis notify on redis-bundle-1 + * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-post_notify_promoted_0 + * Pseudo action: redis-bundle_promoted_0 + * Resource action: redis monitor=20000 on redis-bundle-1 +Using the original execution date of: 2017-09-12 10:51:59Z + +Revised cluster status: +Online: [ controller-1 controller-2 ] +OFFLINE: [ controller-0 ] +Containers: [ galera-bundle-1:galera-bundle-docker-1 galera-bundle-2:galera-bundle-docker-2 rabbitmq-bundle-1:rabbitmq-bundle-docker-1 rabbitmq-bundle-2:rabbitmq-bundle-docker-2 redis-bundle-1:redis-bundle-docker-1 redis-bundle-2:redis-bundle-docker-2 ] + + Docker container set: rabbitmq-bundle [192.168.24.1:8787/rhosp12/openstack-rabbitmq-docker:pcmklatest] + rabbitmq-bundle-0 (ocf::heartbeat:rabbitmq-cluster): FAILED + rabbitmq-bundle-1 (ocf::heartbeat:rabbitmq-cluster): Started controller-1 + rabbitmq-bundle-2 (ocf::heartbeat:rabbitmq-cluster): Started controller-2 + Docker container set: galera-bundle [192.168.24.1:8787/rhosp12/openstack-mariadb-docker:pcmklatest] + galera-bundle-0 (ocf::heartbeat:galera): FAILED Master + galera-bundle-1 (ocf::heartbeat:galera): Master controller-1 + galera-bundle-2 (ocf::heartbeat:galera): Master controller-2 + Docker container set: redis-bundle [192.168.24.1:8787/rhosp12/openstack-redis-docker:pcmklatest] + redis-bundle-0 (ocf::heartbeat:redis): FAILED Master + redis-bundle-1 (ocf::heartbeat:redis): Master controller-1 + redis-bundle-2 (ocf::heartbeat:redis): Slave controller-2 + ip-192.168.24.7 (ocf::heartbeat:IPaddr2): Started controller-2 + ip-10.0.0.109 (ocf::heartbeat:IPaddr2): Started controller-1 + ip-172.17.1.14 (ocf::heartbeat:IPaddr2): Started controller-2 + ip-172.17.1.19 (ocf::heartbeat:IPaddr2): Started controller-2 + ip-172.17.3.19 (ocf::heartbeat:IPaddr2): Started controller-2 + ip-172.17.4.11 (ocf::heartbeat:IPaddr2): Started controller-1 + Docker container set: haproxy-bundle [192.168.24.1:8787/rhosp12/openstack-haproxy-docker:pcmklatest] + haproxy-bundle-docker-0 (ocf::heartbeat:docker): Stopped + haproxy-bundle-docker-1 (ocf::heartbeat:docker): Started controller-2 + haproxy-bundle-docker-2 (ocf::heartbeat:docker): Started controller-1 + openstack-cinder-volume (systemd:openstack-cinder-volume): Started controller-2 + stonith-fence_ipmilan-525400efba5c (stonith:fence_ipmilan): Started controller-2 + stonith-fence_ipmilan-5254003e8e97 (stonith:fence_ipmilan): Started controller-1 + stonith-fence_ipmilan-5254000dcb3f (stonith:fence_ipmilan): Started controller-2 + diff --git a/pengine/test10/bundle-order-fencing.xml b/pengine/test10/bundle-order-fencing.xml new file mode 100644 index 0000000..b303116 --- /dev/null +++ b/pengine/test10/bundle-order-fencing.xml @@ -0,0 +1,799 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 1.8.3.1 From 14583c664638d17a14bccfd130739c7242f5cec4 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Wed, 20 Sep 2017 21:53:00 +1000 Subject: [PATCH 10/21] Fix: PE: Resources in bundles should also respect failcounts --- pengine/container.c | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/pengine/container.c b/pengine/container.c index 1e9b971..0e556bb 100644 --- a/pengine/container.c +++ b/pengine/container.c @@ -74,6 +74,38 @@ static GListPtr get_containers_or_children(resource_t *rsc) } } +static bool +migration_threshold_reached(resource_t *rsc, node_t *node, + pe_working_set_t *data_set) +{ + int fail_count, countdown; + + /* Migration threshold of 0 means never force away */ + if (rsc->migration_threshold == 0) { + return FALSE; + } + + /* If there are no failures, there's no need to force away */ + fail_count = get_failcount_all(node, rsc, NULL, data_set); + if (fail_count <= 0) { + return FALSE; + } + + /* How many more times recovery will be tried on this node */ + countdown = QB_MAX(rsc->migration_threshold - fail_count, 0); + + if (countdown == 0) { + crm_warn("Forcing %s away from %s after %d failures (max=%d)", + rsc->id, node->details->uname, fail_count, + rsc->migration_threshold); + return TRUE; + } + + crm_info("%s can fail %d more times on %s before being forced off", + rsc->id, countdown, node->details->uname); + return FALSE; +} + node_t * container_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) { @@ -128,7 +160,7 @@ container_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) while (g_hash_table_iter_next(&iter, NULL, (gpointer *) & node)) { if(node->details != tuple->node->details) { node->weight = -INFINITY; - } else { + } else if(migration_threshold_reached(tuple->child, node, data_set) == FALSE) { node->weight = INFINITY; } } @@ -158,6 +190,7 @@ container_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) return NULL; } + void container_create_actions(resource_t * rsc, pe_working_set_t * data_set) { -- 1.8.3.1 From 1eacc741d04098d24b97631a273501ef0aff2fc1 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Thu, 21 Sep 2017 20:59:16 +1000 Subject: [PATCH 11/21] crm_resource: Do not send history erasure commands for nodes where this is none If a resource is not known on a given node, thats because we have no operation history for it there. So there is no benefit to requesting a cleanup for that resource/node combination. --- tools/crm_resource_runtime.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c index 8f9ae0d..210ea7d 100644 --- a/tools/crm_resource_runtime.c +++ b/tools/crm_resource_runtime.c @@ -573,7 +573,7 @@ send_lrm_rsc_op(crm_ipc_t * crmd_channel, const char *op, rc = 0; } else { - CMD_ERR("Could not send %s op to the crmd", op); + crm_debug("Could not send %s op to the crmd", op); rc = -ENOTCONN; } @@ -627,8 +627,9 @@ cli_resource_delete(crm_ipc_t *crmd_channel, const char *host_uname, } else if (host_uname == NULL) { GListPtr lpc = NULL; + GListPtr nodes = g_hash_table_get_values(rsc->known_on); - for (lpc = data_set->nodes; lpc != NULL; lpc = lpc->next) { + for (lpc = nodes; lpc != NULL; lpc = lpc->next) { node = (node_t *) lpc->data; if (node->details->online) { @@ -637,6 +638,7 @@ cli_resource_delete(crm_ipc_t *crmd_channel, const char *host_uname, } } + g_list_free(nodes); return pcmk_ok; } -- 1.8.3.1 From e10299600e87356114dbb96df981c2ff196b8f9e Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Fri, 22 Sep 2017 19:51:35 +1000 Subject: [PATCH 12/21] Log: attrd: Tweak log messages for clarity --- attrd/commands.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/attrd/commands.c b/attrd/commands.c index 6f40d60..96a1167 100644 --- a/attrd/commands.c +++ b/attrd/commands.c @@ -670,12 +670,12 @@ attrd_peer_remove(const char *host, gboolean uncache, const char *source) GHashTableIter aIter; CRM_CHECK(host != NULL, return); - crm_notice("Removing all %s attributes for %s", host, source); + crm_notice("Removing all %s attributes for peer %s", host, source); g_hash_table_iter_init(&aIter, attributes); while (g_hash_table_iter_next(&aIter, NULL, (gpointer *) & a)) { if(g_hash_table_remove(a->values, host)) { - crm_debug("Removed %s[%s] for %s", a->id, host, source); + crm_debug("Removed %s[%s] for peer %s", a->id, host, source); } } -- 1.8.3.1 From e4bd6faed4481c10befd65e5c8315d81d5e8e43d Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Fri, 22 Sep 2017 20:03:02 +1000 Subject: [PATCH 13/21] PE: Revert e21a4d00 since we will support probing remote connections Also it causes containers to be unnecessarily restarted when the admin triggers a cleanup. --- lib/pengine/unpack.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c index 6e0651e..859d638 100644 --- a/lib/pengine/unpack.c +++ b/lib/pengine/unpack.c @@ -2342,9 +2342,6 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d { xmlNode *rsc_entry = NULL; gboolean found_orphaned_container_filler = FALSE; - GListPtr unexpected_containers = NULL; - GListPtr gIter = NULL; - resource_t *remote = NULL; CRM_CHECK(node != NULL, return FALSE); @@ -2354,31 +2351,13 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d rsc_entry = __xml_next_element(rsc_entry)) { if (crm_str_eq((const char *)rsc_entry->name, XML_LRM_TAG_RESOURCE, TRUE)) { - resource_t *rsc; - rsc = unpack_lrm_rsc_state(node, rsc_entry, data_set); + resource_t *rsc = unpack_lrm_rsc_state(node, rsc_entry, data_set); if (!rsc) { continue; } if (is_set(rsc->flags, pe_rsc_orphan_container_filler)) { found_orphaned_container_filler = TRUE; } - if (is_set(rsc->flags, pe_rsc_unexpectedly_running)) { - remote = rsc_contains_remote_node(data_set, rsc); - if (remote) { - unexpected_containers = g_list_append(unexpected_containers, remote); - } - } - } - } - - /* If a container resource is unexpectedly up... and the remote-node - * connection resource for that container is not up, the entire container - * must be recovered. */ - for (gIter = unexpected_containers; gIter != NULL; gIter = gIter->next) { - remote = (resource_t *) gIter->data; - if (remote->role != RSC_ROLE_STARTED) { - crm_warn("Recovering container resource %s. Resource is unexpectedly running and involves a remote-node.", remote->container->id); - set_bit(remote->container->flags, pe_rsc_failed); } } @@ -2388,7 +2367,6 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d if (found_orphaned_container_filler) { handle_orphaned_container_fillers(lrm_rsc_list, data_set); } - g_list_free(unexpected_containers); return TRUE; } -- 1.8.3.1 From 12d453ccfa3a3a36456e6c2985f65137fde2a01d Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Mon, 25 Sep 2017 17:48:40 +1000 Subject: [PATCH 14/21] PE: Implement probing of container remote nodes --- include/crm/pengine/status.h | 7 + lib/pengine/container.c | 3 + pengine/allocate.c | 3 +- pengine/native.c | 71 +++- pengine/pengine.h | 6 - pengine/test10/bug-cl-5247.dot | 6 + pengine/test10/bug-cl-5247.exp | 346 +++++++++------- pengine/test10/bug-cl-5247.summary | 2 + pengine/test10/bug-rh-1097457.dot | 32 ++ pengine/test10/bug-rh-1097457.exp | 456 +++++++++++++++------ pengine/test10/bug-rh-1097457.summary | 20 + pengine/test10/bundle-order-partial-start-2.dot | 2 + pengine/test10/bundle-order-partial-start-2.exp | 282 +++++++------ .../test10/bundle-order-partial-start-2.summary | 1 + pengine/test10/bundle-order-partial-start.dot | 2 + pengine/test10/bundle-order-partial-start.exp | 272 ++++++------ pengine/test10/bundle-order-partial-start.summary | 1 + pengine/test10/bundle-order-startup.exp | 8 +- pengine/test10/container-is-remote-node.dot | 4 + pengine/test10/container-is-remote-node.exp | 39 +- pengine/test10/container-is-remote-node.summary | 4 + pengine/test10/guest-node-host-dies.dot | 2 + pengine/test10/guest-node-host-dies.exp | 6 + pengine/test10/whitebox-asymmetric.dot | 4 + pengine/test10/whitebox-asymmetric.exp | 48 ++- pengine/test10/whitebox-asymmetric.summary | 2 + pengine/test10/whitebox-fail1.dot | 5 + pengine/test10/whitebox-fail1.exp | 145 ++++--- pengine/test10/whitebox-fail1.summary | 3 + pengine/test10/whitebox-fail2.dot | 5 + pengine/test10/whitebox-fail2.exp | 145 ++++--- pengine/test10/whitebox-fail2.summary | 3 + pengine/test10/whitebox-fail3.dot | 3 + pengine/test10/whitebox-fail3.exp | 15 +- pengine/test10/whitebox-fail3.summary | 4 +- pengine/test10/whitebox-imply-stop-on-fence.dot | 19 + pengine/test10/whitebox-imply-stop-on-fence.exp | 325 ++++++++++----- .../test10/whitebox-imply-stop-on-fence.summary | 8 + pengine/test10/whitebox-migrate1.dot | 1 + pengine/test10/whitebox-move.dot | 3 + pengine/test10/whitebox-move.exp | 108 ++--- pengine/test10/whitebox-move.summary | 3 +- pengine/test10/whitebox-ms-ordering-move.dot | 12 + pengine/test10/whitebox-ms-ordering-move.exp | 294 ++++++++----- pengine/test10/whitebox-ms-ordering-move.summary | 12 + pengine/test10/whitebox-nested-group.dot | 21 + pengine/test10/whitebox-nested-group.exp | 66 ++- pengine/test10/whitebox-nested-group.summary | 16 +- pengine/test10/whitebox-orphan-ms.dot | 18 + pengine/test10/whitebox-orphan-ms.exp | 92 ++--- pengine/test10/whitebox-orphaned.dot | 8 + pengine/test10/whitebox-orphaned.exp | 120 ++++-- pengine/test10/whitebox-orphaned.summary | 9 +- pengine/test10/whitebox-start.dot | 4 + pengine/test10/whitebox-start.exp | 99 +++-- pengine/test10/whitebox-start.summary | 10 +- pengine/test10/whitebox-stop.dot | 5 + pengine/test10/whitebox-stop.exp | 82 ++-- pengine/test10/whitebox-stop.summary | 9 +- pengine/test10/whitebox-unexpectedly-running.dot | 24 +- pengine/test10/whitebox-unexpectedly-running.exp | 112 +++-- .../test10/whitebox-unexpectedly-running.scores | 8 + .../test10/whitebox-unexpectedly-running.summary | 23 +- pengine/test10/whitebox-unexpectedly-running.xml | 11 + 64 files changed, 2322 insertions(+), 1157 deletions(-) diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h index fcd5226..dc5f6eb 100644 --- a/include/crm/pengine/status.h +++ b/include/crm/pengine/status.h @@ -395,6 +395,13 @@ enum pe_link_state { pe_link_dup, }; + +enum rsc_discover_e { + discover_always = 0, + discover_never, + discover_exclusive, +}; + /* *INDENT-OFF* */ enum pe_ordering { pe_order_none = 0x0, /* deleted */ diff --git a/lib/pengine/container.c b/lib/pengine/container.c index 5831b58..a550ff3 100644 --- a/lib/pengine/container.c +++ b/lib/pengine/container.c @@ -348,6 +348,7 @@ disallow_node(resource_t *rsc, const char *uname) if (match) { ((pe_node_t *) match)->weight = -INFINITY; + ((pe_node_t *) match)->rsc_discover_mode = discover_never; } if (rsc->children) { GListPtr child; @@ -434,6 +435,7 @@ create_remote_resource( } else { node->weight = -INFINITY; } + node->rsc_discover_mode = discover_never; /* unpack_remote_nodes() ensures that each remote node and guest node * has a pe_node_t entry. Ideally, it would do the same for bundle nodes. @@ -458,6 +460,7 @@ create_remote_resource( tuple->node = node_copy(node); tuple->node->weight = 500; + tuple->node->rsc_discover_mode = discover_exclusive; if (common_unpack(xml_remote, &tuple->remote, parent, data_set) == FALSE) { return FALSE; diff --git a/pengine/allocate.c b/pengine/allocate.c index d610035..401c18e 100644 --- a/pengine/allocate.c +++ b/pengine/allocate.c @@ -900,8 +900,7 @@ probe_resources(pe_working_set_t * data_set) const char *probed = node_attribute_raw(node, CRM_OP_PROBED); if (is_container_remote_node(node)) { - /* TODO enable guest node probes once ordered probing is implemented */ - continue; + /* Guest node probes and their ordering requirements are now functional */ } else if (node->details->online == FALSE && node->details->remote_rsc) { enum remote_connection_state state = get_remote_node_state(node); diff --git a/pengine/native.c b/pengine/native.c index 37cf541..2e40a4c 100644 --- a/pengine/native.c +++ b/pengine/native.c @@ -2784,10 +2784,6 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, if (force == FALSE && is_not_set(data_set->flags, pe_flag_startup_probes)) { pe_rsc_trace(rsc, "Skipping active resource detection for %s", rsc->id); return FALSE; - } else if (force == FALSE && is_container_remote_node(node)) { - pe_rsc_trace(rsc, "Skipping active resource detection for %s on container %s", - rsc->id, node->details->id); - return FALSE; } if (is_remote_node(node)) { @@ -2847,6 +2843,7 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, } allowed = g_hash_table_lookup(rsc->allowed_nodes, node->details->id); + if (rsc->exclusive_discover || top->exclusive_discover) { if (allowed == NULL) { /* exclusive discover is enabled and this node is not in the allowed list. */ @@ -2857,11 +2854,77 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, return FALSE; } } + + if(allowed == NULL && node->rsc_discover_mode == discover_never) { + /* If this node was allowed to host this resource it would + * have been explicitly added to the 'allowed_nodes' list. + * However it wasn't and the node has discovery disabled, so + * no need to probe for this resource. + */ + return FALSE; + } + if (allowed && allowed->rsc_discover_mode == discover_never) { /* this resource is marked as not needing to be discovered on this node */ return FALSE; } + if(allowed != NULL && is_container_remote_node(allowed)) { + resource_t *remote = allowed->details->remote_rsc; + + if(remote->role == RSC_ROLE_STOPPED) { + /* If the container is stopped, then we know anything that + * might have been inside it is also stopped and there is + * no need to probe. + * + * If we don't know the container's state on the target + * either: + * + * - the container is running, the transition will abort + * and we'll end up in a different case next time, or + * + * - the container is stopped + * + * Either way there is no need to probe. + * + */ + if(remote->allocated_to + && g_hash_table_lookup(remote->known_on, remote->allocated_to->details->id) == NULL) { + /* For safety, we order the 'rsc' start after 'remote' + * has been probed. + * + * Using 'top' helps for groups, but in we may need to + * follow the start's ordering chain backwards. + */ + custom_action_order(remote, generate_op_key(remote->id, RSC_STATUS, 0), NULL, + top, generate_op_key(top->id, RSC_START, 0), NULL, + pe_order_optional, data_set); + } + return FALSE; + + /* Here we really we want to check if remote->stop is required, + * but that information doesn't exist yet + */ + } else if(allowed->details->remote_requires_reset + || allowed->details->unclean + || is_set(remote->flags, pe_rsc_failed) + || remote->next_role == RSC_ROLE_STOPPED + || (remote->allocated_to + && pe_find_node(remote->running_on, remote->allocated_to->details->uname) == NULL) + ) { + /* The container is stopping or restarting, don't start + * 'rsc' until 'remote' stops as this also implies that + * 'rsc' is stopped - avoiding the need to probe + */ + custom_action_order(remote, generate_op_key(remote->id, RSC_STOP, 0), NULL, + top, generate_op_key(top->id, RSC_START, 0), NULL, + pe_order_optional, data_set); + return FALSE; +/* } else { + * The container is running so there is no problem probing it + */ + } + } key = generate_op_key(rsc->id, RSC_STATUS, 0); probe = custom_action(rsc, key, RSC_STATUS, node, FALSE, TRUE, data_set); diff --git a/pengine/pengine.h b/pengine/pengine.h index e3f4874..2c13258 100644 --- a/pengine/pengine.h +++ b/pengine/pengine.h @@ -75,12 +75,6 @@ struct rsc_ticket_s { int role_lh; }; -enum rsc_discover_e { - discover_always = 0, - discover_never, - discover_exclusive, -}; - struct rsc_to_node_s { char *id; resource_t *rsc_lh; diff --git a/pengine/test10/bug-cl-5247.dot b/pengine/test10/bug-cl-5247.dot index 44f788d..decf5c3 100644 --- a/pengine/test10/bug-cl-5247.dot +++ b/pengine/test10/bug-cl-5247.dot @@ -127,6 +127,9 @@ digraph "g" { "stonith_complete" -> "vip-master_start_0 pgsr01" [ style = bold] "stonith_complete" -> "vip-rep_start_0 pgsr01" [ style = bold] "stonith_complete" [ style=bold color="green" fontcolor="orange"] +"vip-master_monitor_0 pgsr01" -> "vip-master_start_0 pgsr01" [ style = bold] +"vip-master_monitor_0 pgsr01" -> "vip-master_stop_0 pgsr02" [ style = bold] +"vip-master_monitor_0 pgsr01" [ style=bold color="green" fontcolor="black"] "vip-master_monitor_10000 pgsr01" [ style=bold color="green" fontcolor="black"] "vip-master_start_0 pgsr01" -> "master-group_running_0" [ style = bold] "vip-master_start_0 pgsr01" -> "vip-master_monitor_10000 pgsr01" [ style = bold] @@ -136,6 +139,9 @@ digraph "g" { "vip-master_stop_0 pgsr02" -> "master-group_stopped_0" [ style = bold] "vip-master_stop_0 pgsr02" -> "vip-master_start_0 pgsr01" [ style = bold] "vip-master_stop_0 pgsr02" [ style=bold color="green" fontcolor="orange"] +"vip-rep_monitor_0 pgsr01" -> "vip-rep_start_0 pgsr01" [ style = bold] +"vip-rep_monitor_0 pgsr01" -> "vip-rep_stop_0 pgsr02" [ style = bold] +"vip-rep_monitor_0 pgsr01" [ style=bold color="green" fontcolor="black"] "vip-rep_monitor_10000 pgsr01" [ style=bold color="green" fontcolor="black"] "vip-rep_start_0 pgsr01" -> "master-group_running_0" [ style = bold] "vip-rep_start_0 pgsr01" -> "vip-rep_monitor_10000 pgsr01" [ style = bold] diff --git a/pengine/test10/bug-cl-5247.exp b/pengine/test10/bug-cl-5247.exp index 2ec83c0..47c369a 100644 --- a/pengine/test10/bug-cl-5247.exp +++ b/pengine/test10/bug-cl-5247.exp @@ -8,28 +8,28 @@ - + - + - + - + - + @@ -37,7 +37,7 @@ - + @@ -46,32 +46,32 @@ - + - + - + - + - + @@ -87,10 +87,10 @@ - + - + @@ -109,22 +109,22 @@ - + - + - + - + @@ -132,7 +132,7 @@ - + @@ -141,32 +141,32 @@ - + - + - + - + - + @@ -182,10 +182,10 @@ - + - + @@ -204,472 +204,502 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + + + + - + - + - + + + + + + + + + + - + - + - + - + + + + - + - + - + - + - + - + + + + - + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -678,9 +708,9 @@ - + - + @@ -694,7 +724,7 @@ - + @@ -703,9 +733,9 @@ - + - + @@ -718,19 +748,19 @@ - + - + - + - + @@ -741,31 +771,31 @@ - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/bug-cl-5247.summary b/pengine/test10/bug-cl-5247.summary index 3e5511d..f15ef2e 100644 --- a/pengine/test10/bug-cl-5247.summary +++ b/pengine/test10/bug-cl-5247.summary @@ -32,6 +32,8 @@ Executing cluster transition: * Resource action: prmStonith1-2 stop on bl460g8n4 * Pseudo action: grpStonith2_stop_0 * Resource action: prmStonith2-2 stop on bl460g8n3 + * Resource action: vip-master monitor on pgsr01 + * Resource action: vip-rep monitor on pgsr01 * Pseudo action: msPostgresql_pre_notify_demote_0 * Resource action: pgsr01 monitor on bl460g8n4 * Resource action: pgsr02 monitor on bl460g8n3 diff --git a/pengine/test10/bug-rh-1097457.dot b/pengine/test10/bug-rh-1097457.dot index e74c8fb..7791e06 100644 --- a/pengine/test10/bug-rh-1097457.dot +++ b/pengine/test10/bug-rh-1097457.dot @@ -1,4 +1,16 @@ digraph "g" { +"FAKE1-IP_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FAKE1_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FAKE2-IP_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FAKE2_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FAKE3-IP_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FAKE3_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FAKE4-IP_monitor_0 lamaVM1" -> "FAKE4-IP_start_0 lamaVM2" [ style = bold] +"FAKE4-IP_monitor_0 lamaVM1" -> "FAKE4-IP_stop_0 lamaVM2" [ style = bold] +"FAKE4-IP_monitor_0 lamaVM1" [ style=bold color="green" fontcolor="black"] +"FAKE4-IP_monitor_0 lamaVM3" -> "FAKE4-IP_start_0 lamaVM2" [ style = bold] +"FAKE4-IP_monitor_0 lamaVM3" -> "FAKE4-IP_stop_0 lamaVM2" [ style = bold] +"FAKE4-IP_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] "FAKE4-IP_monitor_30000 lamaVM2" [ style=bold color="green" fontcolor="black"] "FAKE4-IP_start_0 lamaVM2" -> "FAKE4-IP_monitor_30000 lamaVM2" [ style = bold] "FAKE4-IP_start_0 lamaVM2" -> "lamaVM2-G4_running_0" [ style = bold] @@ -8,6 +20,12 @@ digraph "g" { "FAKE4-IP_stop_0 lamaVM2" -> "all_stopped" [ style = bold] "FAKE4-IP_stop_0 lamaVM2" -> "lamaVM2-G4_stopped_0" [ style = bold] "FAKE4-IP_stop_0 lamaVM2" [ style=bold color="green" fontcolor="orange"] +"FAKE4_monitor_0 lamaVM1" -> "FAKE4_start_0 lamaVM2" [ style = bold] +"FAKE4_monitor_0 lamaVM1" -> "FAKE4_stop_0 lamaVM2" [ style = bold] +"FAKE4_monitor_0 lamaVM1" [ style=bold color="green" fontcolor="black"] +"FAKE4_monitor_0 lamaVM3" -> "FAKE4_start_0 lamaVM2" [ style = bold] +"FAKE4_monitor_0 lamaVM3" -> "FAKE4_stop_0 lamaVM2" [ style = bold] +"FAKE4_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] "FAKE4_monitor_30000 lamaVM2" [ style=bold color="green" fontcolor="black"] "FAKE4_start_0 lamaVM2" -> "FAKE4-IP_start_0 lamaVM2" [ style = bold] "FAKE4_start_0 lamaVM2" -> "FAKE4_monitor_30000 lamaVM2" [ style = bold] @@ -17,6 +35,11 @@ digraph "g" { "FAKE4_stop_0 lamaVM2" -> "all_stopped" [ style = bold] "FAKE4_stop_0 lamaVM2" -> "lamaVM2-G4_stopped_0" [ style = bold] "FAKE4_stop_0 lamaVM2" [ style=bold color="green" fontcolor="orange"] +"FAKE5-IP_monitor_0 lamaVM1" [ style=bold color="green" fontcolor="black"] +"FAKE5-IP_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FAKE5_monitor_0 lamaVM1" [ style=bold color="green" fontcolor="black"] +"FAKE6-IP_monitor_0 lamaVM1" [ style=bold color="green" fontcolor="black"] +"FAKE6-IP_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] "FAKE6-clone_running_0" [ style=bold color="green" fontcolor="orange"] "FAKE6-clone_start_0" -> "FAKE6-clone_running_0" [ style = bold] "FAKE6-clone_start_0" -> "FAKE6_start_0 lamaVM2" [ style = bold] @@ -34,6 +57,14 @@ digraph "g" { "FAKE6_stop_0 lamaVM2" -> "FAKE6_start_0 lamaVM2" [ style = bold] "FAKE6_stop_0 lamaVM2" -> "all_stopped" [ style = bold] "FAKE6_stop_0 lamaVM2" [ style=bold color="green" fontcolor="orange"] +"FSlun1_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FSlun2_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] +"FSlun3_monitor_0 lamaVM1" -> "FSlun3_start_0 lama2" [ style = bold] +"FSlun3_monitor_0 lamaVM1" -> "FSlun3_stop_0 lamaVM2" [ style = bold] +"FSlun3_monitor_0 lamaVM1" [ style=bold color="green" fontcolor="black"] +"FSlun3_monitor_0 lamaVM3" -> "FSlun3_start_0 lama2" [ style = bold] +"FSlun3_monitor_0 lamaVM3" -> "FSlun3_stop_0 lamaVM2" [ style = bold] +"FSlun3_monitor_0 lamaVM3" [ style=bold color="green" fontcolor="black"] "FSlun3_monitor_10000 lama2" [ style=bold color="green" fontcolor="black"] "FSlun3_monitor_10000 lamaVM2" [ style=bold color="green" fontcolor="black"] "FSlun3_start_0 lama2" -> "FSlun3_monitor_10000 lama2" [ style = bold] @@ -42,6 +73,7 @@ digraph "g" { "FSlun3_stop_0 lamaVM2" -> "FSlun3_start_0 lama2" [ style = bold] "FSlun3_stop_0 lamaVM2" -> "all_stopped" [ style = bold] "FSlun3_stop_0 lamaVM2" [ style=bold color="green" fontcolor="orange"] +"FSlun4_monitor_0 lamaVM1" [ style=bold color="green" fontcolor="black"] "VM2_monitor_10000 lama3" [ style=bold color="green" fontcolor="black"] "VM2_start_0 lama3" -> "FAKE4-IP_start_0 lamaVM2" [ style = bold] "VM2_start_0 lama3" -> "FAKE4_start_0 lamaVM2" [ style = bold] diff --git a/pengine/test10/bug-rh-1097457.exp b/pengine/test10/bug-rh-1097457.exp index eb9b225..33c13bd 100644 --- a/pengine/test10/bug-rh-1097457.exp +++ b/pengine/test10/bug-rh-1097457.exp @@ -1,34 +1,52 @@ - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -37,58 +55,88 @@ - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + + + + + + + - + - + + + + + + + + + + + + + + + + + + + @@ -97,117 +145,255 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + + + + + + + - + + + + + + + + + + + + + + + + + + + @@ -216,57 +402,87 @@ - + - + - + - + - + + + + - + - + - + - + - + + + + - + - + - + - + + + + + + + - + + + + + + + + + + + + + + + + + + + @@ -275,54 +491,54 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -331,89 +547,89 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -423,7 +639,7 @@ - + @@ -432,13 +648,13 @@ - + - + - + @@ -447,23 +663,23 @@ - + - + - + - + - + @@ -471,25 +687,25 @@ - + - + - + - + - + - + - + diff --git a/pengine/test10/bug-rh-1097457.summary b/pengine/test10/bug-rh-1097457.summary index c50df5f..e23c6ad 100644 --- a/pengine/test10/bug-rh-1097457.summary +++ b/pengine/test10/bug-rh-1097457.summary @@ -41,6 +41,26 @@ Transition Summary: * Restart lamaVM2 ( lama3 ) due to required VM2 start Executing cluster transition: + * Resource action: FSlun1 monitor on lamaVM3 + * Resource action: FSlun2 monitor on lamaVM3 + * Resource action: FSlun3 monitor on lamaVM3 + * Resource action: FSlun3 monitor on lamaVM1 + * Resource action: FSlun4 monitor on lamaVM1 + * Resource action: FAKE5-IP monitor on lamaVM3 + * Resource action: FAKE5-IP monitor on lamaVM1 + * Resource action: FAKE6-IP monitor on lamaVM3 + * Resource action: FAKE6-IP monitor on lamaVM1 + * Resource action: FAKE5 monitor on lamaVM1 + * Resource action: FAKE1 monitor on lamaVM3 + * Resource action: FAKE1-IP monitor on lamaVM3 + * Resource action: FAKE2 monitor on lamaVM3 + * Resource action: FAKE2-IP monitor on lamaVM3 + * Resource action: FAKE3 monitor on lamaVM3 + * Resource action: FAKE3-IP monitor on lamaVM3 + * Resource action: FAKE4 monitor on lamaVM3 + * Resource action: FAKE4 monitor on lamaVM1 + * Resource action: FAKE4-IP monitor on lamaVM3 + * Resource action: FAKE4-IP monitor on lamaVM1 * Resource action: lamaVM2 stop on lama3 * Resource action: VM2 stop on lama3 * Pseudo action: stonith-lamaVM2-reboot on lamaVM2 diff --git a/pengine/test10/bundle-order-partial-start-2.dot b/pengine/test10/bundle-order-partial-start-2.dot index d58e809..163be1f 100644 --- a/pengine/test10/bundle-order-partial-start-2.dot +++ b/pengine/test10/bundle-order-partial-start-2.dot @@ -64,6 +64,8 @@ digraph "g" { "rabbitmq-bundle_running_0" [ style=bold color="green" fontcolor="orange"] "rabbitmq-bundle_start_0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] "rabbitmq-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq:0_monitor_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq:0_monitor_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] "rabbitmq:0_post_notify_start_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] "rabbitmq:0_post_notify_start_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] diff --git a/pengine/test10/bundle-order-partial-start-2.exp b/pengine/test10/bundle-order-partial-start-2.exp index f600983..087ed6c 100644 --- a/pengine/test10/bundle-order-partial-start-2.exp +++ b/pengine/test10/bundle-order-partial-start-2.exp @@ -1,234 +1,246 @@ - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -237,29 +249,29 @@ - + - + - + - + - + - + - + @@ -269,7 +281,7 @@ - + @@ -278,277 +290,277 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -556,10 +568,10 @@ - + - + diff --git a/pengine/test10/bundle-order-partial-start-2.summary b/pengine/test10/bundle-order-partial-start-2.summary index bf14db0..50933a2 100644 --- a/pengine/test10/bundle-order-partial-start-2.summary +++ b/pengine/test10/bundle-order-partial-start-2.summary @@ -29,6 +29,7 @@ Transition Summary: * Start haproxy-bundle-docker-0 (undercloud) Executing cluster transition: + * Resource action: rabbitmq:0 monitor on rabbitmq-bundle-0 * Pseudo action: rabbitmq-bundle-clone_pre_notify_start_0 * Resource action: galera-bundle-0 stop on undercloud * Pseudo action: redis-bundle-master_pre_notify_promote_0 diff --git a/pengine/test10/bundle-order-partial-start.dot b/pengine/test10/bundle-order-partial-start.dot index 796749d..958e7f4 100644 --- a/pengine/test10/bundle-order-partial-start.dot +++ b/pengine/test10/bundle-order-partial-start.dot @@ -58,6 +58,8 @@ digraph "g" { "rabbitmq-bundle_running_0" [ style=bold color="green" fontcolor="orange"] "rabbitmq-bundle_start_0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] "rabbitmq-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq:0_monitor_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq:0_monitor_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] "rabbitmq:0_post_notify_start_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] "rabbitmq:0_post_notify_start_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] diff --git a/pengine/test10/bundle-order-partial-start.exp b/pengine/test10/bundle-order-partial-start.exp index d48fccf..8aad157 100644 --- a/pengine/test10/bundle-order-partial-start.exp +++ b/pengine/test10/bundle-order-partial-start.exp @@ -1,529 +1,541 @@ - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/bundle-order-partial-start.summary b/pengine/test10/bundle-order-partial-start.summary index 4e02e88..9045545 100644 --- a/pengine/test10/bundle-order-partial-start.summary +++ b/pengine/test10/bundle-order-partial-start.summary @@ -29,6 +29,7 @@ Transition Summary: * Start haproxy-bundle-docker-0 (undercloud) Executing cluster transition: + * Resource action: rabbitmq:0 monitor on rabbitmq-bundle-0 * Pseudo action: rabbitmq-bundle-clone_pre_notify_start_0 * Resource action: galera-bundle-docker-0 monitor on undercloud * Pseudo action: redis-bundle-master_pre_notify_promote_0 diff --git a/pengine/test10/bundle-order-startup.exp b/pengine/test10/bundle-order-startup.exp index 03b064a..ec1053c 100644 --- a/pengine/test10/bundle-order-startup.exp +++ b/pengine/test10/bundle-order-startup.exp @@ -1,7 +1,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -338,7 +338,7 @@ - + @@ -417,7 +417,7 @@ - + diff --git a/pengine/test10/container-is-remote-node.dot b/pengine/test10/container-is-remote-node.dot index d8f1c9f..ebb0793 100644 --- a/pengine/test10/container-is-remote-node.dot +++ b/pengine/test10/container-is-remote-node.dot @@ -1,2 +1,6 @@ digraph "g" { +"clvmd_monitor_0 RNVM1" [ style=bold color="green" fontcolor="black"] +"dlm_monitor_0 RNVM1" [ style=bold color="green" fontcolor="black"] +"gfs2-lv_1_1_monitor_0 RNVM1" [ style=bold color="green" fontcolor="black"] +"gfs2-lv_1_2_monitor_0 RNVM1" [ style=bold color="green" fontcolor="black"] } diff --git a/pengine/test10/container-is-remote-node.exp b/pengine/test10/container-is-remote-node.exp index 56e315f..d656dd2 100644 --- a/pengine/test10/container-is-remote-node.exp +++ b/pengine/test10/container-is-remote-node.exp @@ -1 +1,38 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pengine/test10/container-is-remote-node.summary b/pengine/test10/container-is-remote-node.summary index 6ed0526..f5c78ce 100644 --- a/pengine/test10/container-is-remote-node.summary +++ b/pengine/test10/container-is-remote-node.summary @@ -26,6 +26,10 @@ Containers: [ RNVM1:VM1 ] Transition Summary: Executing cluster transition: + * Resource action: dlm monitor on RNVM1 + * Resource action: clvmd monitor on RNVM1 + * Resource action: gfs2-lv_1_1 monitor on RNVM1 + * Resource action: gfs2-lv_1_2 monitor on RNVM1 Revised cluster status: Online: [ lama2 lama3 ] diff --git a/pengine/test10/guest-node-host-dies.dot b/pengine/test10/guest-node-host-dies.dot index 04152d1..83f38c4 100644 --- a/pengine/test10/guest-node-host-dies.dot +++ b/pengine/test10/guest-node-host-dies.dot @@ -83,6 +83,7 @@ digraph "g" { "lxc1_stop_0 rhel7-1" -> "all_stopped" [ style = bold] "lxc1_stop_0 rhel7-1" -> "container1_stop_0 rhel7-1" [ style = bold] "lxc1_stop_0 rhel7-1" -> "lxc1_start_0 rhel7-2" [ style = bold] +"lxc1_stop_0 rhel7-1" -> "rsc_rhel7-1_start_0 rhel7-5" [ style = bold] "lxc1_stop_0 rhel7-1" [ style=bold color="green" fontcolor="orange"] "lxc2_monitor_0 rhel7-2" -> "lxc2_start_0 rhel7-3" [ style = bold] "lxc2_monitor_0 rhel7-2" -> "lxc2_stop_0 rhel7-1" [ style = bold] @@ -101,6 +102,7 @@ digraph "g" { "lxc2_stop_0 rhel7-1" -> "all_stopped" [ style = bold] "lxc2_stop_0 rhel7-1" -> "container2_stop_0 rhel7-1" [ style = bold] "lxc2_stop_0 rhel7-1" -> "lxc2_start_0 rhel7-3" [ style = bold] +"lxc2_stop_0 rhel7-1" -> "rsc_rhel7-1_start_0 rhel7-5" [ style = bold] "lxc2_stop_0 rhel7-1" [ style=bold color="green" fontcolor="orange"] "rsc_rhel7-1_monitor_5000 rhel7-5" [ style=bold color="green" fontcolor="black"] "rsc_rhel7-1_start_0 rhel7-5" -> "rsc_rhel7-1_monitor_5000 rhel7-5" [ style = bold] diff --git a/pengine/test10/guest-node-host-dies.exp b/pengine/test10/guest-node-host-dies.exp index cd8d81a..01fe678 100644 --- a/pengine/test10/guest-node-host-dies.exp +++ b/pengine/test10/guest-node-host-dies.exp @@ -62,6 +62,12 @@ + + + + + + diff --git a/pengine/test10/whitebox-asymmetric.dot b/pengine/test10/whitebox-asymmetric.dot index 896f66a..da2f3e3 100644 --- a/pengine/test10/whitebox-asymmetric.dot +++ b/pengine/test10/whitebox-asymmetric.dot @@ -3,8 +3,12 @@ "18node2_start_0 18builder" -> "18node2_monitor_30000 18builder" [ style = bold] "18node2_start_0 18builder" -> "nfs_mount_monitor_10000 18node2" [ style = bold] "18node2_start_0 18builder" -> "nfs_mount_start_0 18node2" [ style = bold] +"18node2_start_0 18builder" -> "vg_tags_dup_monitor_0 18node2" [ style = bold] +"18node2_start_0 18builder" -> "webserver_monitor_0 18node2" [ style = bold] "18node2_start_0 18builder" [ style=bold color="green" fontcolor="black"] "nfs_mount_monitor_10000 18node2" [ style=bold color="green" fontcolor="black"] "nfs_mount_start_0 18node2" -> "nfs_mount_monitor_10000 18node2" [ style = bold] "nfs_mount_start_0 18node2" [ style=bold color="green" fontcolor="black"] +"vg_tags_dup_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] +"webserver_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] } diff --git a/pengine/test10/whitebox-asymmetric.exp b/pengine/test10/whitebox-asymmetric.exp index 1178fb6..db71443 100644 --- a/pengine/test10/whitebox-asymmetric.exp +++ b/pengine/test10/whitebox-asymmetric.exp @@ -1,49 +1,75 @@ - + + + + + + + + + + + + + + - + - + - + - + - + - + - + + + + + + + + + + + + + + - + - + - + diff --git a/pengine/test10/whitebox-asymmetric.summary b/pengine/test10/whitebox-asymmetric.summary index 1c5011d..8da9996 100644 --- a/pengine/test10/whitebox-asymmetric.summary +++ b/pengine/test10/whitebox-asymmetric.summary @@ -17,7 +17,9 @@ Transition Summary: Executing cluster transition: * Resource action: 18node2 start on 18builder + * Resource action: webserver monitor on 18node2 * Resource action: nfs_mount start on 18node2 + * Resource action: vg_tags_dup monitor on 18node2 * Resource action: 18node2 monitor=30000 on 18builder * Resource action: nfs_mount monitor=10000 on 18node2 diff --git a/pengine/test10/whitebox-fail1.dot b/pengine/test10/whitebox-fail1.dot index 0123a58..3cf4f76 100644 --- a/pengine/test10/whitebox-fail1.dot +++ b/pengine/test10/whitebox-fail1.dot @@ -1,10 +1,15 @@ digraph "g" { +"A_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"B_monitor_0 lxc2" -> "B_start_0 lxc1" [ style = bold] +"B_monitor_0 lxc2" -> "B_stop_0 lxc1" [ style = bold] +"B_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "B_monitor_10000 lxc1" [ style=bold color="green" fontcolor="black"] "B_start_0 lxc1" -> "B_monitor_10000 lxc1" [ style = bold] "B_start_0 lxc1" [ style=bold color="green" fontcolor="black"] "B_stop_0 lxc1" -> "B_start_0 lxc1" [ style = bold] "B_stop_0 lxc1" -> "all_stopped" [ style = bold] "B_stop_0 lxc1" [ style=bold color="green" fontcolor="orange"] +"D_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "M-clone_running_0" [ style=bold color="green" fontcolor="orange"] "M-clone_start_0" -> "M-clone_running_0" [ style = bold] "M-clone_start_0" -> "M_start_0 lxc1" [ style = bold] diff --git a/pengine/test10/whitebox-fail1.exp b/pengine/test10/whitebox-fail1.exp index 4cb6136..ab739b5 100644 --- a/pengine/test10/whitebox-fail1.exp +++ b/pengine/test10/whitebox-fail1.exp @@ -1,7 +1,7 @@ - + @@ -11,7 +11,7 @@ - + @@ -24,192 +24,225 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + - + + + + - + - + - + - + - + - + + + + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -219,7 +252,7 @@ - + @@ -228,13 +261,13 @@ - + - + - + @@ -247,19 +280,19 @@ - + - + - + - + @@ -270,16 +303,16 @@ - + - + - + - + diff --git a/pengine/test10/whitebox-fail1.summary b/pengine/test10/whitebox-fail1.summary index 1271d4f..d1f3480 100644 --- a/pengine/test10/whitebox-fail1.summary +++ b/pengine/test10/whitebox-fail1.summary @@ -21,6 +21,9 @@ Transition Summary: * Restart lxc1 ( 18node2 ) due to required container1 start Executing cluster transition: + * Resource action: A monitor on lxc2 + * Resource action: B monitor on lxc2 + * Resource action: D monitor on lxc2 * Resource action: lxc1 stop on 18node2 * Resource action: container1 stop on 18node2 * Pseudo action: stonith-lxc1-reboot on lxc1 diff --git a/pengine/test10/whitebox-fail2.dot b/pengine/test10/whitebox-fail2.dot index 0123a58..3cf4f76 100644 --- a/pengine/test10/whitebox-fail2.dot +++ b/pengine/test10/whitebox-fail2.dot @@ -1,10 +1,15 @@ digraph "g" { +"A_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"B_monitor_0 lxc2" -> "B_start_0 lxc1" [ style = bold] +"B_monitor_0 lxc2" -> "B_stop_0 lxc1" [ style = bold] +"B_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "B_monitor_10000 lxc1" [ style=bold color="green" fontcolor="black"] "B_start_0 lxc1" -> "B_monitor_10000 lxc1" [ style = bold] "B_start_0 lxc1" [ style=bold color="green" fontcolor="black"] "B_stop_0 lxc1" -> "B_start_0 lxc1" [ style = bold] "B_stop_0 lxc1" -> "all_stopped" [ style = bold] "B_stop_0 lxc1" [ style=bold color="green" fontcolor="orange"] +"D_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "M-clone_running_0" [ style=bold color="green" fontcolor="orange"] "M-clone_start_0" -> "M-clone_running_0" [ style = bold] "M-clone_start_0" -> "M_start_0 lxc1" [ style = bold] diff --git a/pengine/test10/whitebox-fail2.exp b/pengine/test10/whitebox-fail2.exp index 4cb6136..ab739b5 100644 --- a/pengine/test10/whitebox-fail2.exp +++ b/pengine/test10/whitebox-fail2.exp @@ -1,7 +1,7 @@ - + @@ -11,7 +11,7 @@ - + @@ -24,192 +24,225 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + - + + + + - + - + - + - + - + - + + + + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + @@ -219,7 +252,7 @@ - + @@ -228,13 +261,13 @@ - + - + - + @@ -247,19 +280,19 @@ - + - + - + - + @@ -270,16 +303,16 @@ - + - + - + - + diff --git a/pengine/test10/whitebox-fail2.summary b/pengine/test10/whitebox-fail2.summary index 5fd1ebd..ebf6c51 100644 --- a/pengine/test10/whitebox-fail2.summary +++ b/pengine/test10/whitebox-fail2.summary @@ -21,6 +21,9 @@ Transition Summary: * Recover lxc1 ( 18node2 ) Executing cluster transition: + * Resource action: A monitor on lxc2 + * Resource action: B monitor on lxc2 + * Resource action: D monitor on lxc2 * Resource action: lxc1 stop on 18node2 * Resource action: container1 stop on 18node2 * Pseudo action: stonith-lxc1-reboot on lxc1 diff --git a/pengine/test10/whitebox-fail3.dot b/pengine/test10/whitebox-fail3.dot index 9814f66..6f608d1 100644 --- a/pengine/test10/whitebox-fail3.dot +++ b/pengine/test10/whitebox-fail3.dot @@ -1,5 +1,8 @@ digraph "g" { "18builder_monitor_0 dvossel-laptop2" -> "18builder_start_0 dvossel-laptop2" [ style = bold] +"18builder_monitor_0 dvossel-laptop2" -> "FAKE_start_0 18builder" [ style = bold] +"18builder_monitor_0 dvossel-laptop2" -> "W-master_start_0" [ style = bold] +"18builder_monitor_0 dvossel-laptop2" -> "X-master_start_0" [ style = bold] "18builder_monitor_0 dvossel-laptop2" [ style=bold color="green" fontcolor="black"] "18builder_monitor_30000 dvossel-laptop2" [ style=bold color="green" fontcolor="black"] "18builder_start_0 dvossel-laptop2" -> "18builder_monitor_30000 dvossel-laptop2" [ style = bold] diff --git a/pengine/test10/whitebox-fail3.exp b/pengine/test10/whitebox-fail3.exp index ec28f12..cddd7dd 100644 --- a/pengine/test10/whitebox-fail3.exp +++ b/pengine/test10/whitebox-fail3.exp @@ -17,6 +17,9 @@ + + + @@ -92,7 +95,11 @@ - + + + + + @@ -150,7 +157,11 @@ - + + + + + diff --git a/pengine/test10/whitebox-fail3.summary b/pengine/test10/whitebox-fail3.summary index eded099..374fb69 100644 --- a/pengine/test10/whitebox-fail3.summary +++ b/pengine/test10/whitebox-fail3.summary @@ -22,10 +22,10 @@ Transition Summary: Executing cluster transition: * Resource action: vm start on dvossel-laptop2 * Resource action: FAKE stop on dvossel-laptop2 - * Pseudo action: W-master_start_0 - * Pseudo action: X-master_start_0 * Resource action: 18builder monitor on dvossel-laptop2 * Pseudo action: all_stopped + * Pseudo action: W-master_start_0 + * Pseudo action: X-master_start_0 * Resource action: 18builder start on dvossel-laptop2 * Resource action: FAKE start on 18builder * Resource action: W start on 18builder diff --git a/pengine/test10/whitebox-imply-stop-on-fence.dot b/pengine/test10/whitebox-imply-stop-on-fence.dot index 8ef42fd..029e9f1 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.dot +++ b/pengine/test10/whitebox-imply-stop-on-fence.dot @@ -23,6 +23,10 @@ "clvmd-clone_stop_0" [ style=bold color="green" fontcolor="orange"] "clvmd-clone_stopped_0" -> "dlm-clone_stop_0" [ style = bold] "clvmd-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] +"clvmd_monitor_0 lxc-01_kiff-02" -> "clvmd_stop_0 kiff-01" [ style = bold] +"clvmd_monitor_0 lxc-01_kiff-02" [ style=bold color="green" fontcolor="black"] +"clvmd_monitor_0 lxc-02_kiff-02" -> "clvmd_stop_0 kiff-01" [ style = bold] +"clvmd_monitor_0 lxc-02_kiff-02" [ style=bold color="green" fontcolor="black"] "clvmd_stop_0 kiff-01" -> "all_stopped" [ style = bold] "clvmd_stop_0 kiff-01" -> "clvmd-clone_stopped_0" [ style = bold] "clvmd_stop_0 kiff-01" -> "dlm_stop_0 kiff-01" [ style = bold] @@ -31,6 +35,10 @@ "dlm-clone_stop_0" -> "dlm_stop_0 kiff-01" [ style = bold] "dlm-clone_stop_0" [ style=bold color="green" fontcolor="orange"] "dlm-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] +"dlm_monitor_0 lxc-01_kiff-02" -> "dlm_stop_0 kiff-01" [ style = bold] +"dlm_monitor_0 lxc-01_kiff-02" [ style=bold color="green" fontcolor="black"] +"dlm_monitor_0 lxc-02_kiff-02" -> "dlm_stop_0 kiff-01" [ style = bold] +"dlm_monitor_0 lxc-02_kiff-02" [ style=bold color="green" fontcolor="black"] "dlm_stop_0 kiff-01" -> "all_stopped" [ style = bold] "dlm_stop_0 kiff-01" -> "dlm-clone_stopped_0" [ style = bold] "dlm_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] @@ -55,12 +63,17 @@ "lxc-02_kiff-01_stop_0 kiff-01" -> "R-lxc-02_kiff-01_stop_0 kiff-01" [ style = bold] "lxc-02_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] "lxc-02_kiff-01_stop_0 kiff-01" -> "lxc-02_kiff-01_start_0 kiff-02" [ style = bold] +"lxc-02_kiff-01_stop_0 kiff-01" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] "lxc-02_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] "shared0-clone_stop_0" -> "shared0-clone_stopped_0" [ style = bold] "shared0-clone_stop_0" -> "shared0_stop_0 kiff-01" [ style = bold] "shared0-clone_stop_0" [ style=bold color="green" fontcolor="orange"] "shared0-clone_stopped_0" -> "clvmd-clone_stop_0" [ style = bold] "shared0-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] +"shared0_monitor_0 lxc-01_kiff-02" -> "shared0_stop_0 kiff-01" [ style = bold] +"shared0_monitor_0 lxc-01_kiff-02" [ style=bold color="green" fontcolor="black"] +"shared0_monitor_0 lxc-02_kiff-02" -> "shared0_stop_0 kiff-01" [ style = bold] +"shared0_monitor_0 lxc-02_kiff-02" [ style=bold color="green" fontcolor="black"] "shared0_stop_0 kiff-01" -> "all_stopped" [ style = bold] "shared0_stop_0 kiff-01" -> "clvmd_stop_0 kiff-01" [ style = bold] "shared0_stop_0 kiff-01" -> "shared0-clone_stopped_0" [ style = bold] @@ -91,6 +104,12 @@ "stonith_complete" -> "lxc-02_kiff-01_start_0 kiff-02" [ style = bold] "stonith_complete" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] "stonith_complete" [ style=bold color="green" fontcolor="orange"] +"vm-fs_monitor_0 lxc-01_kiff-02" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] +"vm-fs_monitor_0 lxc-01_kiff-02" -> "vm-fs_stop_0 lxc-01_kiff-01" [ style = bold] +"vm-fs_monitor_0 lxc-01_kiff-02" [ style=bold color="green" fontcolor="black"] +"vm-fs_monitor_0 lxc-02_kiff-02" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] +"vm-fs_monitor_0 lxc-02_kiff-02" -> "vm-fs_stop_0 lxc-01_kiff-01" [ style = bold] +"vm-fs_monitor_0 lxc-02_kiff-02" [ style=bold color="green" fontcolor="black"] "vm-fs_monitor_20000 lxc-01_kiff-01" [ style=bold color="green" fontcolor="black"] "vm-fs_start_0 lxc-01_kiff-01" -> "vm-fs_monitor_20000 lxc-01_kiff-01" [ style = bold] "vm-fs_start_0 lxc-01_kiff-01" [ style=bold color="green" fontcolor="black"] diff --git a/pengine/test10/whitebox-imply-stop-on-fence.exp b/pengine/test10/whitebox-imply-stop-on-fence.exp index d1e22ee..b5700c0 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.exp +++ b/pengine/test10/whitebox-imply-stop-on-fence.exp @@ -1,20 +1,20 @@ - + - + - + @@ -24,13 +24,13 @@ - + - + @@ -38,7 +38,7 @@ - + @@ -47,31 +47,55 @@ - + - + + + + + + + - + + + + + + + + + + - + + + + + + + + + + - + - + - + - + @@ -80,13 +104,13 @@ - + - + - + @@ -95,31 +119,55 @@ - + + + + + + + - + - + + + + + + + + + + - + + + + + + + + + + - + - + - + - + @@ -128,13 +176,13 @@ - + - + - + @@ -143,28 +191,52 @@ - + + + + + + + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + @@ -173,45 +245,45 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -220,42 +292,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -264,95 +336,128 @@ - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + - + + + + + + + - + + + + + + + + + + - + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -362,41 +467,41 @@ - + - + - + - + - + - + - + - + - + - + @@ -406,9 +511,9 @@ - + - + @@ -421,9 +526,9 @@ - + - + @@ -436,9 +541,9 @@ - + - + @@ -447,14 +552,14 @@ - + - + - + @@ -462,38 +567,38 @@ - + - + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/whitebox-imply-stop-on-fence.summary b/pengine/test10/whitebox-imply-stop-on-fence.summary index 87d7b4f..d272b25 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.summary +++ b/pengine/test10/whitebox-imply-stop-on-fence.summary @@ -40,6 +40,14 @@ Transition Summary: Executing cluster transition: * Pseudo action: fence-kiff-02_stop_0 + * Resource action: dlm monitor on lxc-02_kiff-02 + * Resource action: dlm monitor on lxc-01_kiff-02 + * Resource action: clvmd monitor on lxc-02_kiff-02 + * Resource action: clvmd monitor on lxc-01_kiff-02 + * Resource action: shared0 monitor on lxc-02_kiff-02 + * Resource action: shared0 monitor on lxc-01_kiff-02 + * Resource action: vm-fs monitor on lxc-02_kiff-02 + * Resource action: vm-fs monitor on lxc-01_kiff-02 * Fencing kiff-01 (reboot) * Pseudo action: lxc-01_kiff-01_stop_0 * Pseudo action: lxc-02_kiff-01_stop_0 diff --git a/pengine/test10/whitebox-migrate1.dot b/pengine/test10/whitebox-migrate1.dot index e54df2c..53d37e0 100644 --- a/pengine/test10/whitebox-migrate1.dot +++ b/pengine/test10/whitebox-migrate1.dot @@ -32,6 +32,7 @@ "rhel7-node1_monitor_30000 rhel7-node3" [ style=bold color="green" fontcolor="black"] "rhel7-node1_start_0 rhel7-node3" -> "rhel7-node1_monitor_30000 rhel7-node3" [ style = bold] "rhel7-node1_start_0 rhel7-node3" [ style=bold color="green" fontcolor="orange"] +"rhel7-node1_stop_0 rhel7-node2" -> "FAKE3_start_0 rhel7-node2" [ style = dashed] "rhel7-node1_stop_0 rhel7-node2" -> "all_stopped" [ style = bold] "rhel7-node1_stop_0 rhel7-node2" -> "remote-rsc_migrate_to_0 rhel7-node2" [ style = dashed] "rhel7-node1_stop_0 rhel7-node2" -> "remote-rsc_stop_0 rhel7-node2" [ style = bold] diff --git a/pengine/test10/whitebox-move.dot b/pengine/test10/whitebox-move.dot index f47c95b..ed06b7c 100644 --- a/pengine/test10/whitebox-move.dot +++ b/pengine/test10/whitebox-move.dot @@ -1,4 +1,7 @@ digraph "g" { +"A_monitor_0 lxc2" -> "A_start_0 lxc1" [ style = bold] +"A_monitor_0 lxc2" -> "A_stop_0 lxc1" [ style = bold] +"A_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "A_monitor_10000 lxc1" [ style=bold color="green" fontcolor="black"] "A_start_0 lxc1" -> "A_monitor_10000 lxc1" [ style = bold] "A_start_0 lxc1" [ style=bold color="green" fontcolor="black"] diff --git a/pengine/test10/whitebox-move.exp b/pengine/test10/whitebox-move.exp index 4461890..6f00275 100644 --- a/pengine/test10/whitebox-move.exp +++ b/pengine/test10/whitebox-move.exp @@ -1,62 +1,62 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -69,31 +69,31 @@ - + - + - + - + - + - + @@ -101,61 +101,77 @@ - + - + - + - + - + - + - + - + - + + + + - + - + + + + + + + + + + + + + + @@ -163,45 +179,45 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -211,14 +227,14 @@ - + - + - + @@ -226,16 +242,16 @@ - + - + - + - + diff --git a/pengine/test10/whitebox-move.summary b/pengine/test10/whitebox-move.summary index 5e27a67..23bc5de 100644 --- a/pengine/test10/whitebox-move.summary +++ b/pengine/test10/whitebox-move.summary @@ -18,10 +18,11 @@ Transition Summary: Executing cluster transition: * Pseudo action: M-clone_stop_0 - * Resource action: A stop on lxc1 + * Resource action: A monitor on lxc2 * Resource action: M stop on lxc1 * Pseudo action: M-clone_stopped_0 * Pseudo action: M-clone_start_0 + * Resource action: A stop on lxc1 * Resource action: lxc1 stop on 18node1 * Resource action: container1 stop on 18node1 * Pseudo action: all_stopped diff --git a/pengine/test10/whitebox-ms-ordering-move.dot b/pengine/test10/whitebox-ms-ordering-move.dot index 43c1d4f..e6b5406 100644 --- a/pengine/test10/whitebox-ms-ordering-move.dot +++ b/pengine/test10/whitebox-ms-ordering-move.dot @@ -7,6 +7,7 @@ digraph "g" { "container1_stop_0 rhel7-1" -> "all_stopped" [ style = bold] "container1_stop_0 rhel7-1" -> "container1_start_0 rhel7-2" [ style = bold] "container1_stop_0 rhel7-1" [ style=bold color="green" fontcolor="black"] +"lsb-dummy_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "lxc-ms-master_demote_0" -> "lxc-ms-master_demoted_0" [ style = bold] "lxc-ms-master_demote_0" -> "lxc-ms_demote_0 lxc1" [ style = bold] "lxc-ms-master_demote_0" [ style=bold color="green" fontcolor="orange"] @@ -68,4 +69,15 @@ digraph "g" { "lxc2_monitor_0 rhel7-3" [ style=bold color="green" fontcolor="black"] "lxc2_monitor_0 rhel7-4" [ style=bold color="green" fontcolor="black"] "lxc2_monitor_0 rhel7-5" [ style=bold color="green" fontcolor="black"] +"migrator_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"petulant_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"ping-1_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"r192.168.122.207_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"r192.168.122.208_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"rsc_rhel7-1_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"rsc_rhel7-2_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"rsc_rhel7-3_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"rsc_rhel7-4_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"rsc_rhel7-5_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"stateful-1_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] } diff --git a/pengine/test10/whitebox-ms-ordering-move.exp b/pengine/test10/whitebox-ms-ordering-move.exp index dc5e473..a8ffa64 100644 --- a/pengine/test10/whitebox-ms-ordering-move.exp +++ b/pengine/test10/whitebox-ms-ordering-move.exp @@ -1,260 +1,368 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -264,98 +372,98 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -363,13 +471,13 @@ - + - + - + diff --git a/pengine/test10/whitebox-ms-ordering-move.summary b/pengine/test10/whitebox-ms-ordering-move.summary index 80156b0..af86d74 100644 --- a/pengine/test10/whitebox-ms-ordering-move.summary +++ b/pengine/test10/whitebox-ms-ordering-move.summary @@ -35,6 +35,18 @@ Transition Summary: * Move lxc1 ( rhel7-1 -> rhel7-2 ) Executing cluster transition: + * Resource action: rsc_rhel7-1 monitor on lxc2 + * Resource action: rsc_rhel7-2 monitor on lxc2 + * Resource action: rsc_rhel7-3 monitor on lxc2 + * Resource action: rsc_rhel7-4 monitor on lxc2 + * Resource action: rsc_rhel7-5 monitor on lxc2 + * Resource action: migrator monitor on lxc2 + * Resource action: ping-1 monitor on lxc2 + * Resource action: stateful-1 monitor on lxc2 + * Resource action: r192.168.122.207 monitor on lxc2 + * Resource action: petulant monitor on lxc2 + * Resource action: r192.168.122.208 monitor on lxc2 + * Resource action: lsb-dummy monitor on lxc2 * Pseudo action: lxc-ms-master_demote_0 * Resource action: lxc1 monitor on rhel7-5 * Resource action: lxc1 monitor on rhel7-4 diff --git a/pengine/test10/whitebox-nested-group.dot b/pengine/test10/whitebox-nested-group.dot index 9e1abce..e5749ec 100644 --- a/pengine/test10/whitebox-nested-group.dot +++ b/pengine/test10/whitebox-nested-group.dot @@ -1,9 +1,30 @@ digraph "g" { "c7auto4_monitor_0 c7auto1" -> "c7auto4_start_0 c7auto1" [ style = bold] +"c7auto4_monitor_0 c7auto1" -> "fake1_start_0 c7auto3" [ style = bold] +"c7auto4_monitor_0 c7auto1" -> "fake2_start_0 c7auto4" [ style = bold] +"c7auto4_monitor_0 c7auto1" -> "fake3_start_0 c7auto2" [ style = bold] +"c7auto4_monitor_0 c7auto1" -> "fake4_start_0 c7auto3" [ style = bold] +"c7auto4_monitor_0 c7auto1" -> "fake5_start_0 c7auto4" [ style = bold] +"c7auto4_monitor_0 c7auto1" -> "fake_clone_start_0" [ style = bold] +"c7auto4_monitor_0 c7auto1" -> "fake_group_start_0" [ style = bold] "c7auto4_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"] "c7auto4_monitor_0 c7auto2" -> "c7auto4_start_0 c7auto1" [ style = bold] +"c7auto4_monitor_0 c7auto2" -> "fake1_start_0 c7auto3" [ style = bold] +"c7auto4_monitor_0 c7auto2" -> "fake2_start_0 c7auto4" [ style = bold] +"c7auto4_monitor_0 c7auto2" -> "fake3_start_0 c7auto2" [ style = bold] +"c7auto4_monitor_0 c7auto2" -> "fake4_start_0 c7auto3" [ style = bold] +"c7auto4_monitor_0 c7auto2" -> "fake5_start_0 c7auto4" [ style = bold] +"c7auto4_monitor_0 c7auto2" -> "fake_clone_start_0" [ style = bold] +"c7auto4_monitor_0 c7auto2" -> "fake_group_start_0" [ style = bold] "c7auto4_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"] "c7auto4_monitor_0 c7auto3" -> "c7auto4_start_0 c7auto1" [ style = bold] +"c7auto4_monitor_0 c7auto3" -> "fake1_start_0 c7auto3" [ style = bold] +"c7auto4_monitor_0 c7auto3" -> "fake2_start_0 c7auto4" [ style = bold] +"c7auto4_monitor_0 c7auto3" -> "fake3_start_0 c7auto2" [ style = bold] +"c7auto4_monitor_0 c7auto3" -> "fake4_start_0 c7auto3" [ style = bold] +"c7auto4_monitor_0 c7auto3" -> "fake5_start_0 c7auto4" [ style = bold] +"c7auto4_monitor_0 c7auto3" -> "fake_clone_start_0" [ style = bold] +"c7auto4_monitor_0 c7auto3" -> "fake_group_start_0" [ style = bold] "c7auto4_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"] "c7auto4_monitor_30000 c7auto1" [ style=bold color="green" fontcolor="black"] "c7auto4_start_0 c7auto1" -> "c7auto4_monitor_30000 c7auto1" [ style = bold] diff --git a/pengine/test10/whitebox-nested-group.exp b/pengine/test10/whitebox-nested-group.exp index 388c4d4..5625c92 100644 --- a/pengine/test10/whitebox-nested-group.exp +++ b/pengine/test10/whitebox-nested-group.exp @@ -24,11 +24,20 @@ + + + + + + + + + @@ -86,12 +95,21 @@ + + + + + + + + + @@ -151,11 +169,20 @@ + + + + + + + + + @@ -210,11 +237,20 @@ + + + + + + + + + @@ -272,12 +308,21 @@ + + + + + + + + + @@ -487,11 +532,20 @@ + + + + + + + + + @@ -518,7 +572,17 @@ - + + + + + + + + + + + diff --git a/pengine/test10/whitebox-nested-group.summary b/pengine/test10/whitebox-nested-group.summary index ca9c47f..b03b357 100644 --- a/pengine/test10/whitebox-nested-group.summary +++ b/pengine/test10/whitebox-nested-group.summary @@ -47,8 +47,6 @@ Executing cluster transition: * Resource action: fake:0 monitor on c7auto2 * Resource action: fake:1 monitor on c7auto3 * Resource action: fake:3 monitor on c7auto1 - * Pseudo action: fake_clone_start_0 - * Pseudo action: fake_group_start_0 * Resource action: fake_fs monitor on c7auto3 * Resource action: fake_fs monitor on c7auto2 * Resource action: fake_fs monitor on c7auto1 @@ -58,9 +56,8 @@ Executing cluster transition: * Resource action: fake1 start on c7auto3 * Resource action: fake3 start on c7auto2 * Resource action: fake4 start on c7auto3 - * Resource action: fake:0 start on c7auto2 - * Resource action: fake:1 start on c7auto3 - * Resource action: fake:3 start on c7auto1 + * Pseudo action: fake_clone_start_0 + * Pseudo action: fake_group_start_0 * Resource action: fake_fs start on c7auto1 * Resource action: container start on c7auto1 * Resource action: c7auto4 start on c7auto1 @@ -69,10 +66,10 @@ Executing cluster transition: * Resource action: fake3 monitor=10000 on c7auto2 * Resource action: fake4 monitor=10000 on c7auto3 * Resource action: fake5 start on c7auto4 - * Resource action: fake:0 monitor=10000 on c7auto2 - * Resource action: fake:1 monitor=10000 on c7auto3 + * Resource action: fake:0 start on c7auto2 + * Resource action: fake:1 start on c7auto3 * Resource action: fake:2 start on c7auto4 - * Resource action: fake:3 monitor=10000 on c7auto1 + * Resource action: fake:3 start on c7auto1 * Pseudo action: fake_clone_running_0 * Pseudo action: fake_group_running_0 * Resource action: fake_fs monitor=10000 on c7auto1 @@ -80,7 +77,10 @@ Executing cluster transition: * Resource action: c7auto4 monitor=30000 on c7auto1 * Resource action: fake2 monitor=10000 on c7auto4 * Resource action: fake5 monitor=10000 on c7auto4 + * Resource action: fake:0 monitor=10000 on c7auto2 + * Resource action: fake:1 monitor=10000 on c7auto3 * Resource action: fake:2 monitor=10000 on c7auto4 + * Resource action: fake:3 monitor=10000 on c7auto1 Revised cluster status: Online: [ c7auto1 c7auto2 c7auto3 ] diff --git a/pengine/test10/whitebox-orphan-ms.dot b/pengine/test10/whitebox-orphan-ms.dot index 46b6cda..4e2e211 100644 --- a/pengine/test10/whitebox-orphan-ms.dot +++ b/pengine/test10/whitebox-orphan-ms.dot @@ -25,6 +25,8 @@ "container2_stop_0 18node1" -> "container2_delete_0 18node2" [ style = bold] "container2_stop_0 18node1" -> "container2_delete_0 18node3" [ style = bold] "container2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] +"lsb-dummy_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"lsb-dummy_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] "lxc-ms_clear_failcount_0 lxc1" -> "lxc-ms_stop_0 lxc1" [ style = dashed] "lxc-ms_clear_failcount_0 lxc1" -> "lxc-ms_stop_0 lxc2" [ style = dashed] "lxc-ms_clear_failcount_0 lxc1" [ style=dashed color="red" fontcolor="black"] @@ -69,4 +71,20 @@ "lxc2_stop_0 18node1" -> "lxc2_delete_0 18node2" [ style = bold] "lxc2_stop_0 18node1" -> "lxc2_delete_0 18node3" [ style = bold] "lxc2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] +"migrator_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"migrator_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] +"ping-1_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"ping-1_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] +"r192.168.122.87_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"r192.168.122.87_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] +"r192.168.122.88_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"r192.168.122.88_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] +"r192.168.122.89_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"r192.168.122.89_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] +"rsc_18node1_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"rsc_18node1_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] +"rsc_18node2_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"rsc_18node2_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] +"rsc_18node3_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"rsc_18node3_monitor_0 lxc2" [ style=dashed color="red" fontcolor="black"] } diff --git a/pengine/test10/whitebox-orphan-ms.exp b/pengine/test10/whitebox-orphan-ms.exp index ef81317..564e92d 100644 --- a/pengine/test10/whitebox-orphan-ms.exp +++ b/pengine/test10/whitebox-orphan-ms.exp @@ -1,20 +1,20 @@ - + - + - + @@ -23,14 +23,14 @@ - + - + @@ -43,7 +43,7 @@ - + @@ -56,7 +56,7 @@ - + @@ -69,13 +69,13 @@ - + - + @@ -85,10 +85,10 @@ - + - + @@ -101,7 +101,7 @@ - + @@ -114,7 +114,7 @@ - + @@ -127,45 +127,45 @@ - + - + - + - + - + - + - + - + @@ -174,7 +174,7 @@ - + @@ -190,10 +190,10 @@ - + - + @@ -206,10 +206,10 @@ - + - + @@ -222,16 +222,16 @@ - + - + - + @@ -241,10 +241,10 @@ - + - + @@ -257,7 +257,7 @@ - + @@ -270,7 +270,7 @@ - + @@ -283,20 +283,20 @@ - + - + - + @@ -309,7 +309,7 @@ - + @@ -322,7 +322,7 @@ - + @@ -335,7 +335,7 @@ - + @@ -347,25 +347,25 @@ - + - + - + - + - + - + - + diff --git a/pengine/test10/whitebox-orphaned.dot b/pengine/test10/whitebox-orphaned.dot index e50252d..4ef1f7e 100644 --- a/pengine/test10/whitebox-orphaned.dot +++ b/pengine/test10/whitebox-orphaned.dot @@ -1,4 +1,9 @@ digraph "g" { +"A_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"A_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"B_monitor_0 lxc2" -> "B_start_0 lxc2" [ style = bold] +"B_monitor_0 lxc2" -> "B_stop_0 lxc1" [ style = bold] +"B_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "B_monitor_10000 lxc2" [ style=bold color="green" fontcolor="black"] "B_start_0 lxc2" -> "B_monitor_10000 lxc2" [ style = bold] "B_start_0 lxc2" [ style=bold color="green" fontcolor="black"] @@ -6,6 +11,9 @@ "B_stop_0 lxc1" -> "all_stopped" [ style = bold] "B_stop_0 lxc1" -> "lxc1_stop_0 18node2" [ style = bold] "B_stop_0 lxc1" [ style=bold color="green" fontcolor="black"] +"C_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"D_monitor_0 lxc1" [ style=dashed color="red" fontcolor="black"] +"D_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "M-clone_stop_0" -> "M-clone_stopped_0" [ style = bold] "M-clone_stop_0" -> "M_stop_0 lxc1" [ style = bold] "M-clone_stop_0" [ style=bold color="green" fontcolor="orange"] diff --git a/pengine/test10/whitebox-orphaned.exp b/pengine/test10/whitebox-orphaned.exp index 334e594..843f186 100644 --- a/pengine/test10/whitebox-orphaned.exp +++ b/pengine/test10/whitebox-orphaned.exp @@ -1,35 +1,35 @@ - + - + - + - + - + - + @@ -37,65 +37,99 @@ - + + + + + + + + + + - + - + - + - + + + + - + - + + + + + + + + + + + + + + - + - + + + + + + + + + + - + - + - + - + - + @@ -104,11 +138,11 @@ - + - + @@ -117,11 +151,11 @@ - + - + @@ -130,13 +164,13 @@ - + - + - + @@ -146,26 +180,26 @@ - + - + - + - + - + - + @@ -174,11 +208,11 @@ - + - + @@ -187,11 +221,11 @@ - + - + @@ -200,11 +234,11 @@ - + - + @@ -212,16 +246,16 @@ - + - + - + - + diff --git a/pengine/test10/whitebox-orphaned.summary b/pengine/test10/whitebox-orphaned.summary index 7d173b2..e0928b1 100644 --- a/pengine/test10/whitebox-orphaned.summary +++ b/pengine/test10/whitebox-orphaned.summary @@ -23,22 +23,25 @@ Transition Summary: Executing cluster transition: * Pseudo action: M-clone_stop_0 - * Resource action: B stop on lxc1 + * Resource action: A monitor on lxc2 + * Resource action: B monitor on lxc2 + * Resource action: D monitor on lxc2 * Cluster action: clear_failcount for container1 on 18node2 * Cluster action: clear_failcount for lxc1 on 18node2 * Resource action: M stop on lxc1 * Pseudo action: M-clone_stopped_0 - * Resource action: B start on lxc2 + * Resource action: B stop on lxc1 * Resource action: lxc1 stop on 18node2 * Resource action: lxc1 delete on 18node3 * Resource action: lxc1 delete on 18node2 * Resource action: lxc1 delete on 18node1 - * Resource action: B monitor=10000 on lxc2 + * Resource action: B start on lxc2 * Resource action: container1 stop on 18node2 * Resource action: container1 delete on 18node3 * Resource action: container1 delete on 18node2 * Resource action: container1 delete on 18node1 * Pseudo action: all_stopped + * Resource action: B monitor=10000 on lxc2 Revised cluster status: Online: [ 18node1 18node2 18node3 ] diff --git a/pengine/test10/whitebox-start.dot b/pengine/test10/whitebox-start.dot index 8b4dbcd..28f747a 100644 --- a/pengine/test10/whitebox-start.dot +++ b/pengine/test10/whitebox-start.dot @@ -1,4 +1,7 @@ digraph "g" { +"A_monitor_0 lxc2" -> "A_start_0 lxc1" [ style = bold] +"A_monitor_0 lxc2" -> "A_stop_0 18node1" [ style = bold] +"A_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "A_monitor_10000 lxc1" [ style=bold color="green" fontcolor="black"] "A_start_0 lxc1" -> "A_monitor_10000 lxc1" [ style = bold] "A_start_0 lxc1" [ style=bold color="green" fontcolor="black"] @@ -11,6 +14,7 @@ digraph "g" { "B_stop_0 lxc2" -> "B_start_0 18node3" [ style = bold] "B_stop_0 lxc2" -> "all_stopped" [ style = bold] "B_stop_0 lxc2" [ style=bold color="green" fontcolor="black"] +"D_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "M-clone_running_0" [ style=bold color="green" fontcolor="orange"] "M-clone_start_0" -> "M-clone_running_0" [ style = bold] "M-clone_start_0" -> "M_start_0 lxc1" [ style = bold] diff --git a/pengine/test10/whitebox-start.exp b/pengine/test10/whitebox-start.exp index ccccf60..360b8a7 100644 --- a/pengine/test10/whitebox-start.exp +++ b/pengine/test10/whitebox-start.exp @@ -1,7 +1,7 @@ - + @@ -10,57 +10,57 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -68,110 +68,135 @@ - + - + - + - + - + - + - + + + + - + - + + + + + - + + + + + + + + + + - + - + - + - + - + - + - + + + + + + + + + + - + - + - + - + - + - + @@ -179,10 +204,10 @@ - + - + diff --git a/pengine/test10/whitebox-start.summary b/pengine/test10/whitebox-start.summary index e76e28a..01a1b74 100644 --- a/pengine/test10/whitebox-start.summary +++ b/pengine/test10/whitebox-start.summary @@ -24,18 +24,20 @@ Transition Summary: Executing cluster transition: * Resource action: container1 start on 18node1 * Pseudo action: M-clone_start_0 - * Resource action: A stop on 18node1 + * Resource action: A monitor on lxc2 * Resource action: B stop on lxc2 + * Resource action: D monitor on lxc2 * Resource action: lxc1 start on 18node1 - * Pseudo action: all_stopped * Resource action: M start on lxc1 * Pseudo action: M-clone_running_0 - * Resource action: A start on lxc1 + * Resource action: A stop on 18node1 * Resource action: B start on 18node3 * Resource action: lxc1 monitor=30000 on 18node1 + * Pseudo action: all_stopped * Resource action: M monitor=10000 on lxc1 - * Resource action: A monitor=10000 on lxc1 + * Resource action: A start on lxc1 * Resource action: B monitor=10000 on 18node3 + * Resource action: A monitor=10000 on lxc1 Revised cluster status: Online: [ 18node1 18node2 18node3 ] diff --git a/pengine/test10/whitebox-stop.dot b/pengine/test10/whitebox-stop.dot index 9900483..0ecdcba 100644 --- a/pengine/test10/whitebox-stop.dot +++ b/pengine/test10/whitebox-stop.dot @@ -1,4 +1,8 @@ digraph "g" { +"A_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] +"B_monitor_0 lxc2" -> "B_start_0 lxc2" [ style = bold] +"B_monitor_0 lxc2" -> "B_stop_0 lxc1" [ style = bold] +"B_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "B_monitor_10000 lxc2" [ style=bold color="green" fontcolor="black"] "B_start_0 lxc2" -> "B_monitor_10000 lxc2" [ style = bold] "B_start_0 lxc2" [ style=bold color="green" fontcolor="black"] @@ -6,6 +10,7 @@ digraph "g" { "B_stop_0 lxc1" -> "all_stopped" [ style = bold] "B_stop_0 lxc1" -> "lxc1_stop_0 18node2" [ style = bold] "B_stop_0 lxc1" [ style=bold color="green" fontcolor="black"] +"D_monitor_0 lxc2" [ style=bold color="green" fontcolor="black"] "M-clone_stop_0" -> "M-clone_stopped_0" [ style = bold] "M-clone_stop_0" -> "M_stop_0 lxc1" [ style = bold] "M-clone_stop_0" [ style=bold color="green" fontcolor="orange"] diff --git a/pengine/test10/whitebox-stop.exp b/pengine/test10/whitebox-stop.exp index 354b6d4..84a5288 100644 --- a/pengine/test10/whitebox-stop.exp +++ b/pengine/test10/whitebox-stop.exp @@ -1,48 +1,48 @@ - + - + - + - + - + - + - + - + @@ -50,42 +50,76 @@ - + + + + + + + + + + - + - + - + - + + + + - + - + + + + + + + + + + + + + + - + - + + + + + + + + + + @@ -95,14 +129,14 @@ - + - + - + @@ -110,16 +144,16 @@ - + - + - + - + diff --git a/pengine/test10/whitebox-stop.summary b/pengine/test10/whitebox-stop.summary index 9b15ea0..44e570f 100644 --- a/pengine/test10/whitebox-stop.summary +++ b/pengine/test10/whitebox-stop.summary @@ -22,14 +22,17 @@ Transition Summary: Executing cluster transition: * Pseudo action: M-clone_stop_0 - * Resource action: B stop on lxc1 + * Resource action: A monitor on lxc2 + * Resource action: B monitor on lxc2 + * Resource action: D monitor on lxc2 * Resource action: M stop on lxc1 * Pseudo action: M-clone_stopped_0 - * Resource action: B start on lxc2 + * Resource action: B stop on lxc1 * Resource action: lxc1 stop on 18node2 * Resource action: container1 stop on 18node2 - * Resource action: B monitor=10000 on lxc2 + * Resource action: B start on lxc2 * Pseudo action: all_stopped + * Resource action: B monitor=10000 on lxc2 Revised cluster status: Online: [ 18node1 18node2 18node3 ] diff --git a/pengine/test10/whitebox-unexpectedly-running.dot b/pengine/test10/whitebox-unexpectedly-running.dot index 0e2e5bb..fa1171e 100644 --- a/pengine/test10/whitebox-unexpectedly-running.dot +++ b/pengine/test10/whitebox-unexpectedly-running.dot @@ -1,20 +1,26 @@ digraph "g" { +"FAKE-crashed_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] +"FAKE-crashed_start_0 18builder" -> "FAKE-crashed_monitor_60000 18builder" [ style = bold] +"FAKE-crashed_start_0 18builder" -> "remote2_start_0 18builder" [ style = bold] +"FAKE-crashed_start_0 18builder" [ style=bold color="green" fontcolor="black"] +"FAKE-crashed_stop_0 18builder" -> "FAKE-crashed_start_0 18builder" [ style = bold] +"FAKE-crashed_stop_0 18builder" -> "all_stopped" [ style = bold] +"FAKE-crashed_stop_0 18builder" -> "stonith 'reboot' remote2" [ style = bold] +"FAKE-crashed_stop_0 18builder" [ style=bold color="green" fontcolor="black"] "FAKE_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] -"FAKE_start_0 18builder" -> "FAKE_monitor_60000 18builder" [ style = bold] -"FAKE_start_0 18builder" -> "remote1_start_0 18builder" [ style = bold] -"FAKE_start_0 18builder" [ style=bold color="green" fontcolor="black"] -"FAKE_stop_0 18builder" -> "FAKE_start_0 18builder" [ style = bold] -"FAKE_stop_0 18builder" -> "all_stopped" [ style = bold] -"FAKE_stop_0 18builder" -> "stonith 'reboot' remote1" [ style = bold] -"FAKE_stop_0 18builder" [ style=bold color="green" fontcolor="black"] "all_stopped" [ style=bold color="green" fontcolor="orange"] "remote1_monitor_0 18builder" -> "remote1_start_0 18builder" [ style = bold] "remote1_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] "remote1_monitor_30000 18builder" [ style=bold color="green" fontcolor="black"] "remote1_start_0 18builder" -> "remote1_monitor_30000 18builder" [ style = bold] "remote1_start_0 18builder" [ style=bold color="green" fontcolor="black"] -"stonith 'reboot' remote1" -> "stonith_complete" [ style = bold] -"stonith 'reboot' remote1" [ style=bold color="green" fontcolor="orange"] +"remote2_monitor_0 18builder" -> "remote2_start_0 18builder" [ style = bold] +"remote2_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] +"remote2_monitor_30000 18builder" [ style=bold color="green" fontcolor="black"] +"remote2_start_0 18builder" -> "remote2_monitor_30000 18builder" [ style = bold] +"remote2_start_0 18builder" [ style=bold color="green" fontcolor="black"] +"stonith 'reboot' remote2" -> "stonith_complete" [ style = bold] +"stonith 'reboot' remote2" [ style=bold color="green" fontcolor="orange"] "stonith_complete" -> "all_stopped" [ style = bold] "stonith_complete" [ style=bold color="green" fontcolor="orange"] } diff --git a/pengine/test10/whitebox-unexpectedly-running.exp b/pengine/test10/whitebox-unexpectedly-running.exp index a0e5cae..c4e13b9 100644 --- a/pengine/test10/whitebox-unexpectedly-running.exp +++ b/pengine/test10/whitebox-unexpectedly-running.exp @@ -1,116 +1,160 @@ - + + + + + + + + + + - + - + - - - + + + - + - + - - - + + + - + - + - + - + - + - - - - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/whitebox-unexpectedly-running.scores b/pengine/test10/whitebox-unexpectedly-running.scores index 7f8a1d9..45e1d39 100644 --- a/pengine/test10/whitebox-unexpectedly-running.scores +++ b/pengine/test10/whitebox-unexpectedly-running.scores @@ -1,5 +1,13 @@ Allocation scores: native_color: FAKE allocation score on 18builder: 0 native_color: FAKE allocation score on remote1: -INFINITY +native_color: FAKE allocation score on remote2: -INFINITY +native_color: FAKE-crashed allocation score on 18builder: 0 +native_color: FAKE-crashed allocation score on remote1: -INFINITY +native_color: FAKE-crashed allocation score on remote2: -INFINITY native_color: remote1 allocation score on 18builder: 0 native_color: remote1 allocation score on remote1: -INFINITY +native_color: remote1 allocation score on remote2: -INFINITY +native_color: remote2 allocation score on 18builder: 0 +native_color: remote2 allocation score on remote1: -INFINITY +native_color: remote2 allocation score on remote2: -INFINITY diff --git a/pengine/test10/whitebox-unexpectedly-running.summary b/pengine/test10/whitebox-unexpectedly-running.summary index eef4f63..3e0c898 100644 --- a/pengine/test10/whitebox-unexpectedly-running.summary +++ b/pengine/test10/whitebox-unexpectedly-running.summary @@ -2,27 +2,34 @@ Current cluster status: Online: [ 18builder ] - FAKE (ocf::pacemaker:Dummy): FAILED 18builder + FAKE (ocf::pacemaker:Dummy): Started 18builder + FAKE-crashed (ocf::pacemaker:Dummy): FAILED 18builder Transition Summary: - * Fence (reboot) remote1 (resource: FAKE) 'guest is unclean' - * Recover FAKE ( 18builder ) + * Fence (reboot) remote2 (resource: FAKE-crashed) 'guest is unclean' + * Recover FAKE-crashed ( 18builder ) * Start remote1 (18builder) + * Start remote2 ( 18builder ) Executing cluster transition: - * Resource action: FAKE stop on 18builder + * Resource action: FAKE monitor=60000 on 18builder + * Resource action: FAKE-crashed stop on 18builder * Resource action: remote1 monitor on 18builder - * Pseudo action: stonith-remote1-reboot on remote1 + * Resource action: remote2 monitor on 18builder + * Pseudo action: stonith-remote2-reboot on remote2 * Pseudo action: stonith_complete * Pseudo action: all_stopped - * Resource action: FAKE start on 18builder + * Resource action: FAKE-crashed start on 18builder * Resource action: remote1 start on 18builder - * Resource action: FAKE monitor=60000 on 18builder + * Resource action: remote2 start on 18builder + * Resource action: FAKE-crashed monitor=60000 on 18builder * Resource action: remote1 monitor=30000 on 18builder + * Resource action: remote2 monitor=30000 on 18builder Revised cluster status: Online: [ 18builder ] -Containers: [ remote1:FAKE ] +Containers: [ remote1:FAKE remote2:FAKE-crashed ] FAKE (ocf::pacemaker:Dummy): Started 18builder + FAKE-crashed (ocf::pacemaker:Dummy): Started 18builder diff --git a/pengine/test10/whitebox-unexpectedly-running.xml b/pengine/test10/whitebox-unexpectedly-running.xml index 4ec20c4..638ed1a 100644 --- a/pengine/test10/whitebox-unexpectedly-running.xml +++ b/pengine/test10/whitebox-unexpectedly-running.xml @@ -21,6 +21,14 @@ + + + + + + + + @@ -36,6 +44,9 @@ + + + -- 1.8.3.1 From 62b9b988123589d590b30c17b0f4cee269cdad70 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Tue, 26 Sep 2017 20:44:34 +1000 Subject: [PATCH 15/21] Fix: PE: Ensure the bundle nodes get set with the correct discovery mode --- lib/pengine/container.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/pengine/container.c b/lib/pengine/container.c index a550ff3..1d658e8 100644 --- a/lib/pengine/container.c +++ b/lib/pengine/container.c @@ -462,6 +462,9 @@ create_remote_resource( tuple->node->weight = 500; tuple->node->rsc_discover_mode = discover_exclusive; + /* Ensure the node shows up as allowed and with the correct discovery set */ + g_hash_table_insert(tuple->child->allowed_nodes, (gpointer) tuple->node->details->id, node_copy(tuple->node)); + if (common_unpack(xml_remote, &tuple->remote, parent, data_set) == FALSE) { return FALSE; } -- 1.8.3.1 From 37b36a1c02b73711c82e90231b00d56e51179a90 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Tue, 26 Sep 2017 20:46:00 +1000 Subject: [PATCH 16/21] Fix: PE: Make assumptions about the state of conatinerized resources based ont he container state, not the connection resource --- pengine/native.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pengine/native.c b/pengine/native.c index 2e40a4c..06a5c19 100644 --- a/pengine/native.c +++ b/pengine/native.c @@ -2847,10 +2847,12 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, if (rsc->exclusive_discover || top->exclusive_discover) { if (allowed == NULL) { /* exclusive discover is enabled and this node is not in the allowed list. */ + pe_rsc_trace(rsc, "Skipping probe for %s on node %s, A", rsc->id, node->details->id); return FALSE; } else if (allowed->rsc_discover_mode != discover_exclusive) { /* exclusive discover is enabled and this node is not marked * as a node this resource should be discovered on */ + pe_rsc_trace(rsc, "Skipping probe for %s on node %s, B", rsc->id, node->details->id); return FALSE; } } @@ -2861,16 +2863,18 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, * However it wasn't and the node has discovery disabled, so * no need to probe for this resource. */ + pe_rsc_trace(rsc, "Skipping probe for %s on node %s, C", rsc->id, node->details->id); return FALSE; } if (allowed && allowed->rsc_discover_mode == discover_never) { /* this resource is marked as not needing to be discovered on this node */ + pe_rsc_trace(rsc, "Skipping probe for %s on node %s, discovery mode", rsc->id, node->details->id); return FALSE; } if(allowed != NULL && is_container_remote_node(allowed)) { - resource_t *remote = allowed->details->remote_rsc; + resource_t *remote = allowed->details->remote_rsc->container; if(remote->role == RSC_ROLE_STOPPED) { /* If the container is stopped, then we know anything that @@ -2900,6 +2904,8 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, top, generate_op_key(top->id, RSC_START, 0), NULL, pe_order_optional, data_set); } + pe_rsc_trace(rsc, "Skipping probe for %s on node %s, %s is stopped", + rsc->id, node->details->id, remote->id); return FALSE; /* Here we really we want to check if remote->stop is required, @@ -2919,6 +2925,8 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, custom_action_order(remote, generate_op_key(remote->id, RSC_STOP, 0), NULL, top, generate_op_key(top->id, RSC_START, 0), NULL, pe_order_optional, data_set); + pe_rsc_trace(rsc, "Skipping probe for %s on node %s, %s is stopping, restarting or moving", + rsc->id, node->details->id, remote->id); return FALSE; /* } else { * The container is running so there is no problem probing it -- 1.8.3.1 From f3dcf9364b2bc7753c7683fb95959454da824afc Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Tue, 26 Sep 2017 21:19:17 +1000 Subject: [PATCH 17/21] Test: PE: Make assumptions about the state of conatinerized resources based ont he container state, not the connection resource --- pengine/test10/bundle-nested-colocation.dot | 9 + pengine/test10/bundle-nested-colocation.exp | 252 +++++++++++-------- pengine/test10/bundle-nested-colocation.scores | 6 +- pengine/test10/bundle-nested-colocation.summary | 11 +- pengine/test10/bundle-order-fencing.scores | 12 +- pengine/test10/bundle-order-partial-start-2.dot | 3 + pengine/test10/bundle-order-partial-start-2.exp | 272 +++++++++++---------- pengine/test10/bundle-order-partial-start-2.scores | 6 +- .../test10/bundle-order-partial-start-2.summary | 3 +- pengine/test10/bundle-order-partial-start.dot | 1 + pengine/test10/bundle-order-partial-start.exp | 3 + pengine/test10/bundle-order-partial-start.scores | 6 +- pengine/test10/bundle-order-partial-stop.scores | 4 +- pengine/test10/bundle-order-startup-clone-2.dot | 18 ++ pengine/test10/bundle-order-startup-clone-2.exp | 54 ++++ pengine/test10/bundle-order-startup-clone-2.scores | 12 +- pengine/test10/bundle-order-startup-clone.dot | 6 + pengine/test10/bundle-order-startup-clone.exp | 9 + pengine/test10/bundle-order-startup-clone.scores | 4 +- pengine/test10/bundle-order-startup.dot | 3 + pengine/test10/bundle-order-startup.exp | 17 +- pengine/test10/bundle-order-startup.scores | 6 +- pengine/test10/bundle-order-stop-clone.scores | 12 +- pengine/test10/bundle-order-stop.scores | 4 +- pengine/test10/guest-node-host-dies.dot | 4 +- pengine/test10/guest-node-host-dies.exp | 4 +- pengine/test10/remote-fence-unclean-3.scores | 12 +- pengine/test10/whitebox-asymmetric.dot | 5 + pengine/test10/whitebox-asymmetric.exp | 55 ++++- pengine/test10/whitebox-asymmetric.summary | 4 +- pengine/test10/whitebox-fail3.dot | 3 - pengine/test10/whitebox-fail3.exp | 15 +- pengine/test10/whitebox-fail3.summary | 4 +- pengine/test10/whitebox-imply-stop-on-fence.dot | 2 +- pengine/test10/whitebox-imply-stop-on-fence.exp | 6 +- pengine/test10/whitebox-migrate1.dot | 2 +- pengine/test10/whitebox-nested-group.dot | 21 -- pengine/test10/whitebox-nested-group.exp | 66 +---- pengine/test10/whitebox-nested-group.summary | 16 +- 39 files changed, 536 insertions(+), 416 deletions(-) diff --git a/pengine/test10/bundle-nested-colocation.dot b/pengine/test10/bundle-nested-colocation.dot index 2a2d71a..1a197c1 100644 --- a/pengine/test10/bundle-nested-colocation.dot +++ b/pengine/test10/bundle-nested-colocation.dot @@ -2,16 +2,19 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange"] "rabbitmq-bundle-0_monitor_60000 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq-bundle-0_monitor_60000 overcloud-controller-0" [ style = bold] +"rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq:0_monitor_0 rabbitmq-bundle-0" [ style = bold] "rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style = bold] "rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq:0_start_0 rabbitmq-bundle-0" [ style = bold] "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-1_monitor_60000 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq-bundle-1_monitor_60000 overcloud-controller-1" [ style = bold] +"rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq:1_monitor_0 rabbitmq-bundle-1" [ style = bold] "rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq:1_monitor_10000 rabbitmq-bundle-1" [ style = bold] "rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq:1_start_0 rabbitmq-bundle-1" [ style = bold] "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-2_monitor_60000 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-2_start_0 overcloud-controller-2" -> "rabbitmq-bundle-2_monitor_60000 overcloud-controller-2" [ style = bold] +"rabbitmq-bundle-2_start_0 overcloud-controller-2" -> "rabbitmq:2_monitor_0 rabbitmq-bundle-2" [ style = bold] "rabbitmq-bundle-2_start_0 overcloud-controller-2" -> "rabbitmq:2_monitor_10000 rabbitmq-bundle-2" [ style = bold] "rabbitmq-bundle-2_start_0 overcloud-controller-2" -> "rabbitmq:2_start_0 rabbitmq-bundle-2" [ style = bold] "rabbitmq-bundle-2_start_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] @@ -70,6 +73,8 @@ digraph "g" { "rabbitmq-bundle_start_0" -> "rabbitmq-bundle-docker-1_start_0 overcloud-rabbit-1" [ style = bold] "rabbitmq-bundle_start_0" -> "rabbitmq-bundle-docker-2_start_0 overcloud-rabbit-2" [ style = bold] "rabbitmq-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq:0_monitor_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq:0_monitor_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] "rabbitmq:0_post_notify_start_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] "rabbitmq:0_post_notify_start_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] @@ -77,6 +82,8 @@ digraph "g" { "rabbitmq:0_start_0 rabbitmq-bundle-0" -> "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style = bold] "rabbitmq:0_start_0 rabbitmq-bundle-0" -> "rabbitmq:1_start_0 rabbitmq-bundle-1" [ style = bold] "rabbitmq:0_start_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq:1_monitor_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq:1_monitor_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] "rabbitmq:1_monitor_10000 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] "rabbitmq:1_post_notify_start_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] "rabbitmq:1_post_notify_start_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] @@ -84,6 +91,8 @@ digraph "g" { "rabbitmq:1_start_0 rabbitmq-bundle-1" -> "rabbitmq:1_monitor_10000 rabbitmq-bundle-1" [ style = bold] "rabbitmq:1_start_0 rabbitmq-bundle-1" -> "rabbitmq:2_start_0 rabbitmq-bundle-2" [ style = bold] "rabbitmq:1_start_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq:2_monitor_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_start_0" [ style = bold] +"rabbitmq:2_monitor_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] "rabbitmq:2_monitor_10000 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] "rabbitmq:2_post_notify_start_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] "rabbitmq:2_post_notify_start_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] diff --git a/pengine/test10/bundle-nested-colocation.exp b/pengine/test10/bundle-nested-colocation.exp index 916c44b..b91ced5 100644 --- a/pengine/test10/bundle-nested-colocation.exp +++ b/pengine/test10/bundle-nested-colocation.exp @@ -1,39 +1,39 @@ - + - + - + - + - + - + - + @@ -43,48 +43,61 @@ - + - + - + - + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + @@ -94,51 +107,64 @@ - + + + + - + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -148,118 +174,140 @@ - + - + - + - + - + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + + + + - + - + - + @@ -268,14 +316,14 @@ - + - + - + @@ -288,22 +336,22 @@ - + - + - + - + - + @@ -314,16 +362,16 @@ - + - + - + @@ -332,14 +380,14 @@ - + - + - + @@ -352,22 +400,22 @@ - + - + - + - + - + @@ -378,16 +426,16 @@ - + - + - + @@ -396,14 +444,14 @@ - + - + - + @@ -416,22 +464,22 @@ - + - + - + - + - + @@ -442,9 +490,9 @@ - + - + @@ -459,19 +507,19 @@ - + - + - + - + @@ -479,13 +527,13 @@ - + - + - + diff --git a/pengine/test10/bundle-nested-colocation.scores b/pengine/test10/bundle-nested-colocation.scores index c79e0ff..83d776d 100644 --- a/pengine/test10/bundle-nested-colocation.scores +++ b/pengine/test10/bundle-nested-colocation.scores @@ -201,7 +201,7 @@ container_color: rabbitmq:0 allocation score on overcloud-galera-2: 0 container_color: rabbitmq:0 allocation score on overcloud-rabbit-0: 0 container_color: rabbitmq:0 allocation score on overcloud-rabbit-1: 0 container_color: rabbitmq:0 allocation score on overcloud-rabbit-2: 0 -container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: -INFINITY +container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: 500 container_color: rabbitmq:0 allocation score on rabbitmq-bundle-1: -INFINITY container_color: rabbitmq:0 allocation score on rabbitmq-bundle-2: -INFINITY container_color: rabbitmq:1 allocation score on overcloud-controller-0: 0 @@ -214,7 +214,7 @@ container_color: rabbitmq:1 allocation score on overcloud-rabbit-0: 0 container_color: rabbitmq:1 allocation score on overcloud-rabbit-1: 0 container_color: rabbitmq:1 allocation score on overcloud-rabbit-2: 0 container_color: rabbitmq:1 allocation score on rabbitmq-bundle-0: -INFINITY -container_color: rabbitmq:1 allocation score on rabbitmq-bundle-1: -INFINITY +container_color: rabbitmq:1 allocation score on rabbitmq-bundle-1: 500 container_color: rabbitmq:1 allocation score on rabbitmq-bundle-2: -INFINITY container_color: rabbitmq:2 allocation score on overcloud-controller-0: 0 container_color: rabbitmq:2 allocation score on overcloud-controller-1: 0 @@ -227,7 +227,7 @@ container_color: rabbitmq:2 allocation score on overcloud-rabbit-1: 0 container_color: rabbitmq:2 allocation score on overcloud-rabbit-2: 0 container_color: rabbitmq:2 allocation score on rabbitmq-bundle-0: -INFINITY container_color: rabbitmq:2 allocation score on rabbitmq-bundle-1: -INFINITY -container_color: rabbitmq:2 allocation score on rabbitmq-bundle-2: -INFINITY +container_color: rabbitmq:2 allocation score on rabbitmq-bundle-2: 500 native_color: galera-bundle-docker-0 allocation score on overcloud-controller-0: -INFINITY native_color: galera-bundle-docker-0 allocation score on overcloud-controller-1: -INFINITY native_color: galera-bundle-docker-0 allocation score on overcloud-controller-2: -INFINITY diff --git a/pengine/test10/bundle-nested-colocation.summary b/pengine/test10/bundle-nested-colocation.summary index b2cec51..7c708d2 100644 --- a/pengine/test10/bundle-nested-colocation.summary +++ b/pengine/test10/bundle-nested-colocation.summary @@ -35,7 +35,6 @@ Executing cluster transition: * Pseudo action: rabbitmq-bundle_start_0 * Pseudo action: all_stopped * Pseudo action: rabbitmq-bundle-clone_confirmed-pre_notify_start_0 - * Pseudo action: rabbitmq-bundle-clone_start_0 * Resource action: rabbitmq-bundle-docker-0 start on overcloud-rabbit-0 * Resource action: rabbitmq-bundle-docker-0 monitor=60000 on overcloud-rabbit-0 * Resource action: rabbitmq-bundle-0 start on overcloud-controller-0 @@ -45,13 +44,17 @@ Executing cluster transition: * Resource action: rabbitmq-bundle-docker-2 start on overcloud-rabbit-2 * Resource action: rabbitmq-bundle-docker-2 monitor=60000 on overcloud-rabbit-2 * Resource action: rabbitmq-bundle-2 start on overcloud-controller-2 + * Resource action: rabbitmq:0 monitor on rabbitmq-bundle-0 + * Resource action: rabbitmq:1 monitor on rabbitmq-bundle-1 + * Resource action: rabbitmq:2 monitor on rabbitmq-bundle-2 + * Pseudo action: rabbitmq-bundle-clone_start_0 + * Resource action: rabbitmq-bundle-0 monitor=60000 on overcloud-controller-0 + * Resource action: rabbitmq-bundle-1 monitor=60000 on overcloud-controller-1 + * Resource action: rabbitmq-bundle-2 monitor=60000 on overcloud-controller-2 * Resource action: rabbitmq:0 start on rabbitmq-bundle-0 * Resource action: rabbitmq:1 start on rabbitmq-bundle-1 * Resource action: rabbitmq:2 start on rabbitmq-bundle-2 * Pseudo action: rabbitmq-bundle-clone_running_0 - * Resource action: rabbitmq-bundle-0 monitor=60000 on overcloud-controller-0 - * Resource action: rabbitmq-bundle-1 monitor=60000 on overcloud-controller-1 - * Resource action: rabbitmq-bundle-2 monitor=60000 on overcloud-controller-2 * Pseudo action: rabbitmq-bundle-clone_post_notify_running_0 * Resource action: rabbitmq:0 notify on rabbitmq-bundle-0 * Resource action: rabbitmq:1 notify on rabbitmq-bundle-1 diff --git a/pengine/test10/bundle-order-fencing.scores b/pengine/test10/bundle-order-fencing.scores index 9037624..25c3e79 100644 --- a/pengine/test10/bundle-order-fencing.scores +++ b/pengine/test10/bundle-order-fencing.scores @@ -183,7 +183,7 @@ container_color: galera-bundle-master allocation score on rabbitmq-bundle-2: -IN container_color: galera:0 allocation score on controller-0: 0 container_color: galera:0 allocation score on controller-1: 0 container_color: galera:0 allocation score on controller-2: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: INFINITY container_color: galera:0 allocation score on galera-bundle-1: -INFINITY container_color: galera:0 allocation score on galera-bundle-2: -INFINITY container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY @@ -193,7 +193,7 @@ container_color: galera:1 allocation score on controller-0: 0 container_color: galera:1 allocation score on controller-1: 0 container_color: galera:1 allocation score on controller-2: 0 container_color: galera:1 allocation score on galera-bundle-0: -INFINITY -container_color: galera:1 allocation score on galera-bundle-1: -INFINITY +container_color: galera:1 allocation score on galera-bundle-1: INFINITY container_color: galera:1 allocation score on galera-bundle-2: -INFINITY container_color: galera:1 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:1 allocation score on rabbitmq-bundle-1: -INFINITY @@ -203,7 +203,7 @@ container_color: galera:2 allocation score on controller-1: 0 container_color: galera:2 allocation score on controller-2: 0 container_color: galera:2 allocation score on galera-bundle-0: -INFINITY container_color: galera:2 allocation score on galera-bundle-1: -INFINITY -container_color: galera:2 allocation score on galera-bundle-2: -INFINITY +container_color: galera:2 allocation score on galera-bundle-2: INFINITY container_color: galera:2 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:2 allocation score on rabbitmq-bundle-1: -INFINITY container_color: galera:2 allocation score on rabbitmq-bundle-2: -INFINITY @@ -714,7 +714,7 @@ container_color: redis:0 allocation score on galera-bundle-2: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-1: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-2: -INFINITY -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: INFINITY container_color: redis:0 allocation score on redis-bundle-1: -INFINITY container_color: redis:0 allocation score on redis-bundle-2: -INFINITY container_color: redis:1 allocation score on controller-0: 0 @@ -727,7 +727,7 @@ container_color: redis:1 allocation score on rabbitmq-bundle-0: -INFINITY container_color: redis:1 allocation score on rabbitmq-bundle-1: -INFINITY container_color: redis:1 allocation score on rabbitmq-bundle-2: -INFINITY container_color: redis:1 allocation score on redis-bundle-0: -INFINITY -container_color: redis:1 allocation score on redis-bundle-1: -INFINITY +container_color: redis:1 allocation score on redis-bundle-1: INFINITY container_color: redis:1 allocation score on redis-bundle-2: -INFINITY container_color: redis:2 allocation score on controller-0: 0 container_color: redis:2 allocation score on controller-1: 0 @@ -740,7 +740,7 @@ container_color: redis:2 allocation score on rabbitmq-bundle-1: -INFINITY container_color: redis:2 allocation score on rabbitmq-bundle-2: -INFINITY container_color: redis:2 allocation score on redis-bundle-0: -INFINITY container_color: redis:2 allocation score on redis-bundle-1: -INFINITY -container_color: redis:2 allocation score on redis-bundle-2: -INFINITY +container_color: redis:2 allocation score on redis-bundle-2: INFINITY galera:0 promotion score on galera-bundle-0: -1 galera:1 promotion score on galera-bundle-1: 100 galera:2 promotion score on galera-bundle-2: 100 diff --git a/pengine/test10/bundle-order-partial-start-2.dot b/pengine/test10/bundle-order-partial-start-2.dot index 163be1f..d6608bb 100644 --- a/pengine/test10/bundle-order-partial-start-2.dot +++ b/pengine/test10/bundle-order-partial-start-2.dot @@ -2,6 +2,7 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange"] "galera-bundle-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_start_0 undercloud" -> "galera-bundle-0_monitor_60000 undercloud" [ style = bold] +"galera-bundle-0_start_0 undercloud" -> "galera:0_monitor_0 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 undercloud" -> "galera:0_monitor_20000 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 undercloud" -> "galera:0_monitor_30000 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 undercloud" -> "galera:0_start_0 galera-bundle-0" [ style = bold] @@ -28,6 +29,8 @@ digraph "g" { "galera-bundle_start_0" -> "galera-bundle-docker-0_start_0 undercloud" [ style = bold] "galera-bundle_start_0" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"galera:0_monitor_0 galera-bundle-0" -> "galera-bundle-master_start_0" [ style = bold] +"galera:0_monitor_0 galera-bundle-0" [ style=bold color="green" fontcolor="black"] "galera:0_monitor_20000 galera-bundle-0" [ style=bold color="green" fontcolor="black"] "galera:0_monitor_30000 galera-bundle-0" [ style=bold color="green" fontcolor="black"] "galera:0_start_0 galera-bundle-0" -> "galera-bundle-master_running_0" [ style = bold] diff --git a/pengine/test10/bundle-order-partial-start-2.exp b/pengine/test10/bundle-order-partial-start-2.exp index 087ed6c..d17819c 100644 --- a/pengine/test10/bundle-order-partial-start-2.exp +++ b/pengine/test10/bundle-order-partial-start-2.exp @@ -1,49 +1,49 @@ - + - + - + - + - + - + - + - + @@ -52,49 +52,49 @@ - + - + - + - + - + - + - + - + - + @@ -102,145 +102,161 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + - + - + - + - + - + + + + - + - + - + - + - + - + - + - + @@ -249,29 +265,29 @@ - + - + - + - + - + - + - + @@ -281,7 +297,7 @@ - + @@ -290,277 +306,277 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -568,10 +584,10 @@ - + - + diff --git a/pengine/test10/bundle-order-partial-start-2.scores b/pengine/test10/bundle-order-partial-start-2.scores index f5e86de..b4a441d 100644 --- a/pengine/test10/bundle-order-partial-start-2.scores +++ b/pengine/test10/bundle-order-partial-start-2.scores @@ -29,7 +29,7 @@ container_color: galera-bundle-docker-0 allocation score on undercloud: INFINITY container_color: galera-bundle-master allocation score on galera-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on undercloud: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: 500 container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:0 allocation score on undercloud: 0 container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY @@ -112,7 +112,7 @@ container_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-0: 0 container_color: rabbitmq-bundle-clone allocation score on undercloud: 0 container_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: rabbitmq-bundle-docker-0 allocation score on undercloud: INFINITY -container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: 0 +container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: 500 container_color: rabbitmq:0 allocation score on undercloud: 0 container_color: redis-bundle allocation score on galera-bundle-0: -INFINITY container_color: redis-bundle allocation score on rabbitmq-bundle-0: -INFINITY @@ -132,7 +132,7 @@ container_color: redis-bundle-master allocation score on redis-bundle-0: -INFINI container_color: redis-bundle-master allocation score on undercloud: 0 container_color: redis:0 allocation score on galera-bundle-0: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: INFINITY container_color: redis:0 allocation score on undercloud: 0 galera:0 promotion score on galera-bundle-0: -1 native_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY diff --git a/pengine/test10/bundle-order-partial-start-2.summary b/pengine/test10/bundle-order-partial-start-2.summary index 50933a2..f9748d2 100644 --- a/pengine/test10/bundle-order-partial-start-2.summary +++ b/pengine/test10/bundle-order-partial-start-2.summary @@ -62,11 +62,12 @@ Executing cluster transition: * Resource action: rabbitmq:0 monitor=10000 on rabbitmq-bundle-0 * Resource action: redis monitor=20000 on redis-bundle-0 * Pseudo action: galera-bundle_start_0 - * Pseudo action: galera-bundle-master_start_0 * Resource action: galera-bundle-docker-0 start on undercloud * Resource action: galera-bundle-docker-0 monitor=60000 on undercloud * Resource action: galera-bundle-0 start on undercloud * Resource action: galera-bundle-0 monitor=60000 on undercloud + * Resource action: galera:0 monitor on galera-bundle-0 + * Pseudo action: galera-bundle-master_start_0 * Resource action: galera:0 start on galera-bundle-0 * Pseudo action: galera-bundle-master_running_0 * Pseudo action: galera-bundle_running_0 diff --git a/pengine/test10/bundle-order-partial-start.dot b/pengine/test10/bundle-order-partial-start.dot index 958e7f4..0e121a4 100644 --- a/pengine/test10/bundle-order-partial-start.dot +++ b/pengine/test10/bundle-order-partial-start.dot @@ -6,6 +6,7 @@ digraph "g" { "galera-bundle-0_start_0 undercloud" -> "galera:0_start_0 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_0 undercloud" -> "galera-bundle-docker-0_start_0 undercloud" [ style = bold] +"galera-bundle-docker-0_monitor_0 undercloud" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_start_0 undercloud" -> "galera-bundle-0_start_0 undercloud" [ style = bold] diff --git a/pengine/test10/bundle-order-partial-start.exp b/pengine/test10/bundle-order-partial-start.exp index 8aad157..98922d5 100644 --- a/pengine/test10/bundle-order-partial-start.exp +++ b/pengine/test10/bundle-order-partial-start.exp @@ -207,6 +207,9 @@ + + + diff --git a/pengine/test10/bundle-order-partial-start.scores b/pengine/test10/bundle-order-partial-start.scores index ea702d0..1c50e66 100644 --- a/pengine/test10/bundle-order-partial-start.scores +++ b/pengine/test10/bundle-order-partial-start.scores @@ -29,7 +29,7 @@ container_color: galera-bundle-docker-0 allocation score on undercloud: 0 container_color: galera-bundle-master allocation score on galera-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on undercloud: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: 500 container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:0 allocation score on undercloud: 0 container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY @@ -112,7 +112,7 @@ container_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-0: 0 container_color: rabbitmq-bundle-clone allocation score on undercloud: 0 container_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: rabbitmq-bundle-docker-0 allocation score on undercloud: INFINITY -container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: 0 +container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: 500 container_color: rabbitmq:0 allocation score on undercloud: 0 container_color: redis-bundle allocation score on galera-bundle-0: -INFINITY container_color: redis-bundle allocation score on rabbitmq-bundle-0: -INFINITY @@ -132,7 +132,7 @@ container_color: redis-bundle-master allocation score on redis-bundle-0: -INFINI container_color: redis-bundle-master allocation score on undercloud: 0 container_color: redis:0 allocation score on galera-bundle-0: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: INFINITY container_color: redis:0 allocation score on undercloud: 0 galera:0 promotion score on galera-bundle-0: -1 native_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY diff --git a/pengine/test10/bundle-order-partial-stop.scores b/pengine/test10/bundle-order-partial-stop.scores index a662f42..528842e 100644 --- a/pengine/test10/bundle-order-partial-stop.scores +++ b/pengine/test10/bundle-order-partial-stop.scores @@ -29,7 +29,7 @@ container_color: galera-bundle-docker-0 allocation score on undercloud: INFINITY container_color: galera-bundle-master allocation score on galera-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on undercloud: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: INFINITY container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:0 allocation score on undercloud: 0 container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY @@ -132,7 +132,7 @@ container_color: redis-bundle-master allocation score on redis-bundle-0: -INFINI container_color: redis-bundle-master allocation score on undercloud: 0 container_color: redis:0 allocation score on galera-bundle-0: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: INFINITY container_color: redis:0 allocation score on undercloud: 0 galera:0 promotion score on galera-bundle-0: 100 native_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY diff --git a/pengine/test10/bundle-order-startup-clone-2.dot b/pengine/test10/bundle-order-startup-clone-2.dot index 8726909..d0b0f03 100644 --- a/pengine/test10/bundle-order-startup-clone-2.dot +++ b/pengine/test10/bundle-order-startup-clone-2.dot @@ -20,14 +20,17 @@ digraph "g" { "galera-bundle-docker-0_monitor_0 metal-1" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-1" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-1" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-0_monitor_0 metal-1" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_0 metal-2" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-2" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-2" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-0_monitor_0 metal-2" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_0 metal-3" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-3" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-3" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-0_monitor_0 metal-3" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_60000 metal-1" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_start_0 metal-1" -> "galera-bundle-0_start_0 metal-1" [ style = bold] @@ -38,14 +41,17 @@ digraph "g" { "galera-bundle-docker-1_monitor_0 metal-1" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-1" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-1" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-1_monitor_0 metal-1" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-1_monitor_0 metal-2" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-2" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-2" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-1_monitor_0 metal-2" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-1_monitor_0 metal-3" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-3" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-3" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-1_monitor_0 metal-3" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-1_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-1_monitor_60000 metal-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-1_start_0 metal-2" -> "galera-bundle-1_start_0 metal-2" [ style = bold] @@ -56,14 +62,17 @@ digraph "g" { "galera-bundle-docker-2_monitor_0 metal-1" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-1" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-1" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-2_monitor_0 metal-1" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-2_monitor_0 metal-2" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-2" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-2" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-2_monitor_0 metal-2" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-2_monitor_0 metal-3" -> "galera-bundle-docker-0_start_0 metal-1" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-3" -> "galera-bundle-docker-1_start_0 metal-2" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-3" -> "galera-bundle-docker-2_start_0 metal-3" [ style = bold] +"galera-bundle-docker-2_monitor_0 metal-3" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-2_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-2_monitor_60000 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-2_start_0 metal-3" -> "galera-bundle-2_start_0 metal-3" [ style = bold] @@ -179,14 +188,17 @@ digraph "g" { "redis-bundle-docker-0_monitor_0 metal-1" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-1" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-1" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-0_monitor_0 metal-1" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_0 metal-2" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-2" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-2" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-0_monitor_0 metal-2" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_0 metal-3" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-3" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-3" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-0_monitor_0 metal-3" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_60000 metal-1" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_start_0 metal-1" -> "redis-bundle-0_start_0 metal-1" [ style = bold] @@ -198,14 +210,17 @@ digraph "g" { "redis-bundle-docker-1_monitor_0 metal-1" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-1" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-1" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-1_monitor_0 metal-1" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-1_monitor_0 metal-2" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-2" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-2" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-1_monitor_0 metal-2" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-1_monitor_0 metal-3" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-3" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-3" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-1_monitor_0 metal-3" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-1_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-1_monitor_60000 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-1_start_0 metal-2" -> "redis-bundle-1_start_0 metal-2" [ style = bold] @@ -217,14 +232,17 @@ digraph "g" { "redis-bundle-docker-2_monitor_0 metal-1" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-1" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-1" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-2_monitor_0 metal-1" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-2_monitor_0 metal-2" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-2" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-2" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-2_monitor_0 metal-2" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-2_monitor_0 metal-3" -> "redis-bundle-docker-0_start_0 metal-1" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-3" -> "redis-bundle-docker-1_start_0 metal-2" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-3" -> "redis-bundle-docker-2_start_0 metal-3" [ style = bold] +"redis-bundle-docker-2_monitor_0 metal-3" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-2_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-2_monitor_60000 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-2_start_0 metal-3" -> "redis-bundle-2_start_0 metal-3" [ style = bold] diff --git a/pengine/test10/bundle-order-startup-clone-2.exp b/pengine/test10/bundle-order-startup-clone-2.exp index 7d18d29..b6f90d4 100644 --- a/pengine/test10/bundle-order-startup-clone-2.exp +++ b/pengine/test10/bundle-order-startup-clone-2.exp @@ -444,6 +444,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1523,6 +1550,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pengine/test10/bundle-order-startup-clone-2.scores b/pengine/test10/bundle-order-startup-clone-2.scores index 493cd87..bcc4905 100644 --- a/pengine/test10/bundle-order-startup-clone-2.scores +++ b/pengine/test10/bundle-order-startup-clone-2.scores @@ -143,7 +143,7 @@ container_color: galera-bundle-master allocation score on metal-1: 0 container_color: galera-bundle-master allocation score on metal-2: 0 container_color: galera-bundle-master allocation score on metal-3: 0 container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: 500 container_color: galera:0 allocation score on galera-bundle-1: -INFINITY container_color: galera:0 allocation score on galera-bundle-2: -INFINITY container_color: galera:0 allocation score on metal-1: 0 @@ -151,7 +151,7 @@ container_color: galera:0 allocation score on metal-2: 0 container_color: galera:0 allocation score on metal-3: 0 container_color: galera:0 allocation score on rabbitmq-bundle-0: 0 container_color: galera:1 allocation score on galera-bundle-0: -INFINITY -container_color: galera:1 allocation score on galera-bundle-1: -INFINITY +container_color: galera:1 allocation score on galera-bundle-1: 500 container_color: galera:1 allocation score on galera-bundle-2: -INFINITY container_color: galera:1 allocation score on metal-1: 0 container_color: galera:1 allocation score on metal-2: 0 @@ -159,7 +159,7 @@ container_color: galera:1 allocation score on metal-3: 0 container_color: galera:1 allocation score on rabbitmq-bundle-0: 0 container_color: galera:2 allocation score on galera-bundle-0: -INFINITY container_color: galera:2 allocation score on galera-bundle-1: -INFINITY -container_color: galera:2 allocation score on galera-bundle-2: -INFINITY +container_color: galera:2 allocation score on galera-bundle-2: 500 container_color: galera:2 allocation score on metal-1: 0 container_color: galera:2 allocation score on metal-2: 0 container_color: galera:2 allocation score on metal-3: 0 @@ -363,7 +363,7 @@ container_color: redis:0 allocation score on metal-1: 0 container_color: redis:0 allocation score on metal-2: 0 container_color: redis:0 allocation score on metal-3: 0 container_color: redis:0 allocation score on rabbitmq-bundle-0: 0 -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: 500 container_color: redis:0 allocation score on redis-bundle-1: -INFINITY container_color: redis:0 allocation score on redis-bundle-2: -INFINITY container_color: redis:1 allocation score on galera-bundle-0: -INFINITY @@ -374,7 +374,7 @@ container_color: redis:1 allocation score on metal-2: 0 container_color: redis:1 allocation score on metal-3: 0 container_color: redis:1 allocation score on rabbitmq-bundle-0: 0 container_color: redis:1 allocation score on redis-bundle-0: -INFINITY -container_color: redis:1 allocation score on redis-bundle-1: -INFINITY +container_color: redis:1 allocation score on redis-bundle-1: 500 container_color: redis:1 allocation score on redis-bundle-2: -INFINITY container_color: redis:2 allocation score on galera-bundle-0: -INFINITY container_color: redis:2 allocation score on galera-bundle-1: -INFINITY @@ -385,7 +385,7 @@ container_color: redis:2 allocation score on metal-3: 0 container_color: redis:2 allocation score on rabbitmq-bundle-0: 0 container_color: redis:2 allocation score on redis-bundle-0: -INFINITY container_color: redis:2 allocation score on redis-bundle-1: -INFINITY -container_color: redis:2 allocation score on redis-bundle-2: -INFINITY +container_color: redis:2 allocation score on redis-bundle-2: 500 galera:0 promotion score on galera-bundle-0: -1 galera:1 promotion score on galera-bundle-1: -1 galera:2 promotion score on galera-bundle-2: -1 diff --git a/pengine/test10/bundle-order-startup-clone.dot b/pengine/test10/bundle-order-startup-clone.dot index 219b676..b791c10 100644 --- a/pengine/test10/bundle-order-startup-clone.dot +++ b/pengine/test10/bundle-order-startup-clone.dot @@ -6,10 +6,13 @@ digraph "g" { "galera-bundle-0_start_0 metal-1" -> "galera:0_start_0 galera-bundle-0" [ style = dashed] "galera-bundle-0_start_0 metal-1" [ style=dashed color="red" fontcolor="black"] "galera-bundle-docker-0_monitor_0 metal-1" -> "galera-bundle-docker-0_start_0 metal-1" [ style = dashed] +"galera-bundle-docker-0_monitor_0 metal-1" -> "galera-bundle-master_start_0" [ style = dashed] "galera-bundle-docker-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_0 metal-2" -> "galera-bundle-docker-0_start_0 metal-1" [ style = dashed] +"galera-bundle-docker-0_monitor_0 metal-2" -> "galera-bundle-master_start_0" [ style = dashed] "galera-bundle-docker-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_0 metal-3" -> "galera-bundle-docker-0_start_0 metal-1" [ style = dashed] +"galera-bundle-docker-0_monitor_0 metal-3" -> "galera-bundle-master_start_0" [ style = dashed] "galera-bundle-docker-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_60000 metal-1" [ style=dashed color="red" fontcolor="black"] "galera-bundle-docker-0_start_0 metal-1" -> "galera-bundle-0_start_0 metal-1" [ style = dashed] @@ -53,10 +56,13 @@ digraph "g" { "redis-bundle-0_start_0 metal-2" -> "redis:0_start_0 redis-bundle-0" [ style = bold] "redis-bundle-0_start_0 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_0 metal-1" -> "redis-bundle-docker-0_start_0 metal-2" [ style = bold] +"redis-bundle-docker-0_monitor_0 metal-1" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_0 metal-2" -> "redis-bundle-docker-0_start_0 metal-2" [ style = bold] +"redis-bundle-docker-0_monitor_0 metal-2" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_0 metal-3" -> "redis-bundle-docker-0_start_0 metal-2" [ style = bold] +"redis-bundle-docker-0_monitor_0 metal-3" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_60000 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_start_0 metal-2" -> "redis-bundle-0_start_0 metal-2" [ style = bold] diff --git a/pengine/test10/bundle-order-startup-clone.exp b/pengine/test10/bundle-order-startup-clone.exp index 8c8ba6aa..5be495e 100644 --- a/pengine/test10/bundle-order-startup-clone.exp +++ b/pengine/test10/bundle-order-startup-clone.exp @@ -258,6 +258,15 @@ + + + + + + + + + diff --git a/pengine/test10/bundle-order-startup-clone.scores b/pengine/test10/bundle-order-startup-clone.scores index d907861..4361fc4 100644 --- a/pengine/test10/bundle-order-startup-clone.scores +++ b/pengine/test10/bundle-order-startup-clone.scores @@ -61,7 +61,7 @@ container_color: galera-bundle-master allocation score on metal-1: 0 container_color: galera-bundle-master allocation score on metal-2: 0 container_color: galera-bundle-master allocation score on metal-3: 0 container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: 500 container_color: galera:0 allocation score on metal-1: 0 container_color: galera:0 allocation score on metal-2: 0 container_color: galera:0 allocation score on metal-3: 0 @@ -115,7 +115,7 @@ container_color: redis:0 allocation score on metal-1: 0 container_color: redis:0 allocation score on metal-2: 0 container_color: redis:0 allocation score on metal-3: 0 container_color: redis:0 allocation score on rabbitmq-bundle-0: 0 -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: 500 galera:0 promotion score on galera-bundle-0: -1 native_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY native_color: galera-bundle-0 allocation score on metal-1: 10000 diff --git a/pengine/test10/bundle-order-startup.dot b/pengine/test10/bundle-order-startup.dot index 3ec10fa..98f1c3c 100644 --- a/pengine/test10/bundle-order-startup.dot +++ b/pengine/test10/bundle-order-startup.dot @@ -6,6 +6,7 @@ digraph "g" { "galera-bundle-0_start_0 undercloud" -> "galera:0_start_0 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_0 undercloud" -> "galera-bundle-docker-0_start_0 undercloud" [ style = bold] +"galera-bundle-docker-0_monitor_0 undercloud" -> "galera-bundle-master_start_0" [ style = bold] "galera-bundle-docker-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_start_0 undercloud" -> "galera-bundle-0_start_0 undercloud" [ style = bold] @@ -104,6 +105,7 @@ digraph "g" { "rabbitmq-bundle-clone_start_0" -> "rabbitmq-bundle-clone_running_0" [ style = bold] "rabbitmq-bundle-clone_start_0" -> "rabbitmq:0_start_0 rabbitmq-bundle-0" [ style = bold] "rabbitmq-bundle-clone_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-docker-0_monitor_0 undercloud" -> "rabbitmq-bundle-clone_start_0" [ style = bold] "rabbitmq-bundle-docker-0_monitor_0 undercloud" -> "rabbitmq-bundle-docker-0_start_0 undercloud" [ style = bold] "rabbitmq-bundle-docker-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-docker-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] @@ -129,6 +131,7 @@ digraph "g" { "redis-bundle-0_start_0 undercloud" -> "redis:0_start_0 redis-bundle-0" [ style = bold] "redis-bundle-0_start_0 undercloud" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_0 undercloud" -> "redis-bundle-docker-0_start_0 undercloud" [ style = bold] +"redis-bundle-docker-0_monitor_0 undercloud" -> "redis-bundle-master_start_0" [ style = bold] "redis-bundle-docker-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_start_0 undercloud" -> "redis-bundle-0_start_0 undercloud" [ style = bold] diff --git a/pengine/test10/bundle-order-startup.exp b/pengine/test10/bundle-order-startup.exp index ec1053c..bcef087 100644 --- a/pengine/test10/bundle-order-startup.exp +++ b/pengine/test10/bundle-order-startup.exp @@ -1,7 +1,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -123,6 +123,9 @@ + + + @@ -268,6 +271,9 @@ + + + @@ -338,7 +344,7 @@ - + @@ -417,7 +423,7 @@ - + @@ -479,6 +485,9 @@ + + + diff --git a/pengine/test10/bundle-order-startup.scores b/pengine/test10/bundle-order-startup.scores index 565b47e..d49dd6e 100644 --- a/pengine/test10/bundle-order-startup.scores +++ b/pengine/test10/bundle-order-startup.scores @@ -29,7 +29,7 @@ container_color: galera-bundle-docker-0 allocation score on undercloud: 0 container_color: galera-bundle-master allocation score on galera-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on undercloud: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: 500 container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:0 allocation score on undercloud: 0 container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY @@ -112,7 +112,7 @@ container_color: rabbitmq-bundle-clone allocation score on rabbitmq-bundle-0: 0 container_color: rabbitmq-bundle-clone allocation score on undercloud: 0 container_color: rabbitmq-bundle-docker-0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: rabbitmq-bundle-docker-0 allocation score on undercloud: 0 -container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: 0 +container_color: rabbitmq:0 allocation score on rabbitmq-bundle-0: 500 container_color: rabbitmq:0 allocation score on undercloud: 0 container_color: redis-bundle allocation score on galera-bundle-0: -INFINITY container_color: redis-bundle allocation score on rabbitmq-bundle-0: -INFINITY @@ -132,7 +132,7 @@ container_color: redis-bundle-master allocation score on redis-bundle-0: -INFINI container_color: redis-bundle-master allocation score on undercloud: 0 container_color: redis:0 allocation score on galera-bundle-0: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: 500 container_color: redis:0 allocation score on undercloud: 0 galera:0 promotion score on galera-bundle-0: -1 native_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY diff --git a/pengine/test10/bundle-order-stop-clone.scores b/pengine/test10/bundle-order-stop-clone.scores index df53f32..f8ec05c 100644 --- a/pengine/test10/bundle-order-stop-clone.scores +++ b/pengine/test10/bundle-order-stop-clone.scores @@ -143,7 +143,7 @@ container_color: galera-bundle-master allocation score on metal-1: 0 container_color: galera-bundle-master allocation score on metal-2: 0 container_color: galera-bundle-master allocation score on metal-3: 0 container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: INFINITY container_color: galera:0 allocation score on galera-bundle-1: -INFINITY container_color: galera:0 allocation score on galera-bundle-2: -INFINITY container_color: galera:0 allocation score on metal-1: 0 @@ -151,7 +151,7 @@ container_color: galera:0 allocation score on metal-2: 0 container_color: galera:0 allocation score on metal-3: 0 container_color: galera:0 allocation score on rabbitmq-bundle-0: 0 container_color: galera:1 allocation score on galera-bundle-0: -INFINITY -container_color: galera:1 allocation score on galera-bundle-1: -INFINITY +container_color: galera:1 allocation score on galera-bundle-1: INFINITY container_color: galera:1 allocation score on galera-bundle-2: -INFINITY container_color: galera:1 allocation score on metal-1: 0 container_color: galera:1 allocation score on metal-2: 0 @@ -159,7 +159,7 @@ container_color: galera:1 allocation score on metal-3: 0 container_color: galera:1 allocation score on rabbitmq-bundle-0: 0 container_color: galera:2 allocation score on galera-bundle-0: -INFINITY container_color: galera:2 allocation score on galera-bundle-1: -INFINITY -container_color: galera:2 allocation score on galera-bundle-2: -INFINITY +container_color: galera:2 allocation score on galera-bundle-2: INFINITY container_color: galera:2 allocation score on metal-1: 0 container_color: galera:2 allocation score on metal-2: 0 container_color: galera:2 allocation score on metal-3: 0 @@ -363,7 +363,7 @@ container_color: redis:0 allocation score on metal-1: 0 container_color: redis:0 allocation score on metal-2: 0 container_color: redis:0 allocation score on metal-3: 0 container_color: redis:0 allocation score on rabbitmq-bundle-0: 0 -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: INFINITY container_color: redis:0 allocation score on redis-bundle-1: -INFINITY container_color: redis:0 allocation score on redis-bundle-2: -INFINITY container_color: redis:1 allocation score on galera-bundle-0: -INFINITY @@ -374,7 +374,7 @@ container_color: redis:1 allocation score on metal-2: 0 container_color: redis:1 allocation score on metal-3: 0 container_color: redis:1 allocation score on rabbitmq-bundle-0: 0 container_color: redis:1 allocation score on redis-bundle-0: -INFINITY -container_color: redis:1 allocation score on redis-bundle-1: -INFINITY +container_color: redis:1 allocation score on redis-bundle-1: INFINITY container_color: redis:1 allocation score on redis-bundle-2: -INFINITY container_color: redis:2 allocation score on galera-bundle-0: -INFINITY container_color: redis:2 allocation score on galera-bundle-1: -INFINITY @@ -385,7 +385,7 @@ container_color: redis:2 allocation score on metal-3: 0 container_color: redis:2 allocation score on rabbitmq-bundle-0: 0 container_color: redis:2 allocation score on redis-bundle-0: -INFINITY container_color: redis:2 allocation score on redis-bundle-1: -INFINITY -container_color: redis:2 allocation score on redis-bundle-2: -INFINITY +container_color: redis:2 allocation score on redis-bundle-2: INFINITY galera:0 promotion score on galera-bundle-0: -1 galera:1 promotion score on galera-bundle-1: -1 galera:2 promotion score on galera-bundle-2: -1 diff --git a/pengine/test10/bundle-order-stop.scores b/pengine/test10/bundle-order-stop.scores index a662f42..528842e 100644 --- a/pengine/test10/bundle-order-stop.scores +++ b/pengine/test10/bundle-order-stop.scores @@ -29,7 +29,7 @@ container_color: galera-bundle-docker-0 allocation score on undercloud: INFINITY container_color: galera-bundle-master allocation score on galera-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on undercloud: 0 -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: INFINITY container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:0 allocation score on undercloud: 0 container_color: haproxy-bundle allocation score on galera-bundle-0: -INFINITY @@ -132,7 +132,7 @@ container_color: redis-bundle-master allocation score on redis-bundle-0: -INFINI container_color: redis-bundle-master allocation score on undercloud: 0 container_color: redis:0 allocation score on galera-bundle-0: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: INFINITY container_color: redis:0 allocation score on undercloud: 0 galera:0 promotion score on galera-bundle-0: 100 native_color: galera-bundle-0 allocation score on galera-bundle-0: -INFINITY diff --git a/pengine/test10/guest-node-host-dies.dot b/pengine/test10/guest-node-host-dies.dot index 83f38c4..2082d07 100644 --- a/pengine/test10/guest-node-host-dies.dot +++ b/pengine/test10/guest-node-host-dies.dot @@ -13,6 +13,7 @@ digraph "g" { "container1_start_0 rhel7-2" [ style=bold color="green" fontcolor="black"] "container1_stop_0 rhel7-1" -> "all_stopped" [ style = bold] "container1_stop_0 rhel7-1" -> "container1_start_0 rhel7-2" [ style = bold] +"container1_stop_0 rhel7-1" -> "rsc_rhel7-1_start_0 rhel7-5" [ style = bold] "container1_stop_0 rhel7-1" -> "stonith 'reboot' lxc1" [ style = bold] "container1_stop_0 rhel7-1" [ style=bold color="green" fontcolor="orange"] "container2_start_0 rhel7-3" -> "lxc-ms_start_0 lxc2" [ style = bold] @@ -20,6 +21,7 @@ digraph "g" { "container2_start_0 rhel7-3" [ style=bold color="green" fontcolor="black"] "container2_stop_0 rhel7-1" -> "all_stopped" [ style = bold] "container2_stop_0 rhel7-1" -> "container2_start_0 rhel7-3" [ style = bold] +"container2_stop_0 rhel7-1" -> "rsc_rhel7-1_start_0 rhel7-5" [ style = bold] "container2_stop_0 rhel7-1" -> "stonith 'reboot' lxc2" [ style = bold] "container2_stop_0 rhel7-1" [ style=bold color="green" fontcolor="orange"] "lxc-ms-master_demote_0" -> "lxc-ms-master_demoted_0" [ style = bold] @@ -83,7 +85,6 @@ digraph "g" { "lxc1_stop_0 rhel7-1" -> "all_stopped" [ style = bold] "lxc1_stop_0 rhel7-1" -> "container1_stop_0 rhel7-1" [ style = bold] "lxc1_stop_0 rhel7-1" -> "lxc1_start_0 rhel7-2" [ style = bold] -"lxc1_stop_0 rhel7-1" -> "rsc_rhel7-1_start_0 rhel7-5" [ style = bold] "lxc1_stop_0 rhel7-1" [ style=bold color="green" fontcolor="orange"] "lxc2_monitor_0 rhel7-2" -> "lxc2_start_0 rhel7-3" [ style = bold] "lxc2_monitor_0 rhel7-2" -> "lxc2_stop_0 rhel7-1" [ style = bold] @@ -102,7 +103,6 @@ digraph "g" { "lxc2_stop_0 rhel7-1" -> "all_stopped" [ style = bold] "lxc2_stop_0 rhel7-1" -> "container2_stop_0 rhel7-1" [ style = bold] "lxc2_stop_0 rhel7-1" -> "lxc2_start_0 rhel7-3" [ style = bold] -"lxc2_stop_0 rhel7-1" -> "rsc_rhel7-1_start_0 rhel7-5" [ style = bold] "lxc2_stop_0 rhel7-1" [ style=bold color="green" fontcolor="orange"] "rsc_rhel7-1_monitor_5000 rhel7-5" [ style=bold color="green" fontcolor="black"] "rsc_rhel7-1_start_0 rhel7-5" -> "rsc_rhel7-1_monitor_5000 rhel7-5" [ style = bold] diff --git a/pengine/test10/guest-node-host-dies.exp b/pengine/test10/guest-node-host-dies.exp index 01fe678..06362e2 100644 --- a/pengine/test10/guest-node-host-dies.exp +++ b/pengine/test10/guest-node-host-dies.exp @@ -62,10 +62,10 @@ - + - + diff --git a/pengine/test10/remote-fence-unclean-3.scores b/pengine/test10/remote-fence-unclean-3.scores index 77d71d6..dba2026 100644 --- a/pengine/test10/remote-fence-unclean-3.scores +++ b/pengine/test10/remote-fence-unclean-3.scores @@ -199,7 +199,7 @@ container_color: galera-bundle-master allocation score on overcloud-novacompute- container_color: galera-bundle-master allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera-bundle-master allocation score on rabbitmq-bundle-1: -INFINITY container_color: galera-bundle-master allocation score on rabbitmq-bundle-2: -INFINITY -container_color: galera:0 allocation score on galera-bundle-0: -INFINITY +container_color: galera:0 allocation score on galera-bundle-0: INFINITY container_color: galera:0 allocation score on galera-bundle-1: -INFINITY container_color: galera:0 allocation score on galera-bundle-2: -INFINITY container_color: galera:0 allocation score on overcloud-controller-0: 0 @@ -210,7 +210,7 @@ container_color: galera:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: galera:0 allocation score on rabbitmq-bundle-1: -INFINITY container_color: galera:0 allocation score on rabbitmq-bundle-2: -INFINITY container_color: galera:1 allocation score on galera-bundle-0: -INFINITY -container_color: galera:1 allocation score on galera-bundle-1: -INFINITY +container_color: galera:1 allocation score on galera-bundle-1: INFINITY container_color: galera:1 allocation score on galera-bundle-2: -INFINITY container_color: galera:1 allocation score on overcloud-controller-0: 0 container_color: galera:1 allocation score on overcloud-controller-1: 0 @@ -221,7 +221,7 @@ container_color: galera:1 allocation score on rabbitmq-bundle-1: -INFINITY container_color: galera:1 allocation score on rabbitmq-bundle-2: -INFINITY container_color: galera:2 allocation score on galera-bundle-0: -INFINITY container_color: galera:2 allocation score on galera-bundle-1: -INFINITY -container_color: galera:2 allocation score on galera-bundle-2: -INFINITY +container_color: galera:2 allocation score on galera-bundle-2: INFINITY container_color: galera:2 allocation score on overcloud-controller-0: 0 container_color: galera:2 allocation score on overcloud-controller-1: 0 container_color: galera:2 allocation score on overcloud-controller-2: 0 @@ -836,7 +836,7 @@ container_color: redis:0 allocation score on overcloud-novacompute-0: 0 container_color: redis:0 allocation score on rabbitmq-bundle-0: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-1: -INFINITY container_color: redis:0 allocation score on rabbitmq-bundle-2: -INFINITY -container_color: redis:0 allocation score on redis-bundle-0: -INFINITY +container_color: redis:0 allocation score on redis-bundle-0: INFINITY container_color: redis:0 allocation score on redis-bundle-1: -INFINITY container_color: redis:0 allocation score on redis-bundle-2: -INFINITY container_color: redis:1 allocation score on galera-bundle-0: -INFINITY @@ -850,7 +850,7 @@ container_color: redis:1 allocation score on rabbitmq-bundle-0: -INFINITY container_color: redis:1 allocation score on rabbitmq-bundle-1: -INFINITY container_color: redis:1 allocation score on rabbitmq-bundle-2: -INFINITY container_color: redis:1 allocation score on redis-bundle-0: -INFINITY -container_color: redis:1 allocation score on redis-bundle-1: -INFINITY +container_color: redis:1 allocation score on redis-bundle-1: INFINITY container_color: redis:1 allocation score on redis-bundle-2: -INFINITY container_color: redis:2 allocation score on galera-bundle-0: -INFINITY container_color: redis:2 allocation score on galera-bundle-1: -INFINITY @@ -864,7 +864,7 @@ container_color: redis:2 allocation score on rabbitmq-bundle-1: -INFINITY container_color: redis:2 allocation score on rabbitmq-bundle-2: -INFINITY container_color: redis:2 allocation score on redis-bundle-0: -INFINITY container_color: redis:2 allocation score on redis-bundle-1: -INFINITY -container_color: redis:2 allocation score on redis-bundle-2: -INFINITY +container_color: redis:2 allocation score on redis-bundle-2: INFINITY galera:0 promotion score on galera-bundle-0: 100 galera:1 promotion score on galera-bundle-1: 100 galera:2 promotion score on galera-bundle-2: 100 diff --git a/pengine/test10/whitebox-asymmetric.dot b/pengine/test10/whitebox-asymmetric.dot index da2f3e3..529caa6 100644 --- a/pengine/test10/whitebox-asymmetric.dot +++ b/pengine/test10/whitebox-asymmetric.dot @@ -1,14 +1,19 @@ digraph "g" { "18node2_monitor_30000 18builder" [ style=bold color="green" fontcolor="black"] "18node2_start_0 18builder" -> "18node2_monitor_30000 18builder" [ style = bold] +"18node2_start_0 18builder" -> "nfs_mount_monitor_0 18node2" [ style = bold] "18node2_start_0 18builder" -> "nfs_mount_monitor_10000 18node2" [ style = bold] "18node2_start_0 18builder" -> "nfs_mount_start_0 18node2" [ style = bold] "18node2_start_0 18builder" -> "vg_tags_dup_monitor_0 18node2" [ style = bold] +"18node2_start_0 18builder" -> "vg_tags_monitor_0 18node2" [ style = bold] "18node2_start_0 18builder" -> "webserver_monitor_0 18node2" [ style = bold] "18node2_start_0 18builder" [ style=bold color="green" fontcolor="black"] +"nfs_mount_monitor_0 18node2" -> "nfs_mount_start_0 18node2" [ style = bold] +"nfs_mount_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] "nfs_mount_monitor_10000 18node2" [ style=bold color="green" fontcolor="black"] "nfs_mount_start_0 18node2" -> "nfs_mount_monitor_10000 18node2" [ style = bold] "nfs_mount_start_0 18node2" [ style=bold color="green" fontcolor="black"] "vg_tags_dup_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] +"vg_tags_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] "webserver_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] } diff --git a/pengine/test10/whitebox-asymmetric.exp b/pengine/test10/whitebox-asymmetric.exp index db71443..3f105a1 100644 --- a/pengine/test10/whitebox-asymmetric.exp +++ b/pengine/test10/whitebox-asymmetric.exp @@ -8,68 +8,97 @@ - + - + - + - + - + - + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + diff --git a/pengine/test10/whitebox-asymmetric.summary b/pengine/test10/whitebox-asymmetric.summary index 8da9996..15bf9e7 100644 --- a/pengine/test10/whitebox-asymmetric.summary +++ b/pengine/test10/whitebox-asymmetric.summary @@ -18,9 +18,11 @@ Transition Summary: Executing cluster transition: * Resource action: 18node2 start on 18builder * Resource action: webserver monitor on 18node2 - * Resource action: nfs_mount start on 18node2 + * Resource action: nfs_mount monitor on 18node2 + * Resource action: vg_tags monitor on 18node2 * Resource action: vg_tags_dup monitor on 18node2 * Resource action: 18node2 monitor=30000 on 18builder + * Resource action: nfs_mount start on 18node2 * Resource action: nfs_mount monitor=10000 on 18node2 Revised cluster status: diff --git a/pengine/test10/whitebox-fail3.dot b/pengine/test10/whitebox-fail3.dot index 6f608d1..9814f66 100644 --- a/pengine/test10/whitebox-fail3.dot +++ b/pengine/test10/whitebox-fail3.dot @@ -1,8 +1,5 @@ digraph "g" { "18builder_monitor_0 dvossel-laptop2" -> "18builder_start_0 dvossel-laptop2" [ style = bold] -"18builder_monitor_0 dvossel-laptop2" -> "FAKE_start_0 18builder" [ style = bold] -"18builder_monitor_0 dvossel-laptop2" -> "W-master_start_0" [ style = bold] -"18builder_monitor_0 dvossel-laptop2" -> "X-master_start_0" [ style = bold] "18builder_monitor_0 dvossel-laptop2" [ style=bold color="green" fontcolor="black"] "18builder_monitor_30000 dvossel-laptop2" [ style=bold color="green" fontcolor="black"] "18builder_start_0 dvossel-laptop2" -> "18builder_monitor_30000 dvossel-laptop2" [ style = bold] diff --git a/pengine/test10/whitebox-fail3.exp b/pengine/test10/whitebox-fail3.exp index cddd7dd..ec28f12 100644 --- a/pengine/test10/whitebox-fail3.exp +++ b/pengine/test10/whitebox-fail3.exp @@ -17,9 +17,6 @@ - - - @@ -95,11 +92,7 @@ - - - - - + @@ -157,11 +150,7 @@ - - - - - + diff --git a/pengine/test10/whitebox-fail3.summary b/pengine/test10/whitebox-fail3.summary index 374fb69..eded099 100644 --- a/pengine/test10/whitebox-fail3.summary +++ b/pengine/test10/whitebox-fail3.summary @@ -22,10 +22,10 @@ Transition Summary: Executing cluster transition: * Resource action: vm start on dvossel-laptop2 * Resource action: FAKE stop on dvossel-laptop2 - * Resource action: 18builder monitor on dvossel-laptop2 - * Pseudo action: all_stopped * Pseudo action: W-master_start_0 * Pseudo action: X-master_start_0 + * Resource action: 18builder monitor on dvossel-laptop2 + * Pseudo action: all_stopped * Resource action: 18builder start on dvossel-laptop2 * Resource action: FAKE start on 18builder * Resource action: W start on 18builder diff --git a/pengine/test10/whitebox-imply-stop-on-fence.dot b/pengine/test10/whitebox-imply-stop-on-fence.dot index 029e9f1..1c41ad2 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.dot +++ b/pengine/test10/whitebox-imply-stop-on-fence.dot @@ -15,6 +15,7 @@ "R-lxc-02_kiff-01_stop_0 kiff-01" -> "R-lxc-02_kiff-01_start_0 kiff-02" [ style = bold] "R-lxc-02_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] "R-lxc-02_kiff-01_stop_0 kiff-01" -> "shared0-clone_stop_0" [ style = bold] +"R-lxc-02_kiff-01_stop_0 kiff-01" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] "R-lxc-02_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] "all_stopped" -> "fence-kiff-02_start_0 kiff-02" [ style = bold] "all_stopped" [ style=bold color="green" fontcolor="orange"] @@ -63,7 +64,6 @@ "lxc-02_kiff-01_stop_0 kiff-01" -> "R-lxc-02_kiff-01_stop_0 kiff-01" [ style = bold] "lxc-02_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] "lxc-02_kiff-01_stop_0 kiff-01" -> "lxc-02_kiff-01_start_0 kiff-02" [ style = bold] -"lxc-02_kiff-01_stop_0 kiff-01" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] "lxc-02_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] "shared0-clone_stop_0" -> "shared0-clone_stopped_0" [ style = bold] "shared0-clone_stop_0" -> "shared0_stop_0 kiff-01" [ style = bold] diff --git a/pengine/test10/whitebox-imply-stop-on-fence.exp b/pengine/test10/whitebox-imply-stop-on-fence.exp index b5700c0..9a469f2 100644 --- a/pengine/test10/whitebox-imply-stop-on-fence.exp +++ b/pengine/test10/whitebox-imply-stop-on-fence.exp @@ -374,13 +374,13 @@ - + - + - + diff --git a/pengine/test10/whitebox-migrate1.dot b/pengine/test10/whitebox-migrate1.dot index 53d37e0..29874e6 100644 --- a/pengine/test10/whitebox-migrate1.dot +++ b/pengine/test10/whitebox-migrate1.dot @@ -17,6 +17,7 @@ "remote-rsc_start_0 rhel7-node3" -> "rhel7-node1_migrate_to_0 rhel7-node2" [ style = dashed] "remote-rsc_start_0 rhel7-node3" -> "rhel7-node1_start_0 rhel7-node3" [ style = bold] "remote-rsc_start_0 rhel7-node3" [ style=bold color="green" fontcolor="orange"] +"remote-rsc_stop_0 rhel7-node2" -> "FAKE3_start_0 rhel7-node2" [ style = dashed] "remote-rsc_stop_0 rhel7-node2" -> "all_stopped" [ style = bold] "remote-rsc_stop_0 rhel7-node2" -> "remote-rsc_start_0 rhel7-node3" [ style = bold] "remote-rsc_stop_0 rhel7-node2" [ style=bold color="green" fontcolor="black"] @@ -32,7 +33,6 @@ "rhel7-node1_monitor_30000 rhel7-node3" [ style=bold color="green" fontcolor="black"] "rhel7-node1_start_0 rhel7-node3" -> "rhel7-node1_monitor_30000 rhel7-node3" [ style = bold] "rhel7-node1_start_0 rhel7-node3" [ style=bold color="green" fontcolor="orange"] -"rhel7-node1_stop_0 rhel7-node2" -> "FAKE3_start_0 rhel7-node2" [ style = dashed] "rhel7-node1_stop_0 rhel7-node2" -> "all_stopped" [ style = bold] "rhel7-node1_stop_0 rhel7-node2" -> "remote-rsc_migrate_to_0 rhel7-node2" [ style = dashed] "rhel7-node1_stop_0 rhel7-node2" -> "remote-rsc_stop_0 rhel7-node2" [ style = bold] diff --git a/pengine/test10/whitebox-nested-group.dot b/pengine/test10/whitebox-nested-group.dot index e5749ec..9e1abce 100644 --- a/pengine/test10/whitebox-nested-group.dot +++ b/pengine/test10/whitebox-nested-group.dot @@ -1,30 +1,9 @@ digraph "g" { "c7auto4_monitor_0 c7auto1" -> "c7auto4_start_0 c7auto1" [ style = bold] -"c7auto4_monitor_0 c7auto1" -> "fake1_start_0 c7auto3" [ style = bold] -"c7auto4_monitor_0 c7auto1" -> "fake2_start_0 c7auto4" [ style = bold] -"c7auto4_monitor_0 c7auto1" -> "fake3_start_0 c7auto2" [ style = bold] -"c7auto4_monitor_0 c7auto1" -> "fake4_start_0 c7auto3" [ style = bold] -"c7auto4_monitor_0 c7auto1" -> "fake5_start_0 c7auto4" [ style = bold] -"c7auto4_monitor_0 c7auto1" -> "fake_clone_start_0" [ style = bold] -"c7auto4_monitor_0 c7auto1" -> "fake_group_start_0" [ style = bold] "c7auto4_monitor_0 c7auto1" [ style=bold color="green" fontcolor="black"] "c7auto4_monitor_0 c7auto2" -> "c7auto4_start_0 c7auto1" [ style = bold] -"c7auto4_monitor_0 c7auto2" -> "fake1_start_0 c7auto3" [ style = bold] -"c7auto4_monitor_0 c7auto2" -> "fake2_start_0 c7auto4" [ style = bold] -"c7auto4_monitor_0 c7auto2" -> "fake3_start_0 c7auto2" [ style = bold] -"c7auto4_monitor_0 c7auto2" -> "fake4_start_0 c7auto3" [ style = bold] -"c7auto4_monitor_0 c7auto2" -> "fake5_start_0 c7auto4" [ style = bold] -"c7auto4_monitor_0 c7auto2" -> "fake_clone_start_0" [ style = bold] -"c7auto4_monitor_0 c7auto2" -> "fake_group_start_0" [ style = bold] "c7auto4_monitor_0 c7auto2" [ style=bold color="green" fontcolor="black"] "c7auto4_monitor_0 c7auto3" -> "c7auto4_start_0 c7auto1" [ style = bold] -"c7auto4_monitor_0 c7auto3" -> "fake1_start_0 c7auto3" [ style = bold] -"c7auto4_monitor_0 c7auto3" -> "fake2_start_0 c7auto4" [ style = bold] -"c7auto4_monitor_0 c7auto3" -> "fake3_start_0 c7auto2" [ style = bold] -"c7auto4_monitor_0 c7auto3" -> "fake4_start_0 c7auto3" [ style = bold] -"c7auto4_monitor_0 c7auto3" -> "fake5_start_0 c7auto4" [ style = bold] -"c7auto4_monitor_0 c7auto3" -> "fake_clone_start_0" [ style = bold] -"c7auto4_monitor_0 c7auto3" -> "fake_group_start_0" [ style = bold] "c7auto4_monitor_0 c7auto3" [ style=bold color="green" fontcolor="black"] "c7auto4_monitor_30000 c7auto1" [ style=bold color="green" fontcolor="black"] "c7auto4_start_0 c7auto1" -> "c7auto4_monitor_30000 c7auto1" [ style = bold] diff --git a/pengine/test10/whitebox-nested-group.exp b/pengine/test10/whitebox-nested-group.exp index 5625c92..388c4d4 100644 --- a/pengine/test10/whitebox-nested-group.exp +++ b/pengine/test10/whitebox-nested-group.exp @@ -24,20 +24,11 @@ - - - - - - - - - @@ -95,21 +86,12 @@ - - - - - - - - - @@ -169,20 +151,11 @@ - - - - - - - - - @@ -237,20 +210,11 @@ - - - - - - - - - @@ -308,21 +272,12 @@ - - - - - - - - - @@ -532,20 +487,11 @@ - - - - - - - - - @@ -572,17 +518,7 @@ - - - - - - - - - - - + diff --git a/pengine/test10/whitebox-nested-group.summary b/pengine/test10/whitebox-nested-group.summary index b03b357..ca9c47f 100644 --- a/pengine/test10/whitebox-nested-group.summary +++ b/pengine/test10/whitebox-nested-group.summary @@ -47,6 +47,8 @@ Executing cluster transition: * Resource action: fake:0 monitor on c7auto2 * Resource action: fake:1 monitor on c7auto3 * Resource action: fake:3 monitor on c7auto1 + * Pseudo action: fake_clone_start_0 + * Pseudo action: fake_group_start_0 * Resource action: fake_fs monitor on c7auto3 * Resource action: fake_fs monitor on c7auto2 * Resource action: fake_fs monitor on c7auto1 @@ -56,8 +58,9 @@ Executing cluster transition: * Resource action: fake1 start on c7auto3 * Resource action: fake3 start on c7auto2 * Resource action: fake4 start on c7auto3 - * Pseudo action: fake_clone_start_0 - * Pseudo action: fake_group_start_0 + * Resource action: fake:0 start on c7auto2 + * Resource action: fake:1 start on c7auto3 + * Resource action: fake:3 start on c7auto1 * Resource action: fake_fs start on c7auto1 * Resource action: container start on c7auto1 * Resource action: c7auto4 start on c7auto1 @@ -66,10 +69,10 @@ Executing cluster transition: * Resource action: fake3 monitor=10000 on c7auto2 * Resource action: fake4 monitor=10000 on c7auto3 * Resource action: fake5 start on c7auto4 - * Resource action: fake:0 start on c7auto2 - * Resource action: fake:1 start on c7auto3 + * Resource action: fake:0 monitor=10000 on c7auto2 + * Resource action: fake:1 monitor=10000 on c7auto3 * Resource action: fake:2 start on c7auto4 - * Resource action: fake:3 start on c7auto1 + * Resource action: fake:3 monitor=10000 on c7auto1 * Pseudo action: fake_clone_running_0 * Pseudo action: fake_group_running_0 * Resource action: fake_fs monitor=10000 on c7auto1 @@ -77,10 +80,7 @@ Executing cluster transition: * Resource action: c7auto4 monitor=30000 on c7auto1 * Resource action: fake2 monitor=10000 on c7auto4 * Resource action: fake5 monitor=10000 on c7auto4 - * Resource action: fake:0 monitor=10000 on c7auto2 - * Resource action: fake:1 monitor=10000 on c7auto3 * Resource action: fake:2 monitor=10000 on c7auto4 - * Resource action: fake:3 monitor=10000 on c7auto1 Revised cluster status: Online: [ c7auto1 c7auto2 c7auto3 ] -- 1.8.3.1 From 6a0dd3429c13343a7177f43cf4c82c352d39f672 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Tue, 26 Sep 2017 21:28:53 +1000 Subject: [PATCH 18/21] Fix: PE: We most definitely need to probe connection resources --- pengine/container.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pengine/container.c b/pengine/container.c index 0e556bb..a205c53 100644 --- a/pengine/container.c +++ b/pengine/container.c @@ -885,8 +885,7 @@ container_create_probe(resource_t * rsc, node_t * node, action_t * complete, } } } - if(FALSE && tuple->remote) { - // TODO: Needed? + if(tuple->remote) { any_created |= tuple->remote->cmds->create_probe(tuple->remote, node, complete, force, data_set); } } -- 1.8.3.1 From 5d27b590abc98d70ecbca3829569ee2de5e0e75d Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Tue, 26 Sep 2017 21:30:37 +1000 Subject: [PATCH 19/21] Test: PE: We most definitely need to probe connection resources --- pengine/test10/bundle-nested-colocation.dot | 36 + pengine/test10/bundle-nested-colocation.exp | 402 +++++-- pengine/test10/bundle-nested-colocation.summary | 18 + pengine/test10/bundle-order-fencing.dot | 24 + pengine/test10/bundle-order-fencing.exp | 1056 +++++++++-------- pengine/test10/bundle-order-fencing.summary | 12 + pengine/test10/bundle-order-partial-start.dot | 2 + pengine/test10/bundle-order-partial-start.exp | 236 ++-- pengine/test10/bundle-order-partial-start.summary | 1 + pengine/test10/bundle-order-startup-clone-2.dot | 36 + pengine/test10/bundle-order-startup-clone-2.exp | 1182 ++++++++++++-------- .../test10/bundle-order-startup-clone-2.summary | 18 + pengine/test10/bundle-order-startup-clone.dot | 12 + pengine/test10/bundle-order-startup-clone.exp | 247 ++-- pengine/test10/bundle-order-startup-clone.summary | 6 + pengine/test10/bundle-order-startup.dot | 6 + pengine/test10/bundle-order-startup.exp | 486 ++++---- pengine/test10/bundle-order-startup.summary | 3 + pengine/test10/bundle-order-stop-clone.dot | 16 + pengine/test10/bundle-order-stop-clone.exp | 248 ++-- pengine/test10/bundle-order-stop-clone.summary | 12 + pengine/test10/remote-fence-unclean-3.dot | 18 + pengine/test10/remote-fence-unclean-3.exp | 176 ++- pengine/test10/remote-fence-unclean-3.summary | 18 + 24 files changed, 2727 insertions(+), 1544 deletions(-) diff --git a/pengine/test10/bundle-nested-colocation.dot b/pengine/test10/bundle-nested-colocation.dot index 1a197c1..baa80e2 100644 --- a/pengine/test10/bundle-nested-colocation.dot +++ b/pengine/test10/bundle-nested-colocation.dot @@ -1,17 +1,53 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-0" -> "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-1" -> "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-2" -> "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 overcloud-galera-0" -> "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 overcloud-galera-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 overcloud-galera-1" -> "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 overcloud-galera-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 overcloud-galera-2" -> "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 overcloud-galera-2" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-0_monitor_60000 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq-bundle-0_monitor_60000 overcloud-controller-0" [ style = bold] "rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq:0_monitor_0 rabbitmq-bundle-0" [ style = bold] "rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style = bold] "rabbitmq-bundle-0_start_0 overcloud-controller-0" -> "rabbitmq:0_start_0 rabbitmq-bundle-0" [ style = bold] "rabbitmq-bundle-0_start_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-0" -> "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style = bold] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-1" -> "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style = bold] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-2" -> "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style = bold] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-galera-0" -> "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style = bold] +"rabbitmq-bundle-1_monitor_0 overcloud-galera-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-galera-1" -> "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style = bold] +"rabbitmq-bundle-1_monitor_0 overcloud-galera-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-galera-2" -> "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style = bold] +"rabbitmq-bundle-1_monitor_0 overcloud-galera-2" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-1_monitor_60000 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq-bundle-1_monitor_60000 overcloud-controller-1" [ style = bold] "rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq:1_monitor_0 rabbitmq-bundle-1" [ style = bold] "rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq:1_monitor_10000 rabbitmq-bundle-1" [ style = bold] "rabbitmq-bundle-1_start_0 overcloud-controller-1" -> "rabbitmq:1_start_0 rabbitmq-bundle-1" [ style = bold] "rabbitmq-bundle-1_start_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-0" -> "rabbitmq-bundle-2_start_0 overcloud-controller-2" [ style = bold] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-1" -> "rabbitmq-bundle-2_start_0 overcloud-controller-2" [ style = bold] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-2" -> "rabbitmq-bundle-2_start_0 overcloud-controller-2" [ style = bold] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-galera-0" -> "rabbitmq-bundle-2_start_0 overcloud-controller-2" [ style = bold] +"rabbitmq-bundle-2_monitor_0 overcloud-galera-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-galera-1" -> "rabbitmq-bundle-2_start_0 overcloud-controller-2" [ style = bold] +"rabbitmq-bundle-2_monitor_0 overcloud-galera-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-galera-2" -> "rabbitmq-bundle-2_start_0 overcloud-controller-2" [ style = bold] +"rabbitmq-bundle-2_monitor_0 overcloud-galera-2" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-2_monitor_60000 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-2_start_0 overcloud-controller-2" -> "rabbitmq-bundle-2_monitor_60000 overcloud-controller-2" [ style = bold] "rabbitmq-bundle-2_start_0 overcloud-controller-2" -> "rabbitmq:2_monitor_0 rabbitmq-bundle-2" [ style = bold] diff --git a/pengine/test10/bundle-nested-colocation.exp b/pengine/test10/bundle-nested-colocation.exp index b91ced5..266d4c0 100644 --- a/pengine/test10/bundle-nested-colocation.exp +++ b/pengine/test10/bundle-nested-colocation.exp @@ -1,39 +1,39 @@ - + - + - + - + - + - + - + @@ -43,61 +43,61 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -107,64 +107,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -174,80 +174,80 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -255,52 +255,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -316,10 +316,10 @@ - + - + @@ -338,20 +338,20 @@ - + - + - + @@ -360,18 +360,90 @@ + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -380,14 +452,14 @@ - + - + - + @@ -400,22 +472,22 @@ - + - + - + - + - + @@ -424,18 +496,90 @@ + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + @@ -444,14 +588,14 @@ - + - + - + @@ -464,22 +608,22 @@ - + - + - + - + - + @@ -488,11 +632,83 @@ + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -507,19 +723,19 @@ - + - + - + - + @@ -527,13 +743,13 @@ - + - + - + diff --git a/pengine/test10/bundle-nested-colocation.summary b/pengine/test10/bundle-nested-colocation.summary index 7c708d2..2cc1c7c 100644 --- a/pengine/test10/bundle-nested-colocation.summary +++ b/pengine/test10/bundle-nested-colocation.summary @@ -30,8 +30,26 @@ Transition Summary: Executing cluster transition: * Pseudo action: rabbitmq-bundle-clone_pre_notify_start_0 * Resource action: rabbitmq-bundle-docker-0 stop on overcloud-rabbit-0 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-galera-2 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-galera-1 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-galera-0 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-controller-2 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-controller-1 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-controller-0 * Resource action: rabbitmq-bundle-docker-1 stop on overcloud-rabbit-1 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-galera-2 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-galera-1 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-galera-0 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-controller-2 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-controller-1 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-controller-0 * Resource action: rabbitmq-bundle-docker-2 stop on overcloud-rabbit-2 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-galera-2 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-galera-1 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-galera-0 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-controller-2 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-controller-1 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-controller-0 * Pseudo action: rabbitmq-bundle_start_0 * Pseudo action: all_stopped * Pseudo action: rabbitmq-bundle-clone_confirmed-pre_notify_start_0 diff --git a/pengine/test10/bundle-order-fencing.dot b/pengine/test10/bundle-order-fencing.dot index 0db9605..cff477b 100644 --- a/pengine/test10/bundle-order-fencing.dot +++ b/pengine/test10/bundle-order-fencing.dot @@ -6,6 +6,12 @@ digraph "g" { "all_stopped" -> "stonith-fence_ipmilan-5254000dcb3f_start_0 controller-2" [ style = bold] "all_stopped" -> "stonith-fence_ipmilan-5254003e8e97_start_0 controller-1" [ style = bold] "all_stopped" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-0_monitor_0 controller-1" -> "galera-bundle-0_start_0 controller-2" [ style = dashed] +"galera-bundle-0_monitor_0 controller-1" -> "galera-bundle-0_stop_0 controller-0" [ style = bold] +"galera-bundle-0_monitor_0 controller-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 controller-2" -> "galera-bundle-0_start_0 controller-2" [ style = dashed] +"galera-bundle-0_monitor_0 controller-2" -> "galera-bundle-0_stop_0 controller-0" [ style = bold] +"galera-bundle-0_monitor_0 controller-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_monitor_60000 controller-2" [ style=dashed color="red" fontcolor="black"] "galera-bundle-0_start_0 controller-2" -> "galera-bundle-0_monitor_60000 controller-2" [ style = dashed] "galera-bundle-0_start_0 controller-2" -> "galera_monitor_20000 galera-bundle-0" [ style = dashed] @@ -16,6 +22,8 @@ digraph "g" { "galera-bundle-0_stop_0 controller-0" -> "galera-bundle-0_start_0 controller-2" [ style = dashed] "galera-bundle-0_stop_0 controller-0" -> "galera-bundle-docker-0_stop_0 controller-0" [ style = bold] "galera-bundle-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-1_monitor_0 controller-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 controller-1" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_stop_0 controller-0" -> "all_stopped" [ style = bold] "galera-bundle-docker-0_stop_0 controller-0" -> "galera-bundle_stopped_0" [ style = bold] "galera-bundle-docker-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] @@ -94,6 +102,12 @@ digraph "g" { "ip-192.168.24.7_stop_0 controller-0" -> "all_stopped" [ style = bold] "ip-192.168.24.7_stop_0 controller-0" -> "ip-192.168.24.7_start_0 controller-2" [ style = bold] "ip-192.168.24.7_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-0_monitor_0 controller-1" -> "rabbitmq-bundle-0_start_0 controller-1" [ style = dashed] +"rabbitmq-bundle-0_monitor_0 controller-1" -> "rabbitmq-bundle-0_stop_0 controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 controller-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 controller-2" -> "rabbitmq-bundle-0_start_0 controller-1" [ style = dashed] +"rabbitmq-bundle-0_monitor_0 controller-2" -> "rabbitmq-bundle-0_stop_0 controller-0" [ style = bold] +"rabbitmq-bundle-0_monitor_0 controller-2" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-0_monitor_60000 controller-1" [ style=dashed color="red" fontcolor="black"] "rabbitmq-bundle-0_start_0 controller-1" -> "rabbitmq-bundle-0_monitor_60000 controller-1" [ style = dashed] "rabbitmq-bundle-0_start_0 controller-1" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] @@ -103,6 +117,8 @@ digraph "g" { "rabbitmq-bundle-0_stop_0 controller-0" -> "rabbitmq-bundle-0_start_0 controller-1" [ style = dashed] "rabbitmq-bundle-0_stop_0 controller-0" -> "rabbitmq-bundle-docker-0_stop_0 controller-0" [ style = bold] "rabbitmq-bundle-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-1_monitor_0 controller-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 controller-1" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq-bundle_running_0" [ style = bold] "rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange"] @@ -189,6 +205,12 @@ digraph "g" { "rabbitmq_stop_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_stopped_0" [ style = bold] "rabbitmq_stop_0 rabbitmq-bundle-0" -> "rabbitmq_start_0 rabbitmq-bundle-0" [ style = dashed] "rabbitmq_stop_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-0_monitor_0 controller-1" -> "redis-bundle-0_start_0 controller-1" [ style = dashed] +"redis-bundle-0_monitor_0 controller-1" -> "redis-bundle-0_stop_0 controller-0" [ style = bold] +"redis-bundle-0_monitor_0 controller-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 controller-2" -> "redis-bundle-0_start_0 controller-1" [ style = dashed] +"redis-bundle-0_monitor_0 controller-2" -> "redis-bundle-0_stop_0 controller-0" [ style = bold] +"redis-bundle-0_monitor_0 controller-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-0_monitor_60000 controller-1" [ style=dashed color="red" fontcolor="black"] "redis-bundle-0_start_0 controller-1" -> "redis-bundle-0_monitor_60000 controller-1" [ style = dashed] "redis-bundle-0_start_0 controller-1" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] @@ -199,6 +221,8 @@ digraph "g" { "redis-bundle-0_stop_0 controller-0" -> "redis-bundle-0_start_0 controller-1" [ style = dashed] "redis-bundle-0_stop_0 controller-0" -> "redis-bundle-docker-0_stop_0 controller-0" [ style = bold] "redis-bundle-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-1_monitor_0 controller-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 controller-1" [ style=bold color="green" fontcolor="black"] "redis-bundle-docker-0_stop_0 controller-0" -> "all_stopped" [ style = bold] "redis-bundle-docker-0_stop_0 controller-0" -> "redis-bundle_stopped_0" [ style = bold] "redis-bundle-docker-0_stop_0 controller-0" [ style=bold color="green" fontcolor="orange"] diff --git a/pengine/test10/bundle-order-fencing.exp b/pengine/test10/bundle-order-fencing.exp index d072d85..6782060 100644 --- a/pengine/test10/bundle-order-fencing.exp +++ b/pengine/test10/bundle-order-fencing.exp @@ -1,229 +1,229 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -231,136 +231,136 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -369,16 +369,16 @@ - + - + - + @@ -386,137 +386,179 @@ + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -525,16 +567,16 @@ - + - + - + - + @@ -542,251 +584,293 @@ + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -799,14 +883,14 @@ - + - + - + @@ -815,7 +899,7 @@ - + @@ -824,517 +908,517 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1343,16 +1427,16 @@ - + - + - + - + @@ -1360,40 +1444,82 @@ + + + + + + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + @@ -1402,42 +1528,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -1446,42 +1572,42 @@ - + - + - + - + - + - + - + - + - + - + @@ -1490,13 +1616,13 @@ - + - + - + @@ -1505,26 +1631,26 @@ - + - + - + - + - + - + @@ -1534,34 +1660,34 @@ - + - + - + - + - + - + - + - + @@ -1571,21 +1697,21 @@ - + - + - + - + - + @@ -1598,9 +1724,9 @@ - + - + @@ -1613,9 +1739,9 @@ - + - + @@ -1628,9 +1754,9 @@ - + - + @@ -1639,264 +1765,264 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1904,68 +2030,68 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/bundle-order-fencing.summary b/pengine/test10/bundle-order-fencing.summary index e2128cb..e78c531 100644 --- a/pengine/test10/bundle-order-fencing.summary +++ b/pengine/test10/bundle-order-fencing.summary @@ -56,9 +56,21 @@ Transition Summary: Executing cluster transition: * Pseudo action: rabbitmq-bundle-clone_pre_notify_stop_0 + * Resource action: rabbitmq-bundle-0 monitor on controller-2 + * Resource action: rabbitmq-bundle-0 monitor on controller-1 + * Resource action: rabbitmq-bundle-1 monitor on controller-2 + * Resource action: rabbitmq-bundle-2 monitor on controller-1 + * Resource action: galera-bundle-0 monitor on controller-2 + * Resource action: galera-bundle-0 monitor on controller-1 + * Resource action: galera-bundle-1 monitor on controller-2 + * Resource action: galera-bundle-2 monitor on controller-1 * Resource action: redis cancel=45000 on redis-bundle-1 * Resource action: redis cancel=60000 on redis-bundle-1 * Pseudo action: redis-bundle-master_pre_notify_demote_0 + * Resource action: redis-bundle-0 monitor on controller-2 + * Resource action: redis-bundle-0 monitor on controller-1 + * Resource action: redis-bundle-1 monitor on controller-2 + * Resource action: redis-bundle-2 monitor on controller-1 * Pseudo action: stonith-fence_ipmilan-5254003e8e97_stop_0 * Pseudo action: stonith-fence_ipmilan-5254000dcb3f_stop_0 * Pseudo action: haproxy-bundle_stop_0 diff --git a/pengine/test10/bundle-order-partial-start.dot b/pengine/test10/bundle-order-partial-start.dot index 0e121a4..1106b28 100644 --- a/pengine/test10/bundle-order-partial-start.dot +++ b/pengine/test10/bundle-order-partial-start.dot @@ -1,4 +1,6 @@ digraph "g" { +"galera-bundle-0_monitor_0 undercloud" -> "galera-bundle-0_start_0 undercloud" [ style = bold] +"galera-bundle-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_start_0 undercloud" -> "galera-bundle-0_monitor_60000 undercloud" [ style = bold] "galera-bundle-0_start_0 undercloud" -> "galera:0_monitor_20000 galera-bundle-0" [ style = bold] diff --git a/pengine/test10/bundle-order-partial-start.exp b/pengine/test10/bundle-order-partial-start.exp index 98922d5..e883a3b 100644 --- a/pengine/test10/bundle-order-partial-start.exp +++ b/pengine/test10/bundle-order-partial-start.exp @@ -1,43 +1,43 @@ - + - + - + - + - + - + - + @@ -52,49 +52,49 @@ - + - + - + - + - + - + - + - + - + @@ -102,22 +102,22 @@ - + - + - + - + @@ -126,82 +126,82 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -210,26 +210,26 @@ - + - + - + - + @@ -239,7 +239,7 @@ - + @@ -254,291 +254,303 @@ - + - + - + - + + + + - + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/bundle-order-partial-start.summary b/pengine/test10/bundle-order-partial-start.summary index 9045545..fb8e7de 100644 --- a/pengine/test10/bundle-order-partial-start.summary +++ b/pengine/test10/bundle-order-partial-start.summary @@ -32,6 +32,7 @@ Executing cluster transition: * Resource action: rabbitmq:0 monitor on rabbitmq-bundle-0 * Pseudo action: rabbitmq-bundle-clone_pre_notify_start_0 * Resource action: galera-bundle-docker-0 monitor on undercloud + * Resource action: galera-bundle-0 monitor on undercloud * Pseudo action: redis-bundle-master_pre_notify_promote_0 * Resource action: haproxy-bundle-docker-0 monitor on undercloud * Pseudo action: haproxy-bundle_start_0 diff --git a/pengine/test10/bundle-order-startup-clone-2.dot b/pengine/test10/bundle-order-startup-clone-2.dot index d0b0f03..6026530 100644 --- a/pengine/test10/bundle-order-startup-clone-2.dot +++ b/pengine/test10/bundle-order-startup-clone-2.dot @@ -1,16 +1,34 @@ digraph "g" { +"galera-bundle-0_monitor_0 metal-1" -> "galera-bundle-0_start_0 metal-1" [ style = bold] +"galera-bundle-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 metal-2" -> "galera-bundle-0_start_0 metal-1" [ style = bold] +"galera-bundle-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 metal-3" -> "galera-bundle-0_start_0 metal-1" [ style = bold] +"galera-bundle-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_monitor_60000 metal-1" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_start_0 metal-1" -> "galera-bundle-0_monitor_60000 metal-1" [ style = bold] "galera-bundle-0_start_0 metal-1" -> "galera:0_monitor_20000 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 metal-1" -> "galera:0_monitor_30000 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 metal-1" -> "galera:0_start_0 galera-bundle-0" [ style = bold] "galera-bundle-0_start_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-1_monitor_0 metal-1" -> "galera-bundle-1_start_0 metal-2" [ style = bold] +"galera-bundle-1_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-1_monitor_0 metal-2" -> "galera-bundle-1_start_0 metal-2" [ style = bold] +"galera-bundle-1_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-1_monitor_0 metal-3" -> "galera-bundle-1_start_0 metal-2" [ style = bold] +"galera-bundle-1_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-1_monitor_60000 metal-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-1_start_0 metal-2" -> "galera-bundle-1_monitor_60000 metal-2" [ style = bold] "galera-bundle-1_start_0 metal-2" -> "galera:1_monitor_20000 galera-bundle-1" [ style = bold] "galera-bundle-1_start_0 metal-2" -> "galera:1_monitor_30000 galera-bundle-1" [ style = bold] "galera-bundle-1_start_0 metal-2" -> "galera:1_start_0 galera-bundle-1" [ style = bold] "galera-bundle-1_start_0 metal-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 metal-1" -> "galera-bundle-2_start_0 metal-3" [ style = bold] +"galera-bundle-2_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 metal-2" -> "galera-bundle-2_start_0 metal-3" [ style = bold] +"galera-bundle-2_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 metal-3" -> "galera-bundle-2_start_0 metal-3" [ style = bold] +"galera-bundle-2_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-2_monitor_60000 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-2_start_0 metal-3" -> "galera-bundle-2_monitor_60000 metal-3" [ style = bold] "galera-bundle-2_start_0 metal-3" -> "galera:2_monitor_20000 galera-bundle-2" [ style = bold] @@ -167,18 +185,36 @@ digraph "g" { "haproxy-bundle_start_0" -> "haproxy-bundle-docker-1_start_0 metal-2" [ style = bold] "haproxy-bundle_start_0" -> "haproxy-bundle-docker-2_start_0 metal-3" [ style = bold] "haproxy-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-0_monitor_0 metal-1" -> "redis-bundle-0_start_0 metal-1" [ style = bold] +"redis-bundle-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 metal-2" -> "redis-bundle-0_start_0 metal-1" [ style = bold] +"redis-bundle-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 metal-3" -> "redis-bundle-0_start_0 metal-1" [ style = bold] +"redis-bundle-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-0_monitor_60000 metal-1" [ style=bold color="green" fontcolor="black"] "redis-bundle-0_start_0 metal-1" -> "redis-bundle-0_monitor_60000 metal-1" [ style = bold] "redis-bundle-0_start_0 metal-1" -> "redis:0_monitor_20000 redis-bundle-0" [ style = bold] "redis-bundle-0_start_0 metal-1" -> "redis:0_promote_0 redis-bundle-0" [ style = bold] "redis-bundle-0_start_0 metal-1" -> "redis:0_start_0 redis-bundle-0" [ style = bold] "redis-bundle-0_start_0 metal-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-1_monitor_0 metal-1" -> "redis-bundle-1_start_0 metal-2" [ style = bold] +"redis-bundle-1_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-1_monitor_0 metal-2" -> "redis-bundle-1_start_0 metal-2" [ style = bold] +"redis-bundle-1_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-1_monitor_0 metal-3" -> "redis-bundle-1_start_0 metal-2" [ style = bold] +"redis-bundle-1_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-1_monitor_60000 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-1_start_0 metal-2" -> "redis-bundle-1_monitor_60000 metal-2" [ style = bold] "redis-bundle-1_start_0 metal-2" -> "redis:1_monitor_20000 redis-bundle-1" [ style = bold] "redis-bundle-1_start_0 metal-2" -> "redis:1_promote_0 redis-bundle-1" [ style = bold] "redis-bundle-1_start_0 metal-2" -> "redis:1_start_0 redis-bundle-1" [ style = bold] "redis-bundle-1_start_0 metal-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 metal-1" -> "redis-bundle-2_start_0 metal-3" [ style = bold] +"redis-bundle-2_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 metal-2" -> "redis-bundle-2_start_0 metal-3" [ style = bold] +"redis-bundle-2_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 metal-3" -> "redis-bundle-2_start_0 metal-3" [ style = bold] +"redis-bundle-2_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-2_monitor_60000 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-2_start_0 metal-3" -> "redis-bundle-2_monitor_60000 metal-3" [ style = bold] "redis-bundle-2_start_0 metal-3" -> "redis:2_monitor_20000 redis-bundle-2" [ style = bold] diff --git a/pengine/test10/bundle-order-startup-clone-2.exp b/pengine/test10/bundle-order-startup-clone-2.exp index b6f90d4..ae499c0 100644 --- a/pengine/test10/bundle-order-startup-clone-2.exp +++ b/pengine/test10/bundle-order-startup-clone-2.exp @@ -1,43 +1,43 @@ - + - + - + - + - + - + - + @@ -52,49 +52,49 @@ - + - + - + - + - + - + - + - + @@ -103,49 +103,49 @@ - + - + - + - + - + - + - + - + @@ -154,55 +154,55 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -210,28 +210,28 @@ - + - + - + - + - + - + @@ -240,205 +240,205 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -447,50 +447,50 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -500,37 +500,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -539,7 +539,7 @@ - + @@ -557,46 +557,82 @@ - + - + - + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -606,103 +642,139 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -712,1305 +784,1449 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/bundle-order-startup-clone-2.summary b/pengine/test10/bundle-order-startup-clone-2.summary index a2c2146..07e6f00 100644 --- a/pengine/test10/bundle-order-startup-clone-2.summary +++ b/pengine/test10/bundle-order-startup-clone-2.summary @@ -52,12 +52,21 @@ Executing cluster transition: * Resource action: galera-bundle-docker-0 monitor on metal-3 * Resource action: galera-bundle-docker-0 monitor on metal-2 * Resource action: galera-bundle-docker-0 monitor on metal-1 + * Resource action: galera-bundle-0 monitor on metal-3 + * Resource action: galera-bundle-0 monitor on metal-2 + * Resource action: galera-bundle-0 monitor on metal-1 * Resource action: galera-bundle-docker-1 monitor on metal-3 * Resource action: galera-bundle-docker-1 monitor on metal-2 * Resource action: galera-bundle-docker-1 monitor on metal-1 + * Resource action: galera-bundle-1 monitor on metal-3 + * Resource action: galera-bundle-1 monitor on metal-2 + * Resource action: galera-bundle-1 monitor on metal-1 * Resource action: galera-bundle-docker-2 monitor on metal-3 * Resource action: galera-bundle-docker-2 monitor on metal-2 * Resource action: galera-bundle-docker-2 monitor on metal-1 + * Resource action: galera-bundle-2 monitor on metal-3 + * Resource action: galera-bundle-2 monitor on metal-2 + * Resource action: galera-bundle-2 monitor on metal-1 * Resource action: haproxy-bundle-docker-0 monitor on metal-3 * Resource action: haproxy-bundle-docker-0 monitor on metal-2 * Resource action: haproxy-bundle-docker-0 monitor on metal-1 @@ -71,12 +80,21 @@ Executing cluster transition: * Resource action: redis-bundle-docker-0 monitor on metal-3 * Resource action: redis-bundle-docker-0 monitor on metal-2 * Resource action: redis-bundle-docker-0 monitor on metal-1 + * Resource action: redis-bundle-0 monitor on metal-3 + * Resource action: redis-bundle-0 monitor on metal-2 + * Resource action: redis-bundle-0 monitor on metal-1 * Resource action: redis-bundle-docker-1 monitor on metal-3 * Resource action: redis-bundle-docker-1 monitor on metal-2 * Resource action: redis-bundle-docker-1 monitor on metal-1 + * Resource action: redis-bundle-1 monitor on metal-3 + * Resource action: redis-bundle-1 monitor on metal-2 + * Resource action: redis-bundle-1 monitor on metal-1 * Resource action: redis-bundle-docker-2 monitor on metal-3 * Resource action: redis-bundle-docker-2 monitor on metal-2 * Resource action: redis-bundle-docker-2 monitor on metal-1 + * Resource action: redis-bundle-2 monitor on metal-3 + * Resource action: redis-bundle-2 monitor on metal-2 + * Resource action: redis-bundle-2 monitor on metal-1 * Pseudo action: redis-bundle_start_0 * Pseudo action: haproxy-bundle_start_0 * Pseudo action: storage-clone_confirmed-pre_notify_start_0 diff --git a/pengine/test10/bundle-order-startup-clone.dot b/pengine/test10/bundle-order-startup-clone.dot index b791c10..39f3635 100644 --- a/pengine/test10/bundle-order-startup-clone.dot +++ b/pengine/test10/bundle-order-startup-clone.dot @@ -1,4 +1,10 @@ digraph "g" { +"galera-bundle-0_monitor_0 metal-1" -> "galera-bundle-0_start_0 metal-1" [ style = dashed] +"galera-bundle-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 metal-2" -> "galera-bundle-0_start_0 metal-1" [ style = dashed] +"galera-bundle-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 metal-3" -> "galera-bundle-0_start_0 metal-1" [ style = dashed] +"galera-bundle-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_monitor_60000 metal-1" [ style=dashed color="red" fontcolor="black"] "galera-bundle-0_start_0 metal-1" -> "galera-bundle-0_monitor_60000 metal-1" [ style = dashed] "galera-bundle-0_start_0 metal-1" -> "galera:0_monitor_20000 galera-bundle-0" [ style = dashed] @@ -49,6 +55,12 @@ digraph "g" { "haproxy-bundle_running_0" [ style=bold color="green" fontcolor="orange"] "haproxy-bundle_start_0" -> "haproxy-bundle-docker-0_start_0 metal-2" [ style = bold] "haproxy-bundle_start_0" [ style=bold color="green" fontcolor="orange"] +"redis-bundle-0_monitor_0 metal-1" -> "redis-bundle-0_start_0 metal-2" [ style = bold] +"redis-bundle-0_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 metal-2" -> "redis-bundle-0_start_0 metal-2" [ style = bold] +"redis-bundle-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 metal-3" -> "redis-bundle-0_start_0 metal-2" [ style = bold] +"redis-bundle-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "redis-bundle-0_monitor_60000 metal-2" [ style=bold color="green" fontcolor="black"] "redis-bundle-0_start_0 metal-2" -> "redis-bundle-0_monitor_60000 metal-2" [ style = bold] "redis-bundle-0_start_0 metal-2" -> "redis:0_monitor_45000 redis-bundle-0" [ style = bold] diff --git a/pengine/test10/bundle-order-startup-clone.exp b/pengine/test10/bundle-order-startup-clone.exp index 5be495e..9e3dd9b 100644 --- a/pengine/test10/bundle-order-startup-clone.exp +++ b/pengine/test10/bundle-order-startup-clone.exp @@ -10,7 +10,7 @@ - + @@ -19,7 +19,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -55,351 +55,414 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/bundle-order-startup-clone.summary b/pengine/test10/bundle-order-startup-clone.summary index c2b46de..1346bda 100644 --- a/pengine/test10/bundle-order-startup-clone.summary +++ b/pengine/test10/bundle-order-startup-clone.summary @@ -31,6 +31,9 @@ Executing cluster transition: * Resource action: galera-bundle-docker-0 monitor on metal-3 * Resource action: galera-bundle-docker-0 monitor on metal-2 * Resource action: galera-bundle-docker-0 monitor on metal-1 + * Resource action: galera-bundle-0 monitor on metal-3 + * Resource action: galera-bundle-0 monitor on metal-2 + * Resource action: galera-bundle-0 monitor on metal-1 * Resource action: haproxy-bundle-docker-0 monitor on metal-3 * Resource action: haproxy-bundle-docker-0 monitor on metal-2 * Resource action: haproxy-bundle-docker-0 monitor on metal-1 @@ -38,6 +41,9 @@ Executing cluster transition: * Resource action: redis-bundle-docker-0 monitor on metal-3 * Resource action: redis-bundle-docker-0 monitor on metal-2 * Resource action: redis-bundle-docker-0 monitor on metal-1 + * Resource action: redis-bundle-0 monitor on metal-3 + * Resource action: redis-bundle-0 monitor on metal-2 + * Resource action: redis-bundle-0 monitor on metal-1 * Pseudo action: redis-bundle_start_0 * Pseudo action: haproxy-bundle_start_0 * Resource action: haproxy-bundle-docker-0 start on metal-2 diff --git a/pengine/test10/bundle-order-startup.dot b/pengine/test10/bundle-order-startup.dot index 98f1c3c..213fa4c 100644 --- a/pengine/test10/bundle-order-startup.dot +++ b/pengine/test10/bundle-order-startup.dot @@ -1,4 +1,6 @@ digraph "g" { +"galera-bundle-0_monitor_0 undercloud" -> "galera-bundle-0_start_0 undercloud" [ style = bold] +"galera-bundle-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_start_0 undercloud" -> "galera-bundle-0_monitor_60000 undercloud" [ style = bold] "galera-bundle-0_start_0 undercloud" -> "galera:0_monitor_20000 galera-bundle-0" [ style = bold] @@ -84,6 +86,8 @@ digraph "g" { "openstack-cinder-volume_running_0" [ style=bold color="green" fontcolor="orange"] "openstack-cinder-volume_start_0" -> "openstack-cinder-volume-docker-0_start_0 undercloud" [ style = bold] "openstack-cinder-volume_start_0" [ style=bold color="green" fontcolor="orange"] +"rabbitmq-bundle-0_monitor_0 undercloud" -> "rabbitmq-bundle-0_start_0 undercloud" [ style = bold] +"rabbitmq-bundle-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "rabbitmq-bundle-0_start_0 undercloud" -> "rabbitmq-bundle-0_monitor_60000 undercloud" [ style = bold] "rabbitmq-bundle-0_start_0 undercloud" -> "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style = bold] @@ -124,6 +128,8 @@ digraph "g" { "rabbitmq:0_start_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_running_0" [ style = bold] "rabbitmq:0_start_0 rabbitmq-bundle-0" -> "rabbitmq:0_monitor_10000 rabbitmq-bundle-0" [ style = bold] "rabbitmq:0_start_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 undercloud" -> "redis-bundle-0_start_0 undercloud" [ style = bold] +"redis-bundle-0_monitor_0 undercloud" [ style=bold color="green" fontcolor="black"] "redis-bundle-0_monitor_60000 undercloud" [ style=bold color="green" fontcolor="black"] "redis-bundle-0_start_0 undercloud" -> "redis-bundle-0_monitor_60000 undercloud" [ style = bold] "redis-bundle-0_start_0 undercloud" -> "redis:0_monitor_45000 redis-bundle-0" [ style = bold] diff --git a/pengine/test10/bundle-order-startup.exp b/pengine/test10/bundle-order-startup.exp index bcef087..77e67bd 100644 --- a/pengine/test10/bundle-order-startup.exp +++ b/pengine/test10/bundle-order-startup.exp @@ -1,100 +1,100 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -102,22 +102,22 @@ - + - + - + - + @@ -126,29 +126,29 @@ - + - + - + - + - + @@ -158,7 +158,7 @@ - + @@ -173,809 +173,845 @@ - + - + - + - + + + + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + - + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/pengine/test10/bundle-order-startup.summary b/pengine/test10/bundle-order-startup.summary index 8da71d0..8e6b685 100644 --- a/pengine/test10/bundle-order-startup.summary +++ b/pengine/test10/bundle-order-startup.summary @@ -41,9 +41,12 @@ Transition Summary: Executing cluster transition: * Pseudo action: rabbitmq-bundle-clone_pre_notify_start_0 * Resource action: rabbitmq-bundle-docker-0 monitor on undercloud + * Resource action: rabbitmq-bundle-0 monitor on undercloud * Resource action: galera-bundle-docker-0 monitor on undercloud + * Resource action: galera-bundle-0 monitor on undercloud * Pseudo action: redis-bundle-master_pre_notify_start_0 * Resource action: redis-bundle-docker-0 monitor on undercloud + * Resource action: redis-bundle-0 monitor on undercloud * Resource action: ip-192.168.122.254 monitor on undercloud * Resource action: ip-192.168.122.250 monitor on undercloud * Resource action: ip-192.168.122.249 monitor on undercloud diff --git a/pengine/test10/bundle-order-stop-clone.dot b/pengine/test10/bundle-order-stop-clone.dot index 6545fb8..4d03564 100644 --- a/pengine/test10/bundle-order-stop-clone.dot +++ b/pengine/test10/bundle-order-stop-clone.dot @@ -1,5 +1,11 @@ digraph "g" { "all_stopped" [ style=bold color="green" fontcolor="orange"] +"galera-bundle-0_monitor_0 metal-2" -> "galera-bundle-0_start_0 metal-1" [ style = dashed] +"galera-bundle-0_monitor_0 metal-2" -> "galera-bundle-0_stop_0 metal-1" [ style = bold] +"galera-bundle-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 metal-3" -> "galera-bundle-0_start_0 metal-1" [ style = dashed] +"galera-bundle-0_monitor_0 metal-3" -> "galera-bundle-0_stop_0 metal-1" [ style = bold] +"galera-bundle-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] "galera-bundle-0_monitor_60000 metal-1" [ style=dashed color="red" fontcolor="black"] "galera-bundle-0_start_0 metal-1" -> "galera-bundle-0_monitor_60000 metal-1" [ style = dashed] "galera-bundle-0_start_0 metal-1" -> "galera:0_monitor_20000 galera-bundle-0" [ style = dashed] @@ -10,6 +16,10 @@ digraph "g" { "galera-bundle-0_stop_0 metal-1" -> "galera-bundle-0_start_0 metal-1" [ style = dashed] "galera-bundle-0_stop_0 metal-1" -> "galera-bundle-docker-0_stop_0 metal-1" [ style = bold] "galera-bundle-0_stop_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-1_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-1_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "galera-bundle-docker-0_stop_0 metal-1" -> "all_stopped" [ style = bold] "galera-bundle-docker-0_stop_0 metal-1" -> "galera-bundle_stopped_0" [ style = bold] "galera-bundle-docker-0_stop_0 metal-1" [ style=bold color="green" fontcolor="black"] @@ -45,6 +55,12 @@ digraph "g" { "galera:0_stop_0 galera-bundle-0" -> "galera-bundle-master_stopped_0" [ style = bold] "galera:0_stop_0 galera-bundle-0" -> "galera:0_start_0 galera-bundle-0" [ style = dashed] "galera:0_stop_0 galera-bundle-0" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] +"redis-bundle-1_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-1_monitor_0 metal-3" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 metal-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 metal-2" [ style=bold color="green" fontcolor="black"] "storage-clone_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] "storage-clone_confirmed-post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] "storage-clone_confirmed-pre_notify_stop_0" -> "storage-clone_post_notify_stopped_0" [ style = bold] diff --git a/pengine/test10/bundle-order-stop-clone.exp b/pengine/test10/bundle-order-stop-clone.exp index e78e235..a1106aa 100644 --- a/pengine/test10/bundle-order-stop-clone.exp +++ b/pengine/test10/bundle-order-stop-clone.exp @@ -1,139 +1,139 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -141,123 +141,123 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -267,58 +267,172 @@ - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + @@ -326,19 +440,19 @@ - + - + - + - + - + diff --git a/pengine/test10/bundle-order-stop-clone.summary b/pengine/test10/bundle-order-stop-clone.summary index 70e0f21..d988c06 100644 --- a/pengine/test10/bundle-order-stop-clone.summary +++ b/pengine/test10/bundle-order-stop-clone.summary @@ -28,6 +28,18 @@ Transition Summary: Executing cluster transition: * Pseudo action: storage-clone_pre_notify_stop_0 + * Resource action: galera-bundle-0 monitor on metal-3 + * Resource action: galera-bundle-0 monitor on metal-2 + * Resource action: galera-bundle-1 monitor on metal-3 + * Resource action: galera-bundle-1 monitor on metal-1 + * Resource action: galera-bundle-2 monitor on metal-2 + * Resource action: galera-bundle-2 monitor on metal-1 + * Resource action: redis-bundle-0 monitor on metal-3 + * Resource action: redis-bundle-0 monitor on metal-2 + * Resource action: redis-bundle-1 monitor on metal-3 + * Resource action: redis-bundle-1 monitor on metal-1 + * Resource action: redis-bundle-2 monitor on metal-2 + * Resource action: redis-bundle-2 monitor on metal-1 * Pseudo action: galera-bundle_stop_0 * Resource action: storage:0 notify on metal-1 * Resource action: storage:1 notify on metal-2 diff --git a/pengine/test10/remote-fence-unclean-3.dot b/pengine/test10/remote-fence-unclean-3.dot index 14adaef..dfee1d9 100644 --- a/pengine/test10/remote-fence-unclean-3.dot +++ b/pengine/test10/remote-fence-unclean-3.dot @@ -10,8 +9,26 @@ digraph "g" { "fence1_monitor_60000 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] "fence1_start_0 overcloud-controller-0" -> "fence1_monitor_60000 overcloud-controller-0" [ style = bold] "fence1_start_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"galera-bundle-0_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-1_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"galera-bundle-1_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"galera-bundle-2_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] "overcloud-novacompute-0_stop_0 overcloud-controller-0" -> "all_stopped" [ style = bold] "overcloud-novacompute-0_stop_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-0_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-1_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"rabbitmq-bundle-2_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] +"redis-bundle-0_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-1_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"redis-bundle-1_monitor_0 overcloud-controller-2" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 overcloud-controller-0" [ style=bold color="green" fontcolor="black"] +"redis-bundle-2_monitor_0 overcloud-controller-1" [ style=bold color="green" fontcolor="black"] "stonith 'reboot' overcloud-novacompute-0" -> "stonith_complete" [ style = bold] "stonith 'reboot' overcloud-novacompute-0" [ style=bold color="green" fontcolor="black"] "stonith_complete" -> "all_stopped" [ style = bold] diff --git a/pengine/test10/remote-fence-unclean-3.exp b/pengine/test10/remote-fence-unclean-3.exp index 64e5a62..76e5e89 100644 --- a/pengine/test10/remote-fence-unclean-3.exp +++ b/pengine/test10/remote-fence-unclean-3.exp @@ -1,20 +1,20 @@ - + - + - + @@ -27,16 +27,16 @@ - + - + - + @@ -45,7 +45,7 @@ - + @@ -72,29 +72,191 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -246,7 +269,7 @@ - + diff --git a/pengine/test10/remote-fence-unclean-3.summary b/pengine/test10/remote-fence-unclean-3.summary index ec54d8e..7f2b2d3 100644 --- a/pengine/test10/remote-fence-unclean-3.summary +++ b/pengine/test10/remote-fence-unclean-3.summary @@ -43,6 +43,24 @@ Executing cluster transition: * Resource action: fence1 monitor on overcloud-controller-1 * Resource action: fence1 monitor on overcloud-controller-0 * Resource action: overcloud-novacompute-0 stop on overcloud-controller-0 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-controller-2 + * Resource action: rabbitmq-bundle-0 monitor on overcloud-controller-1 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-controller-2 + * Resource action: rabbitmq-bundle-1 monitor on overcloud-controller-0 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-controller-1 + * Resource action: rabbitmq-bundle-2 monitor on overcloud-controller-0 + * Resource action: galera-bundle-0 monitor on overcloud-controller-2 + * Resource action: galera-bundle-0 monitor on overcloud-controller-1 + * Resource action: galera-bundle-1 monitor on overcloud-controller-2 + * Resource action: galera-bundle-1 monitor on overcloud-controller-0 + * Resource action: galera-bundle-2 monitor on overcloud-controller-1 + * Resource action: galera-bundle-2 monitor on overcloud-controller-0 + * Resource action: redis-bundle-0 monitor on overcloud-controller-2 + * Resource action: redis-bundle-0 monitor on overcloud-controller-1 + * Resource action: redis-bundle-1 monitor on overcloud-controller-2 + * Resource action: redis-bundle-1 monitor on overcloud-controller-0 + * Resource action: redis-bundle-2 monitor on overcloud-controller-1 + * Resource action: redis-bundle-2 monitor on overcloud-controller-0 * Fencing overcloud-novacompute-0 (reboot) * Pseudo action: stonith_complete * Pseudo action: all_stopped -- 1.8.3.1 From 140a37e6eaa35a4248abe254641965410e2f833d Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Fri, 22 Sep 2017 12:36:01 +1000 Subject: [PATCH 20/21] crm_resource: Now that we only clean up on known nodes we dont need this optimisation --- tools/crm_resource_runtime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c index 210ea7d..c280c59 100644 --- a/tools/crm_resource_runtime.c +++ b/tools/crm_resource_runtime.c @@ -619,7 +619,7 @@ cli_resource_delete(crm_ipc_t *crmd_channel, const char *host_uname, resource_t *child = (resource_t *) lpc->data; rc = cli_resource_delete(cib_conn, crmd_channel, host_uname, child, data_set); - if(rc != pcmk_ok || (pe_rsc_is_clone(rsc) && is_not_set(rsc->flags, pe_rsc_unique))) { + if(rc != pcmk_ok) { return rc; } } -- 1.8.3.1 From f3e82cec10999738437e566e5092513de528c6e3 Mon Sep 17 00:00:00 2001 From: Andrew Beekhof Date: Tue, 26 Sep 2017 22:14:20 +1000 Subject: [PATCH 21/21] Log: Reduce verbosity of developer logging --- lib/common/strings.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/common/strings.c b/lib/common/strings.c index 5856c16..573a14b 100644 --- a/lib/common/strings.c +++ b/lib/common/strings.c @@ -415,12 +415,12 @@ crm_compress_string(const char *data, int length, int max, char **result, unsign #ifdef CLOCK_MONOTONIC clock_gettime(CLOCK_MONOTONIC, &after_t); - crm_info("Compressed %d bytes into %d (ratio %d:1) in %dms", + crm_trace("Compressed %d bytes into %d (ratio %d:1) in %ldms", length, *result_len, length / (*result_len), (after_t.tv_sec - before_t.tv_sec) * 1000 + (after_t.tv_nsec - before_t.tv_nsec) / 1000000); #else - crm_info("Compressed %d bytes into %d (ratio %d:1)", + crm_trace("Compressed %d bytes into %d (ratio %d:1)", length, *result_len, length / (*result_len)); #endif -- 1.8.3.1