diff --git a/SOURCES/pacemaker-31c6cc-enforce-colocation-fix-test.patch b/SOURCES/pacemaker-31c6cc-enforce-colocation-fix-test.patch new file mode 100644 index 0000000..4bd0169 --- /dev/null +++ b/SOURCES/pacemaker-31c6cc-enforce-colocation-fix-test.patch @@ -0,0 +1,7172 @@ +From 31c6cc60f3d8140f4a8972ac7b2c975cdecfe2af Mon Sep 17 00:00:00 2001 +From: David Vossel +Date: Tue, 17 Feb 2015 15:44:42 -0500 +Subject: [PATCH] Low: pengine: enforce colocation fix regression test + +--- + pengine/regression.sh | 2 + + pengine/test10/complex_enforce_colo.dot | 1257 +++++++++++++ + pengine/test10/complex_enforce_colo.exp | 2689 +++++++++++++++++++++++++++ + pengine/test10/complex_enforce_colo.scores | 844 +++++++++ + pengine/test10/complex_enforce_colo.summary | 452 +++++ + pengine/test10/complex_enforce_colo.xml | 1461 +++++++++++++++ + pengine/test10/enforce-colo1.dot | 31 + + pengine/test10/enforce-colo1.exp | 116 ++ + pengine/test10/enforce-colo1.scores | 31 + + pengine/test10/enforce-colo1.summary | 36 + + pengine/test10/enforce-colo1.xml | 150 ++ + 11 files changed, 7069 insertions(+) + create mode 100644 pengine/test10/complex_enforce_colo.dot + create mode 100644 pengine/test10/complex_enforce_colo.exp + create mode 100644 pengine/test10/complex_enforce_colo.scores + create mode 100644 pengine/test10/complex_enforce_colo.summary + create mode 100644 pengine/test10/complex_enforce_colo.xml + create mode 100644 pengine/test10/enforce-colo1.dot + create mode 100644 pengine/test10/enforce-colo1.exp + create mode 100644 pengine/test10/enforce-colo1.scores + create mode 100644 pengine/test10/enforce-colo1.summary + create mode 100644 pengine/test10/enforce-colo1.xml + +diff --git a/pengine/regression.sh b/pengine/regression.sh +index 93d4de1..b52e0f2 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -176,6 +176,8 @@ do_test coloc_fp_logic "Verify floating point calculations in colocation are wor + do_test colo_master_w_native "cl#5070 - Verify promotion order is affected when colocating master to native rsc." + do_test colo_slave_w_native "cl#5070 - Verify promotion order is affected when colocating slave to native rsc." + do_test anti-colocation-order "cl#5187 - Prevent resources in an anti-colocation from even temporarily running on a same node" ++do_test enforce-colo1 "Always enforce B with A INFINITY." ++do_test complex_enforce_colo "Always enforce B with A INFINITY. (make sure heat-engine stops)" + + echo "" + do_test rsc-sets-seq-true "Resource Sets - sequential=false" +diff --git a/pengine/test10/complex_enforce_colo.dot b/pengine/test10/complex_enforce_colo.dot +new file mode 100644 +index 0000000..a4811b8 +--- /dev/null ++++ b/pengine/test10/complex_enforce_colo.dot +@@ -0,0 +1,1257 @@ ++ digraph "g" { ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-alarm-evaluator-clone_running_0" -> "ceilometer-alarm-notifier-clone_start_0" [ style = dashed] ++"ceilometer-alarm-evaluator-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-alarm-evaluator-clone_start_0" -> "ceilometer-alarm-evaluator-clone_running_0" [ style = dashed] ++"ceilometer-alarm-evaluator-clone_start_0" -> "ceilometer-alarm-evaluator_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-evaluator-clone_start_0" -> "ceilometer-alarm-evaluator_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-evaluator-clone_start_0" -> "ceilometer-alarm-evaluator_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-evaluator-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-alarm-evaluator-clone_stop_0" -> "ceilometer-alarm-evaluator-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-evaluator-clone_stop_0" -> "ceilometer-alarm-evaluator_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-alarm-evaluator-clone_stop_0" -> "ceilometer-alarm-evaluator_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-alarm-evaluator-clone_stop_0" -> "ceilometer-alarm-evaluator_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-alarm-evaluator-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-alarm-evaluator-clone_stopped_0" -> "ceilometer-alarm-evaluator-clone_start_0" [ style = dashed] ++"ceilometer-alarm-evaluator-clone_stopped_0" -> "ceilometer-delay-clone_stop_0" [ style = bold] ++"ceilometer-alarm-evaluator-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-alarm-evaluator_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-evaluator_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-evaluator_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-evaluator_start_0 rhos6-node1" -> "ceilometer-alarm-evaluator-clone_running_0" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node1" -> "ceilometer-alarm-evaluator_monitor_60000 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node1" -> "ceilometer-alarm-notifier_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-evaluator_start_0 rhos6-node2" -> "ceilometer-alarm-evaluator-clone_running_0" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node2" -> "ceilometer-alarm-evaluator_monitor_60000 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node2" -> "ceilometer-alarm-notifier_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-evaluator_start_0 rhos6-node3" -> "ceilometer-alarm-evaluator-clone_running_0" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node3" -> "ceilometer-alarm-evaluator_monitor_60000 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node3" -> "ceilometer-alarm-notifier_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-evaluator_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node1" -> "ceilometer-alarm-evaluator-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node1" -> "ceilometer-alarm-evaluator_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node1" -> "ceilometer-delay_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node2" -> "ceilometer-alarm-evaluator-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node2" -> "ceilometer-alarm-evaluator_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node2" -> "ceilometer-delay_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node3" -> "ceilometer-alarm-evaluator-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node3" -> "ceilometer-alarm-evaluator_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node3" -> "ceilometer-delay_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-alarm-evaluator_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"ceilometer-alarm-notifier-clone_running_0" -> "ceilometer-notification-clone_start_0" [ style = dashed] ++"ceilometer-alarm-notifier-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-alarm-notifier-clone_start_0" -> "ceilometer-alarm-notifier-clone_running_0" [ style = dashed] ++"ceilometer-alarm-notifier-clone_start_0" -> "ceilometer-alarm-notifier_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-notifier-clone_start_0" -> "ceilometer-alarm-notifier_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-notifier-clone_start_0" -> "ceilometer-alarm-notifier_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-notifier-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-alarm-notifier-clone_stop_0" -> "ceilometer-alarm-notifier-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-notifier-clone_stop_0" -> "ceilometer-alarm-notifier_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-alarm-notifier-clone_stop_0" -> "ceilometer-alarm-notifier_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-alarm-notifier-clone_stop_0" -> "ceilometer-alarm-notifier_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-alarm-notifier-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-alarm-notifier-clone_stopped_0" -> "ceilometer-alarm-evaluator-clone_stop_0" [ style = bold] ++"ceilometer-alarm-notifier-clone_stopped_0" -> "ceilometer-alarm-notifier-clone_start_0" [ style = dashed] ++"ceilometer-alarm-notifier-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-alarm-notifier_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-notifier_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-notifier_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-notifier_start_0 rhos6-node1" -> "ceilometer-alarm-notifier-clone_running_0" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node1" -> "ceilometer-alarm-notifier_monitor_60000 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node1" -> "ceilometer-notification_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-notifier_start_0 rhos6-node2" -> "ceilometer-alarm-notifier-clone_running_0" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node2" -> "ceilometer-alarm-notifier_monitor_60000 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node2" -> "ceilometer-notification_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-notifier_start_0 rhos6-node3" -> "ceilometer-alarm-notifier-clone_running_0" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node3" -> "ceilometer-alarm-notifier_monitor_60000 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node3" -> "ceilometer-notification_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-notifier_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-alarm-notifier_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node1" -> "ceilometer-alarm-evaluator_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node1" -> "ceilometer-alarm-notifier-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node1" -> "ceilometer-alarm-notifier_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-alarm-notifier_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"ceilometer-alarm-notifier_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node2" -> "ceilometer-alarm-evaluator_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node2" -> "ceilometer-alarm-notifier-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node2" -> "ceilometer-alarm-notifier_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-alarm-notifier_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"ceilometer-alarm-notifier_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node3" -> "ceilometer-alarm-evaluator_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node3" -> "ceilometer-alarm-notifier-clone_stopped_0" [ style = bold] ++"ceilometer-alarm-notifier_stop_0 rhos6-node3" -> "ceilometer-alarm-notifier_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-alarm-notifier_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"ceilometer-api-clone_running_0" -> "ceilometer-delay-clone_start_0" [ style = dashed] ++"ceilometer-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-api-clone_start_0" -> "ceilometer-api-clone_running_0" [ style = dashed] ++"ceilometer-api-clone_start_0" -> "ceilometer-api_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-api-clone_start_0" -> "ceilometer-api_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-api-clone_start_0" -> "ceilometer-api_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-api-clone_stop_0" -> "ceilometer-api-clone_stopped_0" [ style = bold] ++"ceilometer-api-clone_stop_0" -> "ceilometer-api_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-api-clone_stop_0" -> "ceilometer-api_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-api-clone_stop_0" -> "ceilometer-api_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-api-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-api-clone_stopped_0" -> "ceilometer-api-clone_start_0" [ style = dashed] ++"ceilometer-api-clone_stopped_0" -> "ceilometer-collector-clone_stop_0" [ style = bold] ++"ceilometer-api-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-api_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-api_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-api_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-api_start_0 rhos6-node1" -> "ceilometer-api-clone_running_0" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node1" -> "ceilometer-api_monitor_60000 rhos6-node1" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node1" -> "ceilometer-delay_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-api_start_0 rhos6-node2" -> "ceilometer-api-clone_running_0" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node2" -> "ceilometer-api_monitor_60000 rhos6-node2" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node2" -> "ceilometer-delay_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-api_start_0 rhos6-node3" -> "ceilometer-api-clone_running_0" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node3" -> "ceilometer-api_monitor_60000 rhos6-node3" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node3" -> "ceilometer-delay_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-api_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-api_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node1" -> "ceilometer-api-clone_stopped_0" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node1" -> "ceilometer-api_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-api_stop_0 rhos6-node1" -> "ceilometer-collector_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"ceilometer-api_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node2" -> "ceilometer-api-clone_stopped_0" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node2" -> "ceilometer-api_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-api_stop_0 rhos6-node2" -> "ceilometer-collector_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"ceilometer-api_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node3" -> "ceilometer-api-clone_stopped_0" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node3" -> "ceilometer-api_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-api_stop_0 rhos6-node3" -> "ceilometer-collector_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-api_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"ceilometer-central_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-central_start_0 rhos6-node3" -> "ceilometer-central_monitor_60000 rhos6-node3" [ style = dashed] ++"ceilometer-central_start_0 rhos6-node3" -> "ceilometer-collector-clone_start_0" [ style = dashed] ++"ceilometer-central_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-central_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"ceilometer-central_stop_0 rhos6-node3" -> "ceilometer-central_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-central_stop_0 rhos6-node3" -> "keystone-clone_stop_0" [ style = bold] ++"ceilometer-central_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"ceilometer-collector-clone_running_0" -> "ceilometer-api-clone_start_0" [ style = dashed] ++"ceilometer-collector-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-collector-clone_start_0" -> "ceilometer-collector-clone_running_0" [ style = dashed] ++"ceilometer-collector-clone_start_0" -> "ceilometer-collector_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-collector-clone_start_0" -> "ceilometer-collector_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-collector-clone_start_0" -> "ceilometer-collector_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-collector-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-collector-clone_stop_0" -> "ceilometer-collector-clone_stopped_0" [ style = bold] ++"ceilometer-collector-clone_stop_0" -> "ceilometer-collector_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-collector-clone_stop_0" -> "ceilometer-collector_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-collector-clone_stop_0" -> "ceilometer-collector_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-collector-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-collector-clone_stopped_0" -> "ceilometer-central_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-collector-clone_stopped_0" -> "ceilometer-collector-clone_start_0" [ style = dashed] ++"ceilometer-collector-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-collector_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-collector_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-collector_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-collector_start_0 rhos6-node1" -> "ceilometer-api_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node1" -> "ceilometer-collector-clone_running_0" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node1" -> "ceilometer-collector_monitor_60000 rhos6-node1" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-collector_start_0 rhos6-node2" -> "ceilometer-api_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node2" -> "ceilometer-collector-clone_running_0" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node2" -> "ceilometer-collector_monitor_60000 rhos6-node2" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-collector_start_0 rhos6-node3" -> "ceilometer-api_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node3" -> "ceilometer-collector-clone_running_0" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node3" -> "ceilometer-collector_monitor_60000 rhos6-node3" [ style = dashed] ++"ceilometer-collector_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-collector_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"ceilometer-collector_stop_0 rhos6-node1" -> "ceilometer-collector-clone_stopped_0" [ style = bold] ++"ceilometer-collector_stop_0 rhos6-node1" -> "ceilometer-collector_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-collector_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"ceilometer-collector_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"ceilometer-collector_stop_0 rhos6-node2" -> "ceilometer-collector-clone_stopped_0" [ style = bold] ++"ceilometer-collector_stop_0 rhos6-node2" -> "ceilometer-collector_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-collector_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"ceilometer-collector_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"ceilometer-collector_stop_0 rhos6-node3" -> "ceilometer-collector-clone_stopped_0" [ style = bold] ++"ceilometer-collector_stop_0 rhos6-node3" -> "ceilometer-collector_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-collector_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"ceilometer-delay-clone_running_0" -> "ceilometer-alarm-evaluator-clone_start_0" [ style = dashed] ++"ceilometer-delay-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-delay-clone_start_0" -> "ceilometer-delay-clone_running_0" [ style = dashed] ++"ceilometer-delay-clone_start_0" -> "ceilometer-delay_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-delay-clone_start_0" -> "ceilometer-delay_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-delay-clone_start_0" -> "ceilometer-delay_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-delay-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-delay-clone_stop_0" -> "ceilometer-delay-clone_stopped_0" [ style = bold] ++"ceilometer-delay-clone_stop_0" -> "ceilometer-delay_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-delay-clone_stop_0" -> "ceilometer-delay_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-delay-clone_stop_0" -> "ceilometer-delay_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-delay-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-delay-clone_stopped_0" -> "ceilometer-api-clone_stop_0" [ style = bold] ++"ceilometer-delay-clone_stopped_0" -> "ceilometer-delay-clone_start_0" [ style = dashed] ++"ceilometer-delay-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-delay_monitor_10000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-delay_monitor_10000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-delay_monitor_10000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-delay_start_0 rhos6-node1" -> "ceilometer-alarm-evaluator_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node1" -> "ceilometer-delay-clone_running_0" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node1" -> "ceilometer-delay_monitor_10000 rhos6-node1" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-delay_start_0 rhos6-node2" -> "ceilometer-alarm-evaluator_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node2" -> "ceilometer-delay-clone_running_0" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node2" -> "ceilometer-delay_monitor_10000 rhos6-node2" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-delay_start_0 rhos6-node3" -> "ceilometer-alarm-evaluator_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node3" -> "ceilometer-delay-clone_running_0" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node3" -> "ceilometer-delay_monitor_10000 rhos6-node3" [ style = dashed] ++"ceilometer-delay_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-delay_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node1" -> "ceilometer-api_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node1" -> "ceilometer-delay-clone_stopped_0" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node1" -> "ceilometer-delay_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-delay_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"ceilometer-delay_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node2" -> "ceilometer-api_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node2" -> "ceilometer-delay-clone_stopped_0" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node2" -> "ceilometer-delay_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-delay_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"ceilometer-delay_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node3" -> "ceilometer-api_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node3" -> "ceilometer-delay-clone_stopped_0" [ style = bold] ++"ceilometer-delay_stop_0 rhos6-node3" -> "ceilometer-delay_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-delay_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"ceilometer-notification-clone_running_0" -> "heat-api-clone_start_0" [ style = dashed] ++"ceilometer-notification-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-notification-clone_start_0" -> "ceilometer-notification-clone_running_0" [ style = dashed] ++"ceilometer-notification-clone_start_0" -> "ceilometer-notification_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-notification-clone_start_0" -> "ceilometer-notification_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-notification-clone_start_0" -> "ceilometer-notification_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-notification-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"ceilometer-notification-clone_stop_0" -> "ceilometer-notification-clone_stopped_0" [ style = bold] ++"ceilometer-notification-clone_stop_0" -> "ceilometer-notification_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-notification-clone_stop_0" -> "ceilometer-notification_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-notification-clone_stop_0" -> "ceilometer-notification_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-notification-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-notification-clone_stopped_0" -> "ceilometer-alarm-notifier-clone_stop_0" [ style = bold] ++"ceilometer-notification-clone_stopped_0" -> "ceilometer-notification-clone_start_0" [ style = dashed] ++"ceilometer-notification-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"ceilometer-notification_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-notification_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-notification_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-notification_start_0 rhos6-node1" -> "ceilometer-notification-clone_running_0" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node1" -> "ceilometer-notification_monitor_60000 rhos6-node1" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node1" -> "heat-api_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-notification_start_0 rhos6-node2" -> "ceilometer-notification-clone_running_0" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node2" -> "ceilometer-notification_monitor_60000 rhos6-node2" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node2" -> "heat-api_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-notification_start_0 rhos6-node3" -> "ceilometer-notification-clone_running_0" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node3" -> "ceilometer-notification_monitor_60000 rhos6-node3" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node3" -> "heat-api_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-notification_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"ceilometer-notification_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node1" -> "ceilometer-alarm-notifier_stop_0 rhos6-node1" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node1" -> "ceilometer-notification-clone_stopped_0" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node1" -> "ceilometer-notification_start_0 rhos6-node1" [ style = dashed] ++"ceilometer-notification_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"ceilometer-notification_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node2" -> "ceilometer-alarm-notifier_stop_0 rhos6-node2" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node2" -> "ceilometer-notification-clone_stopped_0" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node2" -> "ceilometer-notification_start_0 rhos6-node2" [ style = dashed] ++"ceilometer-notification_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"ceilometer-notification_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node3" -> "ceilometer-alarm-notifier_stop_0 rhos6-node3" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node3" -> "ceilometer-notification-clone_stopped_0" [ style = bold] ++"ceilometer-notification_stop_0 rhos6-node3" -> "ceilometer-notification_start_0 rhos6-node3" [ style = dashed] ++"ceilometer-notification_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"cinder-api_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"cinder-api_start_0 rhos6-node1" -> "cinder-api_monitor_60000 rhos6-node1" [ style = dashed] ++"cinder-api_start_0 rhos6-node1" -> "cinder-scheduler_start_0 rhos6-node1" [ style = dashed] ++"cinder-api_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"cinder-api_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"cinder-api_stop_0 rhos6-node1" -> "cinder-api_start_0 rhos6-node1" [ style = dashed] ++"cinder-api_stop_0 rhos6-node1" -> "keystone-clone_stop_0" [ style = bold] ++"cinder-api_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"cinder-scheduler_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"cinder-scheduler_start_0 rhos6-node1" -> "cinder-scheduler_monitor_60000 rhos6-node1" [ style = dashed] ++"cinder-scheduler_start_0 rhos6-node1" -> "cinder-volume_start_0 rhos6-node1" [ style = dashed] ++"cinder-scheduler_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"cinder-scheduler_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"cinder-scheduler_stop_0 rhos6-node1" -> "cinder-api_stop_0 rhos6-node1" [ style = bold] ++"cinder-scheduler_stop_0 rhos6-node1" -> "cinder-scheduler_start_0 rhos6-node1" [ style = dashed] ++"cinder-scheduler_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"cinder-volume_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"cinder-volume_start_0 rhos6-node1" -> "cinder-volume_monitor_60000 rhos6-node1" [ style = dashed] ++"cinder-volume_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"cinder-volume_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"cinder-volume_stop_0 rhos6-node1" -> "cinder-scheduler_stop_0 rhos6-node1" [ style = bold] ++"cinder-volume_stop_0 rhos6-node1" -> "cinder-volume_start_0 rhos6-node1" [ style = dashed] ++"cinder-volume_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"glance-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"glance-api-clone_start_0" -> "glance-api-clone_running_0" [ style = dashed] ++"glance-api-clone_start_0" -> "glance-api_start_0 rhos6-node1" [ style = dashed] ++"glance-api-clone_start_0" -> "glance-api_start_0 rhos6-node2" [ style = dashed] ++"glance-api-clone_start_0" -> "glance-api_start_0 rhos6-node3" [ style = dashed] ++"glance-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"glance-api-clone_stop_0" -> "glance-api-clone_stopped_0" [ style = bold] ++"glance-api-clone_stop_0" -> "glance-api_stop_0 rhos6-node1" [ style = bold] ++"glance-api-clone_stop_0" -> "glance-api_stop_0 rhos6-node2" [ style = bold] ++"glance-api-clone_stop_0" -> "glance-api_stop_0 rhos6-node3" [ style = bold] ++"glance-api-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"glance-api-clone_stopped_0" -> "glance-api-clone_start_0" [ style = dashed] ++"glance-api-clone_stopped_0" -> "glance-registry-clone_stop_0" [ style = bold] ++"glance-api-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"glance-api_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"glance-api_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"glance-api_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"glance-api_start_0 rhos6-node1" -> "glance-api-clone_running_0" [ style = dashed] ++"glance-api_start_0 rhos6-node1" -> "glance-api_monitor_60000 rhos6-node1" [ style = dashed] ++"glance-api_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"glance-api_start_0 rhos6-node2" -> "glance-api-clone_running_0" [ style = dashed] ++"glance-api_start_0 rhos6-node2" -> "glance-api_monitor_60000 rhos6-node2" [ style = dashed] ++"glance-api_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"glance-api_start_0 rhos6-node3" -> "glance-api-clone_running_0" [ style = dashed] ++"glance-api_start_0 rhos6-node3" -> "glance-api_monitor_60000 rhos6-node3" [ style = dashed] ++"glance-api_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"glance-api_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"glance-api_stop_0 rhos6-node1" -> "glance-api-clone_stopped_0" [ style = bold] ++"glance-api_stop_0 rhos6-node1" -> "glance-api_start_0 rhos6-node1" [ style = dashed] ++"glance-api_stop_0 rhos6-node1" -> "glance-registry_stop_0 rhos6-node1" [ style = bold] ++"glance-api_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"glance-api_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"glance-api_stop_0 rhos6-node2" -> "glance-api-clone_stopped_0" [ style = bold] ++"glance-api_stop_0 rhos6-node2" -> "glance-api_start_0 rhos6-node2" [ style = dashed] ++"glance-api_stop_0 rhos6-node2" -> "glance-registry_stop_0 rhos6-node2" [ style = bold] ++"glance-api_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"glance-api_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"glance-api_stop_0 rhos6-node3" -> "glance-api-clone_stopped_0" [ style = bold] ++"glance-api_stop_0 rhos6-node3" -> "glance-api_start_0 rhos6-node3" [ style = dashed] ++"glance-api_stop_0 rhos6-node3" -> "glance-registry_stop_0 rhos6-node3" [ style = bold] ++"glance-api_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"glance-registry-clone_running_0" -> "glance-api-clone_start_0" [ style = dashed] ++"glance-registry-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"glance-registry-clone_start_0" -> "glance-registry-clone_running_0" [ style = dashed] ++"glance-registry-clone_start_0" -> "glance-registry_start_0 rhos6-node1" [ style = dashed] ++"glance-registry-clone_start_0" -> "glance-registry_start_0 rhos6-node2" [ style = dashed] ++"glance-registry-clone_start_0" -> "glance-registry_start_0 rhos6-node3" [ style = dashed] ++"glance-registry-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"glance-registry-clone_stop_0" -> "glance-registry-clone_stopped_0" [ style = bold] ++"glance-registry-clone_stop_0" -> "glance-registry_stop_0 rhos6-node1" [ style = bold] ++"glance-registry-clone_stop_0" -> "glance-registry_stop_0 rhos6-node2" [ style = bold] ++"glance-registry-clone_stop_0" -> "glance-registry_stop_0 rhos6-node3" [ style = bold] ++"glance-registry-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"glance-registry-clone_stopped_0" -> "glance-registry-clone_start_0" [ style = dashed] ++"glance-registry-clone_stopped_0" -> "keystone-clone_stop_0" [ style = bold] ++"glance-registry-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"glance-registry_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"glance-registry_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"glance-registry_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"glance-registry_start_0 rhos6-node1" -> "glance-registry-clone_running_0" [ style = dashed] ++"glance-registry_start_0 rhos6-node1" -> "glance-registry_monitor_60000 rhos6-node1" [ style = dashed] ++"glance-registry_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"glance-registry_start_0 rhos6-node2" -> "glance-registry-clone_running_0" [ style = dashed] ++"glance-registry_start_0 rhos6-node2" -> "glance-registry_monitor_60000 rhos6-node2" [ style = dashed] ++"glance-registry_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"glance-registry_start_0 rhos6-node3" -> "glance-registry-clone_running_0" [ style = dashed] ++"glance-registry_start_0 rhos6-node3" -> "glance-registry_monitor_60000 rhos6-node3" [ style = dashed] ++"glance-registry_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"glance-registry_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"glance-registry_stop_0 rhos6-node1" -> "glance-registry-clone_stopped_0" [ style = bold] ++"glance-registry_stop_0 rhos6-node1" -> "glance-registry_start_0 rhos6-node1" [ style = dashed] ++"glance-registry_stop_0 rhos6-node1" -> "keystone_stop_0 rhos6-node1" [ style = bold] ++"glance-registry_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"glance-registry_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"glance-registry_stop_0 rhos6-node2" -> "glance-registry-clone_stopped_0" [ style = bold] ++"glance-registry_stop_0 rhos6-node2" -> "glance-registry_start_0 rhos6-node2" [ style = dashed] ++"glance-registry_stop_0 rhos6-node2" -> "keystone_stop_0 rhos6-node2" [ style = bold] ++"glance-registry_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"glance-registry_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"glance-registry_stop_0 rhos6-node3" -> "glance-registry-clone_stopped_0" [ style = bold] ++"glance-registry_stop_0 rhos6-node3" -> "glance-registry_start_0 rhos6-node3" [ style = dashed] ++"glance-registry_stop_0 rhos6-node3" -> "keystone_stop_0 rhos6-node3" [ style = bold] ++"glance-registry_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"heat-api-cfn-clone_running_0" -> "heat-api-cloudwatch-clone_start_0" [ style = dashed] ++"heat-api-cfn-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"heat-api-cfn-clone_start_0" -> "heat-api-cfn-clone_running_0" [ style = dashed] ++"heat-api-cfn-clone_start_0" -> "heat-api-cfn_start_0 rhos6-node1" [ style = dashed] ++"heat-api-cfn-clone_start_0" -> "heat-api-cfn_start_0 rhos6-node2" [ style = dashed] ++"heat-api-cfn-clone_start_0" -> "heat-api-cfn_start_0 rhos6-node3" [ style = dashed] ++"heat-api-cfn-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"heat-api-cfn-clone_stop_0" -> "heat-api-cfn-clone_stopped_0" [ style = bold] ++"heat-api-cfn-clone_stop_0" -> "heat-api-cfn_stop_0 rhos6-node1" [ style = bold] ++"heat-api-cfn-clone_stop_0" -> "heat-api-cfn_stop_0 rhos6-node2" [ style = bold] ++"heat-api-cfn-clone_stop_0" -> "heat-api-cfn_stop_0 rhos6-node3" [ style = bold] ++"heat-api-cfn-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"heat-api-cfn-clone_stopped_0" -> "heat-api-cfn-clone_start_0" [ style = dashed] ++"heat-api-cfn-clone_stopped_0" -> "heat-api-clone_stop_0" [ style = bold] ++"heat-api-cfn-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"heat-api-cfn_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cfn_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cfn_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cfn_start_0 rhos6-node1" -> "heat-api-cfn-clone_running_0" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node1" -> "heat-api-cfn_monitor_60000 rhos6-node1" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node1" -> "heat-api-cloudwatch_start_0 rhos6-node1" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cfn_start_0 rhos6-node2" -> "heat-api-cfn-clone_running_0" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node2" -> "heat-api-cfn_monitor_60000 rhos6-node2" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node2" -> "heat-api-cloudwatch_start_0 rhos6-node2" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cfn_start_0 rhos6-node3" -> "heat-api-cfn-clone_running_0" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node3" -> "heat-api-cfn_monitor_60000 rhos6-node3" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node3" -> "heat-api-cloudwatch_start_0 rhos6-node3" [ style = dashed] ++"heat-api-cfn_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cfn_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node1" -> "heat-api-cfn-clone_stopped_0" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node1" -> "heat-api-cfn_start_0 rhos6-node1" [ style = dashed] ++"heat-api-cfn_stop_0 rhos6-node1" -> "heat-api_stop_0 rhos6-node1" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"heat-api-cfn_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node2" -> "heat-api-cfn-clone_stopped_0" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node2" -> "heat-api-cfn_start_0 rhos6-node2" [ style = dashed] ++"heat-api-cfn_stop_0 rhos6-node2" -> "heat-api_stop_0 rhos6-node2" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"heat-api-cfn_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node3" -> "heat-api-cfn-clone_stopped_0" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node3" -> "heat-api-cfn_start_0 rhos6-node3" [ style = dashed] ++"heat-api-cfn_stop_0 rhos6-node3" -> "heat-api_stop_0 rhos6-node3" [ style = bold] ++"heat-api-cfn_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"heat-api-clone_running_0" -> "heat-api-cfn-clone_start_0" [ style = dashed] ++"heat-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"heat-api-clone_start_0" -> "heat-api-clone_running_0" [ style = dashed] ++"heat-api-clone_start_0" -> "heat-api_start_0 rhos6-node1" [ style = dashed] ++"heat-api-clone_start_0" -> "heat-api_start_0 rhos6-node2" [ style = dashed] ++"heat-api-clone_start_0" -> "heat-api_start_0 rhos6-node3" [ style = dashed] ++"heat-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"heat-api-clone_stop_0" -> "heat-api-clone_stopped_0" [ style = bold] ++"heat-api-clone_stop_0" -> "heat-api_stop_0 rhos6-node1" [ style = bold] ++"heat-api-clone_stop_0" -> "heat-api_stop_0 rhos6-node2" [ style = bold] ++"heat-api-clone_stop_0" -> "heat-api_stop_0 rhos6-node3" [ style = bold] ++"heat-api-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"heat-api-clone_stopped_0" -> "ceilometer-notification-clone_stop_0" [ style = bold] ++"heat-api-clone_stopped_0" -> "heat-api-clone_start_0" [ style = dashed] ++"heat-api-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"heat-api-cloudwatch-clone_running_0" -> "heat-engine_start_0 rhos6-node2" [ style = dashed] ++"heat-api-cloudwatch-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"heat-api-cloudwatch-clone_start_0" -> "heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"heat-api-cloudwatch-clone_start_0" -> "heat-api-cloudwatch_start_0 rhos6-node1" [ style = dashed] ++"heat-api-cloudwatch-clone_start_0" -> "heat-api-cloudwatch_start_0 rhos6-node2" [ style = dashed] ++"heat-api-cloudwatch-clone_start_0" -> "heat-api-cloudwatch_start_0 rhos6-node3" [ style = dashed] ++"heat-api-cloudwatch-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"heat-api-cloudwatch-clone_stop_0" -> "heat-api-cloudwatch-clone_stopped_0" [ style = bold] ++"heat-api-cloudwatch-clone_stop_0" -> "heat-api-cloudwatch_stop_0 rhos6-node1" [ style = bold] ++"heat-api-cloudwatch-clone_stop_0" -> "heat-api-cloudwatch_stop_0 rhos6-node2" [ style = bold] ++"heat-api-cloudwatch-clone_stop_0" -> "heat-api-cloudwatch_stop_0 rhos6-node3" [ style = bold] ++"heat-api-cloudwatch-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"heat-api-cloudwatch-clone_stopped_0" -> "heat-api-cfn-clone_stop_0" [ style = bold] ++"heat-api-cloudwatch-clone_stopped_0" -> "heat-api-cloudwatch-clone_start_0" [ style = dashed] ++"heat-api-cloudwatch-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"heat-api-cloudwatch_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cloudwatch_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cloudwatch_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cloudwatch_start_0 rhos6-node1" -> "heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"heat-api-cloudwatch_start_0 rhos6-node1" -> "heat-api-cloudwatch_monitor_60000 rhos6-node1" [ style = dashed] ++"heat-api-cloudwatch_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cloudwatch_start_0 rhos6-node2" -> "heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"heat-api-cloudwatch_start_0 rhos6-node2" -> "heat-api-cloudwatch_monitor_60000 rhos6-node2" [ style = dashed] ++"heat-api-cloudwatch_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cloudwatch_start_0 rhos6-node3" -> "heat-api-cloudwatch-clone_running_0" [ style = dashed] ++"heat-api-cloudwatch_start_0 rhos6-node3" -> "heat-api-cloudwatch_monitor_60000 rhos6-node3" [ style = dashed] ++"heat-api-cloudwatch_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"heat-api-cloudwatch_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node1" -> "heat-api-cfn_stop_0 rhos6-node1" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node1" -> "heat-api-cloudwatch-clone_stopped_0" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node1" -> "heat-api-cloudwatch_start_0 rhos6-node1" [ style = dashed] ++"heat-api-cloudwatch_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"heat-api-cloudwatch_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node2" -> "heat-api-cfn_stop_0 rhos6-node2" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node2" -> "heat-api-cloudwatch-clone_stopped_0" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node2" -> "heat-api-cloudwatch_start_0 rhos6-node2" [ style = dashed] ++"heat-api-cloudwatch_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"heat-api-cloudwatch_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node3" -> "heat-api-cfn_stop_0 rhos6-node3" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node3" -> "heat-api-cloudwatch-clone_stopped_0" [ style = bold] ++"heat-api-cloudwatch_stop_0 rhos6-node3" -> "heat-api-cloudwatch_start_0 rhos6-node3" [ style = dashed] ++"heat-api-cloudwatch_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"heat-api_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"heat-api_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-api_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"heat-api_start_0 rhos6-node1" -> "heat-api-cfn_start_0 rhos6-node1" [ style = dashed] ++"heat-api_start_0 rhos6-node1" -> "heat-api-clone_running_0" [ style = dashed] ++"heat-api_start_0 rhos6-node1" -> "heat-api_monitor_60000 rhos6-node1" [ style = dashed] ++"heat-api_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"heat-api_start_0 rhos6-node2" -> "heat-api-cfn_start_0 rhos6-node2" [ style = dashed] ++"heat-api_start_0 rhos6-node2" -> "heat-api-clone_running_0" [ style = dashed] ++"heat-api_start_0 rhos6-node2" -> "heat-api_monitor_60000 rhos6-node2" [ style = dashed] ++"heat-api_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-api_start_0 rhos6-node3" -> "heat-api-cfn_start_0 rhos6-node3" [ style = dashed] ++"heat-api_start_0 rhos6-node3" -> "heat-api-clone_running_0" [ style = dashed] ++"heat-api_start_0 rhos6-node3" -> "heat-api_monitor_60000 rhos6-node3" [ style = dashed] ++"heat-api_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"heat-api_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"heat-api_stop_0 rhos6-node1" -> "ceilometer-notification_stop_0 rhos6-node1" [ style = bold] ++"heat-api_stop_0 rhos6-node1" -> "heat-api-clone_stopped_0" [ style = bold] ++"heat-api_stop_0 rhos6-node1" -> "heat-api_start_0 rhos6-node1" [ style = dashed] ++"heat-api_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"heat-api_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"heat-api_stop_0 rhos6-node2" -> "ceilometer-notification_stop_0 rhos6-node2" [ style = bold] ++"heat-api_stop_0 rhos6-node2" -> "heat-api-clone_stopped_0" [ style = bold] ++"heat-api_stop_0 rhos6-node2" -> "heat-api_start_0 rhos6-node2" [ style = dashed] ++"heat-api_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"heat-api_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"heat-api_stop_0 rhos6-node3" -> "ceilometer-notification_stop_0 rhos6-node3" [ style = bold] ++"heat-api_stop_0 rhos6-node3" -> "heat-api-clone_stopped_0" [ style = bold] ++"heat-api_stop_0 rhos6-node3" -> "heat-api_start_0 rhos6-node3" [ style = dashed] ++"heat-api_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"heat-engine_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-engine_start_0 rhos6-node2" -> "heat-engine_monitor_60000 rhos6-node2" [ style = dashed] ++"heat-engine_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"heat-engine_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"heat-engine_stop_0 rhos6-node2" -> "heat-api-cloudwatch-clone_stop_0" [ style = bold] ++"heat-engine_stop_0 rhos6-node2" -> "heat-engine_start_0 rhos6-node2" [ style = dashed] ++"heat-engine_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"keystone-clone_stop_0" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone-clone_stop_0" -> "keystone_stop_0 rhos6-node1" [ style = bold] ++"keystone-clone_stop_0" -> "keystone_stop_0 rhos6-node2" [ style = bold] ++"keystone-clone_stop_0" -> "keystone_stop_0 rhos6-node3" [ style = bold] ++"keystone-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"keystone-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"keystone_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"keystone_stop_0 rhos6-node1" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"keystone_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"keystone_stop_0 rhos6-node2" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"keystone_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"keystone_stop_0 rhos6-node3" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone_stop_0 rhos6-node3" [ style=bold color="green" 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_start_0 rhos6-node1" [ style = dashed] ++"neutron-dhcp-agent-clone_start_0" -> "neutron-dhcp-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-dhcp-agent-clone_start_0" -> "neutron-dhcp-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-dhcp-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-dhcp-agent-clone_stop_0" -> "neutron-dhcp-agent-clone_stopped_0" [ style = bold] ++"neutron-dhcp-agent-clone_stop_0" -> "neutron-dhcp-agent_stop_0 rhos6-node1" [ style = bold] ++"neutron-dhcp-agent-clone_stop_0" -> "neutron-dhcp-agent_stop_0 rhos6-node2" [ style = bold] ++"neutron-dhcp-agent-clone_stop_0" -> "neutron-dhcp-agent_stop_0 rhos6-node3" [ style = bold] ++"neutron-dhcp-agent-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-dhcp-agent-clone_stopped_0" -> "neutron-dhcp-agent-clone_start_0" [ style = dashed] ++"neutron-dhcp-agent-clone_stopped_0" -> "neutron-openvswitch-agent-clone_stop_0" [ style = bold] ++"neutron-dhcp-agent-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-dhcp-agent_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_start_0 rhos6-node1" -> "neutron-dhcp-agent-clone_running_0" [ style = dashed] ++"neutron-dhcp-agent_start_0 rhos6-node1" -> "neutron-dhcp-agent_monitor_60000 rhos6-node1" [ style = dashed] ++"neutron-dhcp-agent_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_start_0 rhos6-node2" -> "neutron-dhcp-agent-clone_running_0" [ style = dashed] ++"neutron-dhcp-agent_start_0 rhos6-node2" -> "neutron-dhcp-agent_monitor_60000 rhos6-node2" [ style = dashed] ++"neutron-dhcp-agent_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_start_0 rhos6-node3" -> "neutron-dhcp-agent-clone_running_0" [ style = dashed] ++"neutron-dhcp-agent_start_0 rhos6-node3" -> "neutron-dhcp-agent_monitor_60000 rhos6-node3" [ style = dashed] ++"neutron-dhcp-agent_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-dhcp-agent_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node1" -> "neutron-dhcp-agent-clone_stopped_0" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node1" -> "neutron-dhcp-agent_start_0 rhos6-node1" [ style = dashed] ++"neutron-dhcp-agent_stop_0 rhos6-node1" -> "neutron-openvswitch-agent_stop_0 rhos6-node1" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-dhcp-agent_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node2" -> "neutron-dhcp-agent-clone_stopped_0" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node2" -> "neutron-dhcp-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-dhcp-agent_stop_0 rhos6-node2" -> "neutron-openvswitch-agent_stop_0 rhos6-node2" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-dhcp-agent_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node3" -> "neutron-dhcp-agent-clone_stopped_0" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node3" -> "neutron-dhcp-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-dhcp-agent_stop_0 rhos6-node3" -> "neutron-openvswitch-agent_stop_0 rhos6-node3" [ style = bold] ++"neutron-dhcp-agent_stop_0 rhos6-node3" [ style=bold color="green" 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_start_0 rhos6-node1" [ style = dashed] ++"neutron-l3-agent-clone_start_0" -> "neutron-l3-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-l3-agent-clone_start_0" -> "neutron-l3-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-l3-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-l3-agent-clone_stop_0" -> "neutron-l3-agent-clone_stopped_0" [ style = bold] ++"neutron-l3-agent-clone_stop_0" -> "neutron-l3-agent_stop_0 rhos6-node1" [ style = bold] ++"neutron-l3-agent-clone_stop_0" -> "neutron-l3-agent_stop_0 rhos6-node2" [ style = bold] ++"neutron-l3-agent-clone_stop_0" -> "neutron-l3-agent_stop_0 rhos6-node3" [ style = bold] ++"neutron-l3-agent-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-l3-agent-clone_stopped_0" -> "neutron-dhcp-agent-clone_stop_0" [ style = bold] ++"neutron-l3-agent-clone_stopped_0" -> "neutron-l3-agent-clone_start_0" [ style = dashed] ++"neutron-l3-agent-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-l3-agent_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_start_0 rhos6-node1" -> "neutron-l3-agent-clone_running_0" [ style = dashed] ++"neutron-l3-agent_start_0 rhos6-node1" -> "neutron-l3-agent_monitor_60000 rhos6-node1" [ style = dashed] ++"neutron-l3-agent_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_start_0 rhos6-node2" -> "neutron-l3-agent-clone_running_0" [ style = dashed] ++"neutron-l3-agent_start_0 rhos6-node2" -> "neutron-l3-agent_monitor_60000 rhos6-node2" [ style = dashed] ++"neutron-l3-agent_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_start_0 rhos6-node3" -> "neutron-l3-agent-clone_running_0" [ style = dashed] ++"neutron-l3-agent_start_0 rhos6-node3" -> "neutron-l3-agent_monitor_60000 rhos6-node3" [ style = dashed] ++"neutron-l3-agent_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-l3-agent_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node1" -> "neutron-dhcp-agent_stop_0 rhos6-node1" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node1" -> "neutron-l3-agent-clone_stopped_0" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node1" -> "neutron-l3-agent_start_0 rhos6-node1" [ style = dashed] ++"neutron-l3-agent_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-l3-agent_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node2" -> "neutron-dhcp-agent_stop_0 rhos6-node2" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node2" -> "neutron-l3-agent-clone_stopped_0" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node2" -> "neutron-l3-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-l3-agent_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-l3-agent_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node3" -> "neutron-dhcp-agent_stop_0 rhos6-node3" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node3" -> "neutron-l3-agent-clone_stopped_0" [ style = bold] ++"neutron-l3-agent_stop_0 rhos6-node3" -> "neutron-l3-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-l3-agent_stop_0 rhos6-node3" [ style=bold color="green" 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_start_0 rhos6-node1" [ style = dashed] ++"neutron-metadata-agent-clone_start_0" -> "neutron-metadata-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-metadata-agent-clone_start_0" -> "neutron-metadata-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-metadata-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-metadata-agent-clone_stop_0" -> "neutron-metadata-agent-clone_stopped_0" [ style = bold] ++"neutron-metadata-agent-clone_stop_0" -> "neutron-metadata-agent_stop_0 rhos6-node1" [ style = bold] ++"neutron-metadata-agent-clone_stop_0" -> "neutron-metadata-agent_stop_0 rhos6-node2" [ style = bold] ++"neutron-metadata-agent-clone_stop_0" -> "neutron-metadata-agent_stop_0 rhos6-node3" [ style = bold] ++"neutron-metadata-agent-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-metadata-agent-clone_stopped_0" -> "neutron-l3-agent-clone_stop_0" [ style = bold] ++"neutron-metadata-agent-clone_stopped_0" -> "neutron-metadata-agent-clone_start_0" [ style = dashed] ++"neutron-metadata-agent-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-metadata-agent_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_start_0 rhos6-node1" -> "neutron-metadata-agent-clone_running_0" [ style = dashed] ++"neutron-metadata-agent_start_0 rhos6-node1" -> "neutron-metadata-agent_monitor_60000 rhos6-node1" [ style = dashed] ++"neutron-metadata-agent_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_start_0 rhos6-node2" -> "neutron-metadata-agent-clone_running_0" [ style = dashed] ++"neutron-metadata-agent_start_0 rhos6-node2" -> "neutron-metadata-agent_monitor_60000 rhos6-node2" [ style = dashed] ++"neutron-metadata-agent_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_start_0 rhos6-node3" -> "neutron-metadata-agent-clone_running_0" [ style = dashed] ++"neutron-metadata-agent_start_0 rhos6-node3" -> "neutron-metadata-agent_monitor_60000 rhos6-node3" [ style = dashed] ++"neutron-metadata-agent_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-metadata-agent_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node1" -> "neutron-l3-agent_stop_0 rhos6-node1" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node1" -> "neutron-metadata-agent-clone_stopped_0" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node1" -> "neutron-metadata-agent_start_0 rhos6-node1" [ style = dashed] ++"neutron-metadata-agent_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-metadata-agent_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node2" -> "neutron-l3-agent_stop_0 rhos6-node2" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node2" -> "neutron-metadata-agent-clone_stopped_0" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node2" -> "neutron-metadata-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-metadata-agent_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-metadata-agent_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node3" -> "neutron-l3-agent_stop_0 rhos6-node3" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node3" -> "neutron-metadata-agent-clone_stopped_0" [ style = bold] ++"neutron-metadata-agent_stop_0 rhos6-node3" -> "neutron-metadata-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-metadata-agent_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"neutron-netns-cleanup-clone_running_0" -> "neutron-openvswitch-agent-clone_start_0" [ style = dashed] ++"neutron-netns-cleanup-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-netns-cleanup-clone_start_0" -> "neutron-netns-cleanup-clone_running_0" [ style = dashed] ++"neutron-netns-cleanup-clone_start_0" -> "neutron-netns-cleanup_start_0 rhos6-node1" [ style = dashed] ++"neutron-netns-cleanup-clone_start_0" -> "neutron-netns-cleanup_start_0 rhos6-node2" [ style = dashed] ++"neutron-netns-cleanup-clone_start_0" -> "neutron-netns-cleanup_start_0 rhos6-node3" [ style = dashed] ++"neutron-netns-cleanup-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-netns-cleanup-clone_stop_0" -> "neutron-netns-cleanup-clone_stopped_0" [ style = bold] ++"neutron-netns-cleanup-clone_stop_0" -> "neutron-netns-cleanup_stop_0 rhos6-node1" [ style = bold] ++"neutron-netns-cleanup-clone_stop_0" -> "neutron-netns-cleanup_stop_0 rhos6-node2" [ style = bold] ++"neutron-netns-cleanup-clone_stop_0" -> "neutron-netns-cleanup_stop_0 rhos6-node3" [ style = bold] ++"neutron-netns-cleanup-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-netns-cleanup-clone_stopped_0" -> "neutron-netns-cleanup-clone_start_0" [ style = dashed] ++"neutron-netns-cleanup-clone_stopped_0" -> "neutron-ovs-cleanup-clone_stop_0" [ style = bold] ++"neutron-netns-cleanup-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-netns-cleanup_monitor_10000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-netns-cleanup_monitor_10000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-netns-cleanup_monitor_10000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-netns-cleanup_start_0 rhos6-node1" -> "neutron-netns-cleanup-clone_running_0" [ style = dashed] ++"neutron-netns-cleanup_start_0 rhos6-node1" -> "neutron-netns-cleanup_monitor_10000 rhos6-node1" [ style = dashed] ++"neutron-netns-cleanup_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-netns-cleanup_start_0 rhos6-node2" -> "neutron-netns-cleanup-clone_running_0" [ style = dashed] ++"neutron-netns-cleanup_start_0 rhos6-node2" -> "neutron-netns-cleanup_monitor_10000 rhos6-node2" [ style = dashed] ++"neutron-netns-cleanup_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-netns-cleanup_start_0 rhos6-node3" -> "neutron-netns-cleanup-clone_running_0" [ style = dashed] ++"neutron-netns-cleanup_start_0 rhos6-node3" -> "neutron-netns-cleanup_monitor_10000 rhos6-node3" [ style = dashed] ++"neutron-netns-cleanup_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-netns-cleanup_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node1" -> "neutron-netns-cleanup-clone_stopped_0" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node1" -> "neutron-netns-cleanup_start_0 rhos6-node1" [ style = dashed] ++"neutron-netns-cleanup_stop_0 rhos6-node1" -> "neutron-ovs-cleanup_stop_0 rhos6-node1" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-netns-cleanup_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node2" -> "neutron-netns-cleanup-clone_stopped_0" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node2" -> "neutron-netns-cleanup_start_0 rhos6-node2" [ style = dashed] ++"neutron-netns-cleanup_stop_0 rhos6-node2" -> "neutron-ovs-cleanup_stop_0 rhos6-node2" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-netns-cleanup_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node3" -> "neutron-netns-cleanup-clone_stopped_0" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node3" -> "neutron-netns-cleanup_start_0 rhos6-node3" [ style = dashed] ++"neutron-netns-cleanup_stop_0 rhos6-node3" -> "neutron-ovs-cleanup_stop_0 rhos6-node3" [ style = bold] ++"neutron-netns-cleanup_stop_0 rhos6-node3" [ style=bold color="green" 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_start_0 rhos6-node1" [ style = dashed] ++"neutron-openvswitch-agent-clone_start_0" -> "neutron-openvswitch-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-openvswitch-agent-clone_start_0" -> "neutron-openvswitch-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-openvswitch-agent-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-openvswitch-agent-clone_stop_0" -> "neutron-openvswitch-agent-clone_stopped_0" [ style = bold] ++"neutron-openvswitch-agent-clone_stop_0" -> "neutron-openvswitch-agent_stop_0 rhos6-node1" [ style = bold] ++"neutron-openvswitch-agent-clone_stop_0" -> "neutron-openvswitch-agent_stop_0 rhos6-node2" [ style = bold] ++"neutron-openvswitch-agent-clone_stop_0" -> "neutron-openvswitch-agent_stop_0 rhos6-node3" [ style = bold] ++"neutron-openvswitch-agent-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-openvswitch-agent-clone_stopped_0" -> "neutron-netns-cleanup-clone_stop_0" [ style = bold] ++"neutron-openvswitch-agent-clone_stopped_0" -> "neutron-openvswitch-agent-clone_start_0" [ style = dashed] ++"neutron-openvswitch-agent-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-openvswitch-agent_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_start_0 rhos6-node1" -> "neutron-openvswitch-agent-clone_running_0" [ style = dashed] ++"neutron-openvswitch-agent_start_0 rhos6-node1" -> "neutron-openvswitch-agent_monitor_60000 rhos6-node1" [ style = dashed] ++"neutron-openvswitch-agent_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_start_0 rhos6-node2" -> "neutron-openvswitch-agent-clone_running_0" [ style = dashed] ++"neutron-openvswitch-agent_start_0 rhos6-node2" -> "neutron-openvswitch-agent_monitor_60000 rhos6-node2" [ style = dashed] ++"neutron-openvswitch-agent_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_start_0 rhos6-node3" -> "neutron-openvswitch-agent-clone_running_0" [ style = dashed] ++"neutron-openvswitch-agent_start_0 rhos6-node3" -> "neutron-openvswitch-agent_monitor_60000 rhos6-node3" [ style = dashed] ++"neutron-openvswitch-agent_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-openvswitch-agent_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node1" -> "neutron-netns-cleanup_stop_0 rhos6-node1" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node1" -> "neutron-openvswitch-agent-clone_stopped_0" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node1" -> "neutron-openvswitch-agent_start_0 rhos6-node1" [ style = dashed] ++"neutron-openvswitch-agent_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-openvswitch-agent_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node2" -> "neutron-netns-cleanup_stop_0 rhos6-node2" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node2" -> "neutron-openvswitch-agent-clone_stopped_0" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node2" -> "neutron-openvswitch-agent_start_0 rhos6-node2" [ style = dashed] ++"neutron-openvswitch-agent_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-openvswitch-agent_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node3" -> "neutron-netns-cleanup_stop_0 rhos6-node3" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node3" -> "neutron-openvswitch-agent-clone_stopped_0" [ style = bold] ++"neutron-openvswitch-agent_stop_0 rhos6-node3" -> "neutron-openvswitch-agent_start_0 rhos6-node3" [ style = dashed] ++"neutron-openvswitch-agent_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"neutron-ovs-cleanup-clone_running_0" -> "neutron-netns-cleanup-clone_start_0" [ style = dashed] ++"neutron-ovs-cleanup-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-ovs-cleanup-clone_start_0" -> "neutron-ovs-cleanup-clone_running_0" [ style = dashed] ++"neutron-ovs-cleanup-clone_start_0" -> "neutron-ovs-cleanup_start_0 rhos6-node1" [ style = dashed] ++"neutron-ovs-cleanup-clone_start_0" -> "neutron-ovs-cleanup_start_0 rhos6-node2" [ style = dashed] ++"neutron-ovs-cleanup-clone_start_0" -> "neutron-ovs-cleanup_start_0 rhos6-node3" [ style = dashed] ++"neutron-ovs-cleanup-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-ovs-cleanup-clone_stop_0" -> "neutron-ovs-cleanup-clone_stopped_0" [ style = bold] ++"neutron-ovs-cleanup-clone_stop_0" -> "neutron-ovs-cleanup_stop_0 rhos6-node1" [ style = bold] ++"neutron-ovs-cleanup-clone_stop_0" -> "neutron-ovs-cleanup_stop_0 rhos6-node2" [ style = bold] ++"neutron-ovs-cleanup-clone_stop_0" -> "neutron-ovs-cleanup_stop_0 rhos6-node3" [ style = bold] ++"neutron-ovs-cleanup-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-ovs-cleanup-clone_stopped_0" -> "neutron-ovs-cleanup-clone_start_0" [ style = dashed] ++"neutron-ovs-cleanup-clone_stopped_0" -> "neutron-scale-clone_stop_0" [ style = bold] ++"neutron-ovs-cleanup-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-ovs-cleanup_monitor_10000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-ovs-cleanup_monitor_10000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-ovs-cleanup_monitor_10000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-ovs-cleanup_start_0 rhos6-node1" -> "neutron-ovs-cleanup-clone_running_0" [ style = dashed] ++"neutron-ovs-cleanup_start_0 rhos6-node1" -> "neutron-ovs-cleanup_monitor_10000 rhos6-node1" [ style = dashed] ++"neutron-ovs-cleanup_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-ovs-cleanup_start_0 rhos6-node2" -> "neutron-ovs-cleanup-clone_running_0" [ style = dashed] ++"neutron-ovs-cleanup_start_0 rhos6-node2" -> "neutron-ovs-cleanup_monitor_10000 rhos6-node2" [ style = dashed] ++"neutron-ovs-cleanup_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-ovs-cleanup_start_0 rhos6-node3" -> "neutron-ovs-cleanup-clone_running_0" [ style = dashed] ++"neutron-ovs-cleanup_start_0 rhos6-node3" -> "neutron-ovs-cleanup_monitor_10000 rhos6-node3" [ style = dashed] ++"neutron-ovs-cleanup_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-ovs-cleanup_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node1" -> "neutron-ovs-cleanup-clone_stopped_0" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node1" -> "neutron-ovs-cleanup_start_0 rhos6-node1" [ style = dashed] ++"neutron-ovs-cleanup_stop_0 rhos6-node1" -> "neutron-scale:2_stop_0 rhos6-node1" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-ovs-cleanup_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node2" -> "neutron-ovs-cleanup-clone_stopped_0" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node2" -> "neutron-ovs-cleanup_start_0 rhos6-node2" [ style = dashed] ++"neutron-ovs-cleanup_stop_0 rhos6-node2" -> "neutron-scale:1_stop_0 rhos6-node2" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-ovs-cleanup_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node3" -> "neutron-ovs-cleanup-clone_stopped_0" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node3" -> "neutron-ovs-cleanup_start_0 rhos6-node3" [ style = dashed] ++"neutron-ovs-cleanup_stop_0 rhos6-node3" -> "neutron-scale:0_stop_0 rhos6-node3" [ style = bold] ++"neutron-ovs-cleanup_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"neutron-scale-clone_running_0" -> "neutron-ovs-cleanup-clone_start_0" [ style = dashed] ++"neutron-scale-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-scale-clone_start_0" -> "neutron-scale-clone_running_0" [ style = dashed] ++"neutron-scale-clone_start_0" -> "neutron-scale:0_start_0 rhos6-node3" [ style = dashed] ++"neutron-scale-clone_start_0" -> "neutron-scale:1_start_0 rhos6-node2" [ style = dashed] ++"neutron-scale-clone_start_0" -> "neutron-scale:2_start_0 rhos6-node1" [ style = dashed] ++"neutron-scale-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-scale-clone_stop_0" -> "neutron-scale-clone_stopped_0" [ style = bold] ++"neutron-scale-clone_stop_0" -> "neutron-scale:0_stop_0 rhos6-node3" [ style = bold] ++"neutron-scale-clone_stop_0" -> "neutron-scale:1_stop_0 rhos6-node2" [ style = bold] ++"neutron-scale-clone_stop_0" -> "neutron-scale:2_stop_0 rhos6-node1" [ style = bold] ++"neutron-scale-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-scale-clone_stopped_0" -> "neutron-scale-clone_start_0" [ style = dashed] ++"neutron-scale-clone_stopped_0" -> "neutron-server-clone_stop_0" [ style = bold] ++"neutron-scale-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-scale:0_monitor_10000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-scale:0_start_0 rhos6-node3" -> "neutron-scale-clone_running_0" [ style = dashed] ++"neutron-scale:0_start_0 rhos6-node3" -> "neutron-scale:0_monitor_10000 rhos6-node3" [ style = dashed] ++"neutron-scale:0_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-scale:0_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-scale:0_stop_0 rhos6-node3" -> "neutron-scale-clone_stopped_0" [ style = bold] ++"neutron-scale:0_stop_0 rhos6-node3" -> "neutron-scale:0_start_0 rhos6-node3" [ style = dashed] ++"neutron-scale:0_stop_0 rhos6-node3" -> "neutron-server_stop_0 rhos6-node3" [ style = bold] ++"neutron-scale:0_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"neutron-scale:1_monitor_10000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-scale:1_start_0 rhos6-node2" -> "neutron-scale-clone_running_0" [ style = dashed] ++"neutron-scale:1_start_0 rhos6-node2" -> "neutron-scale:1_monitor_10000 rhos6-node2" [ style = dashed] ++"neutron-scale:1_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-scale:1_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-scale:1_stop_0 rhos6-node2" -> "neutron-scale-clone_stopped_0" [ style = bold] ++"neutron-scale:1_stop_0 rhos6-node2" -> "neutron-scale:1_start_0 rhos6-node2" [ style = dashed] ++"neutron-scale:1_stop_0 rhos6-node2" -> "neutron-server_stop_0 rhos6-node2" [ style = bold] ++"neutron-scale:1_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-scale:2_monitor_10000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-scale:2_start_0 rhos6-node1" -> "neutron-scale-clone_running_0" [ style = dashed] ++"neutron-scale:2_start_0 rhos6-node1" -> "neutron-scale:2_monitor_10000 rhos6-node1" [ style = dashed] ++"neutron-scale:2_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-scale:2_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-scale:2_stop_0 rhos6-node1" -> "neutron-scale-clone_stopped_0" [ style = bold] ++"neutron-scale:2_stop_0 rhos6-node1" -> "neutron-scale:2_start_0 rhos6-node1" [ style = dashed] ++"neutron-scale:2_stop_0 rhos6-node1" -> "neutron-server_stop_0 rhos6-node1" [ style = bold] ++"neutron-scale:2_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-server-clone_running_0" -> "neutron-scale-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_start_0 rhos6-node1" [ style = dashed] ++"neutron-server-clone_start_0" -> "neutron-server_start_0 rhos6-node2" [ style = dashed] ++"neutron-server-clone_start_0" -> "neutron-server_start_0 rhos6-node3" [ style = dashed] ++"neutron-server-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"neutron-server-clone_stop_0" -> "neutron-server-clone_stopped_0" [ style = bold] ++"neutron-server-clone_stop_0" -> "neutron-server_stop_0 rhos6-node1" [ style = bold] ++"neutron-server-clone_stop_0" -> "neutron-server_stop_0 rhos6-node2" [ style = bold] ++"neutron-server-clone_stop_0" -> "neutron-server_stop_0 rhos6-node3" [ style = bold] ++"neutron-server-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-server-clone_stopped_0" -> "keystone-clone_stop_0" [ style = bold] ++"neutron-server-clone_stopped_0" -> "neutron-server-clone_start_0" [ style = dashed] ++"neutron-server-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"neutron-server_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_start_0 rhos6-node1" -> "neutron-server-clone_running_0" [ style = dashed] ++"neutron-server_start_0 rhos6-node1" -> "neutron-server_monitor_60000 rhos6-node1" [ style = dashed] ++"neutron-server_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_start_0 rhos6-node2" -> "neutron-server-clone_running_0" [ style = dashed] ++"neutron-server_start_0 rhos6-node2" -> "neutron-server_monitor_60000 rhos6-node2" [ style = dashed] ++"neutron-server_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_start_0 rhos6-node3" -> "neutron-server-clone_running_0" [ style = dashed] ++"neutron-server_start_0 rhos6-node3" -> "neutron-server_monitor_60000 rhos6-node3" [ style = dashed] ++"neutron-server_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"neutron-server_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"neutron-server_stop_0 rhos6-node1" -> "keystone_stop_0 rhos6-node1" [ style = bold] ++"neutron-server_stop_0 rhos6-node1" -> "neutron-server-clone_stopped_0" [ style = bold] ++"neutron-server_stop_0 rhos6-node1" -> "neutron-server_start_0 rhos6-node1" [ style = dashed] ++"neutron-server_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"neutron-server_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"neutron-server_stop_0 rhos6-node2" -> "keystone_stop_0 rhos6-node2" [ style = bold] ++"neutron-server_stop_0 rhos6-node2" -> "neutron-server-clone_stopped_0" [ style = bold] ++"neutron-server_stop_0 rhos6-node2" -> "neutron-server_start_0 rhos6-node2" [ style = dashed] ++"neutron-server_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"neutron-server_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"neutron-server_stop_0 rhos6-node3" -> "keystone_stop_0 rhos6-node3" [ style = bold] ++"neutron-server_stop_0 rhos6-node3" -> "neutron-server-clone_stopped_0" [ style = bold] ++"neutron-server_stop_0 rhos6-node3" -> "neutron-server_start_0 rhos6-node3" [ style = dashed] ++"neutron-server_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"nova-api-clone_running_0" -> "nova-scheduler-clone_start_0" [ style = dashed] ++"nova-api-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-api-clone_start_0" -> "nova-api-clone_running_0" [ style = dashed] ++"nova-api-clone_start_0" -> "nova-api_start_0 rhos6-node1" [ style = dashed] ++"nova-api-clone_start_0" -> "nova-api_start_0 rhos6-node2" [ style = dashed] ++"nova-api-clone_start_0" -> "nova-api_start_0 rhos6-node3" [ style = dashed] ++"nova-api-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-api-clone_stop_0" -> "nova-api-clone_stopped_0" [ style = bold] ++"nova-api-clone_stop_0" -> "nova-api_stop_0 rhos6-node1" [ style = bold] ++"nova-api-clone_stop_0" -> "nova-api_stop_0 rhos6-node2" [ style = bold] ++"nova-api-clone_stop_0" -> "nova-api_stop_0 rhos6-node3" [ style = bold] ++"nova-api-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"nova-api-clone_stopped_0" -> "nova-api-clone_start_0" [ style = dashed] ++"nova-api-clone_stopped_0" -> "nova-novncproxy-clone_stop_0" [ style = bold] ++"nova-api-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"nova-api_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-api_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-api_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-api_start_0 rhos6-node1" -> "nova-api-clone_running_0" [ style = dashed] ++"nova-api_start_0 rhos6-node1" -> "nova-api_monitor_60000 rhos6-node1" [ style = dashed] ++"nova-api_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-api_start_0 rhos6-node2" -> "nova-api-clone_running_0" [ style = dashed] ++"nova-api_start_0 rhos6-node2" -> "nova-api_monitor_60000 rhos6-node2" [ style = dashed] ++"nova-api_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-api_start_0 rhos6-node3" -> "nova-api-clone_running_0" [ style = dashed] ++"nova-api_start_0 rhos6-node3" -> "nova-api_monitor_60000 rhos6-node3" [ style = dashed] ++"nova-api_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-api_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"nova-api_stop_0 rhos6-node1" -> "nova-api-clone_stopped_0" [ style = bold] ++"nova-api_stop_0 rhos6-node1" -> "nova-api_start_0 rhos6-node1" [ style = dashed] ++"nova-api_stop_0 rhos6-node1" -> "nova-novncproxy_stop_0 rhos6-node1" [ style = bold] ++"nova-api_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"nova-api_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"nova-api_stop_0 rhos6-node2" -> "nova-api-clone_stopped_0" [ style = bold] ++"nova-api_stop_0 rhos6-node2" -> "nova-api_start_0 rhos6-node2" [ style = dashed] ++"nova-api_stop_0 rhos6-node2" -> "nova-novncproxy_stop_0 rhos6-node2" [ style = bold] ++"nova-api_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"nova-api_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"nova-api_stop_0 rhos6-node3" -> "nova-api-clone_stopped_0" [ style = bold] ++"nova-api_stop_0 rhos6-node3" -> "nova-api_start_0 rhos6-node3" [ style = dashed] ++"nova-api_stop_0 rhos6-node3" -> "nova-novncproxy_stop_0 rhos6-node3" [ style = bold] ++"nova-api_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"nova-conductor-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-conductor-clone_start_0" -> "nova-conductor-clone_running_0" [ style = dashed] ++"nova-conductor-clone_start_0" -> "nova-conductor_start_0 rhos6-node1" [ style = dashed] ++"nova-conductor-clone_start_0" -> "nova-conductor_start_0 rhos6-node2" [ style = dashed] ++"nova-conductor-clone_start_0" -> "nova-conductor_start_0 rhos6-node3" [ style = dashed] ++"nova-conductor-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-conductor-clone_stop_0" -> "nova-conductor-clone_stopped_0" [ style = bold] ++"nova-conductor-clone_stop_0" -> "nova-conductor_stop_0 rhos6-node1" [ style = bold] ++"nova-conductor-clone_stop_0" -> "nova-conductor_stop_0 rhos6-node2" [ style = bold] ++"nova-conductor-clone_stop_0" -> "nova-conductor_stop_0 rhos6-node3" [ style = bold] ++"nova-conductor-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"nova-conductor-clone_stopped_0" -> "nova-conductor-clone_start_0" [ style = dashed] ++"nova-conductor-clone_stopped_0" -> "nova-scheduler-clone_stop_0" [ style = bold] ++"nova-conductor-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"nova-conductor_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-conductor_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-conductor_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-conductor_start_0 rhos6-node1" -> "nova-conductor-clone_running_0" [ style = dashed] ++"nova-conductor_start_0 rhos6-node1" -> "nova-conductor_monitor_60000 rhos6-node1" [ style = dashed] ++"nova-conductor_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-conductor_start_0 rhos6-node2" -> "nova-conductor-clone_running_0" [ style = dashed] ++"nova-conductor_start_0 rhos6-node2" -> "nova-conductor_monitor_60000 rhos6-node2" [ style = dashed] ++"nova-conductor_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-conductor_start_0 rhos6-node3" -> "nova-conductor-clone_running_0" [ style = dashed] ++"nova-conductor_start_0 rhos6-node3" -> "nova-conductor_monitor_60000 rhos6-node3" [ style = dashed] ++"nova-conductor_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-conductor_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"nova-conductor_stop_0 rhos6-node1" -> "nova-conductor-clone_stopped_0" [ style = bold] ++"nova-conductor_stop_0 rhos6-node1" -> "nova-conductor_start_0 rhos6-node1" [ style = dashed] ++"nova-conductor_stop_0 rhos6-node1" -> "nova-scheduler_stop_0 rhos6-node1" [ style = bold] ++"nova-conductor_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"nova-conductor_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"nova-conductor_stop_0 rhos6-node2" -> "nova-conductor-clone_stopped_0" [ style = bold] ++"nova-conductor_stop_0 rhos6-node2" -> "nova-conductor_start_0 rhos6-node2" [ style = dashed] ++"nova-conductor_stop_0 rhos6-node2" -> "nova-scheduler_stop_0 rhos6-node2" [ style = bold] ++"nova-conductor_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"nova-conductor_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"nova-conductor_stop_0 rhos6-node3" -> "nova-conductor-clone_stopped_0" [ style = bold] ++"nova-conductor_stop_0 rhos6-node3" -> "nova-conductor_start_0 rhos6-node3" [ style = dashed] ++"nova-conductor_stop_0 rhos6-node3" -> "nova-scheduler_stop_0 rhos6-node3" [ style = bold] ++"nova-conductor_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"nova-consoleauth-clone_running_0" -> "nova-novncproxy-clone_start_0" [ style = dashed] ++"nova-consoleauth-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-consoleauth-clone_start_0" -> "nova-consoleauth-clone_running_0" [ style = dashed] ++"nova-consoleauth-clone_start_0" -> "nova-consoleauth_start_0 rhos6-node1" [ style = dashed] ++"nova-consoleauth-clone_start_0" -> "nova-consoleauth_start_0 rhos6-node2" [ style = dashed] ++"nova-consoleauth-clone_start_0" -> "nova-consoleauth_start_0 rhos6-node3" [ style = dashed] ++"nova-consoleauth-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-consoleauth-clone_stop_0" -> "nova-consoleauth-clone_stopped_0" [ style = bold] ++"nova-consoleauth-clone_stop_0" -> "nova-consoleauth_stop_0 rhos6-node1" [ style = bold] ++"nova-consoleauth-clone_stop_0" -> "nova-consoleauth_stop_0 rhos6-node2" [ style = bold] ++"nova-consoleauth-clone_stop_0" -> "nova-consoleauth_stop_0 rhos6-node3" [ style = bold] ++"nova-consoleauth-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"nova-consoleauth-clone_stopped_0" -> "keystone-clone_stop_0" [ style = bold] ++"nova-consoleauth-clone_stopped_0" -> "nova-consoleauth-clone_start_0" [ style = dashed] ++"nova-consoleauth-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"nova-consoleauth_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-consoleauth_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-consoleauth_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-consoleauth_start_0 rhos6-node1" -> "nova-consoleauth-clone_running_0" [ style = dashed] ++"nova-consoleauth_start_0 rhos6-node1" -> "nova-consoleauth_monitor_60000 rhos6-node1" [ style = dashed] ++"nova-consoleauth_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-consoleauth_start_0 rhos6-node2" -> "nova-consoleauth-clone_running_0" [ style = dashed] ++"nova-consoleauth_start_0 rhos6-node2" -> "nova-consoleauth_monitor_60000 rhos6-node2" [ style = dashed] ++"nova-consoleauth_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-consoleauth_start_0 rhos6-node3" -> "nova-consoleauth-clone_running_0" [ style = dashed] ++"nova-consoleauth_start_0 rhos6-node3" -> "nova-consoleauth_monitor_60000 rhos6-node3" [ style = dashed] ++"nova-consoleauth_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-consoleauth_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node1" -> "keystone_stop_0 rhos6-node1" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node1" -> "nova-consoleauth-clone_stopped_0" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node1" -> "nova-consoleauth_start_0 rhos6-node1" [ style = dashed] ++"nova-consoleauth_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"nova-consoleauth_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node2" -> "keystone_stop_0 rhos6-node2" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node2" -> "nova-consoleauth-clone_stopped_0" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node2" -> "nova-consoleauth_start_0 rhos6-node2" [ style = dashed] ++"nova-consoleauth_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"nova-consoleauth_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node3" -> "keystone_stop_0 rhos6-node3" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node3" -> "nova-consoleauth-clone_stopped_0" [ style = bold] ++"nova-consoleauth_stop_0 rhos6-node3" -> "nova-consoleauth_start_0 rhos6-node3" [ style = dashed] ++"nova-consoleauth_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"nova-novncproxy-clone_running_0" -> "nova-api-clone_start_0" [ style = dashed] ++"nova-novncproxy-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-novncproxy-clone_start_0" -> "nova-novncproxy-clone_running_0" [ style = dashed] ++"nova-novncproxy-clone_start_0" -> "nova-novncproxy_start_0 rhos6-node1" [ style = dashed] ++"nova-novncproxy-clone_start_0" -> "nova-novncproxy_start_0 rhos6-node2" [ style = dashed] ++"nova-novncproxy-clone_start_0" -> "nova-novncproxy_start_0 rhos6-node3" [ style = dashed] ++"nova-novncproxy-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-novncproxy-clone_stop_0" -> "nova-novncproxy-clone_stopped_0" [ style = bold] ++"nova-novncproxy-clone_stop_0" -> "nova-novncproxy_stop_0 rhos6-node1" [ style = bold] ++"nova-novncproxy-clone_stop_0" -> "nova-novncproxy_stop_0 rhos6-node2" [ style = bold] ++"nova-novncproxy-clone_stop_0" -> "nova-novncproxy_stop_0 rhos6-node3" [ style = bold] ++"nova-novncproxy-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"nova-novncproxy-clone_stopped_0" -> "nova-consoleauth-clone_stop_0" [ style = bold] ++"nova-novncproxy-clone_stopped_0" -> "nova-novncproxy-clone_start_0" [ style = dashed] ++"nova-novncproxy-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"nova-novncproxy_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-novncproxy_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-novncproxy_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-novncproxy_start_0 rhos6-node1" -> "nova-novncproxy-clone_running_0" [ style = dashed] ++"nova-novncproxy_start_0 rhos6-node1" -> "nova-novncproxy_monitor_60000 rhos6-node1" [ style = dashed] ++"nova-novncproxy_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-novncproxy_start_0 rhos6-node2" -> "nova-novncproxy-clone_running_0" [ style = dashed] ++"nova-novncproxy_start_0 rhos6-node2" -> "nova-novncproxy_monitor_60000 rhos6-node2" [ style = dashed] ++"nova-novncproxy_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-novncproxy_start_0 rhos6-node3" -> "nova-novncproxy-clone_running_0" [ style = dashed] ++"nova-novncproxy_start_0 rhos6-node3" -> "nova-novncproxy_monitor_60000 rhos6-node3" [ style = dashed] ++"nova-novncproxy_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-novncproxy_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node1" -> "nova-consoleauth_stop_0 rhos6-node1" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node1" -> "nova-novncproxy-clone_stopped_0" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node1" -> "nova-novncproxy_start_0 rhos6-node1" [ style = dashed] ++"nova-novncproxy_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"nova-novncproxy_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node2" -> "nova-consoleauth_stop_0 rhos6-node2" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node2" -> "nova-novncproxy-clone_stopped_0" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node2" -> "nova-novncproxy_start_0 rhos6-node2" [ style = dashed] ++"nova-novncproxy_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"nova-novncproxy_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node3" -> "nova-consoleauth_stop_0 rhos6-node3" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node3" -> "nova-novncproxy-clone_stopped_0" [ style = bold] ++"nova-novncproxy_stop_0 rhos6-node3" -> "nova-novncproxy_start_0 rhos6-node3" [ style = dashed] ++"nova-novncproxy_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"nova-scheduler-clone_running_0" -> "nova-conductor-clone_start_0" [ style = dashed] ++"nova-scheduler-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-scheduler-clone_start_0" -> "nova-scheduler-clone_running_0" [ style = dashed] ++"nova-scheduler-clone_start_0" -> "nova-scheduler_start_0 rhos6-node1" [ style = dashed] ++"nova-scheduler-clone_start_0" -> "nova-scheduler_start_0 rhos6-node2" [ style = dashed] ++"nova-scheduler-clone_start_0" -> "nova-scheduler_start_0 rhos6-node3" [ style = dashed] ++"nova-scheduler-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"nova-scheduler-clone_stop_0" -> "nova-scheduler-clone_stopped_0" [ style = bold] ++"nova-scheduler-clone_stop_0" -> "nova-scheduler_stop_0 rhos6-node1" [ style = bold] ++"nova-scheduler-clone_stop_0" -> "nova-scheduler_stop_0 rhos6-node2" [ style = bold] ++"nova-scheduler-clone_stop_0" -> "nova-scheduler_stop_0 rhos6-node3" [ style = bold] ++"nova-scheduler-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"nova-scheduler-clone_stopped_0" -> "nova-api-clone_stop_0" [ style = bold] ++"nova-scheduler-clone_stopped_0" -> "nova-scheduler-clone_start_0" [ style = dashed] ++"nova-scheduler-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"nova-scheduler_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-scheduler_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-scheduler_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-scheduler_start_0 rhos6-node1" -> "nova-scheduler-clone_running_0" [ style = dashed] ++"nova-scheduler_start_0 rhos6-node1" -> "nova-scheduler_monitor_60000 rhos6-node1" [ style = dashed] ++"nova-scheduler_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"nova-scheduler_start_0 rhos6-node2" -> "nova-scheduler-clone_running_0" [ style = dashed] ++"nova-scheduler_start_0 rhos6-node2" -> "nova-scheduler_monitor_60000 rhos6-node2" [ style = dashed] ++"nova-scheduler_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"nova-scheduler_start_0 rhos6-node3" -> "nova-scheduler-clone_running_0" [ style = dashed] ++"nova-scheduler_start_0 rhos6-node3" -> "nova-scheduler_monitor_60000 rhos6-node3" [ style = dashed] ++"nova-scheduler_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"nova-scheduler_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node1" -> "nova-api_stop_0 rhos6-node1" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node1" -> "nova-scheduler-clone_stopped_0" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node1" -> "nova-scheduler_start_0 rhos6-node1" [ style = dashed] ++"nova-scheduler_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"nova-scheduler_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node2" -> "nova-api_stop_0 rhos6-node2" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node2" -> "nova-scheduler-clone_stopped_0" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node2" -> "nova-scheduler_start_0 rhos6-node2" [ style = dashed] ++"nova-scheduler_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"nova-scheduler_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node3" -> "nova-api_stop_0 rhos6-node3" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node3" -> "nova-scheduler-clone_stopped_0" [ style = bold] ++"nova-scheduler_stop_0 rhos6-node3" -> "nova-scheduler_start_0 rhos6-node3" [ style = dashed] ++"nova-scheduler_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"swift-account-clone_running_0" -> "swift-container-clone_start_0" [ style = dashed] ++"swift-account-clone_running_0" -> "swift-proxy-clone_start_0" [ style = dashed] ++"swift-account-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-account-clone_start_0" -> "swift-account-clone_running_0" [ style = dashed] ++"swift-account-clone_start_0" -> "swift-account_start_0 rhos6-node1" [ style = dashed] ++"swift-account-clone_start_0" -> "swift-account_start_0 rhos6-node2" [ style = dashed] ++"swift-account-clone_start_0" -> "swift-account_start_0 rhos6-node3" [ style = dashed] ++"swift-account-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-account-clone_stop_0" -> "swift-account-clone_stopped_0" [ style = bold] ++"swift-account-clone_stop_0" -> "swift-account_stop_0 rhos6-node1" [ style = bold] ++"swift-account-clone_stop_0" -> "swift-account_stop_0 rhos6-node2" [ style = bold] ++"swift-account-clone_stop_0" -> "swift-account_stop_0 rhos6-node3" [ style = bold] ++"swift-account-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"swift-account-clone_stopped_0" -> "keystone-clone_stop_0" [ style = bold] ++"swift-account-clone_stopped_0" -> "swift-account-clone_start_0" [ style = dashed] ++"swift-account-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"swift-account_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-account_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-account_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-account_start_0 rhos6-node1" -> "swift-account-clone_running_0" [ style = dashed] ++"swift-account_start_0 rhos6-node1" -> "swift-account_monitor_60000 rhos6-node1" [ style = dashed] ++"swift-account_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-account_start_0 rhos6-node2" -> "swift-account-clone_running_0" [ style = dashed] ++"swift-account_start_0 rhos6-node2" -> "swift-account_monitor_60000 rhos6-node2" [ style = dashed] ++"swift-account_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-account_start_0 rhos6-node3" -> "swift-account-clone_running_0" [ style = dashed] ++"swift-account_start_0 rhos6-node3" -> "swift-account_monitor_60000 rhos6-node3" [ style = dashed] ++"swift-account_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-account_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"swift-account_stop_0 rhos6-node1" -> "keystone_stop_0 rhos6-node1" [ style = bold] ++"swift-account_stop_0 rhos6-node1" -> "swift-account-clone_stopped_0" [ style = bold] ++"swift-account_stop_0 rhos6-node1" -> "swift-account_start_0 rhos6-node1" [ style = dashed] ++"swift-account_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"swift-account_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"swift-account_stop_0 rhos6-node2" -> "keystone_stop_0 rhos6-node2" [ style = bold] ++"swift-account_stop_0 rhos6-node2" -> "swift-account-clone_stopped_0" [ style = bold] ++"swift-account_stop_0 rhos6-node2" -> "swift-account_start_0 rhos6-node2" [ style = dashed] ++"swift-account_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"swift-account_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"swift-account_stop_0 rhos6-node3" -> "keystone_stop_0 rhos6-node3" [ style = bold] ++"swift-account_stop_0 rhos6-node3" -> "swift-account-clone_stopped_0" [ style = bold] ++"swift-account_stop_0 rhos6-node3" -> "swift-account_start_0 rhos6-node3" [ style = dashed] ++"swift-account_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"swift-container-clone_running_0" -> "swift-object-clone_start_0" [ style = dashed] ++"swift-container-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-container-clone_start_0" -> "swift-container-clone_running_0" [ style = dashed] ++"swift-container-clone_start_0" -> "swift-container_start_0 rhos6-node1" [ style = dashed] ++"swift-container-clone_start_0" -> "swift-container_start_0 rhos6-node2" [ style = dashed] ++"swift-container-clone_start_0" -> "swift-container_start_0 rhos6-node3" [ style = dashed] ++"swift-container-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-container-clone_stop_0" -> "swift-container-clone_stopped_0" [ style = bold] ++"swift-container-clone_stop_0" -> "swift-container_stop_0 rhos6-node1" [ style = bold] ++"swift-container-clone_stop_0" -> "swift-container_stop_0 rhos6-node2" [ style = bold] ++"swift-container-clone_stop_0" -> "swift-container_stop_0 rhos6-node3" [ style = bold] ++"swift-container-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"swift-container-clone_stopped_0" -> "swift-account-clone_stop_0" [ style = bold] ++"swift-container-clone_stopped_0" -> "swift-container-clone_start_0" [ style = dashed] ++"swift-container-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"swift-container_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-container_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-container_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-container_start_0 rhos6-node1" -> "swift-container-clone_running_0" [ style = dashed] ++"swift-container_start_0 rhos6-node1" -> "swift-container_monitor_60000 rhos6-node1" [ style = dashed] ++"swift-container_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-container_start_0 rhos6-node2" -> "swift-container-clone_running_0" [ style = dashed] ++"swift-container_start_0 rhos6-node2" -> "swift-container_monitor_60000 rhos6-node2" [ style = dashed] ++"swift-container_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-container_start_0 rhos6-node3" -> "swift-container-clone_running_0" [ style = dashed] ++"swift-container_start_0 rhos6-node3" -> "swift-container_monitor_60000 rhos6-node3" [ style = dashed] ++"swift-container_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-container_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"swift-container_stop_0 rhos6-node1" -> "swift-account_stop_0 rhos6-node1" [ style = bold] ++"swift-container_stop_0 rhos6-node1" -> "swift-container-clone_stopped_0" [ style = bold] ++"swift-container_stop_0 rhos6-node1" -> "swift-container_start_0 rhos6-node1" [ style = dashed] ++"swift-container_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"swift-container_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"swift-container_stop_0 rhos6-node2" -> "swift-account_stop_0 rhos6-node2" [ style = bold] ++"swift-container_stop_0 rhos6-node2" -> "swift-container-clone_stopped_0" [ style = bold] ++"swift-container_stop_0 rhos6-node2" -> "swift-container_start_0 rhos6-node2" [ style = dashed] ++"swift-container_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"swift-container_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"swift-container_stop_0 rhos6-node3" -> "swift-account_stop_0 rhos6-node3" [ style = bold] ++"swift-container_stop_0 rhos6-node3" -> "swift-container-clone_stopped_0" [ style = bold] ++"swift-container_stop_0 rhos6-node3" -> "swift-container_start_0 rhos6-node3" [ style = dashed] ++"swift-container_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"swift-object-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-object-clone_start_0" -> "swift-object-clone_running_0" [ style = dashed] ++"swift-object-clone_start_0" -> "swift-object_start_0 rhos6-node1" [ style = dashed] ++"swift-object-clone_start_0" -> "swift-object_start_0 rhos6-node2" [ style = dashed] ++"swift-object-clone_start_0" -> "swift-object_start_0 rhos6-node3" [ style = dashed] ++"swift-object-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-object-clone_stop_0" -> "swift-object-clone_stopped_0" [ style = bold] ++"swift-object-clone_stop_0" -> "swift-object_stop_0 rhos6-node1" [ style = bold] ++"swift-object-clone_stop_0" -> "swift-object_stop_0 rhos6-node2" [ style = bold] ++"swift-object-clone_stop_0" -> "swift-object_stop_0 rhos6-node3" [ style = bold] ++"swift-object-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"swift-object-clone_stopped_0" -> "swift-container-clone_stop_0" [ style = bold] ++"swift-object-clone_stopped_0" -> "swift-object-clone_start_0" [ style = dashed] ++"swift-object-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"swift-object-expirer_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-object-expirer_start_0 rhos6-node2" -> "swift-object-expirer_monitor_60000 rhos6-node2" [ style = dashed] ++"swift-object-expirer_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-object-expirer_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"swift-object-expirer_stop_0 rhos6-node2" -> "swift-object-expirer_start_0 rhos6-node2" [ style = dashed] ++"swift-object-expirer_stop_0 rhos6-node2" -> "swift-proxy-clone_stop_0" [ style = bold] ++"swift-object-expirer_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"swift-object_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-object_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-object_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-object_start_0 rhos6-node1" -> "swift-object-clone_running_0" [ style = dashed] ++"swift-object_start_0 rhos6-node1" -> "swift-object_monitor_60000 rhos6-node1" [ style = dashed] ++"swift-object_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-object_start_0 rhos6-node2" -> "swift-object-clone_running_0" [ style = dashed] ++"swift-object_start_0 rhos6-node2" -> "swift-object_monitor_60000 rhos6-node2" [ style = dashed] ++"swift-object_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-object_start_0 rhos6-node3" -> "swift-object-clone_running_0" [ style = dashed] ++"swift-object_start_0 rhos6-node3" -> "swift-object_monitor_60000 rhos6-node3" [ style = dashed] ++"swift-object_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-object_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"swift-object_stop_0 rhos6-node1" -> "swift-container_stop_0 rhos6-node1" [ style = bold] ++"swift-object_stop_0 rhos6-node1" -> "swift-object-clone_stopped_0" [ style = bold] ++"swift-object_stop_0 rhos6-node1" -> "swift-object_start_0 rhos6-node1" [ style = dashed] ++"swift-object_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"swift-object_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"swift-object_stop_0 rhos6-node2" -> "swift-container_stop_0 rhos6-node2" [ style = bold] ++"swift-object_stop_0 rhos6-node2" -> "swift-object-clone_stopped_0" [ style = bold] ++"swift-object_stop_0 rhos6-node2" -> "swift-object_start_0 rhos6-node2" [ style = dashed] ++"swift-object_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"swift-object_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"swift-object_stop_0 rhos6-node3" -> "swift-container_stop_0 rhos6-node3" [ style = bold] ++"swift-object_stop_0 rhos6-node3" -> "swift-object-clone_stopped_0" [ style = bold] ++"swift-object_stop_0 rhos6-node3" -> "swift-object_start_0 rhos6-node3" [ style = dashed] ++"swift-object_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++"swift-proxy-clone_running_0" -> "swift-object-expirer_start_0 rhos6-node2" [ style = dashed] ++"swift-proxy-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-proxy-clone_start_0" -> "swift-proxy-clone_running_0" [ style = dashed] ++"swift-proxy-clone_start_0" -> "swift-proxy_start_0 rhos6-node1" [ style = dashed] ++"swift-proxy-clone_start_0" -> "swift-proxy_start_0 rhos6-node2" [ style = dashed] ++"swift-proxy-clone_start_0" -> "swift-proxy_start_0 rhos6-node3" [ style = dashed] ++"swift-proxy-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"swift-proxy-clone_stop_0" -> "swift-proxy-clone_stopped_0" [ style = bold] ++"swift-proxy-clone_stop_0" -> "swift-proxy_stop_0 rhos6-node1" [ style = bold] ++"swift-proxy-clone_stop_0" -> "swift-proxy_stop_0 rhos6-node2" [ style = bold] ++"swift-proxy-clone_stop_0" -> "swift-proxy_stop_0 rhos6-node3" [ style = bold] ++"swift-proxy-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"swift-proxy-clone_stopped_0" -> "swift-account-clone_stop_0" [ style = bold] ++"swift-proxy-clone_stopped_0" -> "swift-proxy-clone_start_0" [ style = dashed] ++"swift-proxy-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"swift-proxy_monitor_60000 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-proxy_monitor_60000 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-proxy_monitor_60000 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-proxy_start_0 rhos6-node1" -> "swift-proxy-clone_running_0" [ style = dashed] ++"swift-proxy_start_0 rhos6-node1" -> "swift-proxy_monitor_60000 rhos6-node1" [ style = dashed] ++"swift-proxy_start_0 rhos6-node1" [ style=dashed color="red" fontcolor="black"] ++"swift-proxy_start_0 rhos6-node2" -> "swift-proxy-clone_running_0" [ style = dashed] ++"swift-proxy_start_0 rhos6-node2" -> "swift-proxy_monitor_60000 rhos6-node2" [ style = dashed] ++"swift-proxy_start_0 rhos6-node2" [ style=dashed color="red" fontcolor="black"] ++"swift-proxy_start_0 rhos6-node3" -> "swift-proxy-clone_running_0" [ style = dashed] ++"swift-proxy_start_0 rhos6-node3" -> "swift-proxy_monitor_60000 rhos6-node3" [ style = dashed] ++"swift-proxy_start_0 rhos6-node3" [ style=dashed color="red" fontcolor="black"] ++"swift-proxy_stop_0 rhos6-node1" -> "all_stopped" [ style = bold] ++"swift-proxy_stop_0 rhos6-node1" -> "swift-account_stop_0 rhos6-node1" [ style = bold] ++"swift-proxy_stop_0 rhos6-node1" -> "swift-proxy-clone_stopped_0" [ style = bold] ++"swift-proxy_stop_0 rhos6-node1" -> "swift-proxy_start_0 rhos6-node1" [ style = dashed] ++"swift-proxy_stop_0 rhos6-node1" [ style=bold color="green" fontcolor="black"] ++"swift-proxy_stop_0 rhos6-node2" -> "all_stopped" [ style = bold] ++"swift-proxy_stop_0 rhos6-node2" -> "swift-account_stop_0 rhos6-node2" [ style = bold] ++"swift-proxy_stop_0 rhos6-node2" -> "swift-proxy-clone_stopped_0" [ style = bold] ++"swift-proxy_stop_0 rhos6-node2" -> "swift-proxy_start_0 rhos6-node2" [ style = dashed] ++"swift-proxy_stop_0 rhos6-node2" [ style=bold color="green" fontcolor="black"] ++"swift-proxy_stop_0 rhos6-node3" -> "all_stopped" [ style = bold] ++"swift-proxy_stop_0 rhos6-node3" -> "swift-account_stop_0 rhos6-node3" [ style = bold] ++"swift-proxy_stop_0 rhos6-node3" -> "swift-proxy-clone_stopped_0" [ style = bold] ++"swift-proxy_stop_0 rhos6-node3" -> "swift-proxy_start_0 rhos6-node3" [ style = dashed] ++"swift-proxy_stop_0 rhos6-node3" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/complex_enforce_colo.exp b/pengine/test10/complex_enforce_colo.exp +new file mode 100644 +index 0000000..c19c433 +--- /dev/null ++++ b/pengine/test10/complex_enforce_colo.exp +@@ -0,0 +1,2689 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/pengine/test10/complex_enforce_colo.scores b/pengine/test10/complex_enforce_colo.scores +new file mode 100644 +index 0000000..9394084 +--- /dev/null ++++ b/pengine/test10/complex_enforce_colo.scores +@@ -0,0 +1,844 @@ ++Allocation scores: ++clone_color: ceilometer-alarm-evaluator-clone allocation score on rhos6-node1: 0 ++clone_color: ceilometer-alarm-evaluator-clone allocation score on rhos6-node2: 0 ++clone_color: ceilometer-alarm-evaluator-clone allocation score on rhos6-node3: 0 ++clone_color: ceilometer-alarm-evaluator:0 allocation score on rhos6-node1: 1 ++clone_color: ceilometer-alarm-evaluator:0 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-alarm-evaluator:0 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-alarm-evaluator:1 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-alarm-evaluator:1 allocation score on rhos6-node2: 1 ++clone_color: ceilometer-alarm-evaluator:1 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-alarm-evaluator:2 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-alarm-evaluator:2 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-alarm-evaluator:2 allocation score on rhos6-node3: 1 ++clone_color: ceilometer-alarm-notifier-clone allocation score on rhos6-node1: 0 ++clone_color: ceilometer-alarm-notifier-clone allocation score on rhos6-node2: 0 ++clone_color: ceilometer-alarm-notifier-clone allocation score on rhos6-node3: 0 ++clone_color: ceilometer-alarm-notifier:0 allocation score on rhos6-node1: 1 ++clone_color: ceilometer-alarm-notifier:0 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-alarm-notifier:0 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-alarm-notifier:1 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-alarm-notifier:1 allocation score on rhos6-node2: 1 ++clone_color: ceilometer-alarm-notifier:1 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-alarm-notifier:2 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-alarm-notifier:2 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-alarm-notifier:2 allocation score on rhos6-node3: 1 ++clone_color: ceilometer-api-clone allocation score on rhos6-node1: 0 ++clone_color: ceilometer-api-clone allocation score on rhos6-node2: 0 ++clone_color: ceilometer-api-clone allocation score on rhos6-node3: 0 ++clone_color: ceilometer-api:0 allocation score on rhos6-node1: 1 ++clone_color: ceilometer-api:0 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-api:0 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-api:1 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-api:1 allocation score on rhos6-node2: 1 ++clone_color: ceilometer-api:1 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-api:2 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-api:2 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-api:2 allocation score on rhos6-node3: 1 ++clone_color: ceilometer-collector-clone allocation score on rhos6-node1: 0 ++clone_color: ceilometer-collector-clone allocation score on rhos6-node2: 0 ++clone_color: ceilometer-collector-clone allocation score on rhos6-node3: 0 ++clone_color: ceilometer-collector:0 allocation score on rhos6-node1: 1 ++clone_color: ceilometer-collector:0 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-collector:0 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-collector:1 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-collector:1 allocation score on rhos6-node2: 1 ++clone_color: ceilometer-collector:1 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-collector:2 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-collector:2 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-collector:2 allocation score on rhos6-node3: 1 ++clone_color: ceilometer-delay-clone allocation score on rhos6-node1: 0 ++clone_color: ceilometer-delay-clone allocation score on rhos6-node2: 0 ++clone_color: ceilometer-delay-clone allocation score on rhos6-node3: 0 ++clone_color: ceilometer-delay:0 allocation score on rhos6-node1: 1 ++clone_color: ceilometer-delay:0 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-delay:0 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-delay:1 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-delay:1 allocation score on rhos6-node2: 1 ++clone_color: ceilometer-delay:1 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-delay:2 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-delay:2 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-delay:2 allocation score on rhos6-node3: 1 ++clone_color: ceilometer-notification-clone allocation score on rhos6-node1: 0 ++clone_color: ceilometer-notification-clone allocation score on rhos6-node2: 0 ++clone_color: ceilometer-notification-clone allocation score on rhos6-node3: 0 ++clone_color: ceilometer-notification:0 allocation score on rhos6-node1: 1 ++clone_color: ceilometer-notification:0 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-notification:0 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-notification:1 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-notification:1 allocation score on rhos6-node2: 1 ++clone_color: ceilometer-notification:1 allocation score on rhos6-node3: 0 ++clone_color: ceilometer-notification:2 allocation score on rhos6-node1: 0 ++clone_color: ceilometer-notification:2 allocation score on rhos6-node2: 0 ++clone_color: ceilometer-notification:2 allocation score on rhos6-node3: 1 ++clone_color: galera-master allocation score on rhos6-node1: 0 ++clone_color: galera-master allocation score on rhos6-node2: 0 ++clone_color: galera-master allocation score on rhos6-node3: 0 ++clone_color: galera:0 allocation score on rhos6-node1: 101 ++clone_color: galera:0 allocation score on rhos6-node2: 0 ++clone_color: galera:0 allocation score on rhos6-node3: 0 ++clone_color: galera:1 allocation score on rhos6-node1: 0 ++clone_color: galera:1 allocation score on rhos6-node2: 101 ++clone_color: galera:1 allocation score on rhos6-node3: 0 ++clone_color: galera:2 allocation score on rhos6-node1: 0 ++clone_color: galera:2 allocation score on rhos6-node2: 0 ++clone_color: galera:2 allocation score on rhos6-node3: 101 ++clone_color: glance-api-clone allocation score on rhos6-node1: 0 ++clone_color: glance-api-clone allocation score on rhos6-node2: 0 ++clone_color: glance-api-clone allocation score on rhos6-node3: 0 ++clone_color: glance-api:0 allocation score on rhos6-node1: 1 ++clone_color: glance-api:0 allocation score on rhos6-node2: 0 ++clone_color: glance-api:0 allocation score on rhos6-node3: 0 ++clone_color: glance-api:1 allocation score on rhos6-node1: 0 ++clone_color: glance-api:1 allocation score on rhos6-node2: 1 ++clone_color: glance-api:1 allocation score on rhos6-node3: 0 ++clone_color: glance-api:2 allocation score on rhos6-node1: 0 ++clone_color: glance-api:2 allocation score on rhos6-node2: 0 ++clone_color: glance-api:2 allocation score on rhos6-node3: 1 ++clone_color: glance-fs-clone allocation score on rhos6-node1: 0 ++clone_color: glance-fs-clone allocation score on rhos6-node2: 0 ++clone_color: glance-fs-clone allocation score on rhos6-node3: 0 ++clone_color: glance-fs:0 allocation score on rhos6-node1: 1 ++clone_color: glance-fs:0 allocation score on rhos6-node2: 0 ++clone_color: glance-fs:0 allocation score on rhos6-node3: 0 ++clone_color: glance-fs:1 allocation score on rhos6-node1: 0 ++clone_color: glance-fs:1 allocation score on rhos6-node2: 1 ++clone_color: glance-fs:1 allocation score on rhos6-node3: 0 ++clone_color: glance-fs:2 allocation score on rhos6-node1: 0 ++clone_color: glance-fs:2 allocation score on rhos6-node2: 0 ++clone_color: glance-fs:2 allocation score on rhos6-node3: 1 ++clone_color: glance-registry-clone allocation score on rhos6-node1: 0 ++clone_color: glance-registry-clone allocation score on rhos6-node2: 0 ++clone_color: glance-registry-clone allocation score on rhos6-node3: 0 ++clone_color: glance-registry:0 allocation score on rhos6-node1: 1 ++clone_color: glance-registry:0 allocation score on rhos6-node2: 0 ++clone_color: glance-registry:0 allocation score on rhos6-node3: 0 ++clone_color: glance-registry:1 allocation score on rhos6-node1: 0 ++clone_color: glance-registry:1 allocation score on rhos6-node2: 1 ++clone_color: glance-registry:1 allocation score on rhos6-node3: 0 ++clone_color: glance-registry:2 allocation score on rhos6-node1: 0 ++clone_color: glance-registry:2 allocation score on rhos6-node2: 0 ++clone_color: glance-registry:2 allocation score on rhos6-node3: 1 ++clone_color: heat-api-cfn-clone allocation score on rhos6-node1: 0 ++clone_color: heat-api-cfn-clone allocation score on rhos6-node2: 0 ++clone_color: heat-api-cfn-clone allocation score on rhos6-node3: 0 ++clone_color: heat-api-cfn:0 allocation score on rhos6-node1: 1 ++clone_color: heat-api-cfn:0 allocation score on rhos6-node2: 0 ++clone_color: heat-api-cfn:0 allocation score on rhos6-node3: 0 ++clone_color: heat-api-cfn:1 allocation score on rhos6-node1: 0 ++clone_color: heat-api-cfn:1 allocation score on rhos6-node2: 1 ++clone_color: heat-api-cfn:1 allocation score on rhos6-node3: 0 ++clone_color: heat-api-cfn:2 allocation score on rhos6-node1: 0 ++clone_color: heat-api-cfn:2 allocation score on rhos6-node2: 0 ++clone_color: heat-api-cfn:2 allocation score on rhos6-node3: 1 ++clone_color: heat-api-clone allocation score on rhos6-node1: 0 ++clone_color: heat-api-clone allocation score on rhos6-node2: 0 ++clone_color: heat-api-clone allocation score on rhos6-node3: 0 ++clone_color: heat-api-cloudwatch-clone allocation score on rhos6-node1: 0 ++clone_color: heat-api-cloudwatch-clone allocation score on rhos6-node2: 0 ++clone_color: heat-api-cloudwatch-clone allocation score on rhos6-node3: 0 ++clone_color: heat-api-cloudwatch:0 allocation score on rhos6-node1: 1 ++clone_color: heat-api-cloudwatch:0 allocation score on rhos6-node2: 0 ++clone_color: heat-api-cloudwatch:0 allocation score on rhos6-node3: 0 ++clone_color: heat-api-cloudwatch:1 allocation score on rhos6-node1: 0 ++clone_color: heat-api-cloudwatch:1 allocation score on rhos6-node2: 1 ++clone_color: heat-api-cloudwatch:1 allocation score on rhos6-node3: 0 ++clone_color: heat-api-cloudwatch:2 allocation score on rhos6-node1: 0 ++clone_color: heat-api-cloudwatch:2 allocation score on rhos6-node2: 0 ++clone_color: heat-api-cloudwatch:2 allocation score on rhos6-node3: 1 ++clone_color: heat-api:0 allocation score on rhos6-node1: 1 ++clone_color: heat-api:0 allocation score on rhos6-node2: 0 ++clone_color: heat-api:0 allocation score on rhos6-node3: 0 ++clone_color: heat-api:1 allocation score on rhos6-node1: 0 ++clone_color: heat-api:1 allocation score on rhos6-node2: 1 ++clone_color: heat-api:1 allocation score on rhos6-node3: 0 ++clone_color: heat-api:2 allocation score on rhos6-node1: 0 ++clone_color: heat-api:2 allocation score on rhos6-node2: 0 ++clone_color: heat-api:2 allocation score on rhos6-node3: 1 ++clone_color: horizon-clone allocation score on rhos6-node1: 0 ++clone_color: horizon-clone allocation score on rhos6-node2: 0 ++clone_color: horizon-clone allocation score on rhos6-node3: 0 ++clone_color: horizon:0 allocation score on rhos6-node1: 1 ++clone_color: horizon:0 allocation score on rhos6-node2: 0 ++clone_color: horizon:0 allocation score on rhos6-node3: 0 ++clone_color: horizon:1 allocation score on rhos6-node1: 0 ++clone_color: horizon:1 allocation score on rhos6-node2: 1 ++clone_color: horizon:1 allocation score on rhos6-node3: 0 ++clone_color: horizon:2 allocation score on rhos6-node1: 0 ++clone_color: horizon:2 allocation score on rhos6-node2: 0 ++clone_color: horizon:2 allocation score on rhos6-node3: 1 ++clone_color: keystone-clone allocation score on rhos6-node1: 0 ++clone_color: keystone-clone allocation score on rhos6-node2: 0 ++clone_color: keystone-clone allocation score on rhos6-node3: 0 ++clone_color: keystone:0 allocation score on rhos6-node1: 1 ++clone_color: keystone:0 allocation score on rhos6-node2: 0 ++clone_color: keystone:0 allocation score on rhos6-node3: 0 ++clone_color: keystone:1 allocation score on rhos6-node1: 0 ++clone_color: keystone:1 allocation score on rhos6-node2: 1 ++clone_color: keystone:1 allocation score on rhos6-node3: 0 ++clone_color: keystone:2 allocation score on rhos6-node1: 0 ++clone_color: keystone:2 allocation score on rhos6-node2: 0 ++clone_color: keystone:2 allocation score on rhos6-node3: 1 ++clone_color: lb-haproxy-clone allocation score on rhos6-node1: 0 ++clone_color: lb-haproxy-clone allocation score on rhos6-node2: 0 ++clone_color: lb-haproxy-clone allocation score on rhos6-node3: 0 ++clone_color: lb-haproxy:0 allocation score on rhos6-node1: 1 ++clone_color: lb-haproxy:0 allocation score on rhos6-node2: 0 ++clone_color: lb-haproxy:0 allocation score on rhos6-node3: 0 ++clone_color: lb-haproxy:1 allocation score on rhos6-node1: 0 ++clone_color: lb-haproxy:1 allocation score on rhos6-node2: 1 ++clone_color: lb-haproxy:1 allocation score on rhos6-node3: 0 ++clone_color: lb-haproxy:2 allocation score on rhos6-node1: 0 ++clone_color: lb-haproxy:2 allocation score on rhos6-node2: 0 ++clone_color: lb-haproxy:2 allocation score on rhos6-node3: 1 ++clone_color: memcached-clone allocation score on rhos6-node1: 0 ++clone_color: memcached-clone allocation score on rhos6-node2: 0 ++clone_color: memcached-clone allocation score on rhos6-node3: 0 ++clone_color: memcached:0 allocation score on rhos6-node1: 1 ++clone_color: memcached:0 allocation score on rhos6-node2: 0 ++clone_color: memcached:0 allocation score on rhos6-node3: 0 ++clone_color: memcached:1 allocation score on rhos6-node1: 0 ++clone_color: memcached:1 allocation score on rhos6-node2: 1 ++clone_color: memcached:1 allocation score on rhos6-node3: 0 ++clone_color: memcached:2 allocation score on rhos6-node1: 0 ++clone_color: memcached:2 allocation score on rhos6-node2: 0 ++clone_color: memcached:2 allocation score on rhos6-node3: 1 ++clone_color: mongodb-clone allocation score on rhos6-node1: 0 ++clone_color: mongodb-clone allocation score on rhos6-node2: 0 ++clone_color: mongodb-clone allocation score on rhos6-node3: 0 ++clone_color: mongodb:0 allocation score on rhos6-node1: 1 ++clone_color: mongodb:0 allocation score on rhos6-node2: 0 ++clone_color: mongodb:0 allocation score on rhos6-node3: 0 ++clone_color: mongodb:1 allocation score on rhos6-node1: 0 ++clone_color: mongodb:1 allocation score on rhos6-node2: 1 ++clone_color: mongodb:1 allocation score on rhos6-node3: 0 ++clone_color: mongodb:2 allocation score on rhos6-node1: 0 ++clone_color: mongodb:2 allocation score on rhos6-node2: 0 ++clone_color: mongodb:2 allocation score on rhos6-node3: 1 ++clone_color: neutron-dhcp-agent-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-dhcp-agent-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-dhcp-agent-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-dhcp-agent:0 allocation score on rhos6-node1: 1 ++clone_color: neutron-dhcp-agent:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-dhcp-agent:0 allocation score on rhos6-node3: 0 ++clone_color: neutron-dhcp-agent:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-dhcp-agent:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-dhcp-agent:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-dhcp-agent:2 allocation score on rhos6-node1: 0 ++clone_color: neutron-dhcp-agent:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-dhcp-agent:2 allocation score on rhos6-node3: 1 ++clone_color: neutron-l3-agent-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-l3-agent-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-l3-agent-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-l3-agent:0 allocation score on rhos6-node1: 1 ++clone_color: neutron-l3-agent:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-l3-agent:0 allocation score on rhos6-node3: 0 ++clone_color: neutron-l3-agent:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-l3-agent:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-l3-agent:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-l3-agent:2 allocation score on rhos6-node1: 0 ++clone_color: neutron-l3-agent:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-l3-agent:2 allocation score on rhos6-node3: 1 ++clone_color: neutron-metadata-agent-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-metadata-agent-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-metadata-agent-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-metadata-agent:0 allocation score on rhos6-node1: 1 ++clone_color: neutron-metadata-agent:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-metadata-agent:0 allocation score on rhos6-node3: 0 ++clone_color: neutron-metadata-agent:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-metadata-agent:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-metadata-agent:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-metadata-agent:2 allocation score on rhos6-node1: 0 ++clone_color: neutron-metadata-agent:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-metadata-agent:2 allocation score on rhos6-node3: 1 ++clone_color: neutron-netns-cleanup-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-netns-cleanup-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-netns-cleanup-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-netns-cleanup:0 allocation score on rhos6-node1: 1 ++clone_color: neutron-netns-cleanup:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-netns-cleanup:0 allocation score on rhos6-node3: 0 ++clone_color: neutron-netns-cleanup:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-netns-cleanup:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-netns-cleanup:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-netns-cleanup:2 allocation score on rhos6-node1: 0 ++clone_color: neutron-netns-cleanup:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-netns-cleanup:2 allocation score on rhos6-node3: 1 ++clone_color: neutron-openvswitch-agent-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-openvswitch-agent-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-openvswitch-agent-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-openvswitch-agent:0 allocation score on rhos6-node1: 1 ++clone_color: neutron-openvswitch-agent:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-openvswitch-agent:0 allocation score on rhos6-node3: 0 ++clone_color: neutron-openvswitch-agent:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-openvswitch-agent:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-openvswitch-agent:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-openvswitch-agent:2 allocation score on rhos6-node1: 0 ++clone_color: neutron-openvswitch-agent:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-openvswitch-agent:2 allocation score on rhos6-node3: 1 ++clone_color: neutron-ovs-cleanup-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-ovs-cleanup-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-ovs-cleanup-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-ovs-cleanup:0 allocation score on rhos6-node1: 1 ++clone_color: neutron-ovs-cleanup:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-ovs-cleanup:0 allocation score on rhos6-node3: 0 ++clone_color: neutron-ovs-cleanup:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-ovs-cleanup:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-ovs-cleanup:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-ovs-cleanup:2 allocation score on rhos6-node1: 0 ++clone_color: neutron-ovs-cleanup:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-ovs-cleanup:2 allocation score on rhos6-node3: 1 ++clone_color: neutron-scale-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-scale-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-scale-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-scale:0 allocation score on rhos6-node1: 0 ++clone_color: neutron-scale:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-scale:0 allocation score on rhos6-node3: 1 ++clone_color: neutron-scale:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-scale:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-scale:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-scale:2 allocation score on rhos6-node1: 1 ++clone_color: neutron-scale:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-scale:2 allocation score on rhos6-node3: 0 ++clone_color: neutron-server-clone allocation score on rhos6-node1: 0 ++clone_color: neutron-server-clone allocation score on rhos6-node2: 0 ++clone_color: neutron-server-clone allocation score on rhos6-node3: 0 ++clone_color: neutron-server:0 allocation score on rhos6-node1: 1 ++clone_color: neutron-server:0 allocation score on rhos6-node2: 0 ++clone_color: neutron-server:0 allocation score on rhos6-node3: 0 ++clone_color: neutron-server:1 allocation score on rhos6-node1: 0 ++clone_color: neutron-server:1 allocation score on rhos6-node2: 1 ++clone_color: neutron-server:1 allocation score on rhos6-node3: 0 ++clone_color: neutron-server:2 allocation score on rhos6-node1: 0 ++clone_color: neutron-server:2 allocation score on rhos6-node2: 0 ++clone_color: neutron-server:2 allocation score on rhos6-node3: 1 ++clone_color: nova-api-clone allocation score on rhos6-node1: 0 ++clone_color: nova-api-clone allocation score on rhos6-node2: 0 ++clone_color: nova-api-clone allocation score on rhos6-node3: 0 ++clone_color: nova-api:0 allocation score on rhos6-node1: 1 ++clone_color: nova-api:0 allocation score on rhos6-node2: 0 ++clone_color: nova-api:0 allocation score on rhos6-node3: 0 ++clone_color: nova-api:1 allocation score on rhos6-node1: 0 ++clone_color: nova-api:1 allocation score on rhos6-node2: 1 ++clone_color: nova-api:1 allocation score on rhos6-node3: 0 ++clone_color: nova-api:2 allocation score on rhos6-node1: 0 ++clone_color: nova-api:2 allocation score on rhos6-node2: 0 ++clone_color: nova-api:2 allocation score on rhos6-node3: 1 ++clone_color: nova-conductor-clone allocation score on rhos6-node1: 0 ++clone_color: nova-conductor-clone allocation score on rhos6-node2: 0 ++clone_color: nova-conductor-clone allocation score on rhos6-node3: 0 ++clone_color: nova-conductor:0 allocation score on rhos6-node1: 1 ++clone_color: nova-conductor:0 allocation score on rhos6-node2: 0 ++clone_color: nova-conductor:0 allocation score on rhos6-node3: 0 ++clone_color: nova-conductor:1 allocation score on rhos6-node1: 0 ++clone_color: nova-conductor:1 allocation score on rhos6-node2: 1 ++clone_color: nova-conductor:1 allocation score on rhos6-node3: 0 ++clone_color: nova-conductor:2 allocation score on rhos6-node1: 0 ++clone_color: nova-conductor:2 allocation score on rhos6-node2: 0 ++clone_color: nova-conductor:2 allocation score on rhos6-node3: 1 ++clone_color: nova-consoleauth-clone allocation score on rhos6-node1: 0 ++clone_color: nova-consoleauth-clone allocation score on rhos6-node2: 0 ++clone_color: nova-consoleauth-clone allocation score on rhos6-node3: 0 ++clone_color: nova-consoleauth:0 allocation score on rhos6-node1: 1 ++clone_color: nova-consoleauth:0 allocation score on rhos6-node2: 0 ++clone_color: nova-consoleauth:0 allocation score on rhos6-node3: 0 ++clone_color: nova-consoleauth:1 allocation score on rhos6-node1: 0 ++clone_color: nova-consoleauth:1 allocation score on rhos6-node2: 1 ++clone_color: nova-consoleauth:1 allocation score on rhos6-node3: 0 ++clone_color: nova-consoleauth:2 allocation score on rhos6-node1: 0 ++clone_color: nova-consoleauth:2 allocation score on rhos6-node2: 0 ++clone_color: nova-consoleauth:2 allocation score on rhos6-node3: 1 ++clone_color: nova-novncproxy-clone allocation score on rhos6-node1: 0 ++clone_color: nova-novncproxy-clone allocation score on rhos6-node2: 0 ++clone_color: nova-novncproxy-clone allocation score on rhos6-node3: 0 ++clone_color: nova-novncproxy:0 allocation score on rhos6-node1: 1 ++clone_color: nova-novncproxy:0 allocation score on rhos6-node2: 0 ++clone_color: nova-novncproxy:0 allocation score on rhos6-node3: 0 ++clone_color: nova-novncproxy:1 allocation score on rhos6-node1: 0 ++clone_color: nova-novncproxy:1 allocation score on rhos6-node2: 1 ++clone_color: nova-novncproxy:1 allocation score on rhos6-node3: 0 ++clone_color: nova-novncproxy:2 allocation score on rhos6-node1: 0 ++clone_color: nova-novncproxy:2 allocation score on rhos6-node2: 0 ++clone_color: nova-novncproxy:2 allocation score on rhos6-node3: 1 ++clone_color: nova-scheduler-clone allocation score on rhos6-node1: 0 ++clone_color: nova-scheduler-clone allocation score on rhos6-node2: 0 ++clone_color: nova-scheduler-clone allocation score on rhos6-node3: 0 ++clone_color: nova-scheduler:0 allocation score on rhos6-node1: 1 ++clone_color: nova-scheduler:0 allocation score on rhos6-node2: 0 ++clone_color: nova-scheduler:0 allocation score on rhos6-node3: 0 ++clone_color: nova-scheduler:1 allocation score on rhos6-node1: 0 ++clone_color: nova-scheduler:1 allocation score on rhos6-node2: 1 ++clone_color: nova-scheduler:1 allocation score on rhos6-node3: 0 ++clone_color: nova-scheduler:2 allocation score on rhos6-node1: 0 ++clone_color: nova-scheduler:2 allocation score on rhos6-node2: 0 ++clone_color: nova-scheduler:2 allocation score on rhos6-node3: 1 ++clone_color: rabbitmq-server-clone allocation score on rhos6-node1: 0 ++clone_color: rabbitmq-server-clone allocation score on rhos6-node2: 0 ++clone_color: rabbitmq-server-clone allocation score on rhos6-node3: 0 ++clone_color: rabbitmq-server:0 allocation score on rhos6-node1: 1 ++clone_color: rabbitmq-server:0 allocation score on rhos6-node2: 0 ++clone_color: rabbitmq-server:0 allocation score on rhos6-node3: 0 ++clone_color: rabbitmq-server:1 allocation score on rhos6-node1: 0 ++clone_color: rabbitmq-server:1 allocation score on rhos6-node2: 1 ++clone_color: rabbitmq-server:1 allocation score on rhos6-node3: 0 ++clone_color: rabbitmq-server:2 allocation score on rhos6-node1: 0 ++clone_color: rabbitmq-server:2 allocation score on rhos6-node2: 0 ++clone_color: rabbitmq-server:2 allocation score on rhos6-node3: 1 ++clone_color: swift-account-clone allocation score on rhos6-node1: 0 ++clone_color: swift-account-clone allocation score on rhos6-node2: 0 ++clone_color: swift-account-clone allocation score on rhos6-node3: 0 ++clone_color: swift-account:0 allocation score on rhos6-node1: 1 ++clone_color: swift-account:0 allocation score on rhos6-node2: 0 ++clone_color: swift-account:0 allocation score on rhos6-node3: 0 ++clone_color: swift-account:1 allocation score on rhos6-node1: 0 ++clone_color: swift-account:1 allocation score on rhos6-node2: 1 ++clone_color: swift-account:1 allocation score on rhos6-node3: 0 ++clone_color: swift-account:2 allocation score on rhos6-node1: 0 ++clone_color: swift-account:2 allocation score on rhos6-node2: 0 ++clone_color: swift-account:2 allocation score on rhos6-node3: 1 ++clone_color: swift-container-clone allocation score on rhos6-node1: 0 ++clone_color: swift-container-clone allocation score on rhos6-node2: 0 ++clone_color: swift-container-clone allocation score on rhos6-node3: 0 ++clone_color: swift-container:0 allocation score on rhos6-node1: 1 ++clone_color: swift-container:0 allocation score on rhos6-node2: 0 ++clone_color: swift-container:0 allocation score on rhos6-node3: 0 ++clone_color: swift-container:1 allocation score on rhos6-node1: 0 ++clone_color: swift-container:1 allocation score on rhos6-node2: 1 ++clone_color: swift-container:1 allocation score on rhos6-node3: 0 ++clone_color: swift-container:2 allocation score on rhos6-node1: 0 ++clone_color: swift-container:2 allocation score on rhos6-node2: 0 ++clone_color: swift-container:2 allocation score on rhos6-node3: 1 ++clone_color: swift-fs-clone allocation score on rhos6-node1: 0 ++clone_color: swift-fs-clone allocation score on rhos6-node2: 0 ++clone_color: swift-fs-clone allocation score on rhos6-node3: 0 ++clone_color: swift-fs:0 allocation score on rhos6-node1: 1 ++clone_color: swift-fs:0 allocation score on rhos6-node2: 0 ++clone_color: swift-fs:0 allocation score on rhos6-node3: 0 ++clone_color: swift-fs:1 allocation score on rhos6-node1: 0 ++clone_color: swift-fs:1 allocation score on rhos6-node2: 1 ++clone_color: swift-fs:1 allocation score on rhos6-node3: 0 ++clone_color: swift-fs:2 allocation score on rhos6-node1: 0 ++clone_color: swift-fs:2 allocation score on rhos6-node2: 0 ++clone_color: swift-fs:2 allocation score on rhos6-node3: 1 ++clone_color: swift-object-clone allocation score on rhos6-node1: 0 ++clone_color: swift-object-clone allocation score on rhos6-node2: 0 ++clone_color: swift-object-clone allocation score on rhos6-node3: 0 ++clone_color: swift-object:0 allocation score on rhos6-node1: 1 ++clone_color: swift-object:0 allocation score on rhos6-node2: 0 ++clone_color: swift-object:0 allocation score on rhos6-node3: 0 ++clone_color: swift-object:1 allocation score on rhos6-node1: 0 ++clone_color: swift-object:1 allocation score on rhos6-node2: 1 ++clone_color: swift-object:1 allocation score on rhos6-node3: 0 ++clone_color: swift-object:2 allocation score on rhos6-node1: 0 ++clone_color: swift-object:2 allocation score on rhos6-node2: 0 ++clone_color: swift-object:2 allocation score on rhos6-node3: 1 ++clone_color: swift-proxy-clone allocation score on rhos6-node1: 0 ++clone_color: swift-proxy-clone allocation score on rhos6-node2: 0 ++clone_color: swift-proxy-clone allocation score on rhos6-node3: 0 ++clone_color: swift-proxy:0 allocation score on rhos6-node1: 1 ++clone_color: swift-proxy:0 allocation score on rhos6-node2: 0 ++clone_color: swift-proxy:0 allocation score on rhos6-node3: 0 ++clone_color: swift-proxy:1 allocation score on rhos6-node1: 0 ++clone_color: swift-proxy:1 allocation score on rhos6-node2: 1 ++clone_color: swift-proxy:1 allocation score on rhos6-node3: 0 ++clone_color: swift-proxy:2 allocation score on rhos6-node1: 0 ++clone_color: swift-proxy:2 allocation score on rhos6-node2: 0 ++clone_color: swift-proxy:2 allocation score on rhos6-node3: 1 ++galera:0 promotion score on rhos6-node1: 100 ++galera:1 promotion score on rhos6-node2: 100 ++galera:2 promotion score on rhos6-node3: 100 ++native_color: ceilometer-alarm-evaluator:0 allocation score on rhos6-node1: 1 ++native_color: ceilometer-alarm-evaluator:0 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-alarm-evaluator:0 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-alarm-evaluator:1 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-alarm-evaluator:1 allocation score on rhos6-node2: 1 ++native_color: ceilometer-alarm-evaluator:1 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-alarm-evaluator:2 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-alarm-evaluator:2 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-alarm-evaluator:2 allocation score on rhos6-node3: 1 ++native_color: ceilometer-alarm-notifier:0 allocation score on rhos6-node1: 1 ++native_color: ceilometer-alarm-notifier:0 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-alarm-notifier:0 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-alarm-notifier:1 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-alarm-notifier:1 allocation score on rhos6-node2: 1 ++native_color: ceilometer-alarm-notifier:1 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-alarm-notifier:2 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-alarm-notifier:2 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-alarm-notifier:2 allocation score on rhos6-node3: 1 ++native_color: ceilometer-api:0 allocation score on rhos6-node1: 1 ++native_color: ceilometer-api:0 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-api:0 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-api:1 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-api:1 allocation score on rhos6-node2: 1 ++native_color: ceilometer-api:1 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-api:2 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-api:2 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-api:2 allocation score on rhos6-node3: 1 ++native_color: ceilometer-central allocation score on rhos6-node1: 0 ++native_color: ceilometer-central allocation score on rhos6-node2: 0 ++native_color: ceilometer-central allocation score on rhos6-node3: 0 ++native_color: ceilometer-collector:0 allocation score on rhos6-node1: 1 ++native_color: ceilometer-collector:0 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-collector:0 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-collector:1 allocation score on rhos6-node1: 0 ++native_color: ceilometer-collector:1 allocation score on rhos6-node2: 1 ++native_color: ceilometer-collector:1 allocation score on rhos6-node3: 0 ++native_color: ceilometer-collector:2 allocation score on rhos6-node1: 0 ++native_color: ceilometer-collector:2 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-collector:2 allocation score on rhos6-node3: 1 ++native_color: ceilometer-delay:0 allocation score on rhos6-node1: 1 ++native_color: ceilometer-delay:0 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-delay:0 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-delay:1 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-delay:1 allocation score on rhos6-node2: 1 ++native_color: ceilometer-delay:1 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-delay:2 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-delay:2 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-delay:2 allocation score on rhos6-node3: 1 ++native_color: ceilometer-notification:0 allocation score on rhos6-node1: 1 ++native_color: ceilometer-notification:0 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-notification:0 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-notification:1 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-notification:1 allocation score on rhos6-node2: 1 ++native_color: ceilometer-notification:1 allocation score on rhos6-node3: -INFINITY ++native_color: ceilometer-notification:2 allocation score on rhos6-node1: -INFINITY ++native_color: ceilometer-notification:2 allocation score on rhos6-node2: -INFINITY ++native_color: ceilometer-notification:2 allocation score on rhos6-node3: 1 ++native_color: cinder-api allocation score on rhos6-node1: 0 ++native_color: cinder-api allocation score on rhos6-node2: 0 ++native_color: cinder-api allocation score on rhos6-node3: 0 ++native_color: cinder-scheduler allocation score on rhos6-node1: 0 ++native_color: cinder-scheduler allocation score on rhos6-node2: -INFINITY ++native_color: cinder-scheduler allocation score on rhos6-node3: -INFINITY ++native_color: cinder-volume allocation score on rhos6-node1: 0 ++native_color: cinder-volume allocation score on rhos6-node2: -INFINITY ++native_color: cinder-volume allocation score on rhos6-node3: -INFINITY ++native_color: galera:0 allocation score on rhos6-node1: 101 ++native_color: galera:0 allocation score on rhos6-node2: 0 ++native_color: galera:0 allocation score on rhos6-node3: 0 ++native_color: galera:1 allocation score on rhos6-node1: -INFINITY ++native_color: galera:1 allocation score on rhos6-node2: 101 ++native_color: galera:1 allocation score on rhos6-node3: 0 ++native_color: galera:2 allocation score on rhos6-node1: -INFINITY ++native_color: galera:2 allocation score on rhos6-node2: -INFINITY ++native_color: galera:2 allocation score on rhos6-node3: 101 ++native_color: glance-api:0 allocation score on rhos6-node1: 1 ++native_color: glance-api:0 allocation score on rhos6-node2: -INFINITY ++native_color: glance-api:0 allocation score on rhos6-node3: -INFINITY ++native_color: glance-api:1 allocation score on rhos6-node1: -INFINITY ++native_color: glance-api:1 allocation score on rhos6-node2: 1 ++native_color: glance-api:1 allocation score on rhos6-node3: -INFINITY ++native_color: glance-api:2 allocation score on rhos6-node1: -INFINITY ++native_color: glance-api:2 allocation score on rhos6-node2: -INFINITY ++native_color: glance-api:2 allocation score on rhos6-node3: 1 ++native_color: glance-fs:0 allocation score on rhos6-node1: 1 ++native_color: glance-fs:0 allocation score on rhos6-node2: 0 ++native_color: glance-fs:0 allocation score on rhos6-node3: 0 ++native_color: glance-fs:1 allocation score on rhos6-node1: -INFINITY ++native_color: glance-fs:1 allocation score on rhos6-node2: 1 ++native_color: glance-fs:1 allocation score on rhos6-node3: 0 ++native_color: glance-fs:2 allocation score on rhos6-node1: -INFINITY ++native_color: glance-fs:2 allocation score on rhos6-node2: -INFINITY ++native_color: glance-fs:2 allocation score on rhos6-node3: 1 ++native_color: glance-registry:0 allocation score on rhos6-node1: 1 ++native_color: glance-registry:0 allocation score on rhos6-node2: -INFINITY ++native_color: glance-registry:0 allocation score on rhos6-node3: -INFINITY ++native_color: glance-registry:1 allocation score on rhos6-node1: -INFINITY ++native_color: glance-registry:1 allocation score on rhos6-node2: 1 ++native_color: glance-registry:1 allocation score on rhos6-node3: -INFINITY ++native_color: glance-registry:2 allocation score on rhos6-node1: -INFINITY ++native_color: glance-registry:2 allocation score on rhos6-node2: -INFINITY ++native_color: glance-registry:2 allocation score on rhos6-node3: 1 ++native_color: heat-api-cfn:0 allocation score on rhos6-node1: 1 ++native_color: heat-api-cfn:0 allocation score on rhos6-node2: -INFINITY ++native_color: heat-api-cfn:0 allocation score on rhos6-node3: -INFINITY ++native_color: heat-api-cfn:1 allocation score on rhos6-node1: -INFINITY ++native_color: heat-api-cfn:1 allocation score on rhos6-node2: 1 ++native_color: heat-api-cfn:1 allocation score on rhos6-node3: -INFINITY ++native_color: heat-api-cfn:2 allocation score on rhos6-node1: -INFINITY ++native_color: heat-api-cfn:2 allocation score on rhos6-node2: -INFINITY ++native_color: heat-api-cfn:2 allocation score on rhos6-node3: 1 ++native_color: heat-api-cloudwatch:0 allocation score on rhos6-node1: 1 ++native_color: heat-api-cloudwatch:0 allocation score on rhos6-node2: -INFINITY ++native_color: heat-api-cloudwatch:0 allocation score on rhos6-node3: -INFINITY ++native_color: heat-api-cloudwatch:1 allocation score on rhos6-node1: -INFINITY ++native_color: heat-api-cloudwatch:1 allocation score on rhos6-node2: 1 ++native_color: heat-api-cloudwatch:1 allocation score on rhos6-node3: -INFINITY ++native_color: heat-api-cloudwatch:2 allocation score on rhos6-node1: -INFINITY ++native_color: heat-api-cloudwatch:2 allocation score on rhos6-node2: -INFINITY ++native_color: heat-api-cloudwatch:2 allocation score on rhos6-node3: 1 ++native_color: heat-api:0 allocation score on rhos6-node1: 1 ++native_color: heat-api:0 allocation score on rhos6-node2: -INFINITY ++native_color: heat-api:0 allocation score on rhos6-node3: -INFINITY ++native_color: heat-api:1 allocation score on rhos6-node1: 0 ++native_color: heat-api:1 allocation score on rhos6-node2: 1 ++native_color: heat-api:1 allocation score on rhos6-node3: 0 ++native_color: heat-api:2 allocation score on rhos6-node1: 0 ++native_color: heat-api:2 allocation score on rhos6-node2: -INFINITY ++native_color: heat-api:2 allocation score on rhos6-node3: 1 ++native_color: heat-engine allocation score on rhos6-node1: 0 ++native_color: heat-engine allocation score on rhos6-node2: 0 ++native_color: heat-engine allocation score on rhos6-node3: 0 ++native_color: horizon:0 allocation score on rhos6-node1: 1 ++native_color: horizon:0 allocation score on rhos6-node2: -INFINITY ++native_color: horizon:0 allocation score on rhos6-node3: -INFINITY ++native_color: horizon:1 allocation score on rhos6-node1: 0 ++native_color: horizon:1 allocation score on rhos6-node2: 1 ++native_color: horizon:1 allocation score on rhos6-node3: -INFINITY ++native_color: horizon:2 allocation score on rhos6-node1: 0 ++native_color: horizon:2 allocation score on rhos6-node2: 0 ++native_color: horizon:2 allocation score on rhos6-node3: 1 ++native_color: keystone:0 allocation score on rhos6-node1: -INFINITY ++native_color: keystone:0 allocation score on rhos6-node2: -INFINITY ++native_color: keystone:0 allocation score on rhos6-node3: -INFINITY ++native_color: keystone:1 allocation score on rhos6-node1: -INFINITY ++native_color: keystone:1 allocation score on rhos6-node2: -INFINITY ++native_color: keystone:1 allocation score on rhos6-node3: -INFINITY ++native_color: keystone:2 allocation score on rhos6-node1: -INFINITY ++native_color: keystone:2 allocation score on rhos6-node2: -INFINITY ++native_color: keystone:2 allocation score on rhos6-node3: -INFINITY ++native_color: lb-haproxy:0 allocation score on rhos6-node1: 1 ++native_color: lb-haproxy:0 allocation score on rhos6-node2: 0 ++native_color: lb-haproxy:0 allocation score on rhos6-node3: 0 ++native_color: lb-haproxy:1 allocation score on rhos6-node1: -INFINITY ++native_color: lb-haproxy:1 allocation score on rhos6-node2: 1 ++native_color: lb-haproxy:1 allocation score on rhos6-node3: 0 ++native_color: lb-haproxy:2 allocation score on rhos6-node1: -INFINITY ++native_color: lb-haproxy:2 allocation score on rhos6-node2: -INFINITY ++native_color: lb-haproxy:2 allocation score on rhos6-node3: 1 ++native_color: memcached:0 allocation score on rhos6-node1: 1 ++native_color: memcached:0 allocation score on rhos6-node2: 0 ++native_color: memcached:0 allocation score on rhos6-node3: 0 ++native_color: memcached:1 allocation score on rhos6-node1: -INFINITY ++native_color: memcached:1 allocation score on rhos6-node2: 1 ++native_color: memcached:1 allocation score on rhos6-node3: 0 ++native_color: memcached:2 allocation score on rhos6-node1: -INFINITY ++native_color: memcached:2 allocation score on rhos6-node2: -INFINITY ++native_color: memcached:2 allocation score on rhos6-node3: 1 ++native_color: mongodb:0 allocation score on rhos6-node1: 1 ++native_color: mongodb:0 allocation score on rhos6-node2: 0 ++native_color: mongodb:0 allocation score on rhos6-node3: 0 ++native_color: mongodb:1 allocation score on rhos6-node1: -INFINITY ++native_color: mongodb:1 allocation score on rhos6-node2: 1 ++native_color: mongodb:1 allocation score on rhos6-node3: 0 ++native_color: mongodb:2 allocation score on rhos6-node1: -INFINITY ++native_color: mongodb:2 allocation score on rhos6-node2: -INFINITY ++native_color: mongodb:2 allocation score on rhos6-node3: 1 ++native_color: neutron-dhcp-agent:0 allocation score on rhos6-node1: 1 ++native_color: neutron-dhcp-agent:0 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-dhcp-agent:0 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-dhcp-agent:1 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-dhcp-agent:1 allocation score on rhos6-node2: 1 ++native_color: neutron-dhcp-agent:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-dhcp-agent:2 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-dhcp-agent:2 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-dhcp-agent:2 allocation score on rhos6-node3: 1 ++native_color: neutron-l3-agent:0 allocation score on rhos6-node1: 1 ++native_color: neutron-l3-agent:0 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-l3-agent:0 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-l3-agent:1 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-l3-agent:1 allocation score on rhos6-node2: 1 ++native_color: neutron-l3-agent:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-l3-agent:2 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-l3-agent:2 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-l3-agent:2 allocation score on rhos6-node3: 1 ++native_color: neutron-metadata-agent:0 allocation score on rhos6-node1: 1 ++native_color: neutron-metadata-agent:0 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-metadata-agent:0 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-metadata-agent:1 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-metadata-agent:1 allocation score on rhos6-node2: 1 ++native_color: neutron-metadata-agent:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-metadata-agent:2 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-metadata-agent:2 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-metadata-agent:2 allocation score on rhos6-node3: 1 ++native_color: neutron-netns-cleanup:0 allocation score on rhos6-node1: 1 ++native_color: neutron-netns-cleanup:0 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-netns-cleanup:0 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-netns-cleanup:1 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-netns-cleanup:1 allocation score on rhos6-node2: 1 ++native_color: neutron-netns-cleanup:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-netns-cleanup:2 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-netns-cleanup:2 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-netns-cleanup:2 allocation score on rhos6-node3: 1 ++native_color: neutron-openvswitch-agent:0 allocation score on rhos6-node1: 1 ++native_color: neutron-openvswitch-agent:0 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-openvswitch-agent:0 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-openvswitch-agent:1 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-openvswitch-agent:1 allocation score on rhos6-node2: 1 ++native_color: neutron-openvswitch-agent:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-openvswitch-agent:2 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-openvswitch-agent:2 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-openvswitch-agent:2 allocation score on rhos6-node3: 1 ++native_color: neutron-ovs-cleanup:0 allocation score on rhos6-node1: 1 ++native_color: neutron-ovs-cleanup:0 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-ovs-cleanup:0 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-ovs-cleanup:1 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-ovs-cleanup:1 allocation score on rhos6-node2: 1 ++native_color: neutron-ovs-cleanup:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-ovs-cleanup:2 allocation score on rhos6-node1: -INFINITY ++native_color: neutron-ovs-cleanup:2 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-ovs-cleanup:2 allocation score on rhos6-node3: 1 ++native_color: neutron-scale:0 allocation score on rhos6-node1: 0 ++native_color: neutron-scale:0 allocation score on rhos6-node2: 0 ++native_color: neutron-scale:0 allocation score on rhos6-node3: 1 ++native_color: neutron-scale:1 allocation score on rhos6-node1: 0 ++native_color: neutron-scale:1 allocation score on rhos6-node2: 1 ++native_color: neutron-scale:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-scale:2 allocation score on rhos6-node1: 1 ++native_color: neutron-scale:2 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-scale:2 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-server:0 allocation score on rhos6-node1: 1 ++native_color: neutron-server:0 allocation score on rhos6-node2: -INFINITY ++native_color: neutron-server:0 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-server:1 allocation score on rhos6-node1: 0 ++native_color: neutron-server:1 allocation score on rhos6-node2: 1 ++native_color: neutron-server:1 allocation score on rhos6-node3: -INFINITY ++native_color: neutron-server:2 allocation score on rhos6-node1: 0 ++native_color: neutron-server:2 allocation score on rhos6-node2: 0 ++native_color: neutron-server:2 allocation score on rhos6-node3: 1 ++native_color: node1-fence allocation score on rhos6-node1: 0 ++native_color: node1-fence allocation score on rhos6-node2: 0 ++native_color: node1-fence allocation score on rhos6-node3: 0 ++native_color: node2-fence allocation score on rhos6-node1: 0 ++native_color: node2-fence allocation score on rhos6-node2: 0 ++native_color: node2-fence allocation score on rhos6-node3: 0 ++native_color: node3-fence allocation score on rhos6-node1: 0 ++native_color: node3-fence allocation score on rhos6-node2: 0 ++native_color: node3-fence allocation score on rhos6-node3: 0 ++native_color: nova-api:0 allocation score on rhos6-node1: 1 ++native_color: nova-api:0 allocation score on rhos6-node2: -INFINITY ++native_color: nova-api:0 allocation score on rhos6-node3: -INFINITY ++native_color: nova-api:1 allocation score on rhos6-node1: -INFINITY ++native_color: nova-api:1 allocation score on rhos6-node2: 1 ++native_color: nova-api:1 allocation score on rhos6-node3: -INFINITY ++native_color: nova-api:2 allocation score on rhos6-node1: -INFINITY ++native_color: nova-api:2 allocation score on rhos6-node2: -INFINITY ++native_color: nova-api:2 allocation score on rhos6-node3: 1 ++native_color: nova-conductor:0 allocation score on rhos6-node1: 1 ++native_color: nova-conductor:0 allocation score on rhos6-node2: -INFINITY ++native_color: nova-conductor:0 allocation score on rhos6-node3: -INFINITY ++native_color: nova-conductor:1 allocation score on rhos6-node1: -INFINITY ++native_color: nova-conductor:1 allocation score on rhos6-node2: 1 ++native_color: nova-conductor:1 allocation score on rhos6-node3: -INFINITY ++native_color: nova-conductor:2 allocation score on rhos6-node1: -INFINITY ++native_color: nova-conductor:2 allocation score on rhos6-node2: -INFINITY ++native_color: nova-conductor:2 allocation score on rhos6-node3: 1 ++native_color: nova-consoleauth:0 allocation score on rhos6-node1: 1 ++native_color: nova-consoleauth:0 allocation score on rhos6-node2: -INFINITY ++native_color: nova-consoleauth:0 allocation score on rhos6-node3: -INFINITY ++native_color: nova-consoleauth:1 allocation score on rhos6-node1: 0 ++native_color: nova-consoleauth:1 allocation score on rhos6-node2: 1 ++native_color: nova-consoleauth:1 allocation score on rhos6-node3: -INFINITY ++native_color: nova-consoleauth:2 allocation score on rhos6-node1: 0 ++native_color: nova-consoleauth:2 allocation score on rhos6-node2: 0 ++native_color: nova-consoleauth:2 allocation score on rhos6-node3: 1 ++native_color: nova-novncproxy:0 allocation score on rhos6-node1: 1 ++native_color: nova-novncproxy:0 allocation score on rhos6-node2: -INFINITY ++native_color: nova-novncproxy:0 allocation score on rhos6-node3: -INFINITY ++native_color: nova-novncproxy:1 allocation score on rhos6-node1: -INFINITY ++native_color: nova-novncproxy:1 allocation score on rhos6-node2: 1 ++native_color: nova-novncproxy:1 allocation score on rhos6-node3: -INFINITY ++native_color: nova-novncproxy:2 allocation score on rhos6-node1: -INFINITY ++native_color: nova-novncproxy:2 allocation score on rhos6-node2: -INFINITY ++native_color: nova-novncproxy:2 allocation score on rhos6-node3: 1 ++native_color: nova-scheduler:0 allocation score on rhos6-node1: 1 ++native_color: nova-scheduler:0 allocation score on rhos6-node2: -INFINITY ++native_color: nova-scheduler:0 allocation score on rhos6-node3: -INFINITY ++native_color: nova-scheduler:1 allocation score on rhos6-node1: -INFINITY ++native_color: nova-scheduler:1 allocation score on rhos6-node2: 1 ++native_color: nova-scheduler:1 allocation score on rhos6-node3: -INFINITY ++native_color: nova-scheduler:2 allocation score on rhos6-node1: -INFINITY ++native_color: nova-scheduler:2 allocation score on rhos6-node2: -INFINITY ++native_color: nova-scheduler:2 allocation score on rhos6-node3: 1 ++native_color: rabbitmq-server:0 allocation score on rhos6-node1: 1 ++native_color: rabbitmq-server:0 allocation score on rhos6-node2: 0 ++native_color: rabbitmq-server:0 allocation score on rhos6-node3: 0 ++native_color: rabbitmq-server:1 allocation score on rhos6-node1: -INFINITY ++native_color: rabbitmq-server:1 allocation score on rhos6-node2: 1 ++native_color: rabbitmq-server:1 allocation score on rhos6-node3: 0 ++native_color: rabbitmq-server:2 allocation score on rhos6-node1: -INFINITY ++native_color: rabbitmq-server:2 allocation score on rhos6-node2: -INFINITY ++native_color: rabbitmq-server:2 allocation score on rhos6-node3: 1 ++native_color: swift-account:0 allocation score on rhos6-node1: 1 ++native_color: swift-account:0 allocation score on rhos6-node2: -INFINITY ++native_color: swift-account:0 allocation score on rhos6-node3: -INFINITY ++native_color: swift-account:1 allocation score on rhos6-node1: -INFINITY ++native_color: swift-account:1 allocation score on rhos6-node2: 1 ++native_color: swift-account:1 allocation score on rhos6-node3: -INFINITY ++native_color: swift-account:2 allocation score on rhos6-node1: -INFINITY ++native_color: swift-account:2 allocation score on rhos6-node2: -INFINITY ++native_color: swift-account:2 allocation score on rhos6-node3: 1 ++native_color: swift-container:0 allocation score on rhos6-node1: 1 ++native_color: swift-container:0 allocation score on rhos6-node2: -INFINITY ++native_color: swift-container:0 allocation score on rhos6-node3: -INFINITY ++native_color: swift-container:1 allocation score on rhos6-node1: -INFINITY ++native_color: swift-container:1 allocation score on rhos6-node2: 1 ++native_color: swift-container:1 allocation score on rhos6-node3: -INFINITY ++native_color: swift-container:2 allocation score on rhos6-node1: -INFINITY ++native_color: swift-container:2 allocation score on rhos6-node2: -INFINITY ++native_color: swift-container:2 allocation score on rhos6-node3: 1 ++native_color: swift-fs:0 allocation score on rhos6-node1: 1 ++native_color: swift-fs:0 allocation score on rhos6-node2: -INFINITY ++native_color: swift-fs:0 allocation score on rhos6-node3: -INFINITY ++native_color: swift-fs:1 allocation score on rhos6-node1: 0 ++native_color: swift-fs:1 allocation score on rhos6-node2: 1 ++native_color: swift-fs:1 allocation score on rhos6-node3: 0 ++native_color: swift-fs:2 allocation score on rhos6-node1: 0 ++native_color: swift-fs:2 allocation score on rhos6-node2: -INFINITY ++native_color: swift-fs:2 allocation score on rhos6-node3: 1 ++native_color: swift-object-expirer allocation score on rhos6-node1: 0 ++native_color: swift-object-expirer allocation score on rhos6-node2: 0 ++native_color: swift-object-expirer allocation score on rhos6-node3: 0 ++native_color: swift-object:0 allocation score on rhos6-node1: 1 ++native_color: swift-object:0 allocation score on rhos6-node2: -INFINITY ++native_color: swift-object:0 allocation score on rhos6-node3: -INFINITY ++native_color: swift-object:1 allocation score on rhos6-node1: -INFINITY ++native_color: swift-object:1 allocation score on rhos6-node2: 1 ++native_color: swift-object:1 allocation score on rhos6-node3: -INFINITY ++native_color: swift-object:2 allocation score on rhos6-node1: -INFINITY ++native_color: swift-object:2 allocation score on rhos6-node2: -INFINITY ++native_color: swift-object:2 allocation score on rhos6-node3: 1 ++native_color: swift-proxy:0 allocation score on rhos6-node1: 1 ++native_color: swift-proxy:0 allocation score on rhos6-node2: -INFINITY ++native_color: swift-proxy:0 allocation score on rhos6-node3: -INFINITY ++native_color: swift-proxy:1 allocation score on rhos6-node1: 0 ++native_color: swift-proxy:1 allocation score on rhos6-node2: 1 ++native_color: swift-proxy:1 allocation score on rhos6-node3: 0 ++native_color: swift-proxy:2 allocation score on rhos6-node1: 0 ++native_color: swift-proxy:2 allocation score on rhos6-node2: -INFINITY ++native_color: swift-proxy:2 allocation score on rhos6-node3: 1 ++native_color: vip-ceilometer allocation score on rhos6-node1: 0 ++native_color: vip-ceilometer allocation score on rhos6-node2: 0 ++native_color: vip-ceilometer allocation score on rhos6-node3: 0 ++native_color: vip-cinder allocation score on rhos6-node1: 0 ++native_color: vip-cinder allocation score on rhos6-node2: 0 ++native_color: vip-cinder allocation score on rhos6-node3: 0 ++native_color: vip-db allocation score on rhos6-node1: 0 ++native_color: vip-db allocation score on rhos6-node2: 0 ++native_color: vip-db allocation score on rhos6-node3: 0 ++native_color: vip-glance allocation score on rhos6-node1: 0 ++native_color: vip-glance allocation score on rhos6-node2: 0 ++native_color: vip-glance allocation score on rhos6-node3: 0 ++native_color: vip-heat allocation score on rhos6-node1: 0 ++native_color: vip-heat allocation score on rhos6-node2: 0 ++native_color: vip-heat allocation score on rhos6-node3: 0 ++native_color: vip-horizon allocation score on rhos6-node1: 0 ++native_color: vip-horizon allocation score on rhos6-node2: 0 ++native_color: vip-horizon allocation score on rhos6-node3: 0 ++native_color: vip-keystone allocation score on rhos6-node1: 0 ++native_color: vip-keystone allocation score on rhos6-node2: 0 ++native_color: vip-keystone allocation score on rhos6-node3: 0 ++native_color: vip-neutron allocation score on rhos6-node1: 0 ++native_color: vip-neutron allocation score on rhos6-node2: 0 ++native_color: vip-neutron allocation score on rhos6-node3: 0 ++native_color: vip-nova allocation score on rhos6-node1: 0 ++native_color: vip-nova allocation score on rhos6-node2: 0 ++native_color: vip-nova allocation score on rhos6-node3: 0 ++native_color: vip-qpid allocation score on rhos6-node1: 0 ++native_color: vip-qpid allocation score on rhos6-node2: 0 ++native_color: vip-qpid allocation score on rhos6-node3: 0 ++native_color: vip-rabbitmq allocation score on rhos6-node1: 0 ++native_color: vip-rabbitmq allocation score on rhos6-node2: 0 ++native_color: vip-rabbitmq allocation score on rhos6-node3: 0 ++native_color: vip-swift allocation score on rhos6-node1: 0 ++native_color: vip-swift allocation score on rhos6-node2: 0 ++native_color: vip-swift allocation score on rhos6-node3: 0 +diff --git a/pengine/test10/complex_enforce_colo.summary b/pengine/test10/complex_enforce_colo.summary +new file mode 100644 +index 0000000..6f64364 +--- /dev/null ++++ b/pengine/test10/complex_enforce_colo.summary +@@ -0,0 +1,452 @@ ++ ++Current cluster status: ++Online: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ ++ node1-fence (stonith:fence_xvm): Started rhos6-node1 ++ node2-fence (stonith:fence_xvm): Started rhos6-node2 ++ node3-fence (stonith:fence_xvm): Started rhos6-node3 ++ Clone Set: lb-haproxy-clone [lb-haproxy] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ vip-db (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-rabbitmq (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-qpid (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ vip-keystone (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-glance (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-cinder (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ vip-swift (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-neutron (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-nova (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ vip-horizon (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-heat (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-ceilometer (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ Master/Slave Set: galera-master [galera] ++ Masters: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: rabbitmq-server-clone [rabbitmq-server] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: memcached-clone [memcached] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: mongodb-clone [mongodb] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: keystone-clone [keystone] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: glance-fs-clone [glance-fs] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: glance-registry-clone [glance-registry] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: glance-api-clone [glance-api] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ cinder-api (systemd:openstack-cinder-api): Started rhos6-node1 ++ cinder-scheduler (systemd:openstack-cinder-scheduler): Started rhos6-node1 ++ cinder-volume (systemd:openstack-cinder-volume): Started rhos6-node1 ++ Clone Set: swift-fs-clone [swift-fs] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-account-clone [swift-account] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-container-clone [swift-container] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-object-clone [swift-object] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-proxy-clone [swift-proxy] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ swift-object-expirer (systemd:openstack-swift-object-expirer): Started rhos6-node2 ++ Clone Set: neutron-server-clone [neutron-server] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-scale-clone [neutron-scale] (unique) ++ neutron-scale:0 (ocf::neutron:NeutronScale): Started rhos6-node3 ++ neutron-scale:1 (ocf::neutron:NeutronScale): Started rhos6-node2 ++ neutron-scale:2 (ocf::neutron:NeutronScale): Started rhos6-node1 ++ Clone Set: neutron-ovs-cleanup-clone [neutron-ovs-cleanup] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-netns-cleanup-clone [neutron-netns-cleanup] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-openvswitch-agent-clone [neutron-openvswitch-agent] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-l3-agent-clone [neutron-l3-agent] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-consoleauth-clone [nova-consoleauth] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-novncproxy-clone [nova-novncproxy] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-api-clone [nova-api] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-scheduler-clone [nova-scheduler] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-conductor-clone [nova-conductor] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ ceilometer-central (systemd:openstack-ceilometer-central): Started rhos6-node3 ++ Clone Set: ceilometer-collector-clone [ceilometer-collector] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-api-clone [ceilometer-api] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-delay-clone [ceilometer-delay] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-alarm-evaluator-clone [ceilometer-alarm-evaluator] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-alarm-notifier-clone [ceilometer-alarm-notifier] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-notification-clone [ceilometer-notification] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: heat-api-clone [heat-api] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: heat-api-cfn-clone [heat-api-cfn] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: heat-api-cloudwatch-clone [heat-api-cloudwatch] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ heat-engine (systemd:openstack-heat-engine): Started rhos6-node2 ++ Clone Set: horizon-clone [horizon] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ ++Transition Summary: ++ * Stop keystone:0 (rhos6-node1) ++ * Stop keystone:1 (rhos6-node2) ++ * Stop keystone:2 (rhos6-node3) ++ * Stop glance-registry:0 (rhos6-node1) ++ * Stop glance-registry:1 (rhos6-node2) ++ * Stop glance-registry:2 (rhos6-node3) ++ * Stop glance-api:0 (rhos6-node1) ++ * Stop glance-api:1 (rhos6-node2) ++ * Stop glance-api:2 (rhos6-node3) ++ * Stop cinder-api (Started rhos6-node1) ++ * Stop cinder-scheduler (Started rhos6-node1) ++ * Stop cinder-volume (Started rhos6-node1) ++ * Stop swift-account:0 (rhos6-node1) ++ * Stop swift-account:1 (rhos6-node2) ++ * Stop swift-account:2 (rhos6-node3) ++ * Stop swift-container:0 (rhos6-node1) ++ * Stop swift-container:1 (rhos6-node2) ++ * Stop swift-container:2 (rhos6-node3) ++ * Stop swift-object:0 (rhos6-node1) ++ * Stop swift-object:1 (rhos6-node2) ++ * Stop swift-object:2 (rhos6-node3) ++ * Stop swift-proxy:0 (rhos6-node1) ++ * Stop swift-proxy:1 (rhos6-node2) ++ * Stop swift-proxy:2 (rhos6-node3) ++ * Stop swift-object-expirer (Started rhos6-node2) ++ * Stop neutron-server:0 (rhos6-node1) ++ * Stop neutron-server:1 (rhos6-node2) ++ * Stop neutron-server:2 (rhos6-node3) ++ * Stop neutron-scale:0 (rhos6-node3) ++ * Stop neutron-scale:1 (rhos6-node2) ++ * Stop neutron-scale:2 (rhos6-node1) ++ * Stop neutron-ovs-cleanup:0 (rhos6-node1) ++ * Stop neutron-ovs-cleanup:1 (rhos6-node2) ++ * Stop neutron-ovs-cleanup:2 (rhos6-node3) ++ * Stop neutron-netns-cleanup:0 (rhos6-node1) ++ * Stop neutron-netns-cleanup:1 (rhos6-node2) ++ * Stop neutron-netns-cleanup:2 (rhos6-node3) ++ * Stop neutron-openvswitch-agent:0 (rhos6-node1) ++ * Stop neutron-openvswitch-agent:1 (rhos6-node2) ++ * Stop neutron-openvswitch-agent:2 (rhos6-node3) ++ * Stop neutron-dhcp-agent:0 (rhos6-node1) ++ * Stop neutron-dhcp-agent:1 (rhos6-node2) ++ * Stop neutron-dhcp-agent:2 (rhos6-node3) ++ * Stop neutron-l3-agent:0 (rhos6-node1) ++ * Stop neutron-l3-agent:1 (rhos6-node2) ++ * Stop neutron-l3-agent:2 (rhos6-node3) ++ * Stop neutron-metadata-agent:0 (rhos6-node1) ++ * Stop neutron-metadata-agent:1 (rhos6-node2) ++ * Stop neutron-metadata-agent:2 (rhos6-node3) ++ * Stop nova-consoleauth:0 (rhos6-node1) ++ * Stop nova-consoleauth:1 (rhos6-node2) ++ * Stop nova-consoleauth:2 (rhos6-node3) ++ * Stop nova-novncproxy:0 (rhos6-node1) ++ * Stop nova-novncproxy:1 (rhos6-node2) ++ * Stop nova-novncproxy:2 (rhos6-node3) ++ * Stop nova-api:0 (rhos6-node1) ++ * Stop nova-api:1 (rhos6-node2) ++ * Stop nova-api:2 (rhos6-node3) ++ * Stop nova-scheduler:0 (rhos6-node1) ++ * Stop nova-scheduler:1 (rhos6-node2) ++ * Stop nova-scheduler:2 (rhos6-node3) ++ * Stop nova-conductor:0 (rhos6-node1) ++ * Stop nova-conductor:1 (rhos6-node2) ++ * Stop nova-conductor:2 (rhos6-node3) ++ * Stop ceilometer-central (Started rhos6-node3) ++ * Stop ceilometer-collector:0 (Started rhos6-node1) ++ * Stop ceilometer-collector:1 (Started rhos6-node2) ++ * Stop ceilometer-collector:2 (Started rhos6-node3) ++ * Stop ceilometer-api:0 (Started rhos6-node1) ++ * Stop ceilometer-api:1 (Started rhos6-node2) ++ * Stop ceilometer-api:2 (Started rhos6-node3) ++ * Stop ceilometer-delay:0 (Started rhos6-node1) ++ * Stop ceilometer-delay:1 (Started rhos6-node2) ++ * Stop ceilometer-delay:2 (Started rhos6-node3) ++ * Stop ceilometer-alarm-evaluator:0 (Started rhos6-node1) ++ * Stop ceilometer-alarm-evaluator:1 (Started rhos6-node2) ++ * Stop ceilometer-alarm-evaluator:2 (Started rhos6-node3) ++ * Stop ceilometer-alarm-notifier:0 (Started rhos6-node1) ++ * Stop ceilometer-alarm-notifier:1 (Started rhos6-node2) ++ * Stop ceilometer-alarm-notifier:2 (Started rhos6-node3) ++ * Stop ceilometer-notification:0 (Started rhos6-node1) ++ * Stop ceilometer-notification:1 (Started rhos6-node2) ++ * Stop ceilometer-notification:2 (Started rhos6-node3) ++ * Stop heat-api:0 (Started rhos6-node1) ++ * Stop heat-api:1 (Started rhos6-node2) ++ * Stop heat-api:2 (Started rhos6-node3) ++ * Stop heat-api-cfn:0 (Started rhos6-node1) ++ * Stop heat-api-cfn:1 (Started rhos6-node2) ++ * Stop heat-api-cfn:2 (Started rhos6-node3) ++ * Stop heat-api-cloudwatch:0 (Started rhos6-node1) ++ * Stop heat-api-cloudwatch:1 (Started rhos6-node2) ++ * Stop heat-api-cloudwatch:2 (Started rhos6-node3) ++ * Stop heat-engine (Started rhos6-node2) ++ ++Executing cluster transition: ++ * Pseudo action: glance-api-clone_stop_0 ++ * Resource action: cinder-volume stop on rhos6-node1 ++ * Pseudo action: swift-object-clone_stop_0 ++ * Resource action: swift-object-expirer stop on rhos6-node2 ++ * Pseudo action: neutron-metadata-agent-clone_stop_0 ++ * Pseudo action: nova-conductor-clone_stop_0 ++ * Resource action: heat-engine stop on rhos6-node2 ++ * Resource action: glance-api stop on rhos6-node1 ++ * Resource action: glance-api stop on rhos6-node2 ++ * Resource action: glance-api stop on rhos6-node3 ++ * Pseudo action: glance-api-clone_stopped_0 ++ * Resource action: cinder-scheduler stop on rhos6-node1 ++ * Resource action: swift-object stop on rhos6-node1 ++ * Resource action: swift-object stop on rhos6-node2 ++ * Resource action: swift-object stop on rhos6-node3 ++ * Pseudo action: swift-object-clone_stopped_0 ++ * Pseudo action: swift-proxy-clone_stop_0 ++ * Resource action: neutron-metadata-agent stop on rhos6-node1 ++ * Resource action: neutron-metadata-agent stop on rhos6-node2 ++ * Resource action: neutron-metadata-agent stop on rhos6-node3 ++ * Pseudo action: neutron-metadata-agent-clone_stopped_0 ++ * Resource action: nova-conductor stop on rhos6-node1 ++ * Resource action: nova-conductor stop on rhos6-node2 ++ * Resource action: nova-conductor stop on rhos6-node3 ++ * Pseudo action: nova-conductor-clone_stopped_0 ++ * Pseudo action: heat-api-cloudwatch-clone_stop_0 ++ * Pseudo action: glance-registry-clone_stop_0 ++ * Resource action: cinder-api stop on rhos6-node1 ++ * Pseudo action: swift-container-clone_stop_0 ++ * Resource action: swift-proxy stop on rhos6-node1 ++ * Resource action: swift-proxy stop on rhos6-node2 ++ * Resource action: swift-proxy stop on rhos6-node3 ++ * Pseudo action: swift-proxy-clone_stopped_0 ++ * Pseudo action: neutron-l3-agent-clone_stop_0 ++ * Pseudo action: nova-scheduler-clone_stop_0 ++ * Resource action: heat-api-cloudwatch stop on rhos6-node1 ++ * Resource action: heat-api-cloudwatch stop on rhos6-node2 ++ * Resource action: heat-api-cloudwatch stop on rhos6-node3 ++ * Pseudo action: heat-api-cloudwatch-clone_stopped_0 ++ * Resource action: glance-registry stop on rhos6-node1 ++ * Resource action: glance-registry stop on rhos6-node2 ++ * Resource action: glance-registry stop on rhos6-node3 ++ * Pseudo action: glance-registry-clone_stopped_0 ++ * Resource action: swift-container stop on rhos6-node1 ++ * Resource action: swift-container stop on rhos6-node2 ++ * Resource action: swift-container stop on rhos6-node3 ++ * Pseudo action: swift-container-clone_stopped_0 ++ * Resource action: neutron-l3-agent stop on rhos6-node1 ++ * Resource action: neutron-l3-agent stop on rhos6-node2 ++ * Resource action: neutron-l3-agent stop on rhos6-node3 ++ * Pseudo action: neutron-l3-agent-clone_stopped_0 ++ * Resource action: nova-scheduler stop on rhos6-node1 ++ * Resource action: nova-scheduler stop on rhos6-node2 ++ * Resource action: nova-scheduler stop on rhos6-node3 ++ * Pseudo action: nova-scheduler-clone_stopped_0 ++ * Pseudo action: heat-api-cfn-clone_stop_0 ++ * Pseudo action: swift-account-clone_stop_0 ++ * Pseudo action: neutron-dhcp-agent-clone_stop_0 ++ * Pseudo action: nova-api-clone_stop_0 ++ * Resource action: heat-api-cfn stop on rhos6-node1 ++ * Resource action: heat-api-cfn stop on rhos6-node2 ++ * Resource action: heat-api-cfn stop on rhos6-node3 ++ * Pseudo action: heat-api-cfn-clone_stopped_0 ++ * Resource action: swift-account stop on rhos6-node1 ++ * Resource action: swift-account stop on rhos6-node2 ++ * Resource action: swift-account stop on rhos6-node3 ++ * Pseudo action: swift-account-clone_stopped_0 ++ * Resource action: neutron-dhcp-agent stop on rhos6-node1 ++ * Resource action: neutron-dhcp-agent stop on rhos6-node2 ++ * Resource action: neutron-dhcp-agent stop on rhos6-node3 ++ * Pseudo action: neutron-dhcp-agent-clone_stopped_0 ++ * Resource action: nova-api stop on rhos6-node1 ++ * Resource action: nova-api stop on rhos6-node2 ++ * Resource action: nova-api stop on rhos6-node3 ++ * Pseudo action: nova-api-clone_stopped_0 ++ * Pseudo action: heat-api-clone_stop_0 ++ * Pseudo action: neutron-openvswitch-agent-clone_stop_0 ++ * Pseudo action: nova-novncproxy-clone_stop_0 ++ * Resource action: heat-api stop on rhos6-node1 ++ * Resource action: heat-api stop on rhos6-node2 ++ * Resource action: heat-api stop on rhos6-node3 ++ * Pseudo action: heat-api-clone_stopped_0 ++ * Resource action: neutron-openvswitch-agent stop on rhos6-node1 ++ * Resource action: neutron-openvswitch-agent stop on rhos6-node2 ++ * Resource action: neutron-openvswitch-agent stop on rhos6-node3 ++ * Pseudo action: neutron-openvswitch-agent-clone_stopped_0 ++ * Resource action: nova-novncproxy stop on rhos6-node1 ++ * Resource action: nova-novncproxy stop on rhos6-node2 ++ * Resource action: nova-novncproxy stop on rhos6-node3 ++ * Pseudo action: nova-novncproxy-clone_stopped_0 ++ * Pseudo action: ceilometer-notification-clone_stop_0 ++ * Pseudo action: neutron-netns-cleanup-clone_stop_0 ++ * Pseudo action: nova-consoleauth-clone_stop_0 ++ * Resource action: ceilometer-notification stop on rhos6-node1 ++ * Resource action: ceilometer-notification stop on rhos6-node2 ++ * Resource action: ceilometer-notification stop on rhos6-node3 ++ * Pseudo action: ceilometer-notification-clone_stopped_0 ++ * Resource action: neutron-netns-cleanup stop on rhos6-node1 ++ * Resource action: neutron-netns-cleanup stop on rhos6-node2 ++ * Resource action: neutron-netns-cleanup stop on rhos6-node3 ++ * Pseudo action: neutron-netns-cleanup-clone_stopped_0 ++ * Resource action: nova-consoleauth stop on rhos6-node1 ++ * Resource action: nova-consoleauth stop on rhos6-node2 ++ * Resource action: nova-consoleauth stop on rhos6-node3 ++ * Pseudo action: nova-consoleauth-clone_stopped_0 ++ * Pseudo action: ceilometer-alarm-notifier-clone_stop_0 ++ * Pseudo action: neutron-ovs-cleanup-clone_stop_0 ++ * Resource action: ceilometer-alarm-notifier stop on rhos6-node1 ++ * Resource action: ceilometer-alarm-notifier stop on rhos6-node2 ++ * Resource action: ceilometer-alarm-notifier stop on rhos6-node3 ++ * Pseudo action: ceilometer-alarm-notifier-clone_stopped_0 ++ * Resource action: neutron-ovs-cleanup stop on rhos6-node1 ++ * Resource action: neutron-ovs-cleanup stop on rhos6-node2 ++ * Resource action: neutron-ovs-cleanup stop on rhos6-node3 ++ * Pseudo action: neutron-ovs-cleanup-clone_stopped_0 ++ * Pseudo action: ceilometer-alarm-evaluator-clone_stop_0 ++ * Pseudo action: neutron-scale-clone_stop_0 ++ * Resource action: ceilometer-alarm-evaluator stop on rhos6-node1 ++ * Resource action: ceilometer-alarm-evaluator stop on rhos6-node2 ++ * Resource action: ceilometer-alarm-evaluator stop on rhos6-node3 ++ * Pseudo action: ceilometer-alarm-evaluator-clone_stopped_0 ++ * Resource action: neutron-scale:0 stop on rhos6-node3 ++ * Resource action: neutron-scale:1 stop on rhos6-node2 ++ * Resource action: neutron-scale:2 stop on rhos6-node1 ++ * Pseudo action: neutron-scale-clone_stopped_0 ++ * Pseudo action: ceilometer-delay-clone_stop_0 ++ * Pseudo action: neutron-server-clone_stop_0 ++ * Resource action: ceilometer-delay stop on rhos6-node1 ++ * Resource action: ceilometer-delay stop on rhos6-node2 ++ * Resource action: ceilometer-delay stop on rhos6-node3 ++ * Pseudo action: ceilometer-delay-clone_stopped_0 ++ * Resource action: neutron-server stop on rhos6-node1 ++ * Resource action: neutron-server stop on rhos6-node2 ++ * Resource action: neutron-server stop on rhos6-node3 ++ * Pseudo action: neutron-server-clone_stopped_0 ++ * Pseudo action: ceilometer-api-clone_stop_0 ++ * Resource action: ceilometer-api stop on rhos6-node1 ++ * Resource action: ceilometer-api stop on rhos6-node2 ++ * Resource action: ceilometer-api stop on rhos6-node3 ++ * Pseudo action: ceilometer-api-clone_stopped_0 ++ * Pseudo action: ceilometer-collector-clone_stop_0 ++ * Resource action: ceilometer-collector stop on rhos6-node1 ++ * Resource action: ceilometer-collector stop on rhos6-node2 ++ * Resource action: ceilometer-collector stop on rhos6-node3 ++ * Pseudo action: ceilometer-collector-clone_stopped_0 ++ * Resource action: ceilometer-central stop on rhos6-node3 ++ * Pseudo action: keystone-clone_stop_0 ++ * Resource action: keystone stop on rhos6-node1 ++ * Resource action: keystone stop on rhos6-node2 ++ * Resource action: keystone stop on rhos6-node3 ++ * Pseudo action: keystone-clone_stopped_0 ++ * Pseudo action: all_stopped ++ ++Revised cluster status: ++Online: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ ++ node1-fence (stonith:fence_xvm): Started rhos6-node1 ++ node2-fence (stonith:fence_xvm): Started rhos6-node2 ++ node3-fence (stonith:fence_xvm): Started rhos6-node3 ++ Clone Set: lb-haproxy-clone [lb-haproxy] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ vip-db (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-rabbitmq (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-qpid (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ vip-keystone (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-glance (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-cinder (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ vip-swift (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-neutron (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-nova (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ vip-horizon (ocf::heartbeat:IPaddr2): Started rhos6-node1 ++ vip-heat (ocf::heartbeat:IPaddr2): Started rhos6-node2 ++ vip-ceilometer (ocf::heartbeat:IPaddr2): Started rhos6-node3 ++ Master/Slave Set: galera-master [galera] ++ Masters: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: rabbitmq-server-clone [rabbitmq-server] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: memcached-clone [memcached] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: mongodb-clone [mongodb] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: keystone-clone [keystone] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: glance-fs-clone [glance-fs] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: glance-registry-clone [glance-registry] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: glance-api-clone [glance-api] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ cinder-api (systemd:openstack-cinder-api): Stopped ++ cinder-scheduler (systemd:openstack-cinder-scheduler): Stopped ++ cinder-volume (systemd:openstack-cinder-volume): Stopped ++ Clone Set: swift-fs-clone [swift-fs] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-account-clone [swift-account] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-container-clone [swift-container] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-object-clone [swift-object] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: swift-proxy-clone [swift-proxy] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ swift-object-expirer (systemd:openstack-swift-object-expirer): Stopped ++ Clone Set: neutron-server-clone [neutron-server] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-scale-clone [neutron-scale] (unique) ++ neutron-scale:0 (ocf::neutron:NeutronScale): Stopped ++ neutron-scale:1 (ocf::neutron:NeutronScale): Stopped ++ neutron-scale:2 (ocf::neutron:NeutronScale): Stopped ++ Clone Set: neutron-ovs-cleanup-clone [neutron-ovs-cleanup] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-netns-cleanup-clone [neutron-netns-cleanup] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-openvswitch-agent-clone [neutron-openvswitch-agent] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-l3-agent-clone [neutron-l3-agent] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-consoleauth-clone [nova-consoleauth] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-novncproxy-clone [nova-novncproxy] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-api-clone [nova-api] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-scheduler-clone [nova-scheduler] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: nova-conductor-clone [nova-conductor] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ ceilometer-central (systemd:openstack-ceilometer-central): Stopped ++ Clone Set: ceilometer-collector-clone [ceilometer-collector] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-api-clone [ceilometer-api] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-delay-clone [ceilometer-delay] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-alarm-evaluator-clone [ceilometer-alarm-evaluator] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-alarm-notifier-clone [ceilometer-alarm-notifier] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: ceilometer-notification-clone [ceilometer-notification] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: heat-api-clone [heat-api] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: heat-api-cfn-clone [heat-api-cfn] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ Clone Set: heat-api-cloudwatch-clone [heat-api-cloudwatch] ++ Stopped: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ heat-engine (systemd:openstack-heat-engine): Stopped ++ Clone Set: horizon-clone [horizon] ++ Started: [ rhos6-node1 rhos6-node2 rhos6-node3 ] ++ +diff --git a/pengine/test10/complex_enforce_colo.xml b/pengine/test10/complex_enforce_colo.xml +new file mode 100644 +index 0000000..a6f9526 +--- /dev/null ++++ b/pengine/test10/complex_enforce_colo.xml +@@ -0,0 +1,1461 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/pengine/test10/enforce-colo1.dot b/pengine/test10/enforce-colo1.dot +new file mode 100644 +index 0000000..68200fe +--- /dev/null ++++ b/pengine/test10/enforce-colo1.dot +@@ -0,0 +1,31 @@ ++ digraph "g" { ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"central_monitor_10000 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"central_start_0 rhel7-auto3" -> "central_monitor_10000 rhel7-auto3" [ style = dashed] ++"central_start_0 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"central_stop_0 rhel7-auto3" -> "all_stopped" [ style = bold] ++"central_stop_0 rhel7-auto3" -> "central_start_0 rhel7-auto3" [ style = dashed] ++"central_stop_0 rhel7-auto3" -> "keystone-clone_stop_0" [ style = bold] ++"central_stop_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"engine_monitor_10000 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"engine_start_0 rhel7-auto3" -> "engine_monitor_10000 rhel7-auto3" [ style = dashed] ++"engine_start_0 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"engine_stop_0 rhel7-auto3" -> "all_stopped" [ style = bold] ++"engine_stop_0 rhel7-auto3" -> "engine_start_0 rhel7-auto3" [ style = dashed] ++"engine_stop_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"keystone-clone_stop_0" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone-clone_stop_0" -> "keystone_stop_0 rhel7-auto1" [ style = bold] ++"keystone-clone_stop_0" -> "keystone_stop_0 rhel7-auto2" [ style = bold] ++"keystone-clone_stop_0" -> "keystone_stop_0 rhel7-auto3" [ style = bold] ++"keystone-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"keystone-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"keystone_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"keystone_stop_0 rhel7-auto1" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"keystone_stop_0 rhel7-auto2" -> "all_stopped" [ style = bold] ++"keystone_stop_0 rhel7-auto2" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone_stop_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"keystone_stop_0 rhel7-auto3" -> "all_stopped" [ style = bold] ++"keystone_stop_0 rhel7-auto3" -> "keystone-clone_stopped_0" [ style = bold] ++"keystone_stop_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/enforce-colo1.exp b/pengine/test10/enforce-colo1.exp +new file mode 100644 +index 0000000..ea87443 +--- /dev/null ++++ b/pengine/test10/enforce-colo1.exp +@@ -0,0 +1,116 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/pengine/test10/enforce-colo1.scores b/pengine/test10/enforce-colo1.scores +new file mode 100644 +index 0000000..b3dee71 +--- /dev/null ++++ b/pengine/test10/enforce-colo1.scores +@@ -0,0 +1,31 @@ ++Allocation scores: ++clone_color: keystone-clone allocation score on rhel7-auto1: 0 ++clone_color: keystone-clone allocation score on rhel7-auto2: 0 ++clone_color: keystone-clone allocation score on rhel7-auto3: 0 ++clone_color: keystone:0 allocation score on rhel7-auto1: 0 ++clone_color: keystone:0 allocation score on rhel7-auto2: 1 ++clone_color: keystone:0 allocation score on rhel7-auto3: 0 ++clone_color: keystone:1 allocation score on rhel7-auto1: 0 ++clone_color: keystone:1 allocation score on rhel7-auto2: 0 ++clone_color: keystone:1 allocation score on rhel7-auto3: 1 ++clone_color: keystone:2 allocation score on rhel7-auto1: 1 ++clone_color: keystone:2 allocation score on rhel7-auto2: 0 ++clone_color: keystone:2 allocation score on rhel7-auto3: 0 ++native_color: central allocation score on rhel7-auto1: 0 ++native_color: central allocation score on rhel7-auto2: 0 ++native_color: central allocation score on rhel7-auto3: 0 ++native_color: engine allocation score on rhel7-auto1: -INFINITY ++native_color: engine allocation score on rhel7-auto2: -INFINITY ++native_color: engine allocation score on rhel7-auto3: 0 ++native_color: keystone:0 allocation score on rhel7-auto1: -INFINITY ++native_color: keystone:0 allocation score on rhel7-auto2: -INFINITY ++native_color: keystone:0 allocation score on rhel7-auto3: -INFINITY ++native_color: keystone:1 allocation score on rhel7-auto1: -INFINITY ++native_color: keystone:1 allocation score on rhel7-auto2: -INFINITY ++native_color: keystone:1 allocation score on rhel7-auto3: -INFINITY ++native_color: keystone:2 allocation score on rhel7-auto1: -INFINITY ++native_color: keystone:2 allocation score on rhel7-auto2: -INFINITY ++native_color: keystone:2 allocation score on rhel7-auto3: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 +diff --git a/pengine/test10/enforce-colo1.summary b/pengine/test10/enforce-colo1.summary +new file mode 100644 +index 0000000..d8b16ed +--- /dev/null ++++ b/pengine/test10/enforce-colo1.summary +@@ -0,0 +1,36 @@ ++ ++Current cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto2 ++ engine (ocf::heartbeat:Dummy): Started rhel7-auto3 ++ Clone Set: keystone-clone [keystone] ++ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ central (ocf::heartbeat:Dummy): Started rhel7-auto3 ++ ++Transition Summary: ++ * Stop engine (Started rhel7-auto3) ++ * Stop keystone:0 (rhel7-auto2) ++ * Stop keystone:1 (rhel7-auto3) ++ * Stop keystone:2 (rhel7-auto1) ++ * Stop central (Started rhel7-auto3) ++ ++Executing cluster transition: ++ * Resource action: engine stop on rhel7-auto3 ++ * Resource action: central stop on rhel7-auto3 ++ * Pseudo action: keystone-clone_stop_0 ++ * Resource action: keystone stop on rhel7-auto2 ++ * Resource action: keystone stop on rhel7-auto3 ++ * Resource action: keystone stop on rhel7-auto1 ++ * Pseudo action: keystone-clone_stopped_0 ++ * Pseudo action: all_stopped ++ ++Revised cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto2 ++ engine (ocf::heartbeat:Dummy): Stopped ++ Clone Set: keystone-clone [keystone] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ central (ocf::heartbeat:Dummy): Stopped ++ +diff --git a/pengine/test10/enforce-colo1.xml b/pengine/test10/enforce-colo1.xml +new file mode 100644 +index 0000000..0378f34 +--- /dev/null ++++ b/pengine/test10/enforce-colo1.xml +@@ -0,0 +1,150 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +-- +1.8.4.2 + diff --git a/SOURCES/pacemaker-8805f9-fix-ensure-b-with-a.patch b/SOURCES/pacemaker-8805f9-fix-ensure-b-with-a.patch new file mode 100644 index 0000000..9a16753 --- /dev/null +++ b/SOURCES/pacemaker-8805f9-fix-ensure-b-with-a.patch @@ -0,0 +1,114 @@ +From 8805f9c1a6663da7732637ed60a8b42c360492cd Mon Sep 17 00:00:00 2001 +From: David Vossel +Date: Wed, 18 Feb 2015 13:45:07 -0500 +Subject: [PATCH] Fix: ensure if B is colocated with A, B can never run without + A + +--- + pengine/allocate.c | 2 ++ + pengine/graph.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 57 insertions(+) + +diff --git a/pengine/allocate.c b/pengine/allocate.c +index 7dd70f1..0994a87 100644 +--- a/pengine/allocate.c ++++ b/pengine/allocate.c +@@ -1620,6 +1620,7 @@ rsc_order_first(resource_t * lh_rsc, order_constraint_t * order, pe_working_set_ + } + + extern gboolean update_action(action_t * action); ++extern void update_colo_start_chain(action_t * action); + + static void + apply_remote_node_ordering(pe_working_set_t *data_set) +@@ -1805,6 +1806,7 @@ stage7(pe_working_set_t * data_set) + for (; gIter != NULL; gIter = gIter->next) { + action_t *action = (action_t *) gIter->data; + ++ update_colo_start_chain(action); + update_action(action); + } + +diff --git a/pengine/graph.c b/pengine/graph.c +index 7160bbf..8decd51 100644 +--- a/pengine/graph.c ++++ b/pengine/graph.c +@@ -30,6 +30,7 @@ + #include + + gboolean update_action(action_t * action); ++void update_colo_start_chain(action_t * action); + gboolean rsc_update_action(action_t * first, action_t * then, enum pe_ordering type); + + static enum pe_action_flags +@@ -389,6 +390,57 @@ graph_update_action(action_t * first, action_t * then, node_t * node, enum pe_ac + return changed; + } + ++static void ++mark_start_blocked(resource_t *rsc) ++{ ++ GListPtr gIter = rsc->actions; ++ ++ for (; gIter != NULL; gIter = gIter->next) { ++ action_t *action = (action_t *) gIter->data; ++ ++ if (safe_str_neq(action->task, RSC_START)) { ++ continue; ++ } ++ if (is_set(action->flags, pe_action_runnable)) { ++ clear_bit(action->flags, pe_action_runnable); ++ update_colo_start_chain(action); ++ update_action(action); ++ } ++ } ++} ++ ++void ++update_colo_start_chain(action_t *action) ++{ ++ GListPtr gIter = NULL; ++ resource_t *rsc = NULL; ++ ++ if (is_not_set(action->flags, pe_action_runnable) && safe_str_eq(action->task, RSC_START)) { ++ rsc = uber_parent(action->rsc); ++ } ++ ++ if (rsc == NULL || rsc->rsc_cons_lhs == NULL) { ++ return; ++ } ++ ++ /* if rsc has children, all the children need to have start set to ++ * unrunnable before we follow the colo chain for the parent. */ ++ for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { ++ resource_t *child = (resource_t *)gIter->data; ++ action_t *start = find_first_action(child->actions, NULL, RSC_START, NULL); ++ if (start == NULL || is_set(start->flags, pe_action_runnable)) { ++ return; ++ } ++ } ++ ++ for (gIter = rsc->rsc_cons_lhs; gIter != NULL; gIter = gIter->next) { ++ rsc_colocation_t *colocate_with = (rsc_colocation_t *)gIter->data; ++ if (colocate_with->score == INFINITY) { ++ mark_start_blocked(colocate_with->rsc_lh); ++ } ++ } ++} ++ + gboolean + update_action(action_t * then) + { +@@ -547,6 +599,9 @@ update_action(action_t * then) + pe_action_pseudo) ? "pseudo" : then->node ? then->node->details-> + uname : ""); + ++ if (is_set(last_flags, pe_action_runnable) && is_not_set(then->flags, pe_action_runnable)) { ++ update_colo_start_chain(then); ++ } + update_action(then); + for (lpc = then->actions_after; lpc != NULL; lpc = lpc->next) { + action_wrapper_t *other = (action_wrapper_t *) lpc->data; +-- +1.8.4.2 + diff --git a/SOURCES/pacemaker-cb0f29d4.patch b/SOURCES/pacemaker-cb0f29d4.patch new file mode 100644 index 0000000..10c99ed --- /dev/null +++ b/SOURCES/pacemaker-cb0f29d4.patch @@ -0,0 +1,149 @@ +From cb0f29d437ded2557d8ae35970fdadf9da7392c1 Mon Sep 17 00:00:00 2001 +From: David Vossel +Date: Fri, 6 Mar 2015 13:19:43 -0500 +Subject: [PATCH] Fix: systemd: fix crash caused when canceling in-flight + operation + +--- + lib/services/dbus.c | 8 ++++++-- + lib/services/pcmk-dbus.h | 3 ++- + lib/services/systemd.c | 21 +++++++++++++++++---- + lib/services/upstart.c | 14 ++++++++++++-- + 4 files changed, 37 insertions(+), 9 deletions(-) + +diff --git a/lib/services/dbus.c b/lib/services/dbus.c +index f44b590..637f749 100644 +--- a/lib/services/dbus.c ++++ b/lib/services/dbus.c +@@ -325,7 +325,7 @@ pcmk_dbus_lookup_cb(DBusPendingCall *pending, void *user_data) + char * + pcmk_dbus_get_property( + DBusConnection *connection, const char *target, const char *obj, const gchar * iface, const char *name, +- void (*callback)(const char *name, const char *value, void *userdata), void *userdata) ++ void (*callback)(const char *name, const char *value, void *userdata), void *userdata, DBusPendingCall **pending) + { + DBusMessage *msg; + const char *method = "GetAll"; +@@ -365,7 +365,11 @@ pcmk_dbus_get_property( + } + + if(query_data->callback) { +- pcmk_dbus_send(msg, connection, pcmk_dbus_lookup_cb, query_data); ++ DBusPendingCall* _pending; ++ _pending = pcmk_dbus_send(msg, connection, pcmk_dbus_lookup_cb, query_data); ++ if (pending != NULL) { ++ *pending = _pending; ++ } + + } else { + DBusMessage *reply = pcmk_dbus_send_recv(msg, connection, NULL); +diff --git a/lib/services/pcmk-dbus.h b/lib/services/pcmk-dbus.h +index 468020e..63910f6 100644 +--- a/lib/services/pcmk-dbus.h ++++ b/lib/services/pcmk-dbus.h +@@ -8,7 +8,8 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, D + bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, const char *function, int line); + char *pcmk_dbus_get_property( + DBusConnection *connection, const char *target, const char *obj, const gchar * iface, const char *name, +- void (*callback)(const char *name, const char *value, void *userdata), void *userdata); ++ void (*callback)(const char *name, const char *value, void *userdata), void *userdata, ++ DBusPendingCall **pending); + + bool pcmk_dbus_find_error(const char *method, DBusPendingCall* pending, DBusMessage *reply, DBusError *error); + +diff --git a/lib/services/systemd.c b/lib/services/systemd.c +index c0a1721..10c605a 100644 +--- a/lib/services/systemd.c ++++ b/lib/services/systemd.c +@@ -363,7 +363,7 @@ systemd_unit_metadata(const char *name) + + if (path) { + /* TODO: Worth a making blocking call for? Probably not. Possibly if cached. */ +- desc = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, path, BUS_NAME ".Unit", "Description", NULL, NULL); ++ desc = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, path, BUS_NAME ".Unit", "Description", NULL, NULL, NULL); + } else { + desc = g_strdup_printf("Systemd unit file for %s", name); + } +@@ -499,6 +499,9 @@ systemd_unit_check(const char *name, const char *state, void *userdata) + } + + if (op->synchronous == FALSE) { ++ if (op->opaque->pending) { ++ dbus_pending_call_unref(op->opaque->pending); ++ } + op->opaque->pending = NULL; + operation_finalize(op); + } +@@ -521,14 +524,24 @@ systemd_unit_exec_with_unit(svc_action_t * op, const char *unit) + } + + if (safe_str_eq(op->action, "monitor") || safe_str_eq(method, "status")) { +- char *state = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, unit, BUS_NAME ".Unit", "ActiveState", +- op->synchronous?NULL:systemd_unit_check, op); ++ DBusPendingCall *pending = NULL; ++ char *state; ++ ++ state = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, unit, ++ BUS_NAME ".Unit", "ActiveState", ++ op->synchronous?NULL:systemd_unit_check, ++ op, op->synchronous?NULL:&pending); + if (op->synchronous) { + systemd_unit_check("ActiveState", state, op); + free(state); + return op->rc == PCMK_OCF_OK; ++ } else if (pending) { ++ dbus_pending_call_ref(pending); ++ op->opaque->pending = pending; ++ return TRUE; + } +- return TRUE; ++ ++ return FALSE; + + } else if (g_strcmp0(method, "start") == 0) { + FILE *file_strm = NULL; +diff --git a/lib/services/upstart.c b/lib/services/upstart.c +index 01ff817..9894430 100644 +--- a/lib/services/upstart.c ++++ b/lib/services/upstart.c +@@ -322,6 +322,10 @@ upstart_job_check(const char *name, const char *state, void *userdata) + } + + if (op->synchronous == FALSE) { ++ if (op->opaque->pending) { ++ dbus_pending_call_unref(op->opaque->pending); ++ } ++ op->opaque->pending = NULL; + operation_finalize(op); + } + } +@@ -465,9 +469,11 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) + + op->rc = PCMK_OCF_NOT_RUNNING; + if(path) { ++ DBusPendingCall *pending = NULL; + char *state = pcmk_dbus_get_property( + upstart_proxy, BUS_NAME, path, UPSTART_06_API ".Instance", "state", +- op->synchronous?NULL:upstart_job_check, op); ++ op->synchronous?NULL:upstart_job_check, op, ++ op->synchronous?NULL:&pending); + + free(job); + free(path); +@@ -476,8 +482,12 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) + upstart_job_check("state", state, op); + free(state); + return op->rc == PCMK_OCF_OK; ++ } else if (pending) { ++ dbus_pending_call_ref(pending); ++ op->opaque->pending = pending; ++ return TRUE; + } +- return TRUE; ++ return FALSE; + } + goto cleanup; + +-- +1.8.4.2 + diff --git a/SPECS/pacemaker.spec b/SPECS/pacemaker.spec index 4d26109..9e787a5 100644 --- a/SPECS/pacemaker.spec +++ b/SPECS/pacemaker.spec @@ -55,7 +55,7 @@ Name: pacemaker Summary: Scalable High-Availability cluster resource manager Version: 1.1.12 -Release: %{pcmk_release}%{?dist} +Release: %{pcmk_release}%{?dist}.1 License: GPLv2+ and LGPLv2+ Url: http://www.clusterlabs.org Group: System Environment/Daemons @@ -85,6 +85,9 @@ Patch20: pacemaker-attrd-updater-other-nodes.patch Patch21: pacemaker-unknown-long-options.patch Patch22: pacemaker-resource-restart-segfault.patch Patch23: bz1176210-handle-orphaned-remote-nodes.patch +Patch24: pacemaker-31c6cc-enforce-colocation-fix-test.patch +Patch25: pacemaker-8805f9-fix-ensure-b-with-a.patch +Patch26: pacemaker-cb0f29d4.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) AutoReqProv: on @@ -556,6 +559,11 @@ exit 0 %changelog +* Wed Mar 18 2015 David Vossel - 1.1.12-22.1 +- Ensure B with A, that B can not run if A can not run. + + Resolves: rhbz#1204157 + * Thu Jan 15 2015 Andrew Beekhof - 1.1.12-22 - Fix segfault encountered with orphaned remote node connections