diff --git a/SOURCES/011-regression-tests.patch b/SOURCES/011-regression-tests.patch new file mode 100644 index 0000000..2610aec --- /dev/null +++ b/SOURCES/011-regression-tests.patch @@ -0,0 +1,122 @@ +From eb76099e924b787ddc026441d87f77871ead9884 Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Tue, 13 Feb 2018 17:21:37 -0600 +Subject: [PATCH 1/2] Low: libcrmcommon: use /tmp when creating temporary XML + file + +... instead of CRM_STATE_DIR, which may not be usable from an ordinary user's +account, thus generating incorrect CLI regression test output when run from a +checkout. +--- + lib/common/schemas.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/lib/common/schemas.c b/lib/common/schemas.c +index b529ff5..7e76af3 100644 +--- a/lib/common/schemas.c ++++ b/lib/common/schemas.c +@@ -625,9 +625,13 @@ validate_xml_verbose(xmlNode *xml_blob) + xmlDoc *doc = NULL; + xmlNode *xml = NULL; + gboolean rc = FALSE; +- char *filename = strdup(CRM_STATE_DIR "/cib-invalid.XXXXXX"); ++ const char *tmpdir = getenv("TMPDIR"); ++ char *filename = NULL; + +- CRM_CHECK(filename != NULL, return FALSE); ++ if ((tmpdir == NULL) || (*tmpdir != '/')) { ++ tmpdir = "/tmp"; ++ } ++ filename = crm_strdup_printf("%s/cib-invalid.XXXXXX", tmpdir); + + umask(S_IWGRP | S_IWOTH | S_IROTH); + fd = mkstemp(filename); +-- +1.8.3.1 + + +From 48c9a80a7c3a621bd606ffcc14ae8a86072e41e0 Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Tue, 13 Feb 2018 17:24:04 -0600 +Subject: [PATCH 2/2] Test: tools: update regression test with correct output + +Verbose XML wasn't been shown from an ordinary user's checkout previously due +to a bug that has since been fixed. +--- + tools/regression.validity.exp | 46 +++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +diff --git a/tools/regression.validity.exp b/tools/regression.validity.exp +index 7474746..7557454 100644 +--- a/tools/regression.validity.exp ++++ b/tools/regression.validity.exp +@@ -3,6 +3,21 @@ Setting up shadow instance + A new shadow instance was created. To begin using it paste the following into your shell: + CIB_shadow=tools-regression ; export CIB_shadow + =#=#=#= Begin test: Try to make resulting CIB invalid (enum violation) =#=#=#= ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ 12 ++ 13 ++ 14 ++ 15 + Call failed: Update does not conform to the configured schema + =#=#=#= Current cib after: Try to make resulting CIB invalid (enum violation) =#=#=#= + +@@ -78,6 +93,21 @@ Your current configuration pacemaker-1.2 could not validate with any schema in r + =#=#=#= End test: Run crm_simulate with invalid CIB (enum violation) - Required key not available (126) =#=#=#= + * Passed: crm_simulate - Run crm_simulate with invalid CIB (enum violation) + =#=#=#= Begin test: Try to make resulting CIB invalid (unrecognized validate-with) =#=#=#= ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ 12 ++ 13 ++ 14 ++ 15 + Call failed: Update does not conform to the configured schema + =#=#=#= Current cib after: Try to make resulting CIB invalid (unrecognized validate-with) =#=#=#= + +@@ -161,6 +191,22 @@ Your current configuration pacemaker-9999.0 could not validate with any schema i + =#=#=#= End test: Run crm_simulate with invalid CIB (unrecognized validate-with) - Required key not available (126) =#=#=#= + * Passed: crm_simulate - Run crm_simulate with invalid CIB (unrecognized validate-with) + =#=#=#= Begin test: Try to make resulting CIB invalid, but possibly recoverable (valid with X.Y+1) =#=#=#= ++ 1 ++ 2 ++ 3 ++ 4 ++ 5 ++ 6 ++ 7 ++ 8 ++ 9 ++ 10 ++ 11 ++ 12 ++ 13 ++ 14 ++ 15 ++ 16 + Call failed: Update does not conform to the configured schema + =#=#=#= Current cib after: Try to make resulting CIB invalid, but possibly recoverable (valid with X.Y+1) =#=#=#= + +-- +1.8.3.1 + diff --git a/SOURCES/012-notifs.patch b/SOURCES/012-notifs.patch new file mode 100644 index 0000000..b121780 --- /dev/null +++ b/SOURCES/012-notifs.patch @@ -0,0 +1,83 @@ +From 191c5be52b1633a8642d28868505a9879b5d5622 Mon Sep 17 00:00:00 2001 +From: Andrew Beekhof +Date: Tue, 3 Apr 2018 13:56:22 +1000 +Subject: [PATCH] Fix: rhbz#1545449 - Do not perform notifications for events + we know wont be executed + +--- + pengine/notif.c | 40 +++++++++++++++++++++++++++++++++++++--- + 1 file changed, 37 insertions(+), 3 deletions(-) + +diff --git a/pengine/notif.c b/pengine/notif.c +index 39d8c72..7ce8f57 100644 +--- a/pengine/notif.c ++++ b/pengine/notif.c +@@ -498,12 +498,18 @@ collect_notification_data(resource_t * rsc, gboolean state, gboolean activity, + action_t *op = (action_t *) gIter->data; + + if (is_set(op->flags, pe_action_optional) == FALSE && op->node != NULL) { ++ task = text2task(op->task); ++ ++ if(task == stop_rsc && op->node->details->unclean) { ++ /* Create one anyway,, some additional noise if op->node cannot be fenced */ ++ } else if(is_not_set(op->flags, pe_action_runnable)) { ++ continue; ++ } + + entry = calloc(1, sizeof(notify_entry_t)); + entry->node = op->node; + entry->rsc = rsc; + +- task = text2task(op->task); + switch (task) { + case start_rsc: + n_data->start = g_list_prepend(n_data->start, entry); +@@ -656,8 +662,7 @@ create_notifications(resource_t * rsc, notify_data_t * n_data, pe_working_set_t + + /* Copy notification details into standard ops */ + +- gIter = rsc->actions; +- for (; gIter != NULL; gIter = gIter->next) { ++ for (gIter = rsc->actions; gIter != NULL; gIter = gIter->next) { + action_t *op = (action_t *) gIter->data; + + if (is_set(op->flags, pe_action_optional) == FALSE && op->node != NULL) { +@@ -676,6 +681,35 @@ create_notifications(resource_t * rsc, notify_data_t * n_data, pe_working_set_t + } + } + ++ switch (task) { ++ case start_rsc: ++ if(g_list_length(n_data->start) == 0) { ++ pe_rsc_trace(rsc, "Skipping empty notification for: %s.%s (%s->%s)", ++ n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); ++ return; ++ } ++ break; ++ case action_promote: ++ if(g_list_length(n_data->promote) == 0) { ++ pe_rsc_trace(rsc, "Skipping empty notification for: %s.%s (%s->%s)", ++ n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); ++ return; ++ } ++ break; ++ case action_demote: ++ if(g_list_length(n_data->demote) == 0) { ++ pe_rsc_trace(rsc, "Skipping empty notification for: %s.%s (%s->%s)", ++ n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); ++ return; ++ } ++ break; ++ default: ++ /* We cannot do the same for stop_rsc/n_data->stop at it ++ * might be implied by fencing ++ */ ++ break; ++ } ++ + pe_rsc_trace(rsc, "Creating notifications for: %s.%s (%s->%s)", + n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); + +-- +1.8.3.1 + diff --git a/SOURCES/013-notifs-tests.patch b/SOURCES/013-notifs-tests.patch new file mode 100644 index 0000000..2565eb9 --- /dev/null +++ b/SOURCES/013-notifs-tests.patch @@ -0,0 +1,5310 @@ +From ef683f4767d75aae7a9483b1c325b13fc39f2821 Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Fri, 6 Apr 2018 12:53:26 -0500 +Subject: [PATCH] Test: pengine: update regression tests for notification + changes + +--- + pengine/test10/a-demote-then-b-migrate.exp | 32 +- + pengine/test10/a-promote-then-b-migrate.exp | 16 +- + pengine/test10/bug-1572-2.exp | 28 +- + pengine/test10/bug-1685.exp | 16 +- + pengine/test10/bug-5143-ms-shuffle.exp | 16 +- + pengine/test10/bug-cl-5168.exp | 16 +- + pengine/test10/bug-cl-5212.exp | 12 +- + pengine/test10/bug-cl-5247.exp | 12 +- + pengine/test10/bug-lf-2153.exp | 12 +- + pengine/test10/bug-lf-2317.exp | 16 +- + pengine/test10/bundle-order-fencing.dot | 34 -- + pengine/test10/bundle-order-fencing.exp | 527 +++++++-------------- + pengine/test10/bundle-order-fencing.summary | 10 - + pengine/test10/bundle-order-partial-start-2.exp | 8 +- + pengine/test10/bundle-order-partial-start.exp | 8 +- + pengine/test10/bundle-order-partial-stop.dot | 3 - + pengine/test10/bundle-order-partial-stop.exp | 14 +- + pengine/test10/bundle-order-startup-clone.dot | 3 - + pengine/test10/bundle-order-stop-clone.exp | 20 +- + pengine/test10/bundle-order-stop-on-remote.exp | 44 +- + pengine/test10/bundle-order-stop.dot | 3 - + pengine/test10/bundle-order-stop.exp | 14 +- + pengine/test10/colo_master_w_native.exp | 32 +- + pengine/test10/colo_slave_w_native.exp | 32 +- + pengine/test10/group-dependents.exp | 32 +- + pengine/test10/inc10.exp | 28 +- + pengine/test10/interleave-pseudo-stop.exp | 12 +- + pengine/test10/interleave-stop.exp | 36 +- + pengine/test10/master-13.exp | 32 +- + pengine/test10/master-demote.exp | 16 +- + pengine/test10/master-dependent-ban.exp | 16 +- + pengine/test10/master-failed-demote.exp | 36 +- + pengine/test10/master-move.exp | 32 +- + pengine/test10/master-notify.exp | 24 +- + pengine/test10/master-partially-demoted-group.exp | 32 +- + pengine/test10/novell-239082.exp | 36 +- + pengine/test10/novell-252693.exp | 36 +- + .../test10/one-or-more-unrunnable-instances.exp | 12 +- + pengine/test10/order_constraint_stops_master.dot | 1 - + pengine/test10/order_constraint_stops_master.exp | 10 +- + pengine/test10/order_constraint_stops_slave.dot | 1 - + pengine/test10/order_constraint_stops_slave.exp | 4 +- + pengine/test10/probe-0.exp | 8 +- + pengine/test10/probe-2.exp | 48 +- + pengine/test10/remote-recover-all.exp | 8 +- + pengine/test10/remote-recover-connection.exp | 8 +- + pengine/test10/remote-recover-no-resources.exp | 8 +- + pengine/test10/remote-recover-unknown.exp | 8 +- + pengine/test10/remote-recovery.exp | 8 +- + 49 files changed, 719 insertions(+), 922 deletions(-) + +diff --git a/pengine/test10/a-demote-then-b-migrate.exp b/pengine/test10/a-demote-then-b-migrate.exp +index 2b12db2..e31e125 100644 +--- a/pengine/test10/a-demote-then-b-migrate.exp ++++ b/pengine/test10/a-demote-then-b-migrate.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -97,7 +97,7 @@ + + + +- ++ + + + +@@ -110,7 +110,7 @@ + + + +- ++ + + + +@@ -123,7 +123,7 @@ + + + +- ++ + + + +@@ -136,7 +136,7 @@ + + + +- ++ + + + +@@ -202,10 +202,10 @@ + + + +- ++ + + +- ++ + + + +@@ -235,10 +235,10 @@ + + + +- ++ + + +- ++ + + + +@@ -288,10 +288,10 @@ + + + +- ++ + + +- ++ + + + +@@ -321,10 +321,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/a-promote-then-b-migrate.exp b/pengine/test10/a-promote-then-b-migrate.exp +index 26cd1b1..f5ef735 100644 +--- a/pengine/test10/a-promote-then-b-migrate.exp ++++ b/pengine/test10/a-promote-then-b-migrate.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -103,10 +103,10 @@ + + + +- ++ + + +- ++ + + + +@@ -136,10 +136,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bug-1572-2.exp b/pengine/test10/bug-1572-2.exp +index a854f62..58885e2 100644 +--- a/pengine/test10/bug-1572-2.exp ++++ b/pengine/test10/bug-1572-2.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -53,7 +53,7 @@ + + + +- ++ + + + +@@ -66,7 +66,7 @@ + + + +- ++ + + + +@@ -79,7 +79,7 @@ + + + +- ++ + + + +@@ -92,7 +92,7 @@ + + + +- ++ + + + +@@ -127,10 +127,10 @@ + + + +- ++ + + +- ++ + + + +@@ -160,10 +160,10 @@ + + + +- ++ + + +- ++ + + + +@@ -216,7 +216,7 @@ + + + +- ++ + + + +@@ -246,10 +246,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bug-1685.exp b/pengine/test10/bug-1685.exp +index 8b46500..7d6f29b 100644 +--- a/pengine/test10/bug-1685.exp ++++ b/pengine/test10/bug-1685.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -53,7 +53,7 @@ + + + +- ++ + + + +@@ -88,10 +88,10 @@ + + + +- ++ + + +- ++ + + + +@@ -121,10 +121,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bug-5143-ms-shuffle.exp b/pengine/test10/bug-5143-ms-shuffle.exp +index e8fb58c..caa1474 100644 +--- a/pengine/test10/bug-5143-ms-shuffle.exp ++++ b/pengine/test10/bug-5143-ms-shuffle.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -53,7 +53,7 @@ + + + +- ++ + + + +@@ -104,10 +104,10 @@ + + + +- ++ + + +- ++ + + + +@@ -137,10 +137,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bug-cl-5168.exp b/pengine/test10/bug-cl-5168.exp +index f4b3b79..729c7a6 100644 +--- a/pengine/test10/bug-cl-5168.exp ++++ b/pengine/test10/bug-cl-5168.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -53,7 +53,7 @@ + + + +- ++ + + + +@@ -104,10 +104,10 @@ + + + +- ++ + + +- ++ + + + +@@ -137,10 +137,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bug-cl-5212.exp b/pengine/test10/bug-cl-5212.exp +index 344711b..4ee6d88 100644 +--- a/pengine/test10/bug-cl-5212.exp ++++ b/pengine/test10/bug-cl-5212.exp +@@ -41,9 +41,9 @@ + + + +- ++ + +- ++ + + + +@@ -54,9 +54,9 @@ + + + +- ++ + +- ++ + + + +@@ -76,7 +76,7 @@ + + + +- ++ + + + +@@ -106,7 +106,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/bug-cl-5247.exp b/pengine/test10/bug-cl-5247.exp +index 7f55c64..c21ed7d 100644 +--- a/pengine/test10/bug-cl-5247.exp ++++ b/pengine/test10/bug-cl-5247.exp +@@ -451,7 +451,7 @@ + + + +- ++ + + + +@@ -464,7 +464,7 @@ + + + +- ++ + + + +@@ -477,7 +477,7 @@ + + + +- ++ + + + +@@ -534,7 +534,7 @@ + + + +- ++ + + + +@@ -564,7 +564,7 @@ + + + +- ++ + + + +@@ -644,7 +644,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/bug-lf-2153.exp b/pengine/test10/bug-lf-2153.exp +index abe1554..6b8713c 100644 +--- a/pengine/test10/bug-lf-2153.exp ++++ b/pengine/test10/bug-lf-2153.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -62,7 +62,7 @@ + + + +- ++ + + + +@@ -92,10 +92,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bug-lf-2317.exp b/pengine/test10/bug-lf-2317.exp +index cf84cd5..a50bce3 100644 +--- a/pengine/test10/bug-lf-2317.exp ++++ b/pengine/test10/bug-lf-2317.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -103,10 +103,10 @@ + + + +- ++ + + +- ++ + + + +@@ -136,10 +136,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bundle-order-fencing.dot b/pengine/test10/bundle-order-fencing.dot +index 980bab4..e53a062 100644 +--- a/pengine/test10/bundle-order-fencing.dot ++++ b/pengine/test10/bundle-order-fencing.dot +@@ -114,7 +114,6 @@ digraph "g" { + "rabbitmq-bundle-1_monitor_0 controller-2" [ style=bold color="green" fontcolor="black"] + "rabbitmq-bundle-2_monitor_0 controller-1" [ style=bold color="green" fontcolor="black"] + "rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq-bundle_running_0" [ style = bold] +-"rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] + "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange"] + "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] + "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "rabbitmq-bundle-clone_pre_notify_start_0" [ style = bold] +@@ -127,17 +126,12 @@ digraph "g" { + "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" -> "rabbitmq-bundle-clone_stop_0" [ style = bold] + "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange"] + "rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +-"rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq_post_notify_running_0 rabbitmq-bundle-0" [ style = bold] +-"rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq_post_notify_running_0 rabbitmq-bundle-1" [ style = bold] +-"rabbitmq-bundle-clone_post_notify_running_0" -> "rabbitmq_post_notify_running_0 rabbitmq-bundle-2" [ style = bold] + "rabbitmq-bundle-clone_post_notify_running_0" [ style=bold color="green" fontcolor="orange"] + "rabbitmq-bundle-clone_post_notify_stopped_0" -> "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" [ style = bold] + "rabbitmq-bundle-clone_post_notify_stopped_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" [ style = bold] + "rabbitmq-bundle-clone_post_notify_stopped_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-2" [ style = bold] + "rabbitmq-bundle-clone_post_notify_stopped_0" [ style=bold color="green" fontcolor="orange"] + "rabbitmq-bundle-clone_pre_notify_start_0" -> "rabbitmq-bundle-clone_confirmed-pre_notify_start_0" [ style = bold] +-"rabbitmq-bundle-clone_pre_notify_start_0" -> "rabbitmq_pre_notify_start_0 rabbitmq-bundle-1" [ style = bold] +-"rabbitmq-bundle-clone_pre_notify_start_0" -> "rabbitmq_pre_notify_start_0 rabbitmq-bundle-2" [ style = bold] + "rabbitmq-bundle-clone_pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] + "rabbitmq-bundle-clone_pre_notify_stop_0" -> "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style = bold] + "rabbitmq-bundle-clone_pre_notify_stop_0" -> "rabbitmq_pre_notify_stop_0 rabbitmq-bundle-1" [ style = bold] +@@ -168,12 +162,6 @@ digraph "g" { + "rabbitmq_confirmed-post_notify_stonith_0" -> "all_stopped" [ style = bold] + "rabbitmq_confirmed-post_notify_stonith_0" [ style=bold color="green" fontcolor="orange"] + "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style=dashed color="red" fontcolor="black"] +-"rabbitmq_post_notify_running_0 rabbitmq-bundle-0" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +-"rabbitmq_post_notify_running_0 rabbitmq-bundle-0" [ style=bold color="green" fontcolor="black"] +-"rabbitmq_post_notify_running_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +-"rabbitmq_post_notify_running_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +-"rabbitmq_post_notify_running_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style = bold] +-"rabbitmq_post_notify_running_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] + "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" [ style = bold] + "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" -> "rabbitmq_confirmed-post_notify_stonith_0" [ style = bold] + "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +@@ -184,10 +172,6 @@ digraph "g" { + "rabbitmq_post_notify_stonith_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-1" [ style = bold] + "rabbitmq_post_notify_stonith_0" -> "rabbitmq_post_notify_stonith_0 rabbitmq-bundle-2" [ style = bold] + "rabbitmq_post_notify_stonith_0" [ style=bold color="green" fontcolor="orange"] +-"rabbitmq_pre_notify_start_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-pre_notify_start_0" [ style = bold] +-"rabbitmq_pre_notify_start_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] +-"rabbitmq_pre_notify_start_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-pre_notify_start_0" [ style = bold] +-"rabbitmq_pre_notify_start_0 rabbitmq-bundle-2" [ style=bold color="green" fontcolor="black"] + "rabbitmq_pre_notify_stop_0 rabbitmq-bundle-1" -> "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style = bold] + "rabbitmq_pre_notify_stop_0 rabbitmq-bundle-1" [ style=bold color="green" fontcolor="black"] + "rabbitmq_pre_notify_stop_0 rabbitmq-bundle-2" -> "rabbitmq-bundle-clone_confirmed-pre_notify_stop_0" [ style = bold] +@@ -231,9 +215,6 @@ digraph "g" { + "redis-bundle-master_confirmed-post_notify_promoted_0" [ style=bold color="green" fontcolor="orange"] + "redis-bundle-master_confirmed-post_notify_running_0" -> "redis-bundle-master_pre_notify_promote_0" [ style = bold] + "redis-bundle-master_confirmed-post_notify_running_0" -> "redis-bundle_running_0" [ style = bold] +-"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_20000 redis-bundle-1" [ style = bold] +-"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +-"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] + "redis-bundle-master_confirmed-post_notify_running_0" [ style=bold color="green" fontcolor="orange"] + "redis-bundle-master_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] + "redis-bundle-master_confirmed-post_notify_stopped_0" -> "redis-bundle-master_pre_notify_promote_0" [ style = bold] +@@ -271,9 +252,6 @@ digraph "g" { + "redis-bundle-master_post_notify_promoted_0" -> "redis_post_notify_promoted_0 redis-bundle-2" [ style = bold] + "redis-bundle-master_post_notify_promoted_0" [ style=bold color="green" fontcolor="orange"] + "redis-bundle-master_post_notify_running_0" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +-"redis-bundle-master_post_notify_running_0" -> "redis_post_notify_running_0 redis-bundle-0" [ style = bold] +-"redis-bundle-master_post_notify_running_0" -> "redis_post_notify_running_0 redis-bundle-1" [ style = bold] +-"redis-bundle-master_post_notify_running_0" -> "redis_post_notify_running_0 redis-bundle-2" [ style = bold] + "redis-bundle-master_post_notify_running_0" [ style=bold color="green" fontcolor="orange"] + "redis-bundle-master_post_notify_stopped_0" -> "redis-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] + "redis-bundle-master_post_notify_stopped_0" -> "redis_post_notify_stonith_0 redis-bundle-1" [ style = bold] +@@ -289,8 +267,6 @@ digraph "g" { + "redis-bundle-master_pre_notify_promote_0" -> "redis_pre_notify_promote_0 redis-bundle-2" [ style = bold] + "redis-bundle-master_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange"] + "redis-bundle-master_pre_notify_start_0" -> "redis-bundle-master_confirmed-pre_notify_start_0" [ style = bold] +-"redis-bundle-master_pre_notify_start_0" -> "redis_pre_notify_start_0 redis-bundle-1" [ style = bold] +-"redis-bundle-master_pre_notify_start_0" -> "redis_pre_notify_start_0 redis-bundle-2" [ style = bold] + "redis-bundle-master_pre_notify_start_0" [ style=bold color="green" fontcolor="orange"] + "redis-bundle-master_pre_notify_stop_0" -> "redis-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] + "redis-bundle-master_pre_notify_stop_0" -> "redis_pre_notify_stop_0 redis-bundle-1" [ style = bold] +@@ -355,12 +331,6 @@ digraph "g" { + "redis_post_notify_promoted_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] + "redis_post_notify_promoted_0 redis-bundle-2" -> "redis-bundle-master_confirmed-post_notify_promoted_0" [ style = bold] + "redis_post_notify_promoted_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +-"redis_post_notify_running_0 redis-bundle-0" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +-"redis_post_notify_running_0 redis-bundle-0" [ style=bold color="green" fontcolor="black"] +-"redis_post_notify_running_0 redis-bundle-1" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +-"redis_post_notify_running_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +-"redis_post_notify_running_0 redis-bundle-2" -> "redis-bundle-master_confirmed-post_notify_running_0" [ style = bold] +-"redis_post_notify_running_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] + "redis_post_notify_stonith_0 redis-bundle-1" -> "redis-bundle-master_confirmed-post_notify_stopped_0" [ style = bold] + "redis_post_notify_stonith_0 redis-bundle-1" -> "redis_confirmed-post_notify_stonith_0" [ style = bold] + "redis_post_notify_stonith_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +@@ -381,10 +351,6 @@ digraph "g" { + "redis_pre_notify_promote_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] + "redis_pre_notify_promote_0 redis-bundle-2" -> "redis-bundle-master_confirmed-pre_notify_promote_0" [ style = bold] + "redis_pre_notify_promote_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] +-"redis_pre_notify_start_0 redis-bundle-1" -> "redis-bundle-master_confirmed-pre_notify_start_0" [ style = bold] +-"redis_pre_notify_start_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] +-"redis_pre_notify_start_0 redis-bundle-2" -> "redis-bundle-master_confirmed-pre_notify_start_0" [ style = bold] +-"redis_pre_notify_start_0 redis-bundle-2" [ style=bold color="green" fontcolor="black"] + "redis_pre_notify_stop_0 redis-bundle-1" -> "redis-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] + "redis_pre_notify_stop_0 redis-bundle-1" [ style=bold color="green" fontcolor="black"] + "redis_pre_notify_stop_0 redis-bundle-2" -> "redis-bundle-master_confirmed-pre_notify_stop_0" [ style = bold] +diff --git a/pengine/test10/bundle-order-fencing.exp b/pengine/test10/bundle-order-fencing.exp +index dc4c5c9..599c299 100644 +--- a/pengine/test10/bundle-order-fencing.exp ++++ b/pengine/test10/bundle-order-fencing.exp +@@ -1,19 +1,6 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- + + + +@@ -30,7 +17,7 @@ + + + +- ++ + + + +@@ -42,10 +29,10 @@ + + + +- ++ + + +- ++ + + + +@@ -57,11 +44,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -70,37 +57,11 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + + + +- ++ + + + +@@ -112,11 +73,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -125,37 +86,11 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + + + +- ++ + + + +@@ -167,7 +102,7 @@ + + + +- ++ + + + +@@ -185,7 +120,7 @@ + + + +- ++ + + + +@@ -200,7 +135,7 @@ + + + +- ++ + + + +@@ -211,14 +146,14 @@ + + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -226,7 +161,7 @@ + + + +- ++ + + + +@@ -241,7 +176,7 @@ + + + +- ++ + + + +@@ -259,7 +194,7 @@ + + + +- ++ + + + +@@ -269,18 +204,9 @@ + + + +- +- +- +- +- +- +- +- +- + + +- ++ + + + +@@ -295,7 +221,7 @@ + + + +- ++ + + + +@@ -305,15 +231,9 @@ + + + +- +- +- +- +- +- + + +- ++ + + + +@@ -325,7 +245,7 @@ + + + +- ++ + + + +@@ -337,7 +257,7 @@ + + + +- ++ + + + +@@ -355,7 +275,7 @@ + + + +- ++ + + + +@@ -373,7 +293,7 @@ + + + +- ++ + + + +@@ -381,7 +301,7 @@ + + + +- ++ + + + +@@ -390,7 +310,7 @@ + + + +- ++ + + + +@@ -399,7 +319,7 @@ + + + +- ++ + + + +@@ -408,7 +328,7 @@ + + + +- ++ + + + +@@ -417,7 +337,7 @@ + + + +- ++ + + + +@@ -435,7 +355,7 @@ + + + +- ++ + + + +@@ -447,7 +367,7 @@ + + + +- ++ + + + +@@ -462,7 +382,7 @@ + + + +- ++ + + + +@@ -474,7 +394,7 @@ + + + +- ++ + + + +@@ -489,7 +409,7 @@ + + + +- ++ + + + +@@ -507,7 +427,7 @@ + + + +- ++ + + + +@@ -519,7 +439,7 @@ + + + +- ++ + + + +@@ -537,7 +457,7 @@ + + + +- ++ + + + +@@ -555,7 +475,7 @@ + + + +- ++ + + + +@@ -563,7 +483,7 @@ + + + +- ++ + + + +@@ -572,7 +492,7 @@ + + + +- ++ + + + +@@ -581,7 +501,7 @@ + + + +- ++ + + + +@@ -590,7 +510,7 @@ + + + +- ++ + + + +@@ -599,11 +519,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -612,11 +532,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -625,20 +545,7 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + + + +@@ -656,7 +563,7 @@ + + + +- ++ + + + +@@ -668,10 +575,10 @@ + + + +- ++ + + +- ++ + + + +@@ -686,10 +593,10 @@ + + + +- ++ + + +- ++ + + + +@@ -698,11 +605,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -711,11 +618,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -724,11 +631,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -737,11 +644,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -750,11 +657,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -763,37 +670,11 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + + + +- ++ + + + +@@ -805,7 +686,7 @@ + + + +- ++ + + + +@@ -817,9 +698,6 @@ + + + +- +- +- + + + +@@ -833,11 +711,11 @@ + + + +- ++ + + + +- ++ + + + +@@ -855,7 +733,7 @@ + + + +- ++ + + + +@@ -864,7 +742,7 @@ + + + +- ++ + + + +@@ -873,11 +751,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -886,11 +764,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -899,11 +777,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -912,11 +790,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -925,11 +803,11 @@ + + + +- ++ + +- ++ + +- ++ + + + +@@ -938,37 +816,11 @@ + + + +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ + + + +- ++ + + + +@@ -980,7 +832,7 @@ + + + +- ++ + + + +@@ -991,14 +843,14 @@ + + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -1013,7 +865,7 @@ + + + +- ++ + + + +@@ -1024,14 +876,14 @@ + + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -1039,7 +891,7 @@ + + + +- ++ + + + +@@ -1054,7 +906,7 @@ + + + +- ++ + + + +@@ -1069,7 +921,7 @@ + + + +- ++ + + + +@@ -1080,17 +932,17 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -1105,7 +957,7 @@ + + + +- ++ + + + +@@ -1116,17 +968,17 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -1144,7 +996,7 @@ + + + +- ++ + + + +@@ -1156,7 +1008,7 @@ + + + +- ++ + + + +@@ -1180,7 +1032,7 @@ + + + +- ++ + + + +@@ -1198,7 +1050,7 @@ + + + +- ++ + + + +@@ -1213,7 +1065,7 @@ + + + +- ++ + + + +@@ -1224,14 +1076,14 @@ + + + +- ++ + + +- ++ + + + +- ++ + + + +@@ -1243,7 +1095,7 @@ + + + +- ++ + + + +@@ -1258,7 +1110,7 @@ + + + +- ++ + + + +@@ -1279,7 +1131,7 @@ + + + +- ++ + + + +@@ -1289,18 +1141,9 @@ + + + +- +- +- +- +- +- +- +- +- + + +- ++ + + + +@@ -1315,7 +1158,7 @@ + + + +- ++ + + + +@@ -1325,15 +1168,9 @@ + + + +- +- +- +- +- +- + + +- ++ + + + +@@ -1348,7 +1185,7 @@ + + + +- ++ + + + +@@ -1360,7 +1197,7 @@ + + + +- ++ + + + +@@ -1381,7 +1218,7 @@ + + + +- ++ + + + +@@ -1399,7 +1236,7 @@ + + + +- ++ + + + +@@ -1407,7 +1244,7 @@ + + + +- ++ + + + +@@ -1416,7 +1253,7 @@ + + + +- ++ + + + +@@ -1425,7 +1262,7 @@ + + + +- ++ + + + +@@ -1434,7 +1271,7 @@ + + + +- ++ + + + +@@ -1443,7 +1280,7 @@ + + + +- ++ + + + +@@ -1456,7 +1293,7 @@ + + + +- ++ + + + +@@ -1472,7 +1309,7 @@ + + + +- ++ + + + +@@ -1487,7 +1324,7 @@ + + + +- ++ + + + +@@ -1500,7 +1337,7 @@ + + + +- ++ + + + +@@ -1516,7 +1353,7 @@ + + + +- ++ + + + +@@ -1531,7 +1368,7 @@ + + + +- ++ + + + +@@ -1544,7 +1381,7 @@ + + + +- ++ + + + +@@ -1560,7 +1397,7 @@ + + + +- ++ + + + +@@ -1575,7 +1412,7 @@ + + + +- ++ + + + +@@ -1590,7 +1427,7 @@ + + + +- ++ + + + +@@ -1603,7 +1440,7 @@ + + + +- ++ + + + +@@ -1616,7 +1453,7 @@ + + + +- ++ + + + +@@ -1624,7 +1461,7 @@ + + + +- ++ + + + +@@ -1637,7 +1474,7 @@ + + + +- ++ + + + +@@ -1650,7 +1487,7 @@ + + + +- ++ + + + +@@ -1658,7 +1495,7 @@ + + + +- ++ + + + +@@ -1673,7 +1510,7 @@ + + + +- ++ + + + +@@ -1688,7 +1525,7 @@ + + + +- ++ + + + +@@ -1703,7 +1540,7 @@ + + + +- ++ + + + +@@ -1724,7 +1561,7 @@ + + + +- ++ + + + +@@ -1736,7 +1573,7 @@ + + + +- ++ + + + +@@ -1744,7 +1581,7 @@ + + + +- ++ + + + +@@ -1759,7 +1596,7 @@ + + + +- ++ + + + +@@ -1767,7 +1604,7 @@ + + + +- ++ + + + +@@ -1779,7 +1616,7 @@ + + + +- ++ + + + +@@ -1797,7 +1634,7 @@ + + + +- ++ + + + +@@ -1812,7 +1649,7 @@ + + + +- ++ + + + +@@ -1824,7 +1661,7 @@ + + + +- ++ + + + +@@ -1836,7 +1673,7 @@ + + + +- ++ + + + +@@ -1851,7 +1688,7 @@ + + + +- ++ + + + +@@ -1866,7 +1703,7 @@ + + + +- ++ + + + +@@ -1874,7 +1711,7 @@ + + + +- ++ + + + +@@ -1889,7 +1726,7 @@ + + + +- ++ + + + +@@ -1901,7 +1738,7 @@ + + + +- ++ + + + +@@ -1913,7 +1750,7 @@ + + + +- ++ + + + +@@ -1928,7 +1765,7 @@ + + + +- ++ + + + +@@ -1943,7 +1780,7 @@ + + + +- ++ + + + +@@ -1951,7 +1788,7 @@ + + + +- ++ + + + +@@ -1963,7 +1800,7 @@ + + + +- ++ + + + +@@ -1971,7 +1808,7 @@ + + + +- ++ + + + +@@ -2040,7 +1877,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/bundle-order-fencing.summary b/pengine/test10/bundle-order-fencing.summary +index 0457f83..d398a12 100644 +--- a/pengine/test10/bundle-order-fencing.summary ++++ b/pengine/test10/bundle-order-fencing.summary +@@ -147,8 +147,6 @@ Executing cluster transition: + * Pseudo action: redis-bundle-docker-0_stop_0 + * Pseudo action: rabbitmq-bundle_stopped_0 + * Pseudo action: rabbitmq_notified_0 +- * Resource action: rabbitmq notify on rabbitmq-bundle-1 +- * Resource action: rabbitmq notify on rabbitmq-bundle-2 + * Pseudo action: rabbitmq-bundle-clone_confirmed-pre_notify_start_0 + * Pseudo action: rabbitmq-bundle-clone_start_0 + * Pseudo action: galera-bundle-master_running_0 +@@ -164,22 +162,14 @@ Executing cluster transition: + * Pseudo action: redis-bundle-master_pre_notify_start_0 + * Pseudo action: redis-bundle_stopped_0 + * Pseudo action: redis-bundle_start_0 +- * Resource action: rabbitmq notify on rabbitmq-bundle-0 +- * Resource action: rabbitmq notify on rabbitmq-bundle-1 +- * Resource action: rabbitmq notify on rabbitmq-bundle-2 + * Pseudo action: rabbitmq-bundle-clone_confirmed-post_notify_running_0 + * Pseudo action: redis_notified_0 +- * Resource action: redis notify on redis-bundle-1 +- * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-pre_notify_start_0 + * Pseudo action: redis-bundle-master_start_0 + * Pseudo action: rabbitmq-bundle_running_0 + * Pseudo action: all_stopped + * Pseudo action: redis-bundle-master_running_0 + * Pseudo action: redis-bundle-master_post_notify_running_0 +- * Resource action: redis notify on redis-bundle-0 +- * Resource action: redis notify on redis-bundle-1 +- * Resource action: redis notify on redis-bundle-2 + * Pseudo action: redis-bundle-master_confirmed-post_notify_running_0 + * Pseudo action: redis-bundle_running_0 + * Pseudo action: redis-bundle-master_pre_notify_promote_0 +diff --git a/pengine/test10/bundle-order-partial-start-2.exp b/pengine/test10/bundle-order-partial-start-2.exp +index afba801..bf9a0b0 100644 +--- a/pengine/test10/bundle-order-partial-start-2.exp ++++ b/pengine/test10/bundle-order-partial-start-2.exp +@@ -315,7 +315,7 @@ + + + +- ++ + + + +@@ -328,7 +328,7 @@ + + + +- ++ + + + +@@ -379,7 +379,7 @@ + + + +- ++ + + + +@@ -409,7 +409,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/bundle-order-partial-start.exp b/pengine/test10/bundle-order-partial-start.exp +index cb10bad..8e28f19 100644 +--- a/pengine/test10/bundle-order-partial-start.exp ++++ b/pengine/test10/bundle-order-partial-start.exp +@@ -296,7 +296,7 @@ + + + +- ++ + + + +@@ -309,7 +309,7 @@ + + + +- ++ + + + +@@ -360,7 +360,7 @@ + + + +- ++ + + + +@@ -390,7 +390,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/bundle-order-partial-stop.dot b/pengine/test10/bundle-order-partial-stop.dot +index 5d0c039..6bad4ab 100644 +--- a/pengine/test10/bundle-order-partial-stop.dot ++++ b/pengine/test10/bundle-order-partial-stop.dot +@@ -112,7 +112,6 @@ digraph "g" { + "rabbitmq-bundle-0_stop_0 undercloud" -> "do_shutdown undercloud" [ style = bold] + "rabbitmq-bundle-0_stop_0 undercloud" -> "rabbitmq-bundle-docker-0_stop_0 undercloud" [ style = bold] + "rabbitmq-bundle-0_stop_0 undercloud" [ style=bold color="green" fontcolor="black"] +-"rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] + "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style=dashed color="red" fontcolor="orange"] + "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] + "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "rabbitmq-bundle-clone_pre_notify_start_0" [ style = dashed] +@@ -178,8 +177,6 @@ digraph "g" { + "redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] + "redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] + "redis-bundle-master_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange"] +-"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +-"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] + "redis-bundle-master_confirmed-post_notify_running_0" [ style=dashed color="red" fontcolor="orange"] + "redis-bundle-master_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] + "redis-bundle-master_confirmed-post_notify_stopped_0" -> "redis-bundle-master_pre_notify_start_0" [ style = dashed] +diff --git a/pengine/test10/bundle-order-partial-stop.exp b/pengine/test10/bundle-order-partial-stop.exp +index 6119950..89d87aa 100644 +--- a/pengine/test10/bundle-order-partial-stop.exp ++++ b/pengine/test10/bundle-order-partial-stop.exp +@@ -3,7 +3,7 @@ + + + +- ++ + + + +@@ -16,7 +16,7 @@ + + + +- ++ + + + +@@ -280,7 +280,7 @@ + + + +- ++ + + + +@@ -293,7 +293,7 @@ + + + +- ++ + + + +@@ -306,7 +306,7 @@ + + + +- ++ + + + +@@ -319,7 +319,7 @@ + + + +- ++ + + + +@@ -338,7 +338,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/bundle-order-startup-clone.dot b/pengine/test10/bundle-order-startup-clone.dot +index 8426bd2..a23a2fe 100644 +--- a/pengine/test10/bundle-order-startup-clone.dot ++++ b/pengine/test10/bundle-order-startup-clone.dot +@@ -118,9 +118,6 @@ digraph "g" { + "redis:0_start_0 redis-bundle-0" -> "redis:0_monitor_60000 redis-bundle-0" [ style = bold] + "redis:0_start_0 redis-bundle-0" [ style=bold color="green" fontcolor="black"] + "storage-clone_confirmed-post_notify_running_0" -> "galera-bundle_start_0" [ style = dashed] +-"storage-clone_confirmed-post_notify_running_0" -> "storage:0_monitor_30000 metal-1" [ style = dashed] +-"storage-clone_confirmed-post_notify_running_0" -> "storage:1_monitor_30000 metal-2" [ style = dashed] +-"storage-clone_confirmed-post_notify_running_0" -> "storage:2_monitor_30000 metal-3" [ style = dashed] + "storage-clone_confirmed-post_notify_running_0" [ style=dashed color="red" fontcolor="orange"] + "storage-clone_confirmed-pre_notify_start_0" -> "storage-clone_post_notify_running_0" [ style = dashed] + "storage-clone_confirmed-pre_notify_start_0" -> "storage-clone_start_0" [ style = dashed] +diff --git a/pengine/test10/bundle-order-stop-clone.exp b/pengine/test10/bundle-order-stop-clone.exp +index 3e3fe77..3e66f54 100644 +--- a/pengine/test10/bundle-order-stop-clone.exp ++++ b/pengine/test10/bundle-order-stop-clone.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -53,7 +53,7 @@ + + + +- ++ + + + +@@ -66,7 +66,7 @@ + + + +- ++ + + + +@@ -88,10 +88,10 @@ + + + +- ++ + + +- ++ + + + +@@ -121,13 +121,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bundle-order-stop-on-remote.exp b/pengine/test10/bundle-order-stop-on-remote.exp +index db5386b..96588dc 100644 +--- a/pengine/test10/bundle-order-stop-on-remote.exp ++++ b/pengine/test10/bundle-order-stop-on-remote.exp +@@ -588,7 +588,7 @@ + + + +- ++ + + + +@@ -601,7 +601,7 @@ + + + +- ++ + + + +@@ -614,7 +614,7 @@ + + + +- ++ + + + +@@ -627,7 +627,7 @@ + + + +- ++ + + + +@@ -675,7 +675,7 @@ + + + +- ++ + + + +@@ -688,7 +688,7 @@ + + + +- ++ + + + +@@ -701,7 +701,7 @@ + + + +- ++ + + + +@@ -780,7 +780,7 @@ + + + +- ++ + + + +@@ -793,7 +793,7 @@ + + + +- ++ + + + +@@ -806,7 +806,7 @@ + + + +- ++ + + + +@@ -819,7 +819,7 @@ + + + +- ++ + + + +@@ -841,13 +841,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -877,13 +877,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -940,13 +940,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -976,10 +976,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/bundle-order-stop.dot b/pengine/test10/bundle-order-stop.dot +index 5d0c039..6bad4ab 100644 +--- a/pengine/test10/bundle-order-stop.dot ++++ b/pengine/test10/bundle-order-stop.dot +@@ -112,7 +112,6 @@ digraph "g" { + "rabbitmq-bundle-0_stop_0 undercloud" -> "do_shutdown undercloud" [ style = bold] + "rabbitmq-bundle-0_stop_0 undercloud" -> "rabbitmq-bundle-docker-0_stop_0 undercloud" [ style = bold] + "rabbitmq-bundle-0_stop_0 undercloud" [ style=bold color="green" fontcolor="black"] +-"rabbitmq-bundle-clone_confirmed-post_notify_running_0" -> "rabbitmq_monitor_10000 rabbitmq-bundle-0" [ style = dashed] + "rabbitmq-bundle-clone_confirmed-post_notify_running_0" [ style=dashed color="red" fontcolor="orange"] + "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] + "rabbitmq-bundle-clone_confirmed-post_notify_stopped_0" -> "rabbitmq-bundle-clone_pre_notify_start_0" [ style = dashed] +@@ -178,8 +177,6 @@ digraph "g" { + "redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] + "redis-bundle-master_confirmed-post_notify_demoted_0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] + "redis-bundle-master_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange"] +-"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_45000 redis-bundle-0" [ style = dashed] +-"redis-bundle-master_confirmed-post_notify_running_0" -> "redis_monitor_60000 redis-bundle-0" [ style = dashed] + "redis-bundle-master_confirmed-post_notify_running_0" [ style=dashed color="red" fontcolor="orange"] + "redis-bundle-master_confirmed-post_notify_stopped_0" -> "all_stopped" [ style = bold] + "redis-bundle-master_confirmed-post_notify_stopped_0" -> "redis-bundle-master_pre_notify_start_0" [ style = dashed] +diff --git a/pengine/test10/bundle-order-stop.exp b/pengine/test10/bundle-order-stop.exp +index 6119950..89d87aa 100644 +--- a/pengine/test10/bundle-order-stop.exp ++++ b/pengine/test10/bundle-order-stop.exp +@@ -3,7 +3,7 @@ + + + +- ++ + + + +@@ -16,7 +16,7 @@ + + + +- ++ + + + +@@ -280,7 +280,7 @@ + + + +- ++ + + + +@@ -293,7 +293,7 @@ + + + +- ++ + + + +@@ -306,7 +306,7 @@ + + + +- ++ + + + +@@ -319,7 +319,7 @@ + + + +- ++ + + + +@@ -338,7 +338,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/colo_master_w_native.exp b/pengine/test10/colo_master_w_native.exp +index 2803879..ffa773f 100644 +--- a/pengine/test10/colo_master_w_native.exp ++++ b/pengine/test10/colo_master_w_native.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -85,7 +85,7 @@ + + + +- ++ + + + +@@ -98,7 +98,7 @@ + + + +- ++ + + + +@@ -111,7 +111,7 @@ + + + +- ++ + + + +@@ -124,7 +124,7 @@ + + + +- ++ + + + +@@ -171,10 +171,10 @@ + + + +- ++ + + +- ++ + + + +@@ -204,10 +204,10 @@ + + + +- ++ + + +- ++ + + + +@@ -257,10 +257,10 @@ + + + +- ++ + + +- ++ + + + +@@ -290,10 +290,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/colo_slave_w_native.exp b/pengine/test10/colo_slave_w_native.exp +index e5ec984..a548923 100644 +--- a/pengine/test10/colo_slave_w_native.exp ++++ b/pengine/test10/colo_slave_w_native.exp +@@ -36,7 +36,7 @@ + + + +- ++ + + + +@@ -49,7 +49,7 @@ + + + +- ++ + + + +@@ -62,7 +62,7 @@ + + + +- ++ + + + +@@ -75,7 +75,7 @@ + + + +- ++ + + + +@@ -120,7 +120,7 @@ + + + +- ++ + + + +@@ -133,7 +133,7 @@ + + + +- ++ + + + +@@ -146,7 +146,7 @@ + + + +- ++ + + + +@@ -159,7 +159,7 @@ + + + +- ++ + + + +@@ -206,10 +206,10 @@ + + + +- ++ + + +- ++ + + + +@@ -239,10 +239,10 @@ + + + +- ++ + + +- ++ + + + +@@ -292,10 +292,10 @@ + + + +- ++ + + +- ++ + + + +@@ -325,10 +325,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/group-dependents.exp b/pengine/test10/group-dependents.exp +index 607e9d7..0df62f0 100644 +--- a/pengine/test10/group-dependents.exp ++++ b/pengine/test10/group-dependents.exp +@@ -1262,7 +1262,7 @@ + + + +- ++ + + + +@@ -1275,7 +1275,7 @@ + + + +- ++ + + + +@@ -1288,7 +1288,7 @@ + + + +- ++ + + + +@@ -1301,7 +1301,7 @@ + + + +- ++ + + + +@@ -1346,7 +1346,7 @@ + + + +- ++ + + + +@@ -1359,7 +1359,7 @@ + + + +- ++ + + + +@@ -1372,7 +1372,7 @@ + + + +- ++ + + + +@@ -1385,7 +1385,7 @@ + + + +- ++ + + + +@@ -1432,10 +1432,10 @@ + + + +- ++ + + +- ++ + + + +@@ -1465,10 +1465,10 @@ + + + +- ++ + + +- ++ + + + +@@ -1521,10 +1521,10 @@ + + + +- ++ + + +- ++ + + + +@@ -1554,10 +1554,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/inc10.exp b/pengine/test10/inc10.exp +index 3779287..742d124 100644 +--- a/pengine/test10/inc10.exp ++++ b/pengine/test10/inc10.exp +@@ -37,7 +37,7 @@ + + + +- ++ + + + +@@ -50,7 +50,7 @@ + + + +- ++ + + + +@@ -63,7 +63,7 @@ + + + +- ++ + + + +@@ -89,7 +89,7 @@ + + + +- ++ + + + +@@ -102,7 +102,7 @@ + + + +- ++ + + + +@@ -115,7 +115,7 @@ + + + +- ++ + + + +@@ -128,7 +128,7 @@ + + + +- ++ + + + +@@ -150,13 +150,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -186,16 +186,16 @@ + + + +- ++ + + +- ++ + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/interleave-pseudo-stop.exp b/pengine/test10/interleave-pseudo-stop.exp +index 63217e8..97faf46 100644 +--- a/pengine/test10/interleave-pseudo-stop.exp ++++ b/pengine/test10/interleave-pseudo-stop.exp +@@ -43,7 +43,7 @@ + + + +- ++ + + + +@@ -159,7 +159,7 @@ + + + +- ++ + + + +@@ -209,7 +209,7 @@ + + + +- ++ + + + +@@ -319,7 +319,7 @@ + + + +- ++ + + + +@@ -363,7 +363,7 @@ + + + +- ++ + + + +@@ -473,7 +473,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/interleave-stop.exp b/pengine/test10/interleave-stop.exp +index a4c524f..35a8428 100644 +--- a/pengine/test10/interleave-stop.exp ++++ b/pengine/test10/interleave-stop.exp +@@ -37,7 +37,7 @@ + + + +- ++ + + + +@@ -50,7 +50,7 @@ + + + +- ++ + + + +@@ -63,7 +63,7 @@ + + + +- ++ + + + +@@ -104,7 +104,7 @@ + + + +- ++ + + + +@@ -134,10 +134,10 @@ + + + +- ++ + + +- ++ + + + +@@ -184,7 +184,7 @@ + + + +- ++ + + + +@@ -197,7 +197,7 @@ + + + +- ++ + + + +@@ -210,7 +210,7 @@ + + + +- ++ + + + +@@ -245,7 +245,7 @@ + + + +- ++ + + + +@@ -275,10 +275,10 @@ + + + +- ++ + + +- ++ + + + +@@ -319,7 +319,7 @@ + + + +- ++ + + + +@@ -332,7 +332,7 @@ + + + +- ++ + + + +@@ -345,7 +345,7 @@ + + + +- ++ + + + +@@ -380,7 +380,7 @@ + + + +- ++ + + + +@@ -410,10 +410,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/master-13.exp b/pengine/test10/master-13.exp +index 1e09ee1..94b8d59 100644 +--- a/pengine/test10/master-13.exp ++++ b/pengine/test10/master-13.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -97,7 +97,7 @@ + + + +- ++ + + + +@@ -110,7 +110,7 @@ + + + +- ++ + + + +@@ -123,7 +123,7 @@ + + + +- ++ + + + +@@ -136,7 +136,7 @@ + + + +- ++ + + + +@@ -202,10 +202,10 @@ + + + +- ++ + + +- ++ + + + +@@ -235,10 +235,10 @@ + + + +- ++ + + +- ++ + + + +@@ -288,10 +288,10 @@ + + + +- ++ + + +- ++ + + + +@@ -321,10 +321,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/master-demote.exp b/pengine/test10/master-demote.exp +index 8909056..91cd0bc 100644 +--- a/pengine/test10/master-demote.exp ++++ b/pengine/test10/master-demote.exp +@@ -23,7 +23,7 @@ + + + +- ++ + + + +@@ -36,7 +36,7 @@ + + + +- ++ + + + +@@ -49,7 +49,7 @@ + + + +- ++ + + + +@@ -62,7 +62,7 @@ + + + +- ++ + + + +@@ -113,10 +113,10 @@ + + + +- ++ + + +- ++ + + + +@@ -146,10 +146,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/master-dependent-ban.exp b/pengine/test10/master-dependent-ban.exp +index 99a6e94..caea6e3 100644 +--- a/pengine/test10/master-dependent-ban.exp ++++ b/pengine/test10/master-dependent-ban.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -56,7 +56,7 @@ + + + +- ++ + + + +@@ -69,7 +69,7 @@ + + + +- ++ + + + +@@ -104,10 +104,10 @@ + + + +- ++ + + +- ++ + + + +@@ -137,10 +137,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/master-failed-demote.exp b/pengine/test10/master-failed-demote.exp +index 1d27dc5..7cbfdfa 100644 +--- a/pengine/test10/master-failed-demote.exp ++++ b/pengine/test10/master-failed-demote.exp +@@ -28,7 +28,7 @@ + + + +- ++ + + + +@@ -81,7 +81,7 @@ + + + +- ++ + + + +@@ -94,7 +94,7 @@ + + + +- ++ + + + +@@ -107,7 +107,7 @@ + + + +- ++ + + + +@@ -120,7 +120,7 @@ + + + +- ++ + + + +@@ -177,7 +177,7 @@ + + + +- ++ + + + +@@ -190,7 +190,7 @@ + + + +- ++ + + + +@@ -203,7 +203,7 @@ + + + +- ++ + + + +@@ -216,7 +216,7 @@ + + + +- ++ + + + +@@ -285,10 +285,10 @@ + + + +- ++ + + +- ++ + + + +@@ -318,10 +318,10 @@ + + + +- ++ + + +- ++ + + + +@@ -375,10 +375,10 @@ + + + +- ++ + + +- ++ + + + +@@ -408,13 +408,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/master-move.exp b/pengine/test10/master-move.exp +index e77005f..536e583 100644 +--- a/pengine/test10/master-move.exp ++++ b/pengine/test10/master-move.exp +@@ -182,7 +182,7 @@ + + + +- ++ + + + +@@ -195,7 +195,7 @@ + + + +- ++ + + + +@@ -208,7 +208,7 @@ + + + +- ++ + + + +@@ -221,7 +221,7 @@ + + + +- ++ + + + +@@ -278,7 +278,7 @@ + + + +- ++ + + + +@@ -291,7 +291,7 @@ + + + +- ++ + + + +@@ -304,7 +304,7 @@ + + + +- ++ + + + +@@ -317,7 +317,7 @@ + + + +- ++ + + + +@@ -383,10 +383,10 @@ + + + +- ++ + + +- ++ + + + +@@ -416,10 +416,10 @@ + + + +- ++ + + +- ++ + + + +@@ -472,10 +472,10 @@ + + + +- ++ + + +- ++ + + + +@@ -505,10 +505,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/master-notify.exp b/pengine/test10/master-notify.exp +index 0f6295c..7a73136 100644 +--- a/pengine/test10/master-notify.exp ++++ b/pengine/test10/master-notify.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -53,7 +53,7 @@ + + + +- ++ + + + +@@ -66,7 +66,7 @@ + + + +- ++ + + + +@@ -79,7 +79,7 @@ + + + +- ++ + + + +@@ -101,13 +101,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +@@ -137,13 +137,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/master-partially-demoted-group.exp b/pengine/test10/master-partially-demoted-group.exp +index fecf3c5..32a30fe 100644 +--- a/pengine/test10/master-partially-demoted-group.exp ++++ b/pengine/test10/master-partially-demoted-group.exp +@@ -493,7 +493,7 @@ + + + +- ++ + + + +@@ -506,7 +506,7 @@ + + + +- ++ + + + +@@ -519,7 +519,7 @@ + + + +- ++ + + + +@@ -532,7 +532,7 @@ + + + +- ++ + + + +@@ -577,7 +577,7 @@ + + + +- ++ + + + +@@ -590,7 +590,7 @@ + + + +- ++ + + + +@@ -603,7 +603,7 @@ + + + +- ++ + + + +@@ -616,7 +616,7 @@ + + + +- ++ + + + +@@ -670,10 +670,10 @@ + + + +- ++ + + +- ++ + + + +@@ -703,10 +703,10 @@ + + + +- ++ + + +- ++ + + + +@@ -759,10 +759,10 @@ + + + +- ++ + + +- ++ + + + +@@ -792,10 +792,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/novell-239082.exp b/pengine/test10/novell-239082.exp +index 9453656..c6d0221 100644 +--- a/pengine/test10/novell-239082.exp ++++ b/pengine/test10/novell-239082.exp +@@ -26,7 +26,7 @@ + + + +- ++ + + + +@@ -39,7 +39,7 @@ + + + +- ++ + + + +@@ -52,7 +52,7 @@ + + + +- ++ + + + +@@ -65,7 +65,7 @@ + + + +- ++ + + + +@@ -78,7 +78,7 @@ + + + +- ++ + + + +@@ -91,7 +91,7 @@ + + + +- ++ + + + +@@ -117,7 +117,7 @@ + + + +- ++ + + + +@@ -130,7 +130,7 @@ + + + +- ++ + + + +@@ -143,7 +143,7 @@ + + + +- ++ + + + +@@ -194,10 +194,10 @@ + + + +- ++ + + +- ++ + + + +@@ -227,10 +227,10 @@ + + + +- ++ + + +- ++ + + + +@@ -283,7 +283,7 @@ + + + +- ++ + + + +@@ -313,7 +313,7 @@ + + + +- ++ + + + +@@ -373,7 +373,7 @@ + + + +- ++ + + + +@@ -403,10 +403,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/novell-252693.exp b/pengine/test10/novell-252693.exp +index 43da979..82486d2 100644 +--- a/pengine/test10/novell-252693.exp ++++ b/pengine/test10/novell-252693.exp +@@ -77,7 +77,7 @@ + + + +- ++ + + + +@@ -90,7 +90,7 @@ + + + +- ++ + + + +@@ -103,7 +103,7 @@ + + + +- ++ + + + +@@ -138,7 +138,7 @@ + + + +- ++ + + + +@@ -168,10 +168,10 @@ + + + +- ++ + + +- ++ + + + +@@ -218,7 +218,7 @@ + + + +- ++ + + + +@@ -231,7 +231,7 @@ + + + +- ++ + + + +@@ -244,7 +244,7 @@ + + + +- ++ + + + +@@ -279,7 +279,7 @@ + + + +- ++ + + + +@@ -309,10 +309,10 @@ + + + +- ++ + + +- ++ + + + +@@ -353,7 +353,7 @@ + + + +- ++ + + + +@@ -366,7 +366,7 @@ + + + +- ++ + + + +@@ -379,7 +379,7 @@ + + + +- ++ + + + +@@ -414,7 +414,7 @@ + + + +- ++ + + + +@@ -444,10 +444,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/one-or-more-unrunnable-instances.exp b/pengine/test10/one-or-more-unrunnable-instances.exp +index 45ae3b6..ff156a4 100644 +--- a/pengine/test10/one-or-more-unrunnable-instances.exp ++++ b/pengine/test10/one-or-more-unrunnable-instances.exp +@@ -4300,7 +4300,7 @@ + + + +- ++ + + + +@@ -4345,7 +4345,7 @@ + + + +- ++ + + + +@@ -4390,7 +4390,7 @@ + + + +- ++ + + + +@@ -4444,13 +4444,13 @@ + + + +- ++ + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/order_constraint_stops_master.dot b/pengine/test10/order_constraint_stops_master.dot +index b2ebc9f..359d3fe 100644 +--- a/pengine/test10/order_constraint_stops_master.dot ++++ b/pengine/test10/order_constraint_stops_master.dot +@@ -3,7 +3,6 @@ + "MASTER_RSC_A_confirmed-post_notify_demoted_0" -> "MASTER_RSC_A_pre_notify_stop_0" [ style = bold] + "MASTER_RSC_A_confirmed-post_notify_demoted_0" -> "NATIVE_RSC_A:0_monitor_20000 fc16-builder" [ style = dashed] + "MASTER_RSC_A_confirmed-post_notify_demoted_0" [ style=bold color="green" fontcolor="orange"] +-"MASTER_RSC_A_confirmed-post_notify_running_0" -> "NATIVE_RSC_A:0_monitor_20000 fc16-builder" [ style = dashed] + "MASTER_RSC_A_confirmed-post_notify_running_0" [ style=dashed color="red" fontcolor="orange"] + "MASTER_RSC_A_confirmed-post_notify_stopped_0" -> "MASTER_RSC_A_pre_notify_start_0" [ style = dashed] + "MASTER_RSC_A_confirmed-post_notify_stopped_0" -> "NATIVE_RSC_B_stop_0 fc16-builder2" [ style = bold] +diff --git a/pengine/test10/order_constraint_stops_master.exp b/pengine/test10/order_constraint_stops_master.exp +index 551e186..22355bc 100644 +--- a/pengine/test10/order_constraint_stops_master.exp ++++ b/pengine/test10/order_constraint_stops_master.exp +@@ -3,7 +3,7 @@ + + + +- ++ + + + +@@ -16,7 +16,7 @@ + + + +- ++ + + + +@@ -29,7 +29,7 @@ + + + +- ++ + + + +@@ -42,7 +42,7 @@ + + + +- ++ + + + +@@ -58,7 +58,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/order_constraint_stops_slave.dot b/pengine/test10/order_constraint_stops_slave.dot +index 90e1311..b7a48eb 100644 +--- a/pengine/test10/order_constraint_stops_slave.dot ++++ b/pengine/test10/order_constraint_stops_slave.dot +@@ -1,5 +1,4 @@ + digraph "g" { +-"MASTER_RSC_A_confirmed-post_notify_running_0" -> "NATIVE_RSC_A:0_monitor_30000 fc16-builder" [ style = dashed] + "MASTER_RSC_A_confirmed-post_notify_running_0" [ style=dashed color="red" fontcolor="orange"] + "MASTER_RSC_A_confirmed-post_notify_stopped_0" -> "MASTER_RSC_A_pre_notify_start_0" [ style = dashed] + "MASTER_RSC_A_confirmed-post_notify_stopped_0" -> "NATIVE_RSC_B_stop_0 fc16-builder" [ style = bold] +diff --git a/pengine/test10/order_constraint_stops_slave.exp b/pengine/test10/order_constraint_stops_slave.exp +index 1a7d5da..96c7a72 100644 +--- a/pengine/test10/order_constraint_stops_slave.exp ++++ b/pengine/test10/order_constraint_stops_slave.exp +@@ -3,7 +3,7 @@ + + + +- ++ + + + +@@ -16,7 +16,7 @@ + + + +- ++ + + + +diff --git a/pengine/test10/probe-0.exp b/pengine/test10/probe-0.exp +index fe866a4..d65acb6 100644 +--- a/pengine/test10/probe-0.exp ++++ b/pengine/test10/probe-0.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -36,7 +36,7 @@ + + + +- ++ + + + +@@ -80,10 +80,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/probe-2.exp b/pengine/test10/probe-2.exp +index e8fbcff..72cc32a 100644 +--- a/pengine/test10/probe-2.exp ++++ b/pengine/test10/probe-2.exp +@@ -1,7 +1,7 @@ + + + +- ++ + + + +@@ -14,7 +14,7 @@ + + + +- ++ + + + +@@ -27,7 +27,7 @@ + + + +- ++ + + + +@@ -40,7 +40,7 @@ + + + +- ++ + + + +@@ -53,7 +53,7 @@ + + + +- ++ + + + +@@ -66,7 +66,7 @@ + + + +- ++ + + + +@@ -126,7 +126,7 @@ + + + +- ++ + + + +@@ -139,7 +139,7 @@ + + + +- ++ + + + +@@ -152,7 +152,7 @@ + + + +- ++ + + + +@@ -203,10 +203,10 @@ + + + +- ++ + + +- ++ + + + +@@ -236,10 +236,10 @@ + + + +- ++ + + +- ++ + + + +@@ -292,7 +292,7 @@ + + + +- ++ + + + +@@ -322,7 +322,7 @@ + + + +- ++ + + + +@@ -382,7 +382,7 @@ + + + +- ++ + + + +@@ -412,10 +412,10 @@ + + + +- ++ + + +- ++ + + + +@@ -666,7 +666,7 @@ + + + +- ++ + + + +@@ -679,7 +679,7 @@ + + + +- ++ + + + +@@ -692,7 +692,7 @@ + + + +- ++ + + + +@@ -727,7 +727,7 @@ + + + +- ++ + + + +@@ -757,10 +757,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/remote-recover-all.exp b/pengine/test10/remote-recover-all.exp +index 556ccfd..fd2cf82 100644 +--- a/pengine/test10/remote-recover-all.exp ++++ b/pengine/test10/remote-recover-all.exp +@@ -310,7 +310,7 @@ + + + +- ++ + + + +@@ -339,7 +339,7 @@ + + + +- ++ + + + +@@ -410,10 +410,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/remote-recover-connection.exp b/pengine/test10/remote-recover-connection.exp +index 40338b4..a9dd475 100644 +--- a/pengine/test10/remote-recover-connection.exp ++++ b/pengine/test10/remote-recover-connection.exp +@@ -187,7 +187,7 @@ + + + +- ++ + + + +@@ -216,7 +216,7 @@ + + + +- ++ + + + +@@ -287,10 +287,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/remote-recover-no-resources.exp b/pengine/test10/remote-recover-no-resources.exp +index 0a57e27..09b012b 100644 +--- a/pengine/test10/remote-recover-no-resources.exp ++++ b/pengine/test10/remote-recover-no-resources.exp +@@ -221,7 +221,7 @@ + + + +- ++ + + + +@@ -250,7 +250,7 @@ + + + +- ++ + + + +@@ -321,10 +321,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/remote-recover-unknown.exp b/pengine/test10/remote-recover-unknown.exp +index 0d7b318..0a1d170 100644 +--- a/pengine/test10/remote-recover-unknown.exp ++++ b/pengine/test10/remote-recover-unknown.exp +@@ -221,7 +221,7 @@ + + + +- ++ + + + +@@ -250,7 +250,7 @@ + + + +- ++ + + + +@@ -321,10 +321,10 @@ + + + +- ++ + + +- ++ + + + +diff --git a/pengine/test10/remote-recovery.exp b/pengine/test10/remote-recovery.exp +index 40338b4..a9dd475 100644 +--- a/pengine/test10/remote-recovery.exp ++++ b/pengine/test10/remote-recovery.exp +@@ -187,7 +187,7 @@ + + + +- ++ + + + +@@ -216,7 +216,7 @@ + + + +- ++ + + + +@@ -287,10 +287,10 @@ + + + +- ++ + + +- ++ + + + +-- +1.8.3.1 + diff --git a/SOURCES/014-segfault.patch b/SOURCES/014-segfault.patch new file mode 100644 index 0000000..2718f82 --- /dev/null +++ b/SOURCES/014-segfault.patch @@ -0,0 +1,27 @@ +From b2ab0f457e4fc594d98379abf2bd92ddc0bc018c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= +Date: Tue, 3 Apr 2018 23:53:44 +0200 +Subject: [PATCH] High: pengine: fix swapped warning message arguments leading + to segfault + +...when triggered. Present since 9cf01f5f9 (or since 1.1.17). +--- + lib/pengine/failcounts.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/pengine/failcounts.c b/lib/pengine/failcounts.c +index 53c0f14..e217176 100644 +--- a/lib/pengine/failcounts.c ++++ b/lib/pengine/failcounts.c +@@ -268,7 +268,7 @@ pe_get_failcount(node_t *node, resource_t *rsc, time_t *last_failure, + && block_failure(node, rsc, xml_op, data_set)) { + + pe_warn("Ignoring failure timeout %d for %s because it conflicts with on-fail=block", +- rsc->id, rsc->failure_timeout); ++ rsc->failure_timeout, rsc->id); + rsc->failure_timeout = 0; + } + +-- +1.8.3.1 + diff --git a/SOURCES/015-fail-timeout.patch b/SOURCES/015-fail-timeout.patch new file mode 100644 index 0000000..02148fd --- /dev/null +++ b/SOURCES/015-fail-timeout.patch @@ -0,0 +1,43 @@ +From 74171d10462e11e46c67c3aabbbc4e1185a334d4 Mon Sep 17 00:00:00 2001 +From: Andrew Beekhof +Date: Wed, 11 Apr 2018 11:48:13 +1000 +Subject: [PATCH] Fix: rhbz#1565187 - Ensure failures that cause fencing are + not removed until after fencing completes + +--- + lib/pengine/unpack.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c +index 355cdcf..3a4a7cc 100644 +--- a/lib/pengine/unpack.c ++++ b/lib/pengine/unpack.c +@@ -2949,6 +2949,7 @@ static bool check_operation_expiry(resource_t *rsc, node_t *node, int rc, xmlNod + } + + if (clear_reason != NULL) { ++ node_t *remote_node = pe_find_node(data_set->nodes, rsc->id); + char *key = generate_op_key(rsc->id, CRM_OP_CLEAR_FAILCOUNT, 0); + action_t *clear_op = custom_action(rsc, key, CRM_OP_CLEAR_FAILCOUNT, + node, FALSE, TRUE, data_set); +@@ -2957,6 +2958,17 @@ static bool check_operation_expiry(resource_t *rsc, node_t *node, int rc, xmlNod + + crm_notice("Clearing failure of %s on %s because %s " CRM_XS " %s", + rsc->id, node->details->uname, clear_reason, clear_op->uuid); ++ ++ if (is_set(data_set->flags, pe_flag_stonith_enabled) ++ && rsc->remote_reconnect_interval ++ && remote_node ++ && remote_node->details->unclean) { ++ ++ action_t *fence = pe_fence_op(remote_node, NULL, TRUE, NULL, data_set); ++ crm_notice("Waiting for %s to complete before clearing %s failure for remote node %s", fence?fence->uuid:"nil", task, rsc->id); ++ ++ order_actions(fence, clear_op, pe_order_implies_then); ++ } + } + + crm_element_value_int(xml_op, XML_LRM_ATTR_INTERVAL, &interval); +-- +1.8.3.1 + diff --git a/SOURCES/016-crm_diff.patch b/SOURCES/016-crm_diff.patch new file mode 100644 index 0000000..dce31a2 --- /dev/null +++ b/SOURCES/016-crm_diff.patch @@ -0,0 +1,105 @@ +From a5c0782c0012b812ad0939a4aec5842f05dc1129 Mon Sep 17 00:00:00 2001 +From: Andrew Beekhof +Date: Sun, 15 Apr 2018 20:41:01 +1000 +Subject: [PATCH] Fix: crm_diff: rhbz#1561617 - Ignore attribute placement when + comparing in 'cib' mode + +--- + include/crm/common/xml.h | 1 + + lib/common/xml.c | 28 ++++++++++++++++++++++++---- + tools/crm_diff.c | 6 +++++- + 3 files changed, 30 insertions(+), 5 deletions(-) + +diff --git a/include/crm/common/xml.h b/include/crm/common/xml.h +index 8297bb2..69ad4bd 100644 +--- a/include/crm/common/xml.h ++++ b/include/crm/common/xml.h +@@ -380,6 +380,7 @@ bool xml_tracking_changes(xmlNode * xml); + bool xml_document_dirty(xmlNode *xml); + void xml_track_changes(xmlNode * xml, const char *user, xmlNode *acl_source, bool enforce_acls); + void xml_calculate_changes(xmlNode * old, xmlNode * new); /* For comparing two documents after the fact */ ++void xml_calculate_significant_changes(xmlNode *old_xml, xmlNode *new_xml); + void xml_accept_changes(xmlNode * xml); + void xml_log_changes(uint8_t level, const char *function, xmlNode *xml); + void xml_log_patchset(uint8_t level, const char *function, xmlNode *xml); +diff --git a/lib/common/xml.c b/lib/common/xml.c +index 947ddfe..8fd4778 100644 +--- a/lib/common/xml.c ++++ b/lib/common/xml.c +@@ -72,6 +72,7 @@ enum xml_private_flags { + + xpf_acl_create = 0x1000, + xpf_acl_denied = 0x2000, ++ xpf_lazy = 0x4000, + }; + + typedef struct xml_private_s +@@ -115,10 +116,22 @@ static inline bool TRACKING_CHANGES(xmlNode *xml) + { + if(xml == NULL || xml->doc == NULL || xml->doc->_private == NULL) { + return FALSE; +- } else if(is_set(((xml_private_t *)xml->doc->_private)->flags, xpf_tracking)) { +- return TRUE; ++ } else if(is_not_set(((xml_private_t *)xml->doc->_private)->flags, xpf_tracking)) { ++ return FALSE; + } +- return FALSE; ++ return TRUE; ++} ++ ++static inline bool TRACKING_CHANGES_LAZY(xmlNode *xml) ++{ ++ if(xml == NULL || xml->doc == NULL || xml->doc->_private == NULL) { ++ return FALSE; ++ } else if(is_not_set(((xml_private_t *)xml->doc->_private)->flags, xpf_tracking)) { ++ return FALSE; ++ } else if(is_not_set(((xml_private_t *)xml->doc->_private)->flags, xpf_lazy)) { ++ return FALSE; ++ } ++ return TRUE; + } + + #define buffer_print(buffer, max, offset, fmt, args...) do { \ +@@ -4084,7 +4097,7 @@ __xml_diff_object(xmlNode * old, xmlNode * new) + crm_xml_add(new, name, vcopy); + free(vcopy); + +- } else if(p_old != p_new) { ++ } else if(p_old != p_new && TRACKING_CHANGES_LAZY(new) == FALSE) { + crm_info("Moved %s@%s (%d -> %d)", old->name, name, p_old, p_new); + __xml_node_dirty(new); + p->flags |= xpf_dirty|xpf_moved; +@@ -4184,6 +4197,13 @@ __xml_diff_object(xmlNode * old, xmlNode * new) + } + + void ++xml_calculate_significant_changes(xmlNode *old_xml, xmlNode *new_xml) ++{ ++ set_doc_flag(new_xml, xpf_lazy); ++ xml_calculate_changes(old_xml, new_xml); ++} ++ ++void + xml_calculate_changes(xmlNode * old, xmlNode * new) + { + CRM_CHECK(safe_str_eq(crm_element_name(old), crm_element_name(new)), return); +diff --git a/tools/crm_diff.c b/tools/crm_diff.c +index 20e7a27..0ec8e44 100644 +--- a/tools/crm_diff.c ++++ b/tools/crm_diff.c +@@ -190,7 +190,11 @@ generate_patch(xmlNode *object_1, xmlNode *object_2, const char *xml_file_2, + } + + xml_track_changes(object_2, NULL, object_2, FALSE); +- xml_calculate_changes(object_1, object_2); ++ if(as_cib) { ++ xml_calculate_significant_changes(object_1, object_2); ++ } else { ++ xml_calculate_changes(object_1, object_2); ++ } + crm_log_xml_debug(object_2, (xml_file_2? xml_file_2: "target")); + + output = xml_create_patchset(0, object_1, object_2, NULL, FALSE); +-- +1.8.3.1 + diff --git a/SOURCES/017-pending-notify.patch b/SOURCES/017-pending-notify.patch new file mode 100644 index 0000000..e667ca9 --- /dev/null +++ b/SOURCES/017-pending-notify.patch @@ -0,0 +1,44 @@ +From 8e9a9d1aa3cceb8f310ed3db9b31b2eab9490330 Mon Sep 17 00:00:00 2001 +From: Ken Gaillot +Date: Thu, 19 Apr 2018 17:17:51 -0500 +Subject: [PATCH] Fix: libcrmcommon: don't record pending notify actions as + completed + +... especially relevant now that record-pending defaults to true. +--- + lib/common/operations.c | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/lib/common/operations.c b/lib/common/operations.c +index 4afef80..3ca5939 100644 +--- a/lib/common/operations.c ++++ b/lib/common/operations.c +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2004-2017 Andrew Beekhof ++ * Copyright 2004-2018 Andrew Beekhof + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. +@@ -513,9 +513,15 @@ create_operation_update(xmlNode * parent, lrmd_event_data_t * op, const char * c + CRM_LOG_ASSERT(n_task != NULL); + op_id = generate_notify_key(op->rsc_id, n_type, n_task); + +- /* these are not yet allowed to fail */ +- op->op_status = PCMK_LRM_OP_DONE; +- op->rc = 0; ++ if (op->op_status != PCMK_LRM_OP_PENDING) { ++ /* Ignore notify errors. ++ * ++ * @TODO We really should keep the actual result here, and ignore it ++ * when processing the CIB diff. ++ */ ++ op->op_status = PCMK_LRM_OP_DONE; ++ op->rc = 0; ++ } + + } else if (did_rsc_op_fail(op, target_rc)) { + op_id = generate_op_key(op->rsc_id, "last_failure", 0); +-- +1.8.3.1 + diff --git a/SPECS/pacemaker.spec b/SPECS/pacemaker.spec index 8df165d..1b78478 100644 --- a/SPECS/pacemaker.spec +++ b/SPECS/pacemaker.spec @@ -79,8 +79,8 @@ ## propagated by systemd project ## - when not good enough, there's always a possibility to check ## particular distro-specific macros (incl. version comparison) -%define systemd_native (%{?_unitdir:1}%{?!_unitdir:0}%{nil \ - } || %{?__transaction_systemd_inhibit:1}%{?!__transaction_systemd_inhibit:0}%{nil \ +%define systemd_native (%{?_unitdir:1}%{!?_unitdir:0}%{nil \ + } || %{?__transaction_systemd_inhibit:1}%{!?__transaction_systemd_inhibit:0}%{nil \ } || %(test -f /usr/lib/os-release; test $? -ne 0; echo $?)) ## Upstream commit to use for nagios-agents-metadata package @@ -163,7 +163,7 @@ Name: pacemaker Summary: Scalable High-Availability cluster resource manager Version: %{pcmkversion} -Release: %{pcmk_release}%{?dist} +Release: %{pcmk_release}%{?dist}.2 %if %{defined _unitdir} License: GPLv2+ and LGPLv2+ %else @@ -189,6 +189,13 @@ Patch7: 007-bundles.patch Patch8: 008-quorum.patch Patch9: 009-crm_resource.patch Patch10: 010-crm_master.patch +Patch11: 011-regression-tests.patch +Patch12: 012-notifs.patch +Patch13: 013-notifs-tests.patch +Patch14: 014-segfault.patch +Patch15: 015-fail-timeout.patch +Patch16: 016-crm_diff.patch +Patch17: 017-pending-notify.patch # patches that aren't from upstream Patch100: lrmd-protocol-version.patch @@ -204,9 +211,7 @@ Obsoletes: rgmanager < 3.2.0 Provides: rgmanager >= 3.2.0 Provides: pcmk-cluster-manager -%if %{defined systemd_requires} -%systemd_requires -%endif +%{?systemd_requires} ExclusiveArch: i686 x86_64 ppc64le s390x @@ -296,6 +301,7 @@ be part of the cluster. License: GPLv2+ and LGPLv2+ Summary: Core Pacemaker libraries Group: System Environment/Daemons +Requires(pre): shadow-utils %description -n %{name}-libs Pacemaker is an advanced, scalable High-Availability cluster resource @@ -330,9 +336,8 @@ Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} Requires: resource-agents Provides: pcmk-cluster-manager -%if %{defined systemd_requires} -%systemd_requires -%endif +# -remote can be fully independent of systemd +%{?systemd_ordering}%{!?systemd_ordering:%{?systemd_requires}} %description remote Pacemaker is an advanced, scalable High-Availability cluster resource @@ -385,7 +390,7 @@ Requires: systemd-python Test framework for cluster-related technologies like Pacemaker %package doc -License: CC-BY-SA +License: CC-BY-SA-4.0 Summary: Documentation for Pacemaker Group: Documentation @@ -396,7 +401,7 @@ Pacemaker is an advanced, scalable High-Availability cluster resource manager for Corosync, CMAN and/or Linux-HA. %package nagios-plugins-metadata -License: GPLv2+ and LGPLv2+ +License: GPLv3 Summary: Pacemaker Nagios Metadata Group: System Environment/Daemons # NOTE below are the plugins this metadata uses. @@ -436,7 +441,7 @@ export CPPFLAGS="-DRHEL7_COMPAT" # Early versions of autotools (e.g. RHEL <= 5) do not support --docdir export docdir=%{pcmk_docdir} -export systemdunitdir=%{?_unitdir}%{?!_unitdir:no} +export systemdunitdir=%{?_unitdir}%{!?_unitdir:no} %if %{with hardening} # prefer distro-provided hardening flags in case they are defined @@ -863,6 +868,18 @@ exit 0 %attr(0644,root,root) %{_datadir}/pacemaker/nagios/plugins-metadata/* %changelog +* Fri Apr 20 2018 Ken Gaillot - 1.1.18-11.2 +- Do not record pending notify actions as completed +- Resolves: rhbz#1570618 + +* Wed Apr 18 2018 Ken Gaillot - 1.1.18-11.1 +- Do not schedule notifications for unrunnable actions +- Do not expire remote failures if fencing is pending +- Do not consider attribute order difference as CIB change in crm_diff +- Resolves: rhbz#1563345 +- Resolves: rhbz#1566533 +- Resolves: rhbz#1568720 + * Fri Jan 26 2018 Ken Gaillot - 1.1.18-11 - Fix regression in crm_master - Resolves: rhbz#1539113