diff --git a/SOURCES/0110-Fix-attrd-Correctly-implement-mass-removal-of-a-node.patch b/SOURCES/0110-Fix-attrd-Correctly-implement-mass-removal-of-a-node.patch deleted file mode 100644 index 33c75be..0000000 --- a/SOURCES/0110-Fix-attrd-Correctly-implement-mass-removal-of-a-node.patch +++ /dev/null @@ -1,59 +0,0 @@ -From da17fd0265ffe3b4456c4f81141439c851504281 Mon Sep 17 00:00:00 2001 -From: Andrew Beekhof -Date: Thu, 7 Jan 2016 11:33:34 +1100 -Subject: [PATCH] Fix: attrd: Correctly implement mass removal of a node's - attributes - ---- - attrd/commands.c | 21 +++++++++++++++++---- - 1 file changed, 17 insertions(+), 4 deletions(-) - -diff --git a/attrd/commands.c b/attrd/commands.c -index 378a4f8..28e4a81 100644 ---- a/attrd/commands.c -+++ b/attrd/commands.c -@@ -541,8 +541,9 @@ attrd_peer_message(crm_node_t *peer, xmlNode *xml) - } else { - host = NULL; - } -- attrd_peer_remove(host_id, host, TRUE, peer->uname); - -+ crm_notice("Processing %s from %s: %s %u", op, peer->uname, host, host_id); -+ attrd_peer_remove(host_id, host, TRUE, peer->uname); - - } else if (safe_str_eq(op, ATTRD_OP_SYNC_RESPONSE) - && safe_str_neq(peer->uname, attrd_cluster->uname)) { -@@ -589,15 +590,27 @@ attrd_peer_remove(uint32_t nodeid, const char *host, gboolean uncache, const cha - attribute_t *a = NULL; - GHashTableIter aIter; - -- crm_notice("Removing all %s attributes for %s", host, source); -+ crm_notice("Removing all %s (%u) attributes for %s", host, nodeid, source); - if(host == NULL) { - return; - } - - 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); -+ attribute_value_t *v = g_hash_table_lookup(a->values, host); -+ -+ if(v && v->current) { -+ free(v->current); -+ v->current = NULL; -+ a->changed = TRUE; -+ -+ crm_debug("Removed %s[%s]=%s for %s", a->id, host, v->current, source); -+ if(a->timer) { -+ crm_trace("Delayed write out (%dms) for %s", a->timeout_ms, a->id); -+ mainloop_timer_start(a->timer); -+ } else { -+ write_or_elect_attribute(a); -+ } - } - } - --- -1.8.3.1 - diff --git a/SOURCES/0114-clear-remote-node-transient.patch b/SOURCES/0114-clear-remote-node-transient.patch new file mode 100644 index 0000000..9555dbf --- /dev/null +++ b/SOURCES/0114-clear-remote-node-transient.patch @@ -0,0 +1,12 @@ +--- a/crmd/remote_lrmd_ra.c 2016-06-11 14:59:00.658320677 -0500 ++++ b/crmd/remote_lrmd_ra.c 2016-06-11 15:18:40.284860853 -0500 +@@ -484,6 +484,9 @@ + update_attrd_remote_node_removed(lrm_state->node_name, NULL); + /* delete pending ops when ever the remote connection is intentionally stopped */ + g_hash_table_remove_all(lrm_state->pending_ops); ++ /* Purge node's operation history and transient attributes from CIB */ ++ erase_status_tag(lrm_state->node_name, XML_CIB_TAG_LRM, cib_quorum_override); ++ erase_status_tag(lrm_state->node_name, XML_TAG_TRANSIENT_NODEATTRS, cib_quorum_override); + } else { + /* we no longer hold the history if this connection has been migrated */ + lrm_state_reset_tables(lrm_state); diff --git a/SOURCES/0115-crm_resource-restart-fixes.patch b/SOURCES/0115-crm_resource-restart-fixes.patch new file mode 100644 index 0000000..75575ad --- /dev/null +++ b/SOURCES/0115-crm_resource-restart-fixes.patch @@ -0,0 +1,383 @@ +From 020ff3810c12bbc6ef6ec212958871bb36b5859a Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Sun, 12 Jun 2016 13:37:59 -0500 +Subject: [PATCH 1/5] Fix: tools: correctly count starting resources when doing + crm_resource --restart + +--- + tools/crm_resource_runtime.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c +index 82856ad..b246e34 100644 +--- a/tools/crm_resource_runtime.c ++++ b/tools/crm_resource_runtime.c +@@ -1178,7 +1178,7 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + dump_list(list_delta, "Delta"); + } + +- crm_trace("%d (was %d) resources remaining", before, g_list_length(list_delta)); ++ crm_trace("%d (was %d) resources remaining", g_list_length(list_delta), before); + if(before == g_list_length(list_delta)) { + /* aborted during stop phase, print the contents of list_delta */ + fprintf(stderr, "Could not complete shutdown of %s, %d resources remaining\n", rsc_id, g_list_length(list_delta)); +@@ -1209,6 +1209,7 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + + step_timeout_s = timeout / sleep_interval; + while(g_list_length(list_delta) > 0) { ++ before = g_list_length(list_delta); + if(timeout_ms == 0) { + step_timeout_s = max_delay_in(&data_set, list_delta) / sleep_interval; + } +@@ -1241,7 +1242,7 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + goto failure; + } + +- } while(g_list_length(list_delta) > 0); ++ } + + free(rsc_id); + return pcmk_ok; +-- +1.8.3.1 + + +From 06cc891dd16b1e1b8a004ed364a9f46c64127ffd Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Sun, 12 Jun 2016 15:05:04 -0500 +Subject: [PATCH 2/5] Fix: tools: remember any existing target-role when doing + crm_resource --restart + +--- + tools/crm_resource_runtime.c | 26 +++++++++++++++++++++++++- + 1 file changed, 25 insertions(+), 1 deletion(-) + +diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c +index b246e34..1567559 100644 +--- a/tools/crm_resource_runtime.c ++++ b/tools/crm_resource_runtime.c +@@ -1070,6 +1070,7 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + + bool is_clone = FALSE; + char *rsc_id = NULL; ++ char *orig_target_role = NULL; + + GList *list_delta = NULL; + GList *target_active = NULL; +@@ -1088,7 +1089,9 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + return -ENXIO; + } + ++ /* We might set the target-role meta-attribute */ + attr_set_type = XML_TAG_META_SETS; ++ + rsc_id = strdup(rsc->id); + if(rsc->variant > pe_group) { + is_clone = TRUE; +@@ -1127,10 +1130,20 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + dump_list(current_active, "Origin"); + + if(is_clone && host) { ++ /* Stop the clone instance by banning it from the host */ + BE_QUIET = TRUE; + rc = cli_resource_ban(rsc_id, host, NULL, cib); + + } else { ++ /* Stop the resource by setting target-role to Stopped. ++ * Remember any existing target-role so we can restore it later ++ * (though it only makes any difference if it's Slave). ++ */ ++ char *lookup_id = clone_strip(rsc->id); ++ ++ find_resource_attr(cib, XML_NVPAIR_ATTR_VALUE, lookup_id, NULL, NULL, ++ NULL, XML_RSC_ATTR_TARGET_ROLE, &orig_target_role); ++ free(lookup_id); + rc = cli_resource_update_attribute(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, RSC_STOPPED, FALSE, cib, &data_set); + } + if(rc != pcmk_ok) { +@@ -1192,6 +1205,13 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + if(is_clone && host) { + rc = cli_resource_clear(rsc_id, host, NULL, cib); + ++ } else if (orig_target_role) { ++ rc = cli_resource_update_attribute(rsc_id, NULL, NULL, ++ XML_RSC_ATTR_TARGET_ROLE, ++ orig_target_role, FALSE, cib, ++ &data_set); ++ free(orig_target_role); ++ orig_target_role = NULL; + } else { + rc = cli_resource_delete_attribute(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, cib, &data_set); + } +@@ -1250,7 +1270,11 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + failure: + if(is_clone && host) { + cli_resource_clear(rsc_id, host, NULL, cib); +- ++ } else if (orig_target_role) { ++ cli_resource_update_attribute(rsc_id, NULL, NULL, ++ XML_RSC_ATTR_TARGET_ROLE, ++ orig_target_role, FALSE, cib, &data_set); ++ free(orig_target_role); + } else { + cli_resource_delete_attribute(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, cib, &data_set); + } +-- +1.8.3.1 + + +From aaed9569272a5d4704aede32d9d1cf5d76085e6b Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Sun, 12 Jun 2016 15:36:56 -0500 +Subject: [PATCH 3/5] Fix: tools: avoid memory leaks in crm_resource --restart + +--- + tools/crm_resource_runtime.c | 39 +++++++++++++++++++++++++++++++++++++-- + 1 file changed, 37 insertions(+), 2 deletions(-) + +diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c +index 1567559..6126e3c 100644 +--- a/tools/crm_resource_runtime.c ++++ b/tools/crm_resource_runtime.c +@@ -1148,6 +1148,12 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + } + if(rc != pcmk_ok) { + fprintf(stderr, "Could not set target-role for %s: %s (%d)\n", rsc_id, pcmk_strerror(rc), rc); ++ if (current_active) { ++ g_list_free_full(current_active, free); ++ } ++ if (restart_target_active) { ++ g_list_free_full(restart_target_active, free); ++ } + free(rsc_id); + return crm_exit(rc); + } +@@ -1185,7 +1191,11 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + goto failure; + } + ++ if (current_active) { ++ g_list_free_full(current_active, free); ++ } + current_active = get_active_resources(host, &data_set); ++ g_list_free(list_delta); + list_delta = subtract_lists(current_active, target_active); + dump_list(current_active, "Current"); + dump_list(list_delta, "Delta"); +@@ -1222,7 +1232,13 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + return crm_exit(rc); + } + ++ if (target_active) { ++ g_list_free_full(target_active, free); ++ } + target_active = restart_target_active; ++ if (list_delta) { ++ g_list_free(list_delta); ++ } + list_delta = subtract_lists(target_active, current_active); + fprintf(stdout, "Waiting for %d resources to start again:\n", g_list_length(list_delta)); + display_list(list_delta, " * "); +@@ -1248,7 +1264,11 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + goto failure; + } + ++ if (current_active) { ++ g_list_free_full(current_active, free); ++ } + current_active = get_active_resources(host, &data_set); ++ g_list_free(list_delta); + list_delta = subtract_lists(target_active, current_active); + dump_list(current_active, "Current"); + dump_list(list_delta, "Delta"); +@@ -1264,8 +1284,8 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + + } + +- free(rsc_id); +- return pcmk_ok; ++ rc = pcmk_ok; ++ goto done; + + failure: + if(is_clone && host) { +@@ -1278,6 +1298,21 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + } else { + cli_resource_delete_attribute(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, cib, &data_set); + } ++ ++done: ++ if (list_delta) { ++ g_list_free(list_delta); ++ } ++ if (current_active) { ++ g_list_free_full(current_active, free); ++ } ++ if (target_active && (target_active != restart_target_active)) { ++ g_list_free_full(target_active, free); ++ } ++ if (restart_target_active) { ++ g_list_free_full(restart_target_active, free); ++ } ++ cleanup_alloc_calculations(&data_set); + free(rsc_id); + return rc; + } +-- +1.8.3.1 + + +From 847723f7175a0f008eeebe2d3b333fea4570a228 Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Sun, 12 Jun 2016 16:10:00 -0500 +Subject: [PATCH 4/5] Fix: tools: don't assume all resources restart on same + node with crm_resource --restart + +--- + tools/crm_resource_runtime.c | 14 +++++++++++--- + 1 file changed, 11 insertions(+), 3 deletions(-) + +diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c +index 6126e3c..753ba2d 100644 +--- a/tools/crm_resource_runtime.c ++++ b/tools/crm_resource_runtime.c +@@ -1044,6 +1044,9 @@ max_delay_in(pe_working_set_t * data_set, GList *resources) + return 5 + (max_delay / 1000); + } + ++#define waiting_for_starts(d, r, h) ((g_list_length(d) > 0) || \ ++ (resource_is_running_on((r), (h)) == FALSE)) ++ + /*! + * \internal + * \brief Restart a resource (on a particular host if requested). +@@ -1244,14 +1247,15 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + display_list(list_delta, " * "); + + step_timeout_s = timeout / sleep_interval; +- while(g_list_length(list_delta) > 0) { ++ while (waiting_for_starts(list_delta, rsc, host)) { + before = g_list_length(list_delta); + if(timeout_ms == 0) { + step_timeout_s = max_delay_in(&data_set, list_delta) / sleep_interval; + } + + /* We probably don't need the entire step timeout */ +- for(lpc = 0; lpc < step_timeout_s && g_list_length(list_delta) > 0; lpc++) { ++ for (lpc = 0; (lpc < step_timeout_s) && waiting_for_starts(list_delta, rsc, host); lpc++) { ++ + sleep(sleep_interval); + if(timeout) { + timeout -= sleep_interval; +@@ -1267,7 +1271,11 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + if (current_active) { + g_list_free_full(current_active, free); + } +- current_active = get_active_resources(host, &data_set); ++ ++ /* It's OK if dependent resources moved to a different node, ++ * so we check active resources on all nodes. ++ */ ++ current_active = get_active_resources(NULL, &data_set); + g_list_free(list_delta); + list_delta = subtract_lists(target_active, current_active); + dump_list(current_active, "Current"); +-- +1.8.3.1 + + +From f5afdc1badbe38781d049c86e8a2f51b17636072 Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Mon, 13 Jun 2016 16:12:28 -0500 +Subject: [PATCH 5/5] Fix: tools: properly handle crm_resource --restart with a + resource in a group + +--- + tools/crm_resource_runtime.c | 34 +++++++++++++++++++++++++--------- + 1 file changed, 25 insertions(+), 9 deletions(-) + +diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c +index 753ba2d..b714a96 100644 +--- a/tools/crm_resource_runtime.c ++++ b/tools/crm_resource_runtime.c +@@ -817,19 +817,35 @@ static bool resource_is_running_on(resource_t *rsc, const char *host) + return found; + } + +-static GList *get_active_resources(const char *host, pe_working_set_t *data_set) ++/*! ++ * \internal ++ * \brief Create a list of all resources active on host from a given list ++ * ++ * \param[in] host Name of host to check whether resources are active ++ * \param[in] rsc_list List of resources to check ++ * ++ * \return New list of resources from list that are active on host ++ */ ++static GList * ++get_active_resources(const char *host, GList *rsc_list) + { + GList *rIter = NULL; + GList *active = NULL; + +- for (rIter = data_set->resources; rIter != NULL; rIter = rIter->next) { ++ for (rIter = rsc_list; rIter != NULL; rIter = rIter->next) { + resource_t *rsc = (resource_t *) rIter->data; + +- if(resource_is_running_on(rsc, host)) { ++ /* Expand groups to their members, because if we're restarting a member ++ * other than the first, we can't otherwise tell which resources are ++ * stopping and starting. ++ */ ++ if (rsc->variant == pe_group) { ++ active = g_list_concat(active, ++ get_active_resources(host, rsc->children)); ++ } else if (resource_is_running_on(rsc, host)) { + active = g_list_append(active, strdup(rsc->id)); + } + } +- + return active; + } + +@@ -1127,8 +1143,8 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + return rc; + } + +- restart_target_active = get_active_resources(host, &data_set); +- current_active = get_active_resources(host, &data_set); ++ restart_target_active = get_active_resources(host, data_set.resources); ++ current_active = get_active_resources(host, data_set.resources); + + dump_list(current_active, "Origin"); + +@@ -1167,7 +1183,7 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + goto failure; + } + +- target_active = get_active_resources(host, &data_set); ++ target_active = get_active_resources(host, data_set.resources); + dump_list(target_active, "Target"); + + list_delta = subtract_lists(current_active, target_active); +@@ -1197,7 +1213,7 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + if (current_active) { + g_list_free_full(current_active, free); + } +- current_active = get_active_resources(host, &data_set); ++ current_active = get_active_resources(host, data_set.resources); + g_list_free(list_delta); + list_delta = subtract_lists(current_active, target_active); + dump_list(current_active, "Current"); +@@ -1275,7 +1291,7 @@ cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * + /* It's OK if dependent resources moved to a different node, + * so we check active resources on all nodes. + */ +- current_active = get_active_resources(NULL, &data_set); ++ current_active = get_active_resources(NULL, data_set.resources); + g_list_free(list_delta); + list_delta = subtract_lists(target_active, current_active); + dump_list(current_active, "Current"); +-- +1.8.3.1 + diff --git a/SOURCES/0116-unrunnable-clones.patch b/SOURCES/0116-unrunnable-clones.patch new file mode 100644 index 0000000..d95baed --- /dev/null +++ b/SOURCES/0116-unrunnable-clones.patch @@ -0,0 +1,2802 @@ +From 6951b7e5ea5cdee4dba890159d1efca61bb1101d Mon Sep 17 00:00:00 2001 +From: Andrew Beekhof +Date: Fri, 17 Jun 2016 10:55:18 +1000 +Subject: [PATCH 1/2] Fix: PE: Correctly update the dependant actions of + un-runnable clones + +--- + pengine/clone.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/pengine/clone.c b/pengine/clone.c +index fd47018..74b4ea6 100644 +--- a/pengine/clone.c ++++ b/pengine/clone.c +@@ -927,9 +927,11 @@ clone_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) + } + } + +-static void ++static bool + assign_node(resource_t * rsc, node_t * node, gboolean force) + { ++ bool changed = FALSE; ++ + if (rsc->children) { + + GListPtr gIter = rsc->children; +@@ -937,12 +939,17 @@ assign_node(resource_t * rsc, node_t * node, gboolean force) + for (; gIter != NULL; gIter = gIter->next) { + resource_t *child_rsc = (resource_t *) gIter->data; + +- native_assign_node(child_rsc, NULL, node, force); ++ changed |= native_assign_node(child_rsc, NULL, node, force); + } + +- return; ++ return changed; ++ } ++ if (rsc->allocated_to != NULL) { ++ changed = true; + } ++ + native_assign_node(rsc, NULL, node, force); ++ return changed; + } + + static resource_t * +@@ -1264,8 +1271,9 @@ clone_update_actions_interleave(action_t * first, action_t * then, node_t * node + */ + if (type & (pe_order_runnable_left | pe_order_implies_then) /* Mandatory */ ) { + pe_rsc_info(then->rsc, "Inhibiting %s from being active", then_child->id); +- assign_node(then_child, NULL, TRUE); +- /* TODO - set changed correctly? */ ++ if(assign_node(then_child, NULL, TRUE)) { ++ changed |= pe_graph_updated_then; ++ } + } + + } else { +-- +1.8.3.1 + + +From 80be44c2f6920dc82476f2461a3c897613608d02 Mon Sep 17 00:00:00 2001 +From: Andrew Beekhof +Date: Fri, 17 Jun 2016 10:58:09 +1000 +Subject: [PATCH 2/2] Test: PE: Correctly update the dependant actions of + un-runnable clones + +--- + pengine/regression.sh | 1 + + pengine/test10/unrunnable-2.dot | 495 +++++++++++++++ + pengine/test10/unrunnable-2.exp | 1 + + pengine/test10/unrunnable-2.scores | 814 ++++++++++++++++++++++++ + pengine/test10/unrunnable-2.summary | 175 ++++++ + pengine/test10/unrunnable-2.xml | 1189 +++++++++++++++++++++++++++++++++++ + 6 files changed, 2675 insertions(+) + create mode 100644 pengine/test10/unrunnable-2.dot + create mode 100644 pengine/test10/unrunnable-2.exp + create mode 100644 pengine/test10/unrunnable-2.scores + create mode 100644 pengine/test10/unrunnable-2.summary + create mode 100644 pengine/test10/unrunnable-2.xml + +diff --git a/pengine/regression.sh b/pengine/regression.sh +index 8a2864c..f86d0f1 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -484,6 +484,7 @@ do_test 1360 "OSDL #1360 - Clone stickiness" + do_test 1484 "OSDL #1484 - on_fail=stop" + do_test 1494 "OSDL #1494 - Clone stability" + do_test unrunnable-1 "Unrunnable" ++do_test unrunnable-2 "Unrunnable 2" + do_test stonith-0 "Stonith loop - 1" + do_test stonith-1 "Stonith loop - 2" + do_test stonith-2 "Stonith loop - 3" +diff --git a/pengine/test10/unrunnable-2.dot b/pengine/test10/unrunnable-2.dot +new file mode 100644 +index 0000000..bfdabe8 +--- /dev/null ++++ b/pengine/test10/unrunnable-2.dot +@@ -0,0 +1,495 @@ ++digraph "g" { ++"delay-clone_running_0" -> "openstack-aodh-evaluator-clone_start_0" [ style = dashed] ++"delay-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"delay-clone_start_0" -> "delay-clone_running_0" [ style = dashed] ++"delay-clone_start_0" -> "delay:1_start_0 overcloud-controller-0" [ style = dashed] ++"delay-clone_start_0" -> "delay:2_start_0 overcloud-controller-1" [ style = dashed] ++"delay-clone_start_0" -> "delay_start_0 overcloud-controller-2" [ style = dashed] ++"delay-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"delay:1_monitor_10000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"delay:1_start_0 overcloud-controller-0" -> "delay-clone_running_0" [ style = dashed] ++"delay:1_start_0 overcloud-controller-0" -> "delay:1_monitor_10000 overcloud-controller-0" [ style = dashed] ++"delay:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"delay:2_monitor_10000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"delay:2_start_0 overcloud-controller-1" -> "delay-clone_running_0" [ style = dashed] ++"delay:2_start_0 overcloud-controller-1" -> "delay:2_monitor_10000 overcloud-controller-1" [ style = dashed] ++"delay:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"delay_monitor_10000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"delay_start_0 overcloud-controller-2" -> "delay-clone_running_0" [ style = dashed] ++"delay_start_0 overcloud-controller-2" -> "delay_monitor_10000 overcloud-controller-2" [ style = dashed] ++"delay_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent-clone_running_0" -> "neutron-l3-agent-clone_start_0" [ style = dashed] ++"neutron-dhcp-agent-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-dhcp-agent-clone_start_0" -> "neutron-dhcp-agent-clone_running_0" [ style = dashed] ++"neutron-dhcp-agent-clone_start_0" -> "neutron-dhcp-agent:1_start_0 overcloud-controller-0" [ style = dashed] ++"neutron-dhcp-agent-clone_start_0" -> "neutron-dhcp-agent:2_start_0 overcloud-controller-1" [ style = dashed] ++"neutron-dhcp-agent-clone_start_0" -> "neutron-dhcp-agent_start_0 overcloud-controller-2" [ style = dashed] ++"neutron-dhcp-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-dhcp-agent:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent:1_start_0 overcloud-controller-0" -> "neutron-dhcp-agent-clone_running_0" [ style = dashed] ++"neutron-dhcp-agent:1_start_0 overcloud-controller-0" -> "neutron-dhcp-agent:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"neutron-dhcp-agent:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent:2_start_0 overcloud-controller-1" -> "neutron-dhcp-agent-clone_running_0" [ style = dashed] ++"neutron-dhcp-agent:2_start_0 overcloud-controller-1" -> "neutron-dhcp-agent:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"neutron-dhcp-agent:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_start_0 overcloud-controller-2" -> "neutron-dhcp-agent-clone_running_0" [ style = dashed] ++"neutron-dhcp-agent_start_0 overcloud-controller-2" -> "neutron-dhcp-agent_monitor_60000 overcloud-controller-2" [ style = dashed] ++"neutron-dhcp-agent_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent-clone_running_0" -> "neutron-metadata-agent-clone_start_0" [ style = dashed] ++"neutron-l3-agent-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-l3-agent-clone_start_0" -> "neutron-l3-agent-clone_running_0" [ style = dashed] ++"neutron-l3-agent-clone_start_0" -> "neutron-l3-agent:1_start_0 overcloud-controller-0" [ style = dashed] ++"neutron-l3-agent-clone_start_0" -> "neutron-l3-agent:2_start_0 overcloud-controller-1" [ style = dashed] ++"neutron-l3-agent-clone_start_0" -> "neutron-l3-agent_start_0 overcloud-controller-2" [ style = dashed] ++"neutron-l3-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-l3-agent:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent:1_start_0 overcloud-controller-0" -> "neutron-l3-agent-clone_running_0" [ style = dashed] ++"neutron-l3-agent:1_start_0 overcloud-controller-0" -> "neutron-l3-agent:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"neutron-l3-agent:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent:2_start_0 overcloud-controller-1" -> "neutron-l3-agent-clone_running_0" [ style = dashed] ++"neutron-l3-agent:2_start_0 overcloud-controller-1" -> "neutron-l3-agent:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"neutron-l3-agent:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_start_0 overcloud-controller-2" -> "neutron-l3-agent-clone_running_0" [ style = dashed] ++"neutron-l3-agent_start_0 overcloud-controller-2" -> "neutron-l3-agent_monitor_60000 overcloud-controller-2" [ style = dashed] ++"neutron-l3-agent_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-metadata-agent-clone_start_0" -> "neutron-metadata-agent-clone_running_0" [ style = dashed] ++"neutron-metadata-agent-clone_start_0" -> "neutron-metadata-agent:1_start_0 overcloud-controller-1" [ style = dashed] ++"neutron-metadata-agent-clone_start_0" -> "neutron-metadata-agent:2_start_0 overcloud-controller-2" [ style = dashed] ++"neutron-metadata-agent-clone_start_0" -> "neutron-metadata-agent_start_0 overcloud-controller-0" [ style = dashed] ++"neutron-metadata-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-metadata-agent:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent:1_start_0 overcloud-controller-1" -> "neutron-metadata-agent-clone_running_0" [ style = dashed] ++"neutron-metadata-agent:1_start_0 overcloud-controller-1" -> "neutron-metadata-agent:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"neutron-metadata-agent:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent:2_start_0 overcloud-controller-2" -> "neutron-metadata-agent-clone_running_0" [ style = dashed] ++"neutron-metadata-agent:2_start_0 overcloud-controller-2" -> "neutron-metadata-agent:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"neutron-metadata-agent:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_start_0 overcloud-controller-0" -> "neutron-metadata-agent-clone_running_0" [ style = dashed] ++"neutron-metadata-agent_start_0 overcloud-controller-0" -> "neutron-metadata-agent_monitor_60000 overcloud-controller-0" [ style = dashed] ++"neutron-metadata-agent_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent-clone_running_0" -> "neutron-dhcp-agent-clone_start_0" [ style = dashed] ++"neutron-openvswitch-agent-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-openvswitch-agent-clone_start_0" -> "neutron-openvswitch-agent-clone_running_0" [ style = dashed] ++"neutron-openvswitch-agent-clone_start_0" -> "neutron-openvswitch-agent:1_start_0 overcloud-controller-0" [ style = dashed] ++"neutron-openvswitch-agent-clone_start_0" -> "neutron-openvswitch-agent:2_start_0 overcloud-controller-1" [ style = dashed] ++"neutron-openvswitch-agent-clone_start_0" -> "neutron-openvswitch-agent_start_0 overcloud-controller-2" [ style = dashed] ++"neutron-openvswitch-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-openvswitch-agent:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent:1_start_0 overcloud-controller-0" -> "neutron-openvswitch-agent-clone_running_0" [ style = dashed] ++"neutron-openvswitch-agent:1_start_0 overcloud-controller-0" -> "neutron-openvswitch-agent:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"neutron-openvswitch-agent:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent:2_start_0 overcloud-controller-1" -> "neutron-openvswitch-agent-clone_running_0" [ style = dashed] ++"neutron-openvswitch-agent:2_start_0 overcloud-controller-1" -> "neutron-openvswitch-agent:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"neutron-openvswitch-agent:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_start_0 overcloud-controller-2" -> "neutron-openvswitch-agent-clone_running_0" [ style = dashed] ++"neutron-openvswitch-agent_start_0 overcloud-controller-2" -> "neutron-openvswitch-agent_monitor_60000 overcloud-controller-2" [ style = dashed] ++"neutron-openvswitch-agent_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-server-clone_running_0" -> "neutron-openvswitch-agent-clone_start_0" [ style = dashed] ++"neutron-server-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-server-clone_start_0" -> "neutron-server-clone_running_0" [ style = dashed] ++"neutron-server-clone_start_0" -> "neutron-server:1_start_0 overcloud-controller-1" [ style = dashed] ++"neutron-server-clone_start_0" -> "neutron-server:2_start_0 overcloud-controller-2" [ style = dashed] ++"neutron-server-clone_start_0" -> "neutron-server_start_0 overcloud-controller-0" [ style = dashed] ++"neutron-server-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-server:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-server:1_start_0 overcloud-controller-1" -> "neutron-server-clone_running_0" [ style = dashed] ++"neutron-server:1_start_0 overcloud-controller-1" -> "neutron-server:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"neutron-server:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"neutron-server:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-server:2_start_0 overcloud-controller-2" -> "neutron-server-clone_running_0" [ style = dashed] ++"neutron-server:2_start_0 overcloud-controller-2" -> "neutron-server:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"neutron-server:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_start_0 overcloud-controller-0" -> "neutron-server-clone_running_0" [ style = dashed] ++"neutron-server_start_0 overcloud-controller-0" -> "neutron-server_monitor_60000 overcloud-controller-0" [ style = dashed] ++"neutron-server_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-evaluator-clone_running_0" -> "openstack-aodh-notifier-clone_start_0" [ style = dashed] ++"openstack-aodh-evaluator-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-aodh-evaluator-clone_start_0" -> "openstack-aodh-evaluator-clone_running_0" [ style = dashed] ++"openstack-aodh-evaluator-clone_start_0" -> "openstack-aodh-evaluator:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-aodh-evaluator-clone_start_0" -> "openstack-aodh-evaluator:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-aodh-evaluator-clone_start_0" -> "openstack-aodh-evaluator_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-aodh-evaluator-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-aodh-evaluator:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-evaluator:1_start_0 overcloud-controller-0" -> "openstack-aodh-evaluator-clone_running_0" [ style = dashed] ++"openstack-aodh-evaluator:1_start_0 overcloud-controller-0" -> "openstack-aodh-evaluator:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-aodh-evaluator:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-evaluator:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-evaluator:2_start_0 overcloud-controller-1" -> "openstack-aodh-evaluator-clone_running_0" [ style = dashed] ++"openstack-aodh-evaluator:2_start_0 overcloud-controller-1" -> "openstack-aodh-evaluator:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-aodh-evaluator:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-evaluator_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-evaluator_start_0 overcloud-controller-2" -> "openstack-aodh-evaluator-clone_running_0" [ style = dashed] ++"openstack-aodh-evaluator_start_0 overcloud-controller-2" -> "openstack-aodh-evaluator_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-aodh-evaluator_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-notifier-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-aodh-notifier-clone_start_0" -> "openstack-aodh-notifier-clone_running_0" [ style = dashed] ++"openstack-aodh-notifier-clone_start_0" -> "openstack-aodh-notifier:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-aodh-notifier-clone_start_0" -> "openstack-aodh-notifier:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-aodh-notifier-clone_start_0" -> "openstack-aodh-notifier_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-aodh-notifier-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-aodh-notifier:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-notifier:1_start_0 overcloud-controller-1" -> "openstack-aodh-notifier-clone_running_0" [ style = dashed] ++"openstack-aodh-notifier:1_start_0 overcloud-controller-1" -> "openstack-aodh-notifier:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-aodh-notifier:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-notifier:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-notifier:2_start_0 overcloud-controller-2" -> "openstack-aodh-notifier-clone_running_0" [ style = dashed] ++"openstack-aodh-notifier:2_start_0 overcloud-controller-2" -> "openstack-aodh-notifier:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-aodh-notifier:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-notifier_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-aodh-notifier_start_0 overcloud-controller-0" -> "openstack-aodh-notifier-clone_running_0" [ style = dashed] ++"openstack-aodh-notifier_start_0 overcloud-controller-0" -> "openstack-aodh-notifier_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-aodh-notifier_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-api-clone_running_0" -> "delay-clone_start_0" [ style = dashed] ++"openstack-ceilometer-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-ceilometer-api-clone_start_0" -> "openstack-ceilometer-api-clone_running_0" [ style = dashed] ++"openstack-ceilometer-api-clone_start_0" -> "openstack-ceilometer-api:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-ceilometer-api-clone_start_0" -> "openstack-ceilometer-api:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-ceilometer-api-clone_start_0" -> "openstack-ceilometer-api_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-ceilometer-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-ceilometer-api:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-api:1_start_0 overcloud-controller-0" -> "openstack-ceilometer-api-clone_running_0" [ style = dashed] ++"openstack-ceilometer-api:1_start_0 overcloud-controller-0" -> "openstack-ceilometer-api:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-ceilometer-api:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-api:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-api:2_start_0 overcloud-controller-1" -> "openstack-ceilometer-api-clone_running_0" [ style = dashed] ++"openstack-ceilometer-api:2_start_0 overcloud-controller-1" -> "openstack-ceilometer-api:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-ceilometer-api:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-api_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-api_start_0 overcloud-controller-2" -> "openstack-ceilometer-api-clone_running_0" [ style = dashed] ++"openstack-ceilometer-api_start_0 overcloud-controller-2" -> "openstack-ceilometer-api_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-ceilometer-api_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-central-clone_running_0" -> "openstack-ceilometer-collector-clone_start_0" [ style = dashed] ++"openstack-ceilometer-central-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-ceilometer-central-clone_start_0" -> "openstack-ceilometer-central-clone_running_0" [ style = dashed] ++"openstack-ceilometer-central-clone_start_0" -> "openstack-ceilometer-central:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-ceilometer-central-clone_start_0" -> "openstack-ceilometer-central:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-ceilometer-central-clone_start_0" -> "openstack-ceilometer-central_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-ceilometer-central-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-ceilometer-central:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-central:1_start_0 overcloud-controller-1" -> "openstack-ceilometer-central-clone_running_0" [ style = dashed] ++"openstack-ceilometer-central:1_start_0 overcloud-controller-1" -> "openstack-ceilometer-central:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-ceilometer-central:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-central:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-central:2_start_0 overcloud-controller-2" -> "openstack-ceilometer-central-clone_running_0" [ style = dashed] ++"openstack-ceilometer-central:2_start_0 overcloud-controller-2" -> "openstack-ceilometer-central:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-ceilometer-central:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-central_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-central_start_0 overcloud-controller-0" -> "openstack-ceilometer-central-clone_running_0" [ style = dashed] ++"openstack-ceilometer-central_start_0 overcloud-controller-0" -> "openstack-ceilometer-central_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-ceilometer-central_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-collector-clone_running_0" -> "openstack-ceilometer-api-clone_start_0" [ style = dashed] ++"openstack-ceilometer-collector-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-ceilometer-collector-clone_start_0" -> "openstack-ceilometer-collector-clone_running_0" [ style = dashed] ++"openstack-ceilometer-collector-clone_start_0" -> "openstack-ceilometer-collector:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-ceilometer-collector-clone_start_0" -> "openstack-ceilometer-collector:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-ceilometer-collector-clone_start_0" -> "openstack-ceilometer-collector_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-ceilometer-collector-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-ceilometer-collector:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-collector:1_start_0 overcloud-controller-0" -> "openstack-ceilometer-collector-clone_running_0" [ style = dashed] ++"openstack-ceilometer-collector:1_start_0 overcloud-controller-0" -> "openstack-ceilometer-collector:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-ceilometer-collector:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-collector:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-collector:2_start_0 overcloud-controller-1" -> "openstack-ceilometer-collector-clone_running_0" [ style = dashed] ++"openstack-ceilometer-collector:2_start_0 overcloud-controller-1" -> "openstack-ceilometer-collector:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-ceilometer-collector:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-collector_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-ceilometer-collector_start_0 overcloud-controller-2" -> "openstack-ceilometer-collector-clone_running_0" [ style = dashed] ++"openstack-ceilometer-collector_start_0 overcloud-controller-2" -> "openstack-ceilometer-collector_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-ceilometer-collector_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-api-clone_running_0" -> "openstack-cinder-scheduler-clone_start_0" [ style = dashed] ++"openstack-cinder-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-cinder-api-clone_start_0" -> "openstack-cinder-api-clone_running_0" [ style = dashed] ++"openstack-cinder-api-clone_start_0" -> "openstack-cinder-api:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-cinder-api-clone_start_0" -> "openstack-cinder-api:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-cinder-api-clone_start_0" -> "openstack-cinder-api_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-cinder-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-cinder-api:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-api:1_start_0 overcloud-controller-0" -> "openstack-cinder-api-clone_running_0" [ style = dashed] ++"openstack-cinder-api:1_start_0 overcloud-controller-0" -> "openstack-cinder-api:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-cinder-api:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-api:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-api:2_start_0 overcloud-controller-1" -> "openstack-cinder-api-clone_running_0" [ style = dashed] ++"openstack-cinder-api:2_start_0 overcloud-controller-1" -> "openstack-cinder-api:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-cinder-api:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-api_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-api_start_0 overcloud-controller-2" -> "openstack-cinder-api-clone_running_0" [ style = dashed] ++"openstack-cinder-api_start_0 overcloud-controller-2" -> "openstack-cinder-api_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-cinder-api_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-scheduler-clone_running_0" -> "openstack-cinder-volume_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-cinder-scheduler-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-cinder-scheduler-clone_start_0" -> "openstack-cinder-scheduler-clone_running_0" [ style = dashed] ++"openstack-cinder-scheduler-clone_start_0" -> "openstack-cinder-scheduler:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-cinder-scheduler-clone_start_0" -> "openstack-cinder-scheduler:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-cinder-scheduler-clone_start_0" -> "openstack-cinder-scheduler_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-cinder-scheduler-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-cinder-scheduler:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-scheduler:1_start_0 overcloud-controller-0" -> "openstack-cinder-scheduler-clone_running_0" [ style = dashed] ++"openstack-cinder-scheduler:1_start_0 overcloud-controller-0" -> "openstack-cinder-scheduler:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-cinder-scheduler:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-scheduler:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-scheduler:2_start_0 overcloud-controller-1" -> "openstack-cinder-scheduler-clone_running_0" [ style = dashed] ++"openstack-cinder-scheduler:2_start_0 overcloud-controller-1" -> "openstack-cinder-scheduler:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-cinder-scheduler:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-scheduler_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-scheduler_start_0 overcloud-controller-2" -> "openstack-cinder-scheduler-clone_running_0" [ style = dashed] ++"openstack-cinder-scheduler_start_0 overcloud-controller-2" -> "openstack-cinder-scheduler_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-cinder-scheduler_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-volume_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-cinder-volume_start_0 overcloud-controller-2" -> "openstack-cinder-volume_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-cinder-volume_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-glance-api-clone_start_0" -> "openstack-glance-api-clone_running_0" [ style = dashed] ++"openstack-glance-api-clone_start_0" -> "openstack-glance-api:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-glance-api-clone_start_0" -> "openstack-glance-api:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-glance-api-clone_start_0" -> "openstack-glance-api_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-glance-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-glance-api:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-api:1_start_0 overcloud-controller-1" -> "openstack-glance-api-clone_running_0" [ style = dashed] ++"openstack-glance-api:1_start_0 overcloud-controller-1" -> "openstack-glance-api:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-glance-api:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-api:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-api:2_start_0 overcloud-controller-2" -> "openstack-glance-api-clone_running_0" [ style = dashed] ++"openstack-glance-api:2_start_0 overcloud-controller-2" -> "openstack-glance-api:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-glance-api:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-api_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-api_start_0 overcloud-controller-0" -> "openstack-glance-api-clone_running_0" [ style = dashed] ++"openstack-glance-api_start_0 overcloud-controller-0" -> "openstack-glance-api_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-glance-api_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-registry-clone_running_0" -> "openstack-glance-api-clone_start_0" [ style = dashed] ++"openstack-glance-registry-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-glance-registry-clone_start_0" -> "openstack-glance-registry-clone_running_0" [ style = dashed] ++"openstack-glance-registry-clone_start_0" -> "openstack-glance-registry:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-glance-registry-clone_start_0" -> "openstack-glance-registry:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-glance-registry-clone_start_0" -> "openstack-glance-registry_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-glance-registry-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-glance-registry:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-registry:1_start_0 overcloud-controller-1" -> "openstack-glance-registry-clone_running_0" [ style = dashed] ++"openstack-glance-registry:1_start_0 overcloud-controller-1" -> "openstack-glance-registry:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-glance-registry:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-registry:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-registry:2_start_0 overcloud-controller-2" -> "openstack-glance-registry-clone_running_0" [ style = dashed] ++"openstack-glance-registry:2_start_0 overcloud-controller-2" -> "openstack-glance-registry:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-glance-registry:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-registry_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-glance-registry_start_0 overcloud-controller-0" -> "openstack-glance-registry-clone_running_0" [ style = dashed] ++"openstack-glance-registry_start_0 overcloud-controller-0" -> "openstack-glance-registry_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-glance-registry_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cfn-clone_running_0" -> "openstack-heat-api-cloudwatch-clone_start_0" [ style = dashed] ++"openstack-heat-api-cfn-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-api-cfn-clone_start_0" -> "openstack-heat-api-cfn-clone_running_0" [ style = dashed] ++"openstack-heat-api-cfn-clone_start_0" -> "openstack-heat-api-cfn:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api-cfn-clone_start_0" -> "openstack-heat-api-cfn:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api-cfn-clone_start_0" -> "openstack-heat-api-cfn_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api-cfn-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-api-cfn:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cfn:1_start_0 overcloud-controller-1" -> "openstack-heat-api-cfn-clone_running_0" [ style = dashed] ++"openstack-heat-api-cfn:1_start_0 overcloud-controller-1" -> "openstack-heat-api-cfn:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api-cfn:1_start_0 overcloud-controller-1" -> "openstack-heat-api-cloudwatch:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api-cfn:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cfn:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cfn:2_start_0 overcloud-controller-2" -> "openstack-heat-api-cfn-clone_running_0" [ style = dashed] ++"openstack-heat-api-cfn:2_start_0 overcloud-controller-2" -> "openstack-heat-api-cfn:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api-cfn:2_start_0 overcloud-controller-2" -> "openstack-heat-api-cloudwatch:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api-cfn:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cfn_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cfn_start_0 overcloud-controller-0" -> "openstack-heat-api-cfn-clone_running_0" [ style = dashed] ++"openstack-heat-api-cfn_start_0 overcloud-controller-0" -> "openstack-heat-api-cfn_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api-cfn_start_0 overcloud-controller-0" -> "openstack-heat-api-cloudwatch_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api-cfn_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-clone_running_0" -> "openstack-heat-api-cfn-clone_start_0" [ style = dashed] ++"openstack-heat-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-api-clone_start_0" -> "openstack-heat-api-clone_running_0" [ style = dashed] ++"openstack-heat-api-clone_start_0" -> "openstack-heat-api:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api-clone_start_0" -> "openstack-heat-api:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api-clone_start_0" -> "openstack-heat-api_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-api-cloudwatch-clone_running_0" -> "openstack-heat-engine-clone_start_0" [ style = dashed] ++"openstack-heat-api-cloudwatch-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-api-cloudwatch-clone_start_0" -> "openstack-heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"openstack-heat-api-cloudwatch-clone_start_0" -> "openstack-heat-api-cloudwatch:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api-cloudwatch-clone_start_0" -> "openstack-heat-api-cloudwatch:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api-cloudwatch-clone_start_0" -> "openstack-heat-api-cloudwatch_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api-cloudwatch-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-api-cloudwatch:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cloudwatch:1_start_0 overcloud-controller-1" -> "openstack-heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"openstack-heat-api-cloudwatch:1_start_0 overcloud-controller-1" -> "openstack-heat-api-cloudwatch:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api-cloudwatch:1_start_0 overcloud-controller-1" -> "openstack-heat-engine:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api-cloudwatch:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cloudwatch:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cloudwatch:2_start_0 overcloud-controller-2" -> "openstack-heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"openstack-heat-api-cloudwatch:2_start_0 overcloud-controller-2" -> "openstack-heat-api-cloudwatch:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api-cloudwatch:2_start_0 overcloud-controller-2" -> "openstack-heat-engine:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api-cloudwatch:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cloudwatch_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api-cloudwatch_start_0 overcloud-controller-0" -> "openstack-heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"openstack-heat-api-cloudwatch_start_0 overcloud-controller-0" -> "openstack-heat-api-cloudwatch_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api-cloudwatch_start_0 overcloud-controller-0" -> "openstack-heat-engine_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api-cloudwatch_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api:1_start_0 overcloud-controller-1" -> "openstack-heat-api-cfn:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api:1_start_0 overcloud-controller-1" -> "openstack-heat-api-clone_running_0" [ style = dashed] ++"openstack-heat-api:1_start_0 overcloud-controller-1" -> "openstack-heat-api:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-heat-api:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api:2_start_0 overcloud-controller-2" -> "openstack-heat-api-cfn:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api:2_start_0 overcloud-controller-2" -> "openstack-heat-api-clone_running_0" [ style = dashed] ++"openstack-heat-api:2_start_0 overcloud-controller-2" -> "openstack-heat-api:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-heat-api:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-api_start_0 overcloud-controller-0" -> "openstack-heat-api-cfn_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api_start_0 overcloud-controller-0" -> "openstack-heat-api-clone_running_0" [ style = dashed] ++"openstack-heat-api_start_0 overcloud-controller-0" -> "openstack-heat-api_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-heat-api_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-engine-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-engine-clone_start_0" -> "openstack-heat-engine-clone_running_0" [ style = dashed] ++"openstack-heat-engine-clone_start_0" -> "openstack-heat-engine:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-heat-engine-clone_start_0" -> "openstack-heat-engine:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-heat-engine-clone_start_0" -> "openstack-heat-engine_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-heat-engine-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-heat-engine:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-engine:1_start_0 overcloud-controller-1" -> "openstack-heat-engine-clone_running_0" [ style = dashed] ++"openstack-heat-engine:1_start_0 overcloud-controller-1" -> "openstack-heat-engine:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-heat-engine:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-engine:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-engine:2_start_0 overcloud-controller-2" -> "openstack-heat-engine-clone_running_0" [ style = dashed] ++"openstack-heat-engine:2_start_0 overcloud-controller-2" -> "openstack-heat-engine:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-heat-engine:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-engine_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-heat-engine_start_0 overcloud-controller-0" -> "openstack-heat-engine-clone_running_0" [ style = dashed] ++"openstack-heat-engine_start_0 overcloud-controller-0" -> "openstack-heat-engine_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-heat-engine_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-api-clone_running_0" -> "openstack-nova-scheduler-clone_start_0" [ style = dashed] ++"openstack-nova-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-api-clone_start_0" -> "openstack-nova-api-clone_running_0" [ style = dashed] ++"openstack-nova-api-clone_start_0" -> "openstack-nova-api:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-api-clone_start_0" -> "openstack-nova-api:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-api-clone_start_0" -> "openstack-nova-api_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-api:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-api:1_start_0 overcloud-controller-0" -> "openstack-nova-api-clone_running_0" [ style = dashed] ++"openstack-nova-api:1_start_0 overcloud-controller-0" -> "openstack-nova-api:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-nova-api:1_start_0 overcloud-controller-0" -> "openstack-nova-scheduler:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-api:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-api:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-api:2_start_0 overcloud-controller-1" -> "openstack-nova-api-clone_running_0" [ style = dashed] ++"openstack-nova-api:2_start_0 overcloud-controller-1" -> "openstack-nova-api:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-nova-api:2_start_0 overcloud-controller-1" -> "openstack-nova-scheduler:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-api:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-api_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-api_start_0 overcloud-controller-2" -> "openstack-nova-api-clone_running_0" [ style = dashed] ++"openstack-nova-api_start_0 overcloud-controller-2" -> "openstack-nova-api_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-nova-api_start_0 overcloud-controller-2" -> "openstack-nova-scheduler_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-api_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-conductor-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-conductor-clone_start_0" -> "openstack-nova-conductor-clone_running_0" [ style = dashed] ++"openstack-nova-conductor-clone_start_0" -> "openstack-nova-conductor:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-conductor-clone_start_0" -> "openstack-nova-conductor:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-conductor-clone_start_0" -> "openstack-nova-conductor_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-conductor-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-conductor:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-conductor:1_start_0 overcloud-controller-1" -> "openstack-nova-conductor-clone_running_0" [ style = dashed] ++"openstack-nova-conductor:1_start_0 overcloud-controller-1" -> "openstack-nova-conductor:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-nova-conductor:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-conductor:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-conductor:2_start_0 overcloud-controller-2" -> "openstack-nova-conductor-clone_running_0" [ style = dashed] ++"openstack-nova-conductor:2_start_0 overcloud-controller-2" -> "openstack-nova-conductor:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-nova-conductor:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-conductor_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-conductor_start_0 overcloud-controller-0" -> "openstack-nova-conductor-clone_running_0" [ style = dashed] ++"openstack-nova-conductor_start_0 overcloud-controller-0" -> "openstack-nova-conductor_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-nova-conductor_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-consoleauth-clone_running_0" -> "openstack-nova-novncproxy-clone_start_0" [ style = dashed] ++"openstack-nova-consoleauth-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-consoleauth-clone_start_0" -> "openstack-nova-consoleauth-clone_running_0" [ style = dashed] ++"openstack-nova-consoleauth-clone_start_0" -> "openstack-nova-consoleauth:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-consoleauth-clone_start_0" -> "openstack-nova-consoleauth:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-consoleauth-clone_start_0" -> "openstack-nova-consoleauth_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-consoleauth-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-consoleauth:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-consoleauth:1_start_0 overcloud-controller-0" -> "openstack-nova-consoleauth-clone_running_0" [ style = dashed] ++"openstack-nova-consoleauth:1_start_0 overcloud-controller-0" -> "openstack-nova-consoleauth:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-nova-consoleauth:1_start_0 overcloud-controller-0" -> "openstack-nova-novncproxy:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-consoleauth:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-consoleauth:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-consoleauth:2_start_0 overcloud-controller-1" -> "openstack-nova-consoleauth-clone_running_0" [ style = dashed] ++"openstack-nova-consoleauth:2_start_0 overcloud-controller-1" -> "openstack-nova-consoleauth:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-nova-consoleauth:2_start_0 overcloud-controller-1" -> "openstack-nova-novncproxy:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-consoleauth:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-consoleauth_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-consoleauth_start_0 overcloud-controller-2" -> "openstack-nova-consoleauth-clone_running_0" [ style = dashed] ++"openstack-nova-consoleauth_start_0 overcloud-controller-2" -> "openstack-nova-consoleauth_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-nova-consoleauth_start_0 overcloud-controller-2" -> "openstack-nova-novncproxy_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-consoleauth_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-novncproxy-clone_running_0" -> "openstack-nova-api-clone_start_0" [ style = dashed] ++"openstack-nova-novncproxy-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-novncproxy-clone_start_0" -> "openstack-nova-novncproxy-clone_running_0" [ style = dashed] ++"openstack-nova-novncproxy-clone_start_0" -> "openstack-nova-novncproxy:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-novncproxy-clone_start_0" -> "openstack-nova-novncproxy:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-novncproxy-clone_start_0" -> "openstack-nova-novncproxy_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-novncproxy-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-novncproxy:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-novncproxy:1_start_0 overcloud-controller-0" -> "openstack-nova-api:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-novncproxy:1_start_0 overcloud-controller-0" -> "openstack-nova-novncproxy-clone_running_0" [ style = dashed] ++"openstack-nova-novncproxy:1_start_0 overcloud-controller-0" -> "openstack-nova-novncproxy:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-nova-novncproxy:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-novncproxy:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-novncproxy:2_start_0 overcloud-controller-1" -> "openstack-nova-api:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-novncproxy:2_start_0 overcloud-controller-1" -> "openstack-nova-novncproxy-clone_running_0" [ style = dashed] ++"openstack-nova-novncproxy:2_start_0 overcloud-controller-1" -> "openstack-nova-novncproxy:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-nova-novncproxy:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-novncproxy_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-novncproxy_start_0 overcloud-controller-2" -> "openstack-nova-api_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-novncproxy_start_0 overcloud-controller-2" -> "openstack-nova-novncproxy-clone_running_0" [ style = dashed] ++"openstack-nova-novncproxy_start_0 overcloud-controller-2" -> "openstack-nova-novncproxy_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-nova-novncproxy_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-scheduler-clone_running_0" -> "openstack-nova-conductor-clone_start_0" [ style = dashed] ++"openstack-nova-scheduler-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-scheduler-clone_start_0" -> "openstack-nova-scheduler-clone_running_0" [ style = dashed] ++"openstack-nova-scheduler-clone_start_0" -> "openstack-nova-scheduler:1_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-scheduler-clone_start_0" -> "openstack-nova-scheduler:2_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-scheduler-clone_start_0" -> "openstack-nova-scheduler_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-scheduler-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-nova-scheduler:1_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-scheduler:1_start_0 overcloud-controller-0" -> "openstack-nova-conductor_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-nova-scheduler:1_start_0 overcloud-controller-0" -> "openstack-nova-scheduler-clone_running_0" [ style = dashed] ++"openstack-nova-scheduler:1_start_0 overcloud-controller-0" -> "openstack-nova-scheduler:1_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-nova-scheduler:1_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-scheduler:2_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-scheduler:2_start_0 overcloud-controller-1" -> "openstack-nova-conductor:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-nova-scheduler:2_start_0 overcloud-controller-1" -> "openstack-nova-scheduler-clone_running_0" [ style = dashed] ++"openstack-nova-scheduler:2_start_0 overcloud-controller-1" -> "openstack-nova-scheduler:2_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-nova-scheduler:2_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-scheduler_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-nova-scheduler_start_0 overcloud-controller-2" -> "openstack-nova-conductor:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-nova-scheduler_start_0 overcloud-controller-2" -> "openstack-nova-scheduler-clone_running_0" [ style = dashed] ++"openstack-nova-scheduler_start_0 overcloud-controller-2" -> "openstack-nova-scheduler_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-nova-scheduler_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-sahara-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-sahara-api-clone_start_0" -> "openstack-sahara-api-clone_running_0" [ style = dashed] ++"openstack-sahara-api-clone_start_0" -> "openstack-sahara-api:1_start_0 overcloud-controller-1" [ style = dashed] ++"openstack-sahara-api-clone_start_0" -> "openstack-sahara-api:2_start_0 overcloud-controller-2" [ style = dashed] ++"openstack-sahara-api-clone_start_0" -> "openstack-sahara-api_start_0 overcloud-controller-0" [ style = dashed] ++"openstack-sahara-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"openstack-sahara-api:1_monitor_60000 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-sahara-api:1_start_0 overcloud-controller-1" -> "openstack-sahara-api-clone_running_0" [ style = dashed] ++"openstack-sahara-api:1_start_0 overcloud-controller-1" -> "openstack-sahara-api:1_monitor_60000 overcloud-controller-1" [ style = dashed] ++"openstack-sahara-api:1_start_0 overcloud-controller-1" [ style=dashed color="red" fontcolor="black"] ++"openstack-sahara-api:2_monitor_60000 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-sahara-api:2_start_0 overcloud-controller-2" -> "openstack-sahara-api-clone_running_0" [ style = dashed] ++"openstack-sahara-api:2_start_0 overcloud-controller-2" -> "openstack-sahara-api:2_monitor_60000 overcloud-controller-2" [ style = dashed] ++"openstack-sahara-api:2_start_0 overcloud-controller-2" [ style=dashed color="red" fontcolor="black"] ++"openstack-sahara-api_monitor_60000 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++"openstack-sahara-api_start_0 overcloud-controller-0" -> "openstack-sahara-api-clone_running_0" [ style = dashed] ++"openstack-sahara-api_start_0 overcloud-controller-0" -> "openstack-sahara-api_monitor_60000 overcloud-controller-0" [ style = dashed] ++"openstack-sahara-api_start_0 overcloud-controller-0" [ style=dashed color="red" fontcolor="black"] ++} +diff --git a/pengine/test10/unrunnable-2.exp b/pengine/test10/unrunnable-2.exp +new file mode 100644 +index 0000000..56e315f +--- /dev/null ++++ b/pengine/test10/unrunnable-2.exp +@@ -0,0 +1 @@ ++ +diff --git a/pengine/test10/unrunnable-2.scores b/pengine/test10/unrunnable-2.scores +new file mode 100644 +index 0000000..6ec65c9 +--- /dev/null ++++ b/pengine/test10/unrunnable-2.scores +@@ -0,0 +1,814 @@ ++Allocation scores: ++clone_color: delay-clone allocation score on overcloud-controller-0: 0 ++clone_color: delay-clone allocation score on overcloud-controller-1: 0 ++clone_color: delay-clone allocation score on overcloud-controller-2: 0 ++clone_color: delay:0 allocation score on overcloud-controller-0: 0 ++clone_color: delay:0 allocation score on overcloud-controller-1: 0 ++clone_color: delay:0 allocation score on overcloud-controller-2: 0 ++clone_color: delay:1 allocation score on overcloud-controller-0: 0 ++clone_color: delay:1 allocation score on overcloud-controller-1: 0 ++clone_color: delay:1 allocation score on overcloud-controller-2: 0 ++clone_color: delay:2 allocation score on overcloud-controller-0: 0 ++clone_color: delay:2 allocation score on overcloud-controller-1: 0 ++clone_color: delay:2 allocation score on overcloud-controller-2: 0 ++clone_color: galera-master allocation score on overcloud-controller-0: 0 ++clone_color: galera-master allocation score on overcloud-controller-1: 0 ++clone_color: galera-master allocation score on overcloud-controller-2: 0 ++clone_color: galera:0 allocation score on overcloud-controller-0: 0 ++clone_color: galera:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: galera:0 allocation score on overcloud-controller-2: 0 ++clone_color: galera:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: galera:1 allocation score on overcloud-controller-1: 0 ++clone_color: galera:1 allocation score on overcloud-controller-2: 0 ++clone_color: galera:2 allocation score on overcloud-controller-0: 0 ++clone_color: galera:2 allocation score on overcloud-controller-1: 0 ++clone_color: galera:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: haproxy-clone allocation score on overcloud-controller-0: INFINITY ++clone_color: haproxy-clone allocation score on overcloud-controller-1: INFINITY ++clone_color: haproxy-clone allocation score on overcloud-controller-2: 0 ++clone_color: haproxy:0 allocation score on overcloud-controller-0: 0 ++clone_color: haproxy:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: haproxy:0 allocation score on overcloud-controller-2: 0 ++clone_color: haproxy:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: haproxy:1 allocation score on overcloud-controller-1: 0 ++clone_color: haproxy:1 allocation score on overcloud-controller-2: 0 ++clone_color: haproxy:2 allocation score on overcloud-controller-0: 0 ++clone_color: haproxy:2 allocation score on overcloud-controller-1: 0 ++clone_color: haproxy:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: httpd-clone allocation score on overcloud-controller-0: 0 ++clone_color: httpd-clone allocation score on overcloud-controller-1: 0 ++clone_color: httpd-clone allocation score on overcloud-controller-2: 0 ++clone_color: httpd:0 allocation score on overcloud-controller-0: 0 ++clone_color: httpd:0 allocation score on overcloud-controller-1: 0 ++clone_color: httpd:0 allocation score on overcloud-controller-2: 0 ++clone_color: httpd:1 allocation score on overcloud-controller-0: 0 ++clone_color: httpd:1 allocation score on overcloud-controller-1: 0 ++clone_color: httpd:1 allocation score on overcloud-controller-2: 0 ++clone_color: httpd:2 allocation score on overcloud-controller-0: 0 ++clone_color: httpd:2 allocation score on overcloud-controller-1: 0 ++clone_color: httpd:2 allocation score on overcloud-controller-2: 0 ++clone_color: memcached-clone allocation score on overcloud-controller-0: 0 ++clone_color: memcached-clone allocation score on overcloud-controller-1: 0 ++clone_color: memcached-clone allocation score on overcloud-controller-2: 0 ++clone_color: memcached:0 allocation score on overcloud-controller-0: 0 ++clone_color: memcached:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: memcached:0 allocation score on overcloud-controller-2: 0 ++clone_color: memcached:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: memcached:1 allocation score on overcloud-controller-1: 0 ++clone_color: memcached:1 allocation score on overcloud-controller-2: 0 ++clone_color: memcached:2 allocation score on overcloud-controller-0: 0 ++clone_color: memcached:2 allocation score on overcloud-controller-1: 0 ++clone_color: memcached:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: mongod-clone allocation score on overcloud-controller-0: 0 ++clone_color: mongod-clone allocation score on overcloud-controller-1: 0 ++clone_color: mongod-clone allocation score on overcloud-controller-2: 0 ++clone_color: mongod:0 allocation score on overcloud-controller-0: 0 ++clone_color: mongod:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: mongod:0 allocation score on overcloud-controller-2: 0 ++clone_color: mongod:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: mongod:1 allocation score on overcloud-controller-1: 0 ++clone_color: mongod:1 allocation score on overcloud-controller-2: 0 ++clone_color: mongod:2 allocation score on overcloud-controller-0: 0 ++clone_color: mongod:2 allocation score on overcloud-controller-1: 0 ++clone_color: mongod:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: neutron-dhcp-agent-clone allocation score on overcloud-controller-0: 0 ++clone_color: neutron-dhcp-agent-clone allocation score on overcloud-controller-1: 0 ++clone_color: neutron-dhcp-agent-clone allocation score on overcloud-controller-2: 0 ++clone_color: neutron-dhcp-agent:0 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-dhcp-agent:0 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-dhcp-agent:0 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-dhcp-agent:1 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-dhcp-agent:1 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-dhcp-agent:1 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-dhcp-agent:2 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-dhcp-agent:2 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-dhcp-agent:2 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-l3-agent-clone allocation score on overcloud-controller-0: 0 ++clone_color: neutron-l3-agent-clone allocation score on overcloud-controller-1: 0 ++clone_color: neutron-l3-agent-clone allocation score on overcloud-controller-2: 0 ++clone_color: neutron-l3-agent:0 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-l3-agent:0 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-l3-agent:0 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-l3-agent:1 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-l3-agent:1 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-l3-agent:1 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-l3-agent:2 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-l3-agent:2 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-l3-agent:2 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-metadata-agent-clone allocation score on overcloud-controller-0: 0 ++clone_color: neutron-metadata-agent-clone allocation score on overcloud-controller-1: 0 ++clone_color: neutron-metadata-agent-clone allocation score on overcloud-controller-2: 0 ++clone_color: neutron-metadata-agent:0 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-metadata-agent:0 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-metadata-agent:0 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-metadata-agent:1 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-metadata-agent:1 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-metadata-agent:1 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-metadata-agent:2 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-metadata-agent:2 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-metadata-agent:2 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-netns-cleanup-clone allocation score on overcloud-controller-0: 0 ++clone_color: neutron-netns-cleanup-clone allocation score on overcloud-controller-1: 0 ++clone_color: neutron-netns-cleanup-clone allocation score on overcloud-controller-2: 0 ++clone_color: neutron-netns-cleanup:0 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-netns-cleanup:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: neutron-netns-cleanup:0 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-netns-cleanup:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: neutron-netns-cleanup:1 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-netns-cleanup:1 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-netns-cleanup:2 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-netns-cleanup:2 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-netns-cleanup:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: neutron-openvswitch-agent-clone allocation score on overcloud-controller-0: 0 ++clone_color: neutron-openvswitch-agent-clone allocation score on overcloud-controller-1: 0 ++clone_color: neutron-openvswitch-agent-clone allocation score on overcloud-controller-2: 0 ++clone_color: neutron-openvswitch-agent:0 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-openvswitch-agent:0 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-openvswitch-agent:0 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-openvswitch-agent:1 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-openvswitch-agent:1 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-openvswitch-agent:1 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-openvswitch-agent:2 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-openvswitch-agent:2 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-openvswitch-agent:2 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-ovs-cleanup-clone allocation score on overcloud-controller-0: 0 ++clone_color: neutron-ovs-cleanup-clone allocation score on overcloud-controller-1: 0 ++clone_color: neutron-ovs-cleanup-clone allocation score on overcloud-controller-2: 0 ++clone_color: neutron-ovs-cleanup:0 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-ovs-cleanup:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: neutron-ovs-cleanup:0 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-ovs-cleanup:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: neutron-ovs-cleanup:1 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-ovs-cleanup:1 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-ovs-cleanup:2 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-ovs-cleanup:2 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-ovs-cleanup:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: neutron-server-clone allocation score on overcloud-controller-0: 0 ++clone_color: neutron-server-clone allocation score on overcloud-controller-1: 0 ++clone_color: neutron-server-clone allocation score on overcloud-controller-2: 0 ++clone_color: neutron-server:0 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-server:0 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-server:0 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-server:1 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-server:1 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-server:1 allocation score on overcloud-controller-2: 0 ++clone_color: neutron-server:2 allocation score on overcloud-controller-0: 0 ++clone_color: neutron-server:2 allocation score on overcloud-controller-1: 0 ++clone_color: neutron-server:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-evaluator-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-evaluator-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-evaluator-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-evaluator:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-evaluator:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-evaluator:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-evaluator:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-evaluator:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-evaluator:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-evaluator:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-evaluator:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-evaluator:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-listener-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-listener-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-listener-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-listener:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-listener:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: openstack-aodh-listener:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-listener:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: openstack-aodh-listener:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-listener:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-listener:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-listener:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-listener:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: openstack-aodh-notifier-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-notifier-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-notifier-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-notifier:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-notifier:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-notifier:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-notifier:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-notifier:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-notifier:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-aodh-notifier:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-aodh-notifier:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-aodh-notifier:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-api-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-api-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-api-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-api:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-api:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-api:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-api:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-api:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-api:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-api:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-api:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-api:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-central-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-central-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-central-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-central:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-central:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-central:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-central:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-central:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-central:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-central:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-central:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-central:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-collector-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-collector-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-collector-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-collector:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-collector:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-collector:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-collector:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-collector:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-collector:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-collector:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-collector:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-collector:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-notification-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-notification-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-notification-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-notification:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-notification:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: openstack-ceilometer-notification:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-notification:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: openstack-ceilometer-notification:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-notification:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-ceilometer-notification:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-ceilometer-notification:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-ceilometer-notification:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: openstack-cinder-api-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-api-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-api-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-cinder-api:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-api:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-api:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-cinder-api:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-api:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-api:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-cinder-api:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-api:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-api:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-cinder-scheduler-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-scheduler-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-scheduler-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-cinder-scheduler:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-scheduler:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-scheduler:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-cinder-scheduler:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-scheduler:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-scheduler:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-cinder-scheduler:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-cinder-scheduler:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-cinder-scheduler:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-core-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-core-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-core-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-core:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-core:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-core:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-core:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-core:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-core:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-core:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-core:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-core:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-api-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-api-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-api-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-api:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-api:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-api:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-api:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-api:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-api:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-api:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-api:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-api:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-registry-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-registry-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-registry-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-registry:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-registry:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-registry:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-registry:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-registry:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-registry:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-glance-registry:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-glance-registry:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-glance-registry:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cfn-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cfn-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cfn-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cfn:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cfn:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cfn:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cfn:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cfn:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cfn:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cfn:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cfn:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cfn:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cloudwatch-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cloudwatch-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cloudwatch-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cloudwatch:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cloudwatch:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cloudwatch:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cloudwatch:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cloudwatch:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cloudwatch:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api-cloudwatch:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api-cloudwatch:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api-cloudwatch:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-api:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-api:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-api:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-engine-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-engine-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-engine-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-engine:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-engine:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-engine:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-engine:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-engine:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-engine:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-heat-engine:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-heat-engine:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-heat-engine:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-api-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-api-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-api-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-api:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-api:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-api:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-api:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-api:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-api:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-api:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-api:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-api:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-conductor-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-conductor-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-conductor-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-conductor:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-conductor:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-conductor:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-conductor:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-conductor:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-conductor:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-conductor:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-conductor:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-conductor:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-consoleauth-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-consoleauth-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-consoleauth-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-consoleauth:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-consoleauth:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-consoleauth:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-consoleauth:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-consoleauth:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-consoleauth:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-consoleauth:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-consoleauth:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-consoleauth:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-novncproxy-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-novncproxy-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-novncproxy-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-novncproxy:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-novncproxy:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-novncproxy:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-novncproxy:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-novncproxy:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-novncproxy:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-novncproxy:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-novncproxy:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-novncproxy:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-scheduler-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-scheduler-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-scheduler-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-scheduler:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-scheduler:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-scheduler:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-scheduler:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-scheduler:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-scheduler:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-nova-scheduler:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-nova-scheduler:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-nova-scheduler:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-api-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-sahara-api-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-sahara-api-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-api:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-sahara-api:0 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-sahara-api:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-api:1 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-sahara-api:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-sahara-api:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-api:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-sahara-api:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-sahara-api:2 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-engine-clone allocation score on overcloud-controller-0: 0 ++clone_color: openstack-sahara-engine-clone allocation score on overcloud-controller-1: 0 ++clone_color: openstack-sahara-engine-clone allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-engine:0 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-sahara-engine:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: openstack-sahara-engine:0 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-engine:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: openstack-sahara-engine:1 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-sahara-engine:1 allocation score on overcloud-controller-2: 0 ++clone_color: openstack-sahara-engine:2 allocation score on overcloud-controller-0: 0 ++clone_color: openstack-sahara-engine:2 allocation score on overcloud-controller-1: 0 ++clone_color: openstack-sahara-engine:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: rabbitmq-clone allocation score on overcloud-controller-0: 0 ++clone_color: rabbitmq-clone allocation score on overcloud-controller-1: 0 ++clone_color: rabbitmq-clone allocation score on overcloud-controller-2: 0 ++clone_color: rabbitmq:0 allocation score on overcloud-controller-0: 0 ++clone_color: rabbitmq:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: rabbitmq:0 allocation score on overcloud-controller-2: 0 ++clone_color: rabbitmq:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: rabbitmq:1 allocation score on overcloud-controller-1: 0 ++clone_color: rabbitmq:1 allocation score on overcloud-controller-2: 0 ++clone_color: rabbitmq:2 allocation score on overcloud-controller-0: 0 ++clone_color: rabbitmq:2 allocation score on overcloud-controller-1: 0 ++clone_color: rabbitmq:2 allocation score on overcloud-controller-2: INFINITY ++clone_color: redis-master allocation score on overcloud-controller-0: 0 ++clone_color: redis-master allocation score on overcloud-controller-1: 0 ++clone_color: redis-master allocation score on overcloud-controller-2: 0 ++clone_color: redis:0 allocation score on overcloud-controller-0: 0 ++clone_color: redis:0 allocation score on overcloud-controller-1: INFINITY ++clone_color: redis:0 allocation score on overcloud-controller-2: 0 ++clone_color: redis:1 allocation score on overcloud-controller-0: INFINITY ++clone_color: redis:1 allocation score on overcloud-controller-1: 0 ++clone_color: redis:1 allocation score on overcloud-controller-2: 0 ++clone_color: redis:2 allocation score on overcloud-controller-0: 0 ++clone_color: redis:2 allocation score on overcloud-controller-1: 0 ++clone_color: redis:2 allocation score on overcloud-controller-2: INFINITY ++galera:0 promotion score on overcloud-controller-1: 100 ++galera:1 promotion score on overcloud-controller-0: 100 ++galera:2 promotion score on overcloud-controller-2: 100 ++native_color: delay:0 allocation score on overcloud-controller-0: 0 ++native_color: delay:0 allocation score on overcloud-controller-1: 0 ++native_color: delay:0 allocation score on overcloud-controller-2: 0 ++native_color: delay:1 allocation score on overcloud-controller-0: 0 ++native_color: delay:1 allocation score on overcloud-controller-1: 0 ++native_color: delay:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: delay:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: delay:2 allocation score on overcloud-controller-1: 0 ++native_color: delay:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: galera:0 allocation score on overcloud-controller-0: 0 ++native_color: galera:0 allocation score on overcloud-controller-1: INFINITY ++native_color: galera:0 allocation score on overcloud-controller-2: 0 ++native_color: galera:1 allocation score on overcloud-controller-0: INFINITY ++native_color: galera:1 allocation score on overcloud-controller-1: -INFINITY ++native_color: galera:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: galera:2 allocation score on overcloud-controller-0: 0 ++native_color: galera:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: galera:2 allocation score on overcloud-controller-2: INFINITY ++native_color: haproxy:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: haproxy:0 allocation score on overcloud-controller-1: INFINITY ++native_color: haproxy:0 allocation score on overcloud-controller-2: 0 ++native_color: haproxy:1 allocation score on overcloud-controller-0: INFINITY ++native_color: haproxy:1 allocation score on overcloud-controller-1: 0 ++native_color: haproxy:1 allocation score on overcloud-controller-2: 0 ++native_color: haproxy:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: haproxy:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: haproxy:2 allocation score on overcloud-controller-2: INFINITY ++native_color: httpd:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: httpd:0 allocation score on overcloud-controller-1: -INFINITY ++native_color: httpd:0 allocation score on overcloud-controller-2: -INFINITY ++native_color: httpd:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: httpd:1 allocation score on overcloud-controller-1: -INFINITY ++native_color: httpd:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: httpd:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: httpd:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: httpd:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: ip-192.0.2.11 allocation score on overcloud-controller-0: 0 ++native_color: ip-192.0.2.11 allocation score on overcloud-controller-1: INFINITY ++native_color: ip-192.0.2.11 allocation score on overcloud-controller-2: 0 ++native_color: ip-192.0.2.12 allocation score on overcloud-controller-0: INFINITY ++native_color: ip-192.0.2.12 allocation score on overcloud-controller-1: 0 ++native_color: ip-192.0.2.12 allocation score on overcloud-controller-2: 0 ++native_color: memcached:0 allocation score on overcloud-controller-0: 0 ++native_color: memcached:0 allocation score on overcloud-controller-1: INFINITY ++native_color: memcached:0 allocation score on overcloud-controller-2: 0 ++native_color: memcached:1 allocation score on overcloud-controller-0: INFINITY ++native_color: memcached:1 allocation score on overcloud-controller-1: -INFINITY ++native_color: memcached:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: memcached:2 allocation score on overcloud-controller-0: 0 ++native_color: memcached:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: memcached:2 allocation score on overcloud-controller-2: INFINITY ++native_color: mongod:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: mongod:0 allocation score on overcloud-controller-1: INFINITY ++native_color: mongod:0 allocation score on overcloud-controller-2: -INFINITY ++native_color: mongod:1 allocation score on overcloud-controller-0: INFINITY ++native_color: mongod:1 allocation score on overcloud-controller-1: 0 ++native_color: mongod:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: mongod:2 allocation score on overcloud-controller-0: 0 ++native_color: mongod:2 allocation score on overcloud-controller-1: 0 ++native_color: mongod:2 allocation score on overcloud-controller-2: INFINITY ++native_color: neutron-dhcp-agent:0 allocation score on overcloud-controller-0: 0 ++native_color: neutron-dhcp-agent:0 allocation score on overcloud-controller-1: 0 ++native_color: neutron-dhcp-agent:0 allocation score on overcloud-controller-2: 0 ++native_color: neutron-dhcp-agent:1 allocation score on overcloud-controller-0: 0 ++native_color: neutron-dhcp-agent:1 allocation score on overcloud-controller-1: 0 ++native_color: neutron-dhcp-agent:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-dhcp-agent:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-dhcp-agent:2 allocation score on overcloud-controller-1: 0 ++native_color: neutron-dhcp-agent:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-l3-agent:0 allocation score on overcloud-controller-0: 0 ++native_color: neutron-l3-agent:0 allocation score on overcloud-controller-1: 0 ++native_color: neutron-l3-agent:0 allocation score on overcloud-controller-2: 0 ++native_color: neutron-l3-agent:1 allocation score on overcloud-controller-0: 0 ++native_color: neutron-l3-agent:1 allocation score on overcloud-controller-1: 0 ++native_color: neutron-l3-agent:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-l3-agent:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-l3-agent:2 allocation score on overcloud-controller-1: 0 ++native_color: neutron-l3-agent:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-metadata-agent:0 allocation score on overcloud-controller-0: 0 ++native_color: neutron-metadata-agent:0 allocation score on overcloud-controller-1: 0 ++native_color: neutron-metadata-agent:0 allocation score on overcloud-controller-2: 0 ++native_color: neutron-metadata-agent:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-metadata-agent:1 allocation score on overcloud-controller-1: 0 ++native_color: neutron-metadata-agent:1 allocation score on overcloud-controller-2: 0 ++native_color: neutron-metadata-agent:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-metadata-agent:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: neutron-metadata-agent:2 allocation score on overcloud-controller-2: 0 ++native_color: neutron-netns-cleanup:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-netns-cleanup:0 allocation score on overcloud-controller-1: INFINITY ++native_color: neutron-netns-cleanup:0 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-netns-cleanup:1 allocation score on overcloud-controller-0: INFINITY ++native_color: neutron-netns-cleanup:1 allocation score on overcloud-controller-1: 0 ++native_color: neutron-netns-cleanup:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-netns-cleanup:2 allocation score on overcloud-controller-0: 0 ++native_color: neutron-netns-cleanup:2 allocation score on overcloud-controller-1: 0 ++native_color: neutron-netns-cleanup:2 allocation score on overcloud-controller-2: INFINITY ++native_color: neutron-openvswitch-agent:0 allocation score on overcloud-controller-0: 0 ++native_color: neutron-openvswitch-agent:0 allocation score on overcloud-controller-1: 0 ++native_color: neutron-openvswitch-agent:0 allocation score on overcloud-controller-2: 0 ++native_color: neutron-openvswitch-agent:1 allocation score on overcloud-controller-0: 0 ++native_color: neutron-openvswitch-agent:1 allocation score on overcloud-controller-1: 0 ++native_color: neutron-openvswitch-agent:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-openvswitch-agent:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-openvswitch-agent:2 allocation score on overcloud-controller-1: 0 ++native_color: neutron-openvswitch-agent:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-ovs-cleanup:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-ovs-cleanup:0 allocation score on overcloud-controller-1: INFINITY ++native_color: neutron-ovs-cleanup:0 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-ovs-cleanup:1 allocation score on overcloud-controller-0: INFINITY ++native_color: neutron-ovs-cleanup:1 allocation score on overcloud-controller-1: 0 ++native_color: neutron-ovs-cleanup:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: neutron-ovs-cleanup:2 allocation score on overcloud-controller-0: 0 ++native_color: neutron-ovs-cleanup:2 allocation score on overcloud-controller-1: 0 ++native_color: neutron-ovs-cleanup:2 allocation score on overcloud-controller-2: INFINITY ++native_color: neutron-server:0 allocation score on overcloud-controller-0: 0 ++native_color: neutron-server:0 allocation score on overcloud-controller-1: 0 ++native_color: neutron-server:0 allocation score on overcloud-controller-2: 0 ++native_color: neutron-server:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-server:1 allocation score on overcloud-controller-1: 0 ++native_color: neutron-server:1 allocation score on overcloud-controller-2: 0 ++native_color: neutron-server:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: neutron-server:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: neutron-server:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-aodh-evaluator:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-aodh-evaluator:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-aodh-evaluator:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-aodh-evaluator:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-aodh-evaluator:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-aodh-evaluator:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-aodh-evaluator:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-aodh-evaluator:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-aodh-evaluator:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-aodh-listener:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-aodh-listener:0 allocation score on overcloud-controller-1: INFINITY ++native_color: openstack-aodh-listener:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-aodh-listener:1 allocation score on overcloud-controller-0: INFINITY ++native_color: openstack-aodh-listener:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-aodh-listener:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-aodh-listener:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-aodh-listener:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-aodh-listener:2 allocation score on overcloud-controller-2: INFINITY ++native_color: openstack-aodh-notifier:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-aodh-notifier:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-aodh-notifier:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-aodh-notifier:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-aodh-notifier:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-aodh-notifier:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-aodh-notifier:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-aodh-notifier:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-aodh-notifier:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-api:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-ceilometer-api:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-api:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-api:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-ceilometer-api:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-api:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-ceilometer-api:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-ceilometer-api:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-api:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-ceilometer-central:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-ceilometer-central:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-central:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-central:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-ceilometer-central:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-central:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-central:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-ceilometer-central:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-ceilometer-central:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-collector:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-ceilometer-collector:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-collector:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-collector:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-ceilometer-collector:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-collector:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-ceilometer-collector:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-ceilometer-collector:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-collector:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-ceilometer-notification:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-ceilometer-notification:0 allocation score on overcloud-controller-1: INFINITY ++native_color: openstack-ceilometer-notification:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-notification:1 allocation score on overcloud-controller-0: INFINITY ++native_color: openstack-ceilometer-notification:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-ceilometer-notification:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-ceilometer-notification:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-ceilometer-notification:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-ceilometer-notification:2 allocation score on overcloud-controller-2: INFINITY ++native_color: openstack-cinder-api:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-cinder-api:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-cinder-api:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-cinder-api:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-cinder-api:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-cinder-api:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-cinder-api:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-cinder-api:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-cinder-api:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-cinder-scheduler:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-cinder-scheduler:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-cinder-scheduler:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-cinder-scheduler:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-cinder-scheduler:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-cinder-scheduler:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-cinder-scheduler:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-cinder-scheduler:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-cinder-scheduler:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-cinder-volume allocation score on overcloud-controller-0: 0 ++native_color: openstack-cinder-volume allocation score on overcloud-controller-1: 0 ++native_color: openstack-cinder-volume allocation score on overcloud-controller-2: 0 ++native_color: openstack-core:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-core:0 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-core:0 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-core:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-core:1 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-core:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-core:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-core:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-core:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-glance-api:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-glance-api:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-glance-api:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-glance-api:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-glance-api:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-glance-api:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-glance-api:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-glance-api:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-glance-api:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-glance-registry:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-glance-registry:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-glance-registry:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-glance-registry:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-glance-registry:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-glance-registry:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-glance-registry:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-glance-registry:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-glance-registry:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api-cfn:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-heat-api-cfn:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-api-cfn:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api-cfn:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-api-cfn:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-api-cfn:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api-cfn:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-api-cfn:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-heat-api-cfn:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api-cloudwatch:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-heat-api-cloudwatch:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-api-cloudwatch:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api-cloudwatch:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-api-cloudwatch:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-api-cloudwatch:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api-cloudwatch:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-api-cloudwatch:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-heat-api-cloudwatch:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-heat-api:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-api:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-api:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-api:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-api:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-api:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-heat-api:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-engine:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-heat-engine:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-engine:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-engine:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-engine:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-heat-engine:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-heat-engine:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-heat-engine:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-heat-engine:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-api:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-api:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-api:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-api:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-api:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-api:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-nova-api:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-nova-api:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-api:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-nova-conductor:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-conductor:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-conductor:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-conductor:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-nova-conductor:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-conductor:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-conductor:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-nova-conductor:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-nova-conductor:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-consoleauth:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-consoleauth:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-consoleauth:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-consoleauth:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-consoleauth:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-consoleauth:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-nova-consoleauth:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-nova-consoleauth:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-consoleauth:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-nova-novncproxy:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-novncproxy:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-novncproxy:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-novncproxy:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-novncproxy:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-novncproxy:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-nova-novncproxy:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-nova-novncproxy:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-novncproxy:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-nova-scheduler:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-scheduler:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-scheduler:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-nova-scheduler:1 allocation score on overcloud-controller-0: 0 ++native_color: openstack-nova-scheduler:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-scheduler:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-nova-scheduler:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-nova-scheduler:2 allocation score on overcloud-controller-1: 0 ++native_color: openstack-nova-scheduler:2 allocation score on overcloud-controller-2: -INFINITY ++native_color: openstack-sahara-api:0 allocation score on overcloud-controller-0: 0 ++native_color: openstack-sahara-api:0 allocation score on overcloud-controller-1: 0 ++native_color: openstack-sahara-api:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-sahara-api:1 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-sahara-api:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-sahara-api:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-sahara-api:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-sahara-api:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-sahara-api:2 allocation score on overcloud-controller-2: 0 ++native_color: openstack-sahara-engine:0 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-sahara-engine:0 allocation score on overcloud-controller-1: INFINITY ++native_color: openstack-sahara-engine:0 allocation score on overcloud-controller-2: 0 ++native_color: openstack-sahara-engine:1 allocation score on overcloud-controller-0: INFINITY ++native_color: openstack-sahara-engine:1 allocation score on overcloud-controller-1: 0 ++native_color: openstack-sahara-engine:1 allocation score on overcloud-controller-2: 0 ++native_color: openstack-sahara-engine:2 allocation score on overcloud-controller-0: -INFINITY ++native_color: openstack-sahara-engine:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: openstack-sahara-engine:2 allocation score on overcloud-controller-2: INFINITY ++native_color: rabbitmq:0 allocation score on overcloud-controller-0: 0 ++native_color: rabbitmq:0 allocation score on overcloud-controller-1: INFINITY ++native_color: rabbitmq:0 allocation score on overcloud-controller-2: 0 ++native_color: rabbitmq:1 allocation score on overcloud-controller-0: INFINITY ++native_color: rabbitmq:1 allocation score on overcloud-controller-1: -INFINITY ++native_color: rabbitmq:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: rabbitmq:2 allocation score on overcloud-controller-0: 0 ++native_color: rabbitmq:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: rabbitmq:2 allocation score on overcloud-controller-2: INFINITY ++native_color: redis:0 allocation score on overcloud-controller-0: 0 ++native_color: redis:0 allocation score on overcloud-controller-1: INFINITY ++native_color: redis:0 allocation score on overcloud-controller-2: 0 ++native_color: redis:1 allocation score on overcloud-controller-0: INFINITY ++native_color: redis:1 allocation score on overcloud-controller-1: -INFINITY ++native_color: redis:1 allocation score on overcloud-controller-2: -INFINITY ++native_color: redis:2 allocation score on overcloud-controller-0: 0 ++native_color: redis:2 allocation score on overcloud-controller-1: -INFINITY ++native_color: redis:2 allocation score on overcloud-controller-2: INFINITY ++redis:0 promotion score on overcloud-controller-1: 1 ++redis:1 promotion score on overcloud-controller-0: 1 ++redis:2 promotion score on overcloud-controller-2: 1 +diff --git a/pengine/test10/unrunnable-2.summary b/pengine/test10/unrunnable-2.summary +new file mode 100644 +index 0000000..0c0c765 +--- /dev/null ++++ b/pengine/test10/unrunnable-2.summary +@@ -0,0 +1,175 @@ ++6 of 117 resources DISABLED and 0 BLOCKED from being started due to failures ++ ++Current cluster status: ++Online: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ ++ ip-192.0.2.12 (ocf::heartbeat:IPaddr2): Started overcloud-controller-0 ++ Clone Set: haproxy-clone [haproxy] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Master/Slave Set: galera-master [galera] ++ Masters: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: memcached-clone [memcached] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: rabbitmq-clone [rabbitmq] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-core-clone [openstack-core] ++ Stopped (disabled): [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Master/Slave Set: redis-master [redis] ++ Masters: [ overcloud-controller-1 ] ++ Slaves: [ overcloud-controller-0 overcloud-controller-2 ] ++ ip-192.0.2.11 (ocf::heartbeat:IPaddr2): Started overcloud-controller-1 ++ Clone Set: mongod-clone [mongod] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-aodh-evaluator-clone [openstack-aodh-evaluator] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-l3-agent-clone [neutron-l3-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-netns-cleanup-clone [neutron-netns-cleanup] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-ovs-cleanup-clone [neutron-ovs-cleanup] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ openstack-cinder-volume (systemd:openstack-cinder-volume): Stopped ++ Clone Set: openstack-heat-engine-clone [openstack-heat-engine] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-api-clone [openstack-ceilometer-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-aodh-listener-clone [openstack-aodh-listener] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-aodh-notifier-clone [openstack-aodh-notifier] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-heat-api-clone [openstack-heat-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-collector-clone [openstack-ceilometer-collector] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-glance-api-clone [openstack-glance-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-cinder-scheduler-clone [openstack-cinder-scheduler] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-api-clone [openstack-nova-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-consoleauth-clone [openstack-nova-consoleauth] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-sahara-api-clone [openstack-sahara-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-heat-api-cloudwatch-clone [openstack-heat-api-cloudwatch] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-sahara-engine-clone [openstack-sahara-engine] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-glance-registry-clone [openstack-glance-registry] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-notification-clone [openstack-ceilometer-notification] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-cinder-api-clone [openstack-cinder-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-openvswitch-agent-clone [neutron-openvswitch-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: delay-clone [delay] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-server-clone [neutron-server] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-central-clone [openstack-ceilometer-central] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: httpd-clone [httpd] ++ Stopped (disabled): [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-heat-api-cfn-clone [openstack-heat-api-cfn] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ ++Transition Summary: ++ * Start openstack-cinder-volume (overcloud-controller-2 - blocked) ++ ++Executing cluster transition: ++ ++Revised cluster status: ++Online: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ ++ ip-192.0.2.12 (ocf::heartbeat:IPaddr2): Started overcloud-controller-0 ++ Clone Set: haproxy-clone [haproxy] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Master/Slave Set: galera-master [galera] ++ Masters: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: memcached-clone [memcached] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: rabbitmq-clone [rabbitmq] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-core-clone [openstack-core] ++ Stopped (disabled): [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Master/Slave Set: redis-master [redis] ++ Masters: [ overcloud-controller-1 ] ++ Slaves: [ overcloud-controller-0 overcloud-controller-2 ] ++ ip-192.0.2.11 (ocf::heartbeat:IPaddr2): Started overcloud-controller-1 ++ Clone Set: mongod-clone [mongod] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-aodh-evaluator-clone [openstack-aodh-evaluator] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-l3-agent-clone [neutron-l3-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-netns-cleanup-clone [neutron-netns-cleanup] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-ovs-cleanup-clone [neutron-ovs-cleanup] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ openstack-cinder-volume (systemd:openstack-cinder-volume): Stopped ++ Clone Set: openstack-heat-engine-clone [openstack-heat-engine] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-api-clone [openstack-ceilometer-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-aodh-listener-clone [openstack-aodh-listener] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-aodh-notifier-clone [openstack-aodh-notifier] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-heat-api-clone [openstack-heat-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-collector-clone [openstack-ceilometer-collector] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-glance-api-clone [openstack-glance-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-cinder-scheduler-clone [openstack-cinder-scheduler] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-api-clone [openstack-nova-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-consoleauth-clone [openstack-nova-consoleauth] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-sahara-api-clone [openstack-sahara-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-heat-api-cloudwatch-clone [openstack-heat-api-cloudwatch] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-sahara-engine-clone [openstack-sahara-engine] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-glance-registry-clone [openstack-glance-registry] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-notification-clone [openstack-ceilometer-notification] ++ Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-cinder-api-clone [openstack-cinder-api] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-openvswitch-agent-clone [neutron-openvswitch-agent] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: delay-clone [delay] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: neutron-server-clone [neutron-server] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-ceilometer-central-clone [openstack-ceilometer-central] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: httpd-clone [httpd] ++ Stopped (disabled): [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-heat-api-cfn-clone [openstack-heat-api-cfn] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor] ++ Stopped: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ++ +diff --git a/pengine/test10/unrunnable-2.xml b/pengine/test10/unrunnable-2.xml +new file mode 100644 +index 0000000..cc780eb +--- /dev/null ++++ b/pengine/test10/unrunnable-2.xml +@@ -0,0 +1,1189 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +-- +1.8.3.1 + diff --git a/SPECS/pacemaker.spec b/SPECS/pacemaker.spec index 299eaea..72df431 100644 --- a/SPECS/pacemaker.spec +++ b/SPECS/pacemaker.spec @@ -57,7 +57,7 @@ Name: pacemaker Summary: Scalable High-Availability cluster resource manager Version: 1.1.13 -Release: %{pcmk_release}%{?dist}.2 +Release: %{pcmk_release}%{?dist}.4 License: GPLv2+ and LGPLv2+ Url: http://www.clusterlabs.org Group: System Environment/Daemons @@ -120,10 +120,14 @@ Patch106: 0106-Feature-pacemaker_remote-support-graceful-stops.patch Patch107: 0107-Feature-PE-Honor-the-shutdown-transient-attributes-f.patch Patch108: 0108-Feature-crmd-Set-the-shutdown-transient-attribute-in.patch Patch109: 0109-Fix-attrd-Hook-up-the-client-name-so-we-can-track-re.patch -Patch110: 0110-Fix-attrd-Correctly-implement-mass-removal-of-a-node.patch Patch111: 0111-Log-crmd-Graceful-proxy-shutdown-is-now-tested.patch Patch112: 0112-Fix-crmd-set-remote-flag.patch Patch113: 0113-Fix-attrd-correct-peer-cache.patch +Patch114: 0114-clear-remote-node-transient.patch + +# later patches +Patch115: 0115-crm_resource-restart-fixes.patch +Patch116: 0116-unrunnable-clones.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) AutoReqProv: on @@ -648,6 +652,16 @@ exit 0 %attr(0644,root,root) %{_datadir}/pacemaker/nagios/plugins-metadata/* %changelog +* Fri Jun 17 2016 Ken Gaillot - 1.1.13-10.4 +- Fix multiple issues with crm_resource --restart +- Properly handle descendents of unrunnable clones +- Resolves: rhbz#1347806 +- Resolves: rhbz#1349493 + +* Fri Jun 10 2016 Ken Gaillot - 1.1.13-10.3 +- Properly clear remote node transient attributes on disconnect +- Resolves: rhbz#1344223 + * Tue Jan 26 2016 Ken Gaillot - 1.1.13-10.2 - Properly cache remote nodes when adding node attributes - Resolves: rhbz#1299348