diff --git a/.gitignore b/.gitignore index 9aa67c0..7fc59c1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/Pacemaker-1.1.10.tar.gz +SOURCES/pacemaker-a14efad51ca8f1e3742fd8520e051cd7a0864f04.tar.gz diff --git a/.pacemaker.metadata b/.pacemaker.metadata index 5133579..d60206d 100644 --- a/.pacemaker.metadata +++ b/.pacemaker.metadata @@ -1 +1 @@ -e718c70b1a234d1864a78c26339706c39f73f1f6 SOURCES/Pacemaker-1.1.10.tar.gz +131ba58261066b1fd2cf874e41600262ecb584c6 SOURCES/pacemaker-a14efad51ca8f1e3742fd8520e051cd7a0864f04.tar.gz diff --git a/SOURCES/bz1011618-pcmk-consistently_use_slave_as_the_role_for_unpromoted_master_slave_resources.patch b/SOURCES/bz1011618-pcmk-consistently_use_slave_as_the_role_for_unpromoted_master_slave_resources.patch deleted file mode 100644 index 8877f65..0000000 --- a/SOURCES/bz1011618-pcmk-consistently_use_slave_as_the_role_for_unpromoted_master_slave_resources.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 6bb62a4a2b304de64d8ccf0e38ae6dd3c3d5e772 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Sep 25 11:53:35 2013 +1000 - - Fix: Bug rhbz#1011618 - Consistently use 'Slave' as the role for unpromoted master/slave resources - - (cherry picked from commit bc5e0b677b7ee45c022496cb926f91bad3731974) - -diff --git a/lib/pengine/native.c b/lib/pengine/native.c -index c81a218..adfd5ba 100644 ---- a/lib/pengine/native.c -+++ b/lib/pengine/native.c -@@ -294,16 +294,21 @@ native_print_attr(gpointer key, gpointer value, gpointer user_data) - static void - native_print_xml(resource_t * rsc, const char *pre_text, long options, void *print_data) - { -+ enum rsc_role_e role = rsc->role; - const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); - const char *prov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); - -+ if(role == RSC_ROLE_STARTED && uber_parent(rsc)->variant == pe_master) { -+ role = RSC_ROLE_SLAVE; -+ } -+ - /* resource information. */ - status_print("%s<resource ", pre_text); - status_print("id=\"%s\" ", rsc_printable_id(rsc)); - status_print("resource_agent=\"%s%s%s:%s\" ", - class, - prov ? "::" : "", prov ? prov : "", crm_element_value(rsc->xml, XML_ATTR_TYPE)); -- status_print("role=\"%s\" ", role2text(rsc->role)); -+ status_print("role=\"%s\" ", role2text(role)); - status_print("active=\"%s\" ", rsc->fns->active(rsc, TRUE) ? "true" : "false"); - status_print("orphaned=\"%s\" ", is_set(rsc->flags, pe_rsc_orphan) ? "true" : "false"); - status_print("managed=\"%s\" ", is_set(rsc->flags, pe_rsc_managed) ? "true" : "false"); diff --git a/SOURCES/bz1028627-pcmk-fix_controld_use_corosync2_dlm_variant.patch b/SOURCES/bz1028627-pcmk-fix_controld_use_corosync2_dlm_variant.patch deleted file mode 100644 index f8803c5..0000000 --- a/SOURCES/bz1028627-pcmk-fix_controld_use_corosync2_dlm_variant.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 16ed615a81294fb32e7d5795db86172d167975ae -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Nov 11 09:28:18 2013 +1100 - - Fix: controld: Use the correct variant of dlm_controld for corosync-2 clusters - (cherry picked from commit 0e33fe668aa23520da9552b271aba59016b9cb03) - -diff --git a/extra/resources/controld b/extra/resources/controld -index bacf0e9..bdd31bb 100644 ---- a/extra/resources/controld -+++ b/extra/resources/controld -@@ -209,8 +209,8 @@ controld_validate() { - : ${OCF_RESKEY_CRM_meta_globally_unique:="false"} - - case "$HA_quorum_type" in -- cman|corosync) daemon_ext="";; -- *) daemon_ext=".pcmk";; -+ pcmk) daemon_ext=".pcmk";; -+ *) daemon_ext="";; - esac - - case "$OCF_RESOURCE_INSTANCE" in diff --git a/SOURCES/bz1057697-pcmk-dbus_use_native_function_for_adding_arguments_to_messages.patch b/SOURCES/bz1057697-pcmk-dbus_use_native_function_for_adding_arguments_to_messages.patch deleted file mode 100644 index fe35e42..0000000 --- a/SOURCES/bz1057697-pcmk-dbus_use_native_function_for_adding_arguments_to_messages.patch +++ /dev/null @@ -1,77 +0,0 @@ -commit 04d86af8d57dd8c16283ea6acc6d6798053cf2a0 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Feb 5 10:56:51 2014 +1100 - - Refactor: dbus: Use native function for adding arguments to messages - - (cherry picked from commit bab144c83e90785c7df01423d3b239cbd4a2cd55) - -diff --git a/lib/services/dbus.c b/lib/services/dbus.c -index 66a98a0..b424c0b 100644 ---- a/lib/services/dbus.c -+++ b/lib/services/dbus.c -@@ -33,19 +33,6 @@ void pcmk_dbus_disconnect(DBusConnection *connection) - { - } - --bool pcmk_dbus_append_arg(DBusMessage *msg, int dtype, const void *value) --{ -- DBusMessageIter args; -- -- dbus_message_iter_init_append(msg, &args); -- if (!dbus_message_iter_append_basic(&args, dtype, value)) { -- crm_err("dbus_message_iter_append_basic(%c) failed", dtype); -- return FALSE; -- } -- -- return TRUE; --} -- - bool - pcmk_dbus_find_error(const char *method, DBusPendingCall* pending, DBusMessage *reply, DBusError *ret) - { -@@ -235,7 +222,7 @@ pcmk_dbus_get_property( - return NULL; - } - -- pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &iface); -+ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &iface, DBUS_TYPE_INVALID)); - - reply = pcmk_dbus_send_recv(msg, connection, &error); - dbus_message_unref(msg); -diff --git a/lib/services/pcmk-dbus.h b/lib/services/pcmk-dbus.h -index c8d2234..3b7a598 100644 ---- a/lib/services/pcmk-dbus.h -+++ b/lib/services/pcmk-dbus.h -@@ -5,7 +5,6 @@ void pcmk_dbus_disconnect(DBusConnection *connection); - bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, - void(*done)(DBusPendingCall *pending, void *user_data), void *user_data); - DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, DBusError *error); --bool pcmk_dbus_append_arg(DBusMessage *msg, int dtype, const void *value); - 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); - -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index b461c5f..374a03e 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -146,7 +146,7 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - msg = systemd_new_method(BUS_NAME".Manager", method); - CRM_ASSERT(msg != NULL); - -- pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &name); -+ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)); - - dbus_error_init(&error); - reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); -@@ -477,8 +477,8 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - CRM_ASSERT(msg != NULL); - - /* (ss) */ -- pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &name); -- pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &replace_s); -+ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)); -+ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &replace_s, DBUS_TYPE_INVALID)); - - if (synchronous == FALSE) { - free(unit); diff --git a/SOURCES/bz1057697-pcmk-portability_use_basic_types_for_dbus_compatability_struct.patch b/SOURCES/bz1057697-pcmk-portability_use_basic_types_for_dbus_compatability_struct.patch deleted file mode 100644 index e5e1c29..0000000 --- a/SOURCES/bz1057697-pcmk-portability_use_basic_types_for_dbus_compatability_struct.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit 6080e33737a133d080eb0f86a7b66f3af04f4c91 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Feb 3 14:59:18 2014 +1100 - - Fix: Portability: Use basic types for DBus compatability struct - - (cherry picked from commit 73a40012cc03336fb9753bc6e47bace7bc44a794) - -diff --git a/include/portability.h b/include/portability.h -index 29d1177..4eb6eaa 100644 ---- a/include/portability.h -+++ b/include/portability.h -@@ -178,6 +178,7 @@ g_list_free_full(GList * list, GDestroyNotify free_func) - # endif - - # ifndef HAVE_DBUSBASICVALUE -+# include <stdint.h> - # include <dbus/dbus.h> - /** - * An 8-byte struct you could use to access int64 without having -@@ -185,8 +186,8 @@ g_list_free_full(GList * list, GDestroyNotify free_func) - */ - typedef struct - { -- dbus_uint32_t first32; /**< first 32 bits in the 8 bytes (beware endian issues) */ -- dbus_uint32_t second32; /**< second 32 bits in the 8 bytes (beware endian issues) */ -+ uint32_t first32; /**< first 32 bits in the 8 bytes (beware endian issues) */ -+ uint32_t second32; /**< second 32 bits in the 8 bytes (beware endian issues) */ - } DBus8ByteStruct; - - /** -@@ -202,14 +203,14 @@ typedef struct - typedef union - { - unsigned char bytes[8]; /**< as 8 individual bytes */ -- dbus_int16_t i16; /**< as int16 */ -- dbus_uint16_t u16; /**< as int16 */ -- dbus_int32_t i32; /**< as int32 */ -- dbus_uint32_t u32; /**< as int32 */ -- dbus_bool_t bool_val; /**< as boolean */ -+ int16_t i16; /**< as int16 */ -+ uint16_t u16; /**< as int16 */ -+ int32_t i32; /**< as int32 */ -+ uint32_t u32; /**< as int32 */ -+ uint32_t bool_val; /**< as boolean */ - # ifdef DBUS_HAVE_INT64 -- dbus_int64_t i64; /**< as int64 */ -- dbus_uint64_t u64; /**< as int64 */ -+ int64_t i64; /**< as int64 */ -+ uint64_t u64; /**< as int64 */ - # endif - DBus8ByteStruct eight; /**< as 8-byte struct */ - double dbl; /**< as double */ diff --git a/SOURCES/bz1057697-pcmk-services_detect_missing_agents_and_permission_errors_before_forking.patch b/SOURCES/bz1057697-pcmk-services_detect_missing_agents_and_permission_errors_before_forking.patch deleted file mode 100644 index bfa676e..0000000 --- a/SOURCES/bz1057697-pcmk-services_detect_missing_agents_and_permission_errors_before_forking.patch +++ /dev/null @@ -1,271 +0,0 @@ -commit 385cb2b6a11d967145d8034fd5c05574a6594a4f -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Aug 8 11:21:03 2013 +1000 - - Feature: services: Detect missing agents and permission errors before forking - - Also set the operation status to distinguish between the agent being - missing and something the agent needs being missing. - - (cherry picked from commit 20eee043d376ed03edf5e4bb4cc4639f8697e44a) - -diff --git a/crmd/te_actions.c b/crmd/te_actions.c -index 63d15bb..4e3bc22 100644 ---- a/crmd/te_actions.c -+++ b/crmd/te_actions.c -@@ -465,7 +465,7 @@ te_rsc_command(crm_graph_t * graph, crm_action_t * action) - && safe_str_neq(task, CRMD_ACTION_DELETE)) { - /* write a "pending" entry to the CIB, inhibit notification */ - crm_debug("Recording pending op %s in the CIB", task_uuid); -- cib_action_update(action, PCMK_LRM_OP_PENDING, PCMK_OCF_STATUS_UNKNOWN); -+ cib_action_update(action, PCMK_LRM_OP_PENDING, PCMK_OCF_UNKNOWN); - } - - return TRUE; -diff --git a/crmd/te_callbacks.c b/crmd/te_callbacks.c -index c0360b4..4b8aac5 100644 ---- a/crmd/te_callbacks.c -+++ b/crmd/te_callbacks.c -@@ -548,7 +548,6 @@ action_timer_callback(gpointer data) - } - - if (send_update) { -- /* cib_action_update(timer->action, PCMK_LRM_OP_PENDING, PCMK_OCF_STATUS_UNKNOWN); */ - cib_action_update(timer->action, PCMK_LRM_OP_TIMEOUT, PCMK_OCF_UNKNOWN_ERROR); - } - } -diff --git a/include/crm/services.h b/include/crm/services.h -index 0c0cca9..9fe9d37 100644 ---- a/include/crm/services.h -+++ b/include/crm/services.h -@@ -88,9 +88,10 @@ enum ocf_exitcode { - PCMK_OCF_RUNNING_MASTER = 8, - PCMK_OCF_FAILED_MASTER = 9, - -- PCMK_OCF_STATUS_UNKNOWN = 14, /* Already in use */ - - /* 150-199 reserved for application use */ -+ PCMK_OCF_EXEC_ERROR = 192, /* Generic problem invoking the agent */ -+ PCMK_OCF_UNKNOWN = 193, /* State of the service is unknown - used for recording in-flight operations */ - PCMK_OCF_SIGNAL = 194, - PCMK_OCF_NOT_SUPPORTED = 195, - PCMK_OCF_PENDING = 196, -@@ -106,6 +107,7 @@ enum op_status { - PCMK_LRM_OP_TIMEOUT, - PCMK_LRM_OP_NOTSUPPORTED, - PCMK_LRM_OP_ERROR, -+ PCMK_LRM_OP_NOT_INSTALLED, - }; - - enum nagios_exitcode { -@@ -263,6 +265,7 @@ enum nagios_exitcode { - case PCMK_LRM_OP_TIMEOUT:return "Timed Out"; - case PCMK_LRM_OP_NOTSUPPORTED:return "NOT SUPPORTED"; - case PCMK_LRM_OP_ERROR:return "Error"; -+ case PCMK_LRM_OP_NOT_INSTALLED:return "Not installed"; - default:return "UNKNOWN!"; - }} static inline const char *services_ocf_exitcode_str(enum ocf_exitcode code) { - switch (code) { -diff --git a/lib/services/services_linux.c b/lib/services/services_linux.c -index 868dc5b..ac0138f 100644 ---- a/lib/services/services_linux.c -+++ b/lib/services/services_linux.c -@@ -307,14 +307,62 @@ operation_finished(mainloop_child_t * p, pid_t pid, int core, int signo, int exi - operation_finalize(op); - } - -+static void -+services_handle_exec_error(svc_action_t * op, int error) -+{ -+ op->stdout_data = NULL; -+ op->stderr_data = NULL; -+ -+ /* Need to mimic the return codes for each standard as thats what we'll convert back from in get_uniform_rc() */ -+ if (safe_str_eq(op->standard, "lsb") && safe_str_eq(op->action, "status")) { -+ switch (errno) { /* see execve(2) */ -+ case ENOENT: /* No such file or directory */ -+ case EISDIR: /* Is a directory */ -+ op->rc = PCMK_LSB_STATUS_NOT_INSTALLED; -+ op->status = PCMK_LRM_OP_NOT_INSTALLED; -+ break; -+ case EACCES: /* permission denied (various errors) */ -+ /* LSB status ops don't support 'not installed' */ -+ break; -+ } -+ -+#if SUPPORT_NAGIOS -+ } else if (safe_str_eq(op->standard, "nagios")) { -+ switch (errno) { -+ case ENOENT: /* No such file or directory */ -+ case EISDIR: /* Is a directory */ -+ op->rc = NAGIOS_NOT_INSTALLED; -+ op->status = PCMK_LRM_OP_NOT_INSTALLED; -+ break; -+ case EACCES: /* permission denied (various errors) */ -+ op->rc = NAGIOS_INSUFFICIENT_PRIV; -+ break; -+ } -+#endif -+ -+ } else { -+ switch (errno) { -+ case ENOENT: /* No such file or directory */ -+ case EISDIR: /* Is a directory */ -+ op->rc = PCMK_OCF_NOT_INSTALLED; /* Valid for LSB */ -+ op->status = PCMK_LRM_OP_NOT_INSTALLED; -+ break; -+ case EACCES: /* permission denied (various errors) */ -+ op->rc = PCMK_OCF_INSUFFICIENT_PRIV; /* Valid for LSB */ -+ break; -+ } -+ } -+} -+ - gboolean - services_os_action_execute(svc_action_t * op, gboolean synchronous) - { -- int rc, lpc; -+ int lpc; - int stdout_fd[2]; - int stderr_fd[2]; - sigset_t mask; - sigset_t old_mask; -+ struct stat st; - - if (pipe(stdout_fd) < 0) { - crm_err("pipe() failed"); -@@ -324,6 +372,13 @@ services_os_action_execute(svc_action_t * op, gboolean synchronous) - crm_err("pipe() failed"); - } - -+ /* Fail fast */ -+ if(stat(op->opaque->exec, &st) != 0) { -+ crm_warn("Cannot execute '%s': %s (%d)", op->opaque->exec, pcmk_strerror(errno), errno); -+ services_handle_exec_error(op, errno); -+ return FALSE; -+ } -+ - if (synchronous) { - sigemptyset(&mask); - sigaddset(&mask, SIGCHLD); -@@ -337,11 +392,14 @@ services_os_action_execute(svc_action_t * op, gboolean synchronous) - op->pid = fork(); - switch (op->pid) { - case -1: -- crm_err("fork() failed"); -+ crm_err("Could not execute '%s': %s (%d)", op->opaque->exec, pcmk_strerror(errno), errno); -+ - close(stdout_fd[0]); - close(stdout_fd[1]); - close(stderr_fd[0]); - close(stderr_fd[1]); -+ -+ services_handle_exec_error(op, errno); - return FALSE; - - case 0: /* Child */ -@@ -390,29 +448,9 @@ services_os_action_execute(svc_action_t * op, gboolean synchronous) - /* execute the RA */ - execvp(op->opaque->exec, op->opaque->args); - -- switch (errno) { /* see execve(2) */ -- case ENOENT: /* No such file or directory */ -- case EISDIR: /* Is a directory */ -- rc = PCMK_OCF_NOT_INSTALLED; --#if SUPPORT_NAGIOS -- if (safe_str_eq(op->standard, "nagios")) { -- rc = NAGIOS_NOT_INSTALLED; -- } --#endif -- break; -- case EACCES: /* permission denied (various errors) */ -- rc = PCMK_OCF_INSUFFICIENT_PRIV; --#if SUPPORT_NAGIOS -- if (safe_str_eq(op->standard, "nagios")) { -- rc = NAGIOS_INSUFFICIENT_PRIV; -- } --#endif -- break; -- default: -- rc = PCMK_OCF_UNKNOWN_ERROR; -- break; -- } -- _exit(rc); -+ /* Most cases should have been already handled by stat() */ -+ services_handle_exec_error(op, errno); -+ _exit(op->rc); - } - - /* Only the parent reaches here */ -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index 783caca..ea804c8 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -385,6 +385,7 @@ systemd_unit_exec_done(GObject * source_object, GAsyncResult * res, gpointer use - - } else { - op->rc = PCMK_OCF_NOT_INSTALLED; -+ op->status = PCMK_LRM_OP_NOT_INSTALLED; - } - - } else { -@@ -441,6 +442,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - error ? error->message : "unknown"); - if (error && strstr(error->message, "systemd1.NoSuchUnit")) { - op->rc = PCMK_OCF_NOT_INSTALLED; -+ op->status = PCMK_LRM_OP_NOT_INSTALLED; - } - if(error) { - g_error_free(error); -diff --git a/lib/services/upstart.c b/lib/services/upstart.c -index daeb398..831e7cf 100644 ---- a/lib/services/upstart.c -+++ b/lib/services/upstart.c -@@ -446,6 +446,7 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) - op->rc = PCMK_OCF_OK; - } else { - op->rc = PCMK_OCF_NOT_INSTALLED; -+ op->status = PCMK_LRM_OP_NOT_INSTALLED; - } - goto cleanup; - } -diff --git a/lrmd/regression.py.in b/lrmd/regression.py.in -index 8d5fea4..9009e1c 100755 ---- a/lrmd/regression.py.in -+++ b/lrmd/regression.py.in -@@ -629,7 +629,7 @@ if __name__ == "__main__": - test.add_cmd("-c register_rsc -r \"test_rsc\" -C systemd -T this_is_fake1234 -t 3000 " - "-l \"NEW_EVENT event_type:register rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - test.add_cmd("-c exec -r \"test_rsc\" -a \"start\" -t 3000 " -- "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:complete\" ") -+ "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:Not installed\" ") - test.add_cmd("-c unregister_rsc -r \"test_rsc\" -t 3000 " - "-l \"NEW_EVENT event_type:unregister rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - -@@ -638,7 +638,7 @@ if __name__ == "__main__": - test.add_cmd("-c register_rsc -r \"test_rsc\" -C upstart -T this_is_fake1234 -t 3000 " - "-l \"NEW_EVENT event_type:register rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - test.add_cmd("-c exec -r \"test_rsc\" -a \"start\" -t 3000 " -- "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:complete\" ") -+ "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:Not installed\" ") - test.add_cmd("-c unregister_rsc -r \"test_rsc\" -t 3000 " - "-l \"NEW_EVENT event_type:unregister rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - -@@ -647,7 +647,7 @@ if __name__ == "__main__": - test.add_cmd("-c register_rsc -r \"test_rsc\" -C ocf -P pacemaker -T this_is_fake1234 -t 3000 " - "-l \"NEW_EVENT event_type:register rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - test.add_cmd("-c exec -r \"test_rsc\" -a \"start\" -t 3000 " -- "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:complete\" ") -+ "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:Not installed\" ") - test.add_cmd("-c unregister_rsc -r \"test_rsc\" -t 3000 " - "-l \"NEW_EVENT event_type:unregister rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - -@@ -656,7 +656,7 @@ if __name__ == "__main__": - test.add_cmd("-c register_rsc -r \"test_rsc\" -C ocf -P pancakes -T Dummy -t 3000 " - "-l \"NEW_EVENT event_type:register rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - test.add_cmd("-c exec -r \"test_rsc\" -a \"start\" -t 3000 " -- "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:complete\" ") -+ "-l \"NEW_EVENT event_type:exec_complete rsc_id:test_rsc action:start rc:not installed op_status:Not installed\" ") - test.add_cmd("-c unregister_rsc -r \"test_rsc\" -t 3000 " - "-l \"NEW_EVENT event_type:unregister rsc_id:test_rsc action:none rc:ok op_status:complete\" ") - diff --git a/SOURCES/bz1057697-pcmk-services_keep_dbus_build_support_optional.patch b/SOURCES/bz1057697-pcmk-services_keep_dbus_build_support_optional.patch deleted file mode 100644 index eebd849..0000000 --- a/SOURCES/bz1057697-pcmk-services_keep_dbus_build_support_optional.patch +++ /dev/null @@ -1,55 +0,0 @@ -commit 719498e7cfbceffa01eff37263c55ceaf1623379 -Author: David Vossel <dvossel@redhat.com> -Date: Wed Feb 5 17:42:01 2014 -0600 - - Low: services: Keep dbus build support optional - - (cherry picked from commit e4d030a6d278fb3a43aa9c7eb359b488673f504a) - -diff --git a/configure.ac b/configure.ac -index f90ccdc..cad5190 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1162,6 +1162,8 @@ HAVE_upstart=0 - HAVE_systemd=0 - PKG_CHECK_MODULES(DBUS, dbus-1, ,HAVE_dbus=0) - -+AM_CONDITIONAL(BUILD_DBUS, test $HAVE_dbus = 1) -+ - if test $HAVE_dbus = 1; then - CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1`" - fi -diff --git a/include/portability.h b/include/portability.h -index 4eb6eaa..b1302d2 100644 ---- a/include/portability.h -+++ b/include/portability.h -@@ -177,7 +177,7 @@ g_list_free_full(GList * list, GDestroyNotify free_func) - } - # endif - --# ifndef HAVE_DBUSBASICVALUE -+# if defined(BUILD_DBUS) && !defined(HAVE_DBUSBASICVALUE) - # include <stdint.h> - # include <dbus/dbus.h> - /** -diff --git a/lib/services/Makefile.am b/lib/services/Makefile.am -index 6ed4d01..96ccdb0 100644 ---- a/lib/services/Makefile.am -+++ b/lib/services/Makefile.am -@@ -23,11 +23,15 @@ INCLUDES = -I$(top_builddir)/include - lib_LTLIBRARIES = libcrmservice.la - noinst_HEADERS = upstart.h systemd.h services_private.h - --libcrmservice_la_SOURCES = services.c services_linux.c dbus.c -+libcrmservice_la_SOURCES = services.c services_linux.c - libcrmservice_la_LDFLAGS = -version-info 1:0:0 - libcrmservice_la_CFLAGS = $(GIO_CFLAGS) -DOCF_ROOT_DIR=\"@OCF_ROOT_DIR@\" - libcrmservice_la_LIBADD = $(GIO_LIBS) $(top_builddir)/lib/common/libcrmcommon.la $(DBUS_LIBS) - -+if BUILD_DBUS -+libcrmservice_la_SOURCES += dbus.c -+endif -+ - if BUILD_UPSTART - libcrmservice_la_SOURCES += upstart.c - endif diff --git a/SOURCES/bz1057697-pcmk-systemd_simplify_dbus_api_usage.patch b/SOURCES/bz1057697-pcmk-systemd_simplify_dbus_api_usage.patch deleted file mode 100644 index f24694a..0000000 --- a/SOURCES/bz1057697-pcmk-systemd_simplify_dbus_api_usage.patch +++ /dev/null @@ -1,160 +0,0 @@ -commit 5be9e5b63815cb632b4944f00dd67f6f9dcbff70 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Feb 3 14:43:38 2014 +1100 - - Refactor: systemd: Simplify dbus API usage - - (cherry picked from commit e3aa2f12bb4f00d4b0d8a38f1dd5727de2eba351) - -diff --git a/lib/services/dbus.c b/lib/services/dbus.c -index a3286f2..a9b1eba 100644 ---- a/lib/services/dbus.c -+++ b/lib/services/dbus.c -@@ -179,7 +179,22 @@ bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, - - bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, const char *function, int line) - { -- int dtype = dbus_message_iter_get_arg_type(field); -+ int dtype = 0; -+ DBusMessageIter lfield; -+ -+ if(field == NULL) { -+ if(dbus_message_iter_init(msg, &lfield)) { -+ field = &lfield; -+ } -+ } -+ -+ if(field == NULL) { -+ do_crm_log_alias(LOG_ERR, __FILE__, function, line, -+ "Empty parameter list in reply expecting '%c'", expected); -+ return FALSE; -+ } -+ -+ dtype = dbus_message_iter_get_arg_type(field); - - if(dtype != expected) { - DBusMessageIter args; -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index a06d547..b461c5f 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -119,7 +119,6 @@ static gboolean - systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - { - DBusMessage *msg; -- DBusMessageIter args; - DBusMessage *reply = NULL; - const char *method = "GetUnit"; - char *name = NULL; -@@ -137,6 +136,10 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - </method> - */ - -+ if (systemd_init() == FALSE) { -+ return FALSE; -+ } -+ - name = systemd_service_name(arg_name); - - while(*out_unit == NULL) { -@@ -152,17 +155,19 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - if(error.name) { - crm_info("Call to %s failed: %s", method, error.name); - -- } else if (dbus_message_iter_init(reply, &args)) { -+ } else if(pcmk_dbus_type_check(reply, NULL, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -+ if(out_unit) { -+ char *path = NULL; - -- if(pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -- DBusBasicValue value; -+ dbus_message_get_args (reply, NULL, -+ DBUS_TYPE_OBJECT_PATH, &path, -+ DBUS_TYPE_INVALID); - -- dbus_message_iter_get_basic(&args, &value); -- *out_unit = strdup(value.str); -- dbus_message_unref(reply); -- free(name); -- return TRUE; -+ *out_unit = strdup(path); - } -+ dbus_message_unref(reply); -+ free(name); -+ return TRUE; - } - - if(strcmp(method, "LoadUnit") != 0) { -@@ -171,6 +176,7 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - systemd_daemon_reload(); - if(reply) { - dbus_message_unref(reply); -+ reply = NULL; - } - - } else { -@@ -264,20 +270,7 @@ systemd_unit_listall(void) - gboolean - systemd_unit_exists(const char *name) - { -- char *path = NULL; -- gboolean pass = FALSE; -- -- if (systemd_init() == FALSE) { -- return FALSE; -- } -- -- if(systemd_unit_by_name(name, &path) && path) { -- crm_trace("Got %s", path); -- pass = TRUE; -- } -- -- free(path); -- return pass; -+ return systemd_unit_by_name(name, NULL); - } - - static char * -@@ -360,12 +353,7 @@ systemd_async_dispatch(DBusPendingCall *pending, void *user_data) - } - - } else { -- DBusMessageIter args; -- -- if(!dbus_message_iter_init(reply, &args)) { -- crm_err("Call to %s failed: no arguments", op->action); -- -- } else if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -+ if(!pcmk_dbus_type_check(reply, NULL, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { - crm_warn("Call to %s passed but return type was unexpected", op->action); - op->rc = PCMK_OCF_OK; - -@@ -403,7 +391,6 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - char *name = systemd_service_name(op->agent); - DBusMessage *msg = NULL; - DBusMessage *reply = NULL; -- DBusMessageIter args; - - dbus_error_init(&error); - op->rc = PCMK_OCF_UNKNOWN_ERROR; -@@ -499,6 +486,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - return pcmk_dbus_send(msg, systemd_proxy, systemd_async_dispatch, op); - } - -+ dbus_error_init(&error); - reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); - - if(error.name) { -@@ -508,11 +496,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - } - goto cleanup; - -- } else if(!dbus_message_iter_init(reply, &args)) { -- crm_err("Call to %s failed: no arguments", method); -- goto cleanup; -- -- } else if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -+ } else if(!pcmk_dbus_type_check(reply, NULL, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { - crm_warn("Call to %s passed but return type was unexpected", op->action); - op->rc = PCMK_OCF_OK; - diff --git a/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_systemd_async_support_to_avoid_problematic_use_of_threads.patch b/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_systemd_async_support_to_avoid_problematic_use_of_threads.patch deleted file mode 100644 index aac073c..0000000 --- a/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_systemd_async_support_to_avoid_problematic_use_of_threads.patch +++ /dev/null @@ -1,622 +0,0 @@ -commit c7ca5eccb5709c75797579f508c3f9ae968cd55e -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Jan 31 10:53:35 2014 +1100 - - Fix: Bug rhbz#1057697 - Use native DBus library for systemd async support to avoid problematic use of threads - - (cherry picked from commit 2f90aad962c63eba313ed466580703434c80bd1a) - -diff --git a/lib/services/dbus.c b/lib/services/dbus.c -index 69ea6ac..a3286f2 100644 ---- a/lib/services/dbus.c -+++ b/lib/services/dbus.c -@@ -4,6 +4,9 @@ - #include <dbus/dbus.h> - #include <pcmk-dbus.h> - -+#define BUS_PROPERTY_IFACE "org.freedesktop.DBus.Properties" -+ -+ - static bool pcmk_dbus_error_check(DBusError *err, const char *prefix, const char *function, int line) - { - if (err && dbus_error_is_set(err)) { -@@ -43,36 +46,18 @@ bool pcmk_dbus_append_arg(DBusMessage *msg, int dtype, const void *value) - return TRUE; - } - --DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, char **e) -+bool -+pcmk_dbus_find_error(const char *method, DBusPendingCall* pending, DBusMessage *reply, DBusError *ret) - { - DBusError error; -- const char *method = NULL; -- DBusMessage *reply = NULL; -- DBusPendingCall* pending = NULL; - - dbus_error_init(&error); - -- CRM_ASSERT(dbus_message_get_type (msg) == DBUS_MESSAGE_TYPE_METHOD_CALL); -- method = dbus_message_get_member (msg); -+ if(pending == NULL) { -+ error.name = "org.clusterlabs.pacemaker.NoRequest"; -+ error.message = "No request sent"; - -- // send message and get a handle for a reply -- if (!dbus_connection_send_with_reply (connection, msg, &pending, -1)) { // -1 is default timeout -- crm_err("Send with reply failed"); -- return NULL; -- } -- if (NULL == pending) { -- crm_err("No pending call found"); -- return NULL; -- } -- -- dbus_connection_flush(connection); -- -- /* block until we receive a reply */ -- dbus_pending_call_block(pending); -- -- /* get the reply message */ -- reply = dbus_pending_call_steal_reply(pending); -- if(reply == NULL) { -+ } else if(reply == NULL) { - error.name = "org.clusterlabs.pacemaker.NoReply"; - error.message = "No reply"; - -@@ -80,7 +65,6 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, c - DBusMessageIter args; - int dtype = dbus_message_get_type(reply); - -- - switch(dtype) { - case DBUS_MESSAGE_TYPE_METHOD_RETURN: - dbus_message_iter_init(reply, &args); -@@ -104,7 +88,7 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, c - - case DBUS_MESSAGE_TYPE_ERROR: - dbus_set_error_from_message (&error, reply); -- crm_err("%s error '%s': %s", method, error.name, error.message); -+ crm_info("%s error '%s': %s", method, error.name, error.message); - break; - default: - error.message = "Unknown reply type"; -@@ -113,23 +97,86 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, c - } - } - -- if(error.name) { -- if(e) { -- *e = strdup(error.name); -+ if(ret && (error.name || error.message)) { -+ *ret = error; -+ return TRUE; -+ } -+ -+ return FALSE; -+} -+ -+DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, DBusError *error) -+{ -+ const char *method = NULL; -+ DBusMessage *reply = NULL; -+ DBusPendingCall* pending = NULL; -+ -+ CRM_ASSERT(dbus_message_get_type (msg) == DBUS_MESSAGE_TYPE_METHOD_CALL); -+ method = dbus_message_get_member (msg); -+ -+ // send message and get a handle for a reply -+ if (!dbus_connection_send_with_reply (connection, msg, &pending, -1)) { // -1 is default timeout -+ if(error) { -+ error->message = "Call to dbus_connection_send_with_reply() failed"; -+ error->name = "org.clusterlabs.pacemaker.SendFailed"; - } -+ crm_err("Error sending %s request", method); -+ return NULL; -+ } -+ -+ dbus_connection_flush(connection); -+ -+ if(pending) { -+ /* block until we receive a reply */ -+ dbus_pending_call_block(pending); -+ -+ /* get the reply message */ -+ reply = dbus_pending_call_steal_reply(pending); -+ } -+ -+ if(pcmk_dbus_find_error(method, pending, reply, error)) { -+ crm_trace("Was error: '%s' '%s'", error->name, error->message); - if(reply) { - dbus_message_unref(reply); - reply = NULL; - } -- } else if(e) { -- *e = NULL; -+ } -+ crm_trace("Was error: '%s' '%s'", error->name, error->message); -+ -+ if(pending) { -+ /* free the pending message handle */ -+ dbus_pending_call_unref(pending); - } - -- /* free the pending message handle */ -- dbus_pending_call_unref(pending); - return reply; - } - -+bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, -+ void(*done)(DBusPendingCall *pending, void *user_data), void *user_data) -+{ -+ DBusError error; -+ const char *method = NULL; -+ DBusPendingCall* pending = NULL; -+ -+ dbus_error_init(&error); -+ -+ CRM_ASSERT(dbus_message_get_type (msg) == DBUS_MESSAGE_TYPE_METHOD_CALL); -+ method = dbus_message_get_member (msg); -+ -+ // send message and get a handle for a reply -+ if (!dbus_connection_send_with_reply (connection, msg, &pending, -1)) { // -1 is default timeout -+ crm_err("Send with reply failed for %s", method); -+ return FALSE; -+ -+ } else if (pending == NULL) { -+ crm_err("No pending call found for %s", method); -+ return FALSE; -+ -+ } -+ CRM_ASSERT(dbus_pending_call_set_notify(pending, done, user_data, NULL)); -+ return TRUE; -+} -+ - bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, const char *function, int line) - { - int dtype = dbus_message_iter_get_arg_type(field); -@@ -147,8 +194,6 @@ bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected - return TRUE; - } - --#define BUS_PROPERTY_IFACE "org.freedesktop.DBus.Properties" -- - char * - pcmk_dbus_get_property( - DBusConnection *connection, const char *target, const char *obj, const gchar * iface, const char *name) -@@ -160,10 +205,11 @@ pcmk_dbus_get_property( - /* DBusBasicValue value; */ - const char *method = "GetAll"; - char *output = NULL; -- char *error = NULL; -+ DBusError error; - - /* desc = systemd_unit_property(path, BUS_NAME ".Unit", "Description"); */ - -+ dbus_error_init(&error); - crm_info("Calling: %s on %s", method, target); - msg = dbus_message_new_method_call(target, // target for the method call - obj, // object to call on -@@ -180,7 +226,7 @@ pcmk_dbus_get_property( - reply = pcmk_dbus_send_recv(msg, connection, &error); - dbus_message_unref(msg); - -- if(reply == NULL) { -+ if(error.name) { - crm_err("Call to %s for %s failed: No reply", method, iface); - return NULL; - -@@ -242,20 +288,105 @@ pcmk_dbus_get_property( - return output; - } - -+static void pcmk_dbus_connection_dispatch(DBusConnection *connection, DBusDispatchStatus new_status, void *data){ -+ crm_trace("status %d for %p", new_status, data); -+ if (new_status == DBUS_DISPATCH_DATA_REMAINS){ -+ dbus_connection_dispatch(connection); -+ } -+} -+ -+static int -+pcmk_dbus_watch_dispatch(gpointer userdata) -+{ -+ DBusWatch *watch = userdata; -+ int flags = dbus_watch_get_flags(watch); - -+ crm_trace("Dispatching %p with flags %d", watch, flags); -+ if(flags & DBUS_WATCH_READABLE) { -+ dbus_watch_handle(watch, DBUS_WATCH_READABLE); -+ } else { -+ dbus_watch_handle(watch, DBUS_WATCH_ERROR); -+ } -+ return 0; -+} -+ -+static void -+pcmk_dbus_watch_destroy(gpointer userdata) -+{ -+ crm_trace("Destroyed %p", userdata); -+} - - -+struct mainloop_fd_callbacks pcmk_dbus_cb = { -+ .dispatch = pcmk_dbus_watch_dispatch, -+ .destroy = pcmk_dbus_watch_destroy, -+}; - --int dbus_watch_get_unix_fd ( DBusWatch * watch ); -+static dbus_bool_t -+pcmk_dbus_watch_add(DBusWatch *watch, void *data){ -+ int fd = dbus_watch_get_unix_fd(watch); - -+ mainloop_io_t *client = mainloop_add_fd( -+ "dbus", G_PRIORITY_DEFAULT, fd, watch, &pcmk_dbus_cb); - --/* http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html#gaebf031eb444b4f847606aa27daa3d8e6 */ -- --DBUS_EXPORT dbus_bool_t dbus_connection_set_watch_functions( -- DBusConnection * connection, -- DBusAddWatchFunction add_function, -- DBusRemoveWatchFunction remove_function, -- DBusWatchToggledFunction toggled_function, -- void * data, -- DBusFreeFunction free_data_function -- ); -+ crm_trace("Added %p with fd=%d", watch, fd); -+ dbus_watch_set_data(watch, client, NULL); -+ return TRUE; -+} -+ -+static void -+pcmk_dbus_watch_remove(DBusWatch *watch, void *data){ -+ mainloop_io_t *client = dbus_watch_get_data(watch); -+ -+ crm_trace("Removed %p", watch); -+ mainloop_del_fd(client); -+} -+ -+static gboolean -+pcmk_dbus_timeout_dispatch(gpointer data) -+{ -+ crm_trace("Timeout for %p"); -+ dbus_timeout_handle(data); -+ return FALSE; -+} -+ -+static dbus_bool_t -+pcmk_dbus_timeout_add(DBusTimeout *timeout, void *data){ -+ guint id = g_timeout_add(dbus_timeout_get_interval(timeout), pcmk_dbus_timeout_dispatch, timeout); -+ -+ if(id) { -+ dbus_timeout_set_data(timeout, GUINT_TO_POINTER(id), NULL); -+ } -+ return TRUE; -+} -+ -+static void -+pcmk_dbus_timeout_remove(DBusTimeout *timeout, void *data){ -+ void *vid = dbus_timeout_get_data(timeout); -+ guint id = GPOINTER_TO_UINT(vid); -+ -+ if(id) { -+ g_source_remove(id); -+ dbus_timeout_set_data(timeout, 0, NULL); -+ } -+} -+ -+static void -+pcmk_dbus_timeout_toggle(DBusTimeout *timeout, void *data){ -+ if(dbus_timeout_get_enabled(timeout)) { -+ pcmk_dbus_timeout_add(timeout, data); -+ } else { -+ pcmk_dbus_timeout_remove(timeout, data); -+ } -+} -+ -+/* Inspired by http://www.kolej.mff.cuni.cz/~vesej3am/devel/dbus-select.c */ -+ -+void pcmk_dbus_connection_setup_with_select(DBusConnection *c){ -+ dbus_connection_set_timeout_functions( -+ c, pcmk_dbus_timeout_add, pcmk_dbus_timeout_remove, pcmk_dbus_timeout_toggle, NULL, NULL); -+ dbus_connection_set_watch_functions(c, pcmk_dbus_watch_add, pcmk_dbus_watch_remove, NULL, NULL, NULL); -+ dbus_connection_set_dispatch_status_function(c, pcmk_dbus_connection_dispatch, NULL, NULL); -+ -+ pcmk_dbus_connection_dispatch(c, dbus_connection_get_dispatch_status(c), NULL); -+} -diff --git a/lib/services/pcmk-dbus.h b/lib/services/pcmk-dbus.h -index 27ac737..c8d2234 100644 ---- a/lib/services/pcmk-dbus.h -+++ b/lib/services/pcmk-dbus.h -@@ -1,7 +1,13 @@ - DBusConnection *pcmk_dbus_connect(void); -+void pcmk_dbus_connection_setup_with_select(DBusConnection *c); - void pcmk_dbus_disconnect(DBusConnection *connection); - --DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, char **error); -+bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, -+ void(*done)(DBusPendingCall *pending, void *user_data), void *user_data); -+DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, DBusError *error); - bool pcmk_dbus_append_arg(DBusMessage *msg, int dtype, const void *value); - 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); -+ -+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 9aa5b03..a06d547 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -69,6 +69,7 @@ systemd_init(void) - if (need_init) { - need_init = 0; - systemd_proxy = pcmk_dbus_connect(); -+ pcmk_dbus_connection_setup_with_select(systemd_proxy); - } - if (systemd_proxy == NULL) { - return FALSE; -@@ -122,7 +123,7 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - DBusMessage *reply = NULL; - const char *method = "GetUnit"; - char *name = NULL; -- char *error = NULL; -+ DBusError error; - - /* - <method name="GetUnit"> -@@ -144,13 +145,12 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - - pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &name); - -+ dbus_error_init(&error); - reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); - dbus_message_unref(msg); - -- if(error) { -- crm_info("Call to %s failed: %s", method, error); -- free(error); -- error = NULL; -+ if(error.name) { -+ crm_info("Call to %s failed: %s", method, error.name); - - } else if (dbus_message_iter_init(reply, &args)) { - -@@ -192,7 +192,7 @@ systemd_unit_listall(void) - DBusMessage *msg = NULL; - DBusMessage *reply = NULL; - const char *method = "ListUnits"; -- char *error = NULL; -+ DBusError error; - - if (systemd_init() == FALSE) { - return NULL; -@@ -204,15 +204,15 @@ systemd_unit_listall(void) - " </method>\n" \ - */ - -+ dbus_error_init(&error); - msg = systemd_new_method(BUS_NAME".Manager", method); - CRM_ASSERT(msg != NULL); - - reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); - dbus_message_unref(msg); - -- if(error) { -- crm_err("Call to %s failed: %s", method, error); -- free(error); -+ if(error.name) { -+ crm_err("Call to %s failed: %s", method, error.name); - return NULL; - - } else if (!dbus_message_iter_init(reply, &args)) { -@@ -318,64 +318,84 @@ systemd_unit_metadata(const char *name) - return meta; - } - --#if 0 -+static bool -+systemd_mask_error(svc_action_t *op, const char *error) -+{ -+ crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); -+ if(strstr(error, "org.freedesktop.systemd1.InvalidName") -+ || strstr(error, "org.freedesktop.systemd1.LoadFailed") -+ || strstr(error, "org.freedesktop.systemd1.NoSuchUnit")) { -+ -+ if (safe_str_eq(op->action, "stop")) { -+ crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); -+ op->rc = PCMK_OCF_OK; -+ -+ } else { -+ crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); -+ op->rc = PCMK_OCF_NOT_INSTALLED; -+ op->status = PCMK_LRM_OP_NOT_INSTALLED; -+ } -+ return TRUE; -+ } -+ -+ return FALSE; -+} -+ - static void --systemd_unit_exec_done(GObject * source_object, GAsyncResult * res, gpointer user_data) -+systemd_async_dispatch(DBusPendingCall *pending, void *user_data) - { -- GError *error = NULL; -- GVariant *_ret = NULL; -+ DBusError error; -+ DBusMessage *reply = NULL; - svc_action_t *op = user_data; -- GDBusProxy *proxy = G_DBUS_PROXY(source_object); - -- /* Obtain rc and stderr/out */ -- _ret = g_dbus_proxy_call_finish(proxy, res, &error); -+ dbus_error_init(&error); -+ if(pending) { -+ reply = dbus_pending_call_steal_reply(pending); -+ } -+ if(pcmk_dbus_find_error(op->action, pending, reply, &error)) { - -- if (error) { - /* ignore "already started" or "not running" errors */ -- crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error->message); -- if (strstr(error->message, "systemd1.LoadFailed") -- || strstr(error->message, "systemd1.InvalidName")) { -+ if (!systemd_mask_error(op, error.name)) { -+ crm_err("%s for %s: %s", op->action, op->rsc, error.message); -+ } - -- if (safe_str_eq(op->action, "stop")) { -- crm_trace("Masking Stop failure for %s: unknown services are stopped", op->rsc); -- op->rc = PCMK_OCF_OK; -+ } else { -+ DBusMessageIter args; - -- } else { -- op->rc = PCMK_OCF_NOT_INSTALLED; -- op->status = PCMK_LRM_OP_NOT_INSTALLED; -- } -+ if(!dbus_message_iter_init(reply, &args)) { -+ crm_err("Call to %s failed: no arguments", op->action); - -- } else { -- crm_err("Could not issue %s for %s: %s", op->action, op->rsc, error->message); -- } -- g_error_free(error); -- -- } else if(g_variant_is_of_type (_ret, G_VARIANT_TYPE("(o)"))) { -- char *path = NULL; -+ } else if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -+ crm_warn("Call to %s passed but return type was unexpected", op->action); -+ op->rc = PCMK_OCF_OK; - -- g_variant_get(_ret, "(o)", &path); -- crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), -- path); -- op->rc = PCMK_OCF_OK; -+ } else { -+ const char *path = NULL; - -- } else { -- crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); -- op->rc = PCMK_OCF_OK; -+ dbus_message_get_args (reply, NULL, -+ DBUS_TYPE_OBJECT_PATH, &path, -+ DBUS_TYPE_INVALID); -+ crm_info("Call to %s passed: %s", op->action, path); -+ op->rc = PCMK_OCF_OK; -+ } - } - - operation_finalize(op); -- if (_ret) { -- g_variant_unref(_ret); -+ -+ if(pending) { -+ dbus_pending_call_unref(pending); -+ } -+ if(reply) { -+ dbus_message_unref(reply); - } - } --#endif - - #define SYSTEMD_OVERRIDE_ROOT "/run/systemd/system/" - - gboolean - systemd_unit_exec(svc_action_t * op, gboolean synchronous) - { -- char *error = NULL; -+ DBusError error; - char *unit = NULL; - const char *replace_s = "replace"; - gboolean pass = FALSE; -@@ -384,7 +404,8 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - DBusMessage *msg = NULL; - DBusMessage *reply = NULL; - DBusMessageIter args; -- -+ -+ dbus_error_init(&error); - op->rc = PCMK_OCF_UNKNOWN_ERROR; - CRM_ASSERT(systemd_init()); - -@@ -465,16 +486,6 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - - crm_debug("Calling %s for %s: %s", method, op->rsc, unit); - --#if 0 -- if (synchronous == FALSE) { -- g_dbus_proxy_call(systemd_proxy, method, g_variant_new("(ss)", name, "replace"), -- G_DBUS_CALL_FLAGS_NONE, op->timeout, NULL, systemd_unit_exec_done, op); -- free(unit); -- free(name); -- return TRUE; -- } --#endif -- - msg = systemd_new_method(BUS_NAME".Manager", method); - CRM_ASSERT(msg != NULL); - -@@ -482,43 +493,47 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &name); - pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &replace_s); - -+ if (synchronous == FALSE) { -+ free(unit); -+ free(name); -+ return pcmk_dbus_send(msg, systemd_proxy, systemd_async_dispatch, op); -+ } -+ - reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); -- dbus_message_unref(msg); - -- if(error) { -+ if(error.name) { - /* ignore "already started" or "not running" errors */ -- if (safe_str_eq(op->action, "stop") -- && (strstr(error, "org.freedesktop.systemd1.InvalidName") -- || strstr(error, "org.freedesktop.systemd1.NoSuchUnit"))) { -- crm_trace("Masking Stop failure for %s: unknown services are stopped", op->rsc); -- op->rc = PCMK_OCF_OK; -- } else { -- crm_err("Could not issue %s for %s: %s (%s)", method, op->rsc, error, unit); -+ if(!systemd_mask_error(op, error.name)) { -+ crm_err("Could not issue %s for %s: %s (%s)", method, op->rsc, error.name, unit); - } - goto cleanup; - - } else if(!dbus_message_iter_init(reply, &args)) { - crm_err("Call to %s failed: no arguments", method); - goto cleanup; -- } - -- /* (o) */ -- if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -- crm_err("Call to %s failed: Message has invalid arguments", method); -+ } else if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -+ crm_warn("Call to %s passed but return type was unexpected", op->action); -+ op->rc = PCMK_OCF_OK; - - } else { -- DBusBasicValue value; -+ const char *path = NULL; - -- dbus_message_iter_get_basic(&args, &value); -- crm_info("Call to %s passed: %s", op->action, value.str); -+ dbus_message_get_args (reply, NULL, -+ DBUS_TYPE_OBJECT_PATH, &path, -+ DBUS_TYPE_INVALID); -+ crm_info("Call to %s passed: %s", op->action, path); - op->rc = PCMK_OCF_OK; - } - - cleanup: -- free(error); - free(unit); - free(name); - -+ if(msg) { -+ dbus_message_unref(msg); -+ } -+ - if(reply) { - dbus_message_unref(reply); - } diff --git a/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_systemd_support_to_avoid_problematic_use_of_threads.patch b/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_systemd_support_to_avoid_problematic_use_of_threads.patch deleted file mode 100644 index b5cb93b..0000000 --- a/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_systemd_support_to_avoid_problematic_use_of_threads.patch +++ /dev/null @@ -1,1012 +0,0 @@ -commit 6b3f1e2e65db9d6fe229ccda22567a80d14efc3c -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Jan 30 08:23:35 2014 +1100 - - Fix: Bug rhbz#1057697 - Use native DBus library for systemd support to avoid problematic use of threads - - (cherry picked from commit 24404bfa83f32357e8fa2d7e80b1dd7c6a893244) - -diff --git a/configure.ac b/configure.ac -index b94c26e..628f46f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1157,20 +1157,22 @@ AC_DEFINE_UNQUOTED(BUILD_VERSION, "$BUILD_VERSION", Build version) - AC_SUBST(BUILD_VERSION) - - --HAVE_gio=1 -+HAVE_dbus=1 - HAVE_upstart=0 - HAVE_systemd=0 --PKG_CHECK_MODULES(GIO, gio-2.0, ,HAVE_gio=0) -+PKG_CHECK_MODULES(DBUS, dbus-1, ,HAVE_dbus=0) - --AC_CHECK_TYPE([GDBusProxy],,,[[#include <gio/gio.h>]]) -- --if test x$ac_cv_type_GDBusProxy != xyes; then -- HAVE_gio=0 -- AC_MSG_WARN(Unable to support systemd/upstart. You need to use glib >= 2.26) -+if test $HAVE_dbus = 1; then -+ CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1`" - fi - --if test $HAVE_gio = 1 -a "x${enable_upstart}" != xno; then -- HAVE_upstart=1 -+DBUS_LIBS="$CFLAGS `$PKGCONFIG --libs dbus-1`" -+AC_SUBST(DBUS_LIBS) -+ -+AC_CHECK_TYPES([DBusBasicValue],,,[[#include <dbus/dbus.h>]]) -+ -+if test $HAVE_dbus = 1 -a "x${enable_upstart}" != xno; then -+ HAVE_upstart=0 - PCMK_FEATURES="$PCMK_FEATURES upstart" - fi - -@@ -1186,7 +1188,7 @@ else - enable_systemd=no - fi - --if test $HAVE_gio = 1 -a "x${enable_systemd}" != xno; then -+if test $HAVE_dbus = 1 -a "x${enable_systemd}" != xno; then - if test -n "$systemdunitdir" -a "x$systemdunitdir" != xno; then - HAVE_systemd=1 - PCMK_FEATURES="$PCMK_FEATURES systemd" -diff --git a/include/portability.h b/include/portability.h -index b0f9f1c..29d1177 100644 ---- a/include/portability.h -+++ b/include/portability.h -@@ -177,6 +177,48 @@ g_list_free_full(GList * list, GDestroyNotify free_func) - } - # endif - -+# ifndef HAVE_DBUSBASICVALUE -+# include <dbus/dbus.h> -+/** -+ * An 8-byte struct you could use to access int64 without having -+ * int64 support -+ */ -+typedef struct -+{ -+ dbus_uint32_t first32; /**< first 32 bits in the 8 bytes (beware endian issues) */ -+ dbus_uint32_t second32; /**< second 32 bits in the 8 bytes (beware endian issues) */ -+} DBus8ByteStruct; -+ -+/** -+ * A simple value union that lets you access bytes as if they -+ * were various types; useful when dealing with basic types via -+ * void pointers and varargs. -+ * -+ * This union also contains a pointer member (which can be used -+ * to retrieve a string from dbus_message_iter_get_basic(), for -+ * instance), so on future platforms it could conceivably be larger -+ * than 8 bytes. -+ */ -+typedef union -+{ -+ unsigned char bytes[8]; /**< as 8 individual bytes */ -+ dbus_int16_t i16; /**< as int16 */ -+ dbus_uint16_t u16; /**< as int16 */ -+ dbus_int32_t i32; /**< as int32 */ -+ dbus_uint32_t u32; /**< as int32 */ -+ dbus_bool_t bool_val; /**< as boolean */ -+# ifdef DBUS_HAVE_INT64 -+ dbus_int64_t i64; /**< as int64 */ -+ dbus_uint64_t u64; /**< as int64 */ -+# endif -+ DBus8ByteStruct eight; /**< as 8-byte struct */ -+ double dbl; /**< as double */ -+ unsigned char byt; /**< as byte */ -+ char *str; /**< as char* (string, object path or signature) */ -+ int fd; /**< as Unix file descriptor */ -+} DBusBasicValue; -+# endif -+ - /* Replacement error codes for non-linux */ - # ifndef ENOTUNIQ - # define ENOTUNIQ 190 -diff --git a/lib/services/Makefile.am b/lib/services/Makefile.am -index 67d7237..6ed4d01 100644 ---- a/lib/services/Makefile.am -+++ b/lib/services/Makefile.am -@@ -23,10 +23,10 @@ INCLUDES = -I$(top_builddir)/include - lib_LTLIBRARIES = libcrmservice.la - noinst_HEADERS = upstart.h systemd.h services_private.h - --libcrmservice_la_SOURCES = services.c services_linux.c -+libcrmservice_la_SOURCES = services.c services_linux.c dbus.c - libcrmservice_la_LDFLAGS = -version-info 1:0:0 - libcrmservice_la_CFLAGS = $(GIO_CFLAGS) -DOCF_ROOT_DIR=\"@OCF_ROOT_DIR@\" --libcrmservice_la_LIBADD = $(GIO_LIBS) $(top_builddir)/lib/common/libcrmcommon.la -+libcrmservice_la_LIBADD = $(GIO_LIBS) $(top_builddir)/lib/common/libcrmcommon.la $(DBUS_LIBS) - - if BUILD_UPSTART - libcrmservice_la_SOURCES += upstart.c -diff --git a/lib/services/dbus.c b/lib/services/dbus.c -new file mode 100644 -index 0000000..69ea6ac ---- /dev/null -+++ b/lib/services/dbus.c -@@ -0,0 +1,261 @@ -+#include <crm_internal.h> -+#include <crm/crm.h> -+#include <crm/services.h> -+#include <dbus/dbus.h> -+#include <pcmk-dbus.h> -+ -+static bool pcmk_dbus_error_check(DBusError *err, const char *prefix, const char *function, int line) -+{ -+ if (err && dbus_error_is_set(err)) { -+ do_crm_log_alias(LOG_ERR, __FILE__, function, line, "%s: DBus error '%s'", prefix, err->message); -+ dbus_error_free(err); -+ return TRUE; -+ } -+ return FALSE; -+} -+ -+DBusConnection *pcmk_dbus_connect(void) -+{ -+ DBusError err; -+ DBusConnection *connection; -+ -+ dbus_error_init(&err); -+ connection = dbus_bus_get(DBUS_BUS_SYSTEM, &err); -+ pcmk_dbus_error_check(&err, "Could not connect to System DBus", __FUNCTION__, __LINE__); -+ -+ return connection; -+} -+ -+void pcmk_dbus_disconnect(DBusConnection *connection) -+{ -+} -+ -+bool pcmk_dbus_append_arg(DBusMessage *msg, int dtype, const void *value) -+{ -+ DBusMessageIter args; -+ -+ dbus_message_iter_init_append(msg, &args); -+ if (!dbus_message_iter_append_basic(&args, dtype, value)) { -+ crm_err("dbus_message_iter_append_basic(%c) failed", dtype); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, char **e) -+{ -+ DBusError error; -+ const char *method = NULL; -+ DBusMessage *reply = NULL; -+ DBusPendingCall* pending = NULL; -+ -+ dbus_error_init(&error); -+ -+ CRM_ASSERT(dbus_message_get_type (msg) == DBUS_MESSAGE_TYPE_METHOD_CALL); -+ method = dbus_message_get_member (msg); -+ -+ // send message and get a handle for a reply -+ if (!dbus_connection_send_with_reply (connection, msg, &pending, -1)) { // -1 is default timeout -+ crm_err("Send with reply failed"); -+ return NULL; -+ } -+ if (NULL == pending) { -+ crm_err("No pending call found"); -+ return NULL; -+ } -+ -+ dbus_connection_flush(connection); -+ -+ /* block until we receive a reply */ -+ dbus_pending_call_block(pending); -+ -+ /* get the reply message */ -+ reply = dbus_pending_call_steal_reply(pending); -+ if(reply == NULL) { -+ error.name = "org.clusterlabs.pacemaker.NoReply"; -+ error.message = "No reply"; -+ -+ } else { -+ DBusMessageIter args; -+ int dtype = dbus_message_get_type(reply); -+ -+ -+ switch(dtype) { -+ case DBUS_MESSAGE_TYPE_METHOD_RETURN: -+ dbus_message_iter_init(reply, &args); -+ crm_trace("Call to %s returned '%s'", method, dbus_message_iter_get_signature(&args)); -+ break; -+ case DBUS_MESSAGE_TYPE_INVALID: -+ error.message = "Invalid reply"; -+ error.name = "org.clusterlabs.pacemaker.InvalidReply"; -+ crm_err("Error processing %s response: %s", method, error.message); -+ break; -+ case DBUS_MESSAGE_TYPE_METHOD_CALL: -+ error.message = "Invalid reply (method call)"; -+ error.name = "org.clusterlabs.pacemaker.InvalidReply.Method"; -+ crm_err("Error processing %s response: %s", method, error.message); -+ break; -+ case DBUS_MESSAGE_TYPE_SIGNAL: -+ error.message = "Invalid reply (signal)"; -+ error.name = "org.clusterlabs.pacemaker.InvalidReply.Signal"; -+ crm_err("Error processing %s response: %s", method, error.message); -+ break; -+ -+ case DBUS_MESSAGE_TYPE_ERROR: -+ dbus_set_error_from_message (&error, reply); -+ crm_err("%s error '%s': %s", method, error.name, error.message); -+ break; -+ default: -+ error.message = "Unknown reply type"; -+ error.name = "org.clusterlabs.pacemaker.InvalidReply.Type"; -+ crm_err("Error processing %s response: %s (%d)", method, error.message, dtype); -+ } -+ } -+ -+ if(error.name) { -+ if(e) { -+ *e = strdup(error.name); -+ } -+ if(reply) { -+ dbus_message_unref(reply); -+ reply = NULL; -+ } -+ } else if(e) { -+ *e = NULL; -+ } -+ -+ /* free the pending message handle */ -+ dbus_pending_call_unref(pending); -+ return reply; -+} -+ -+bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, const char *function, int line) -+{ -+ int dtype = dbus_message_iter_get_arg_type(field); -+ -+ if(dtype != expected) { -+ DBusMessageIter args; -+ -+ dbus_message_iter_init(msg, &args); -+ do_crm_log_alias(LOG_ERR, __FILE__, function, line, -+ "Unexepcted DBus type, expected %c instead of %c in '%s'", -+ expected, dtype, dbus_message_iter_get_signature(&args)); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+#define BUS_PROPERTY_IFACE "org.freedesktop.DBus.Properties" -+ -+char * -+pcmk_dbus_get_property( -+ DBusConnection *connection, const char *target, const char *obj, const gchar * iface, const char *name) -+{ -+ DBusMessage *msg; -+ DBusMessageIter args; -+ DBusMessageIter dict; -+ DBusMessage *reply = NULL; -+ /* DBusBasicValue value; */ -+ const char *method = "GetAll"; -+ char *output = NULL; -+ char *error = NULL; -+ -+ /* desc = systemd_unit_property(path, BUS_NAME ".Unit", "Description"); */ -+ -+ crm_info("Calling: %s on %s", method, target); -+ msg = dbus_message_new_method_call(target, // target for the method call -+ obj, // object to call on -+ BUS_PROPERTY_IFACE, // interface to call on -+ method); // method name -+ -+ if (NULL == msg) { -+ crm_err("Call to %s failed: No message", method); -+ return NULL; -+ } -+ -+ pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &iface); -+ -+ reply = pcmk_dbus_send_recv(msg, connection, &error); -+ dbus_message_unref(msg); -+ -+ if(reply == NULL) { -+ crm_err("Call to %s for %s failed: No reply", method, iface); -+ return NULL; -+ -+ } else if (!dbus_message_iter_init(reply, &args)) { -+ crm_err("Cannot get properties for %s from %s", obj, iface); -+ return NULL; -+ } -+ -+ if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_ARRAY, __FUNCTION__, __LINE__)) { -+ crm_err("Call to %s failed: Message has invalid arguments", method); -+ dbus_message_unref(reply); -+ return NULL; -+ } -+ -+ dbus_message_iter_recurse(&args, &dict); -+ while (dbus_message_iter_get_arg_type (&dict) != DBUS_TYPE_INVALID) { -+ DBusMessageIter sv; -+ DBusMessageIter v; -+ DBusBasicValue value; -+ -+ if(!pcmk_dbus_type_check(reply, &dict, DBUS_TYPE_DICT_ENTRY, __FUNCTION__, __LINE__)) { -+ dbus_message_iter_next (&dict); -+ continue; -+ } -+ -+ dbus_message_iter_recurse(&dict, &sv); -+ while (dbus_message_iter_get_arg_type (&sv) != DBUS_TYPE_INVALID) { -+ int dtype = dbus_message_iter_get_arg_type(&sv); -+ -+ switch(dtype) { -+ case DBUS_TYPE_STRING: -+ dbus_message_iter_get_basic(&sv, &value); -+ -+ crm_trace("Got: %s", value.str); -+ if(strcmp(value.str, name) != 0) { -+ dbus_message_iter_next (&sv); /* Skip the value */ -+ } -+ break; -+ case DBUS_TYPE_VARIANT: -+ dbus_message_iter_recurse(&sv, &v); -+ if(pcmk_dbus_type_check(reply, &v, DBUS_TYPE_STRING, __FUNCTION__, __LINE__)) { -+ dbus_message_iter_get_basic(&v, &value); -+ -+ crm_trace("Result: %s", value.str); -+ output = strdup(value.str); -+ } -+ break; -+ default: -+ pcmk_dbus_type_check(reply, &sv, DBUS_TYPE_STRING, __FUNCTION__, __LINE__); -+ } -+ dbus_message_iter_next (&sv); -+ } -+ -+ dbus_message_iter_next (&dict); -+ } -+ -+ -+ crm_trace("Property %s[%s] is '%s'", obj, name, output); -+ return output; -+} -+ -+ -+ -+ -+ -+int dbus_watch_get_unix_fd ( DBusWatch * watch ); -+ -+ -+/* http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html#gaebf031eb444b4f847606aa27daa3d8e6 */ -+ -+DBUS_EXPORT dbus_bool_t dbus_connection_set_watch_functions( -+ DBusConnection * connection, -+ DBusAddWatchFunction add_function, -+ DBusRemoveWatchFunction remove_function, -+ DBusWatchToggledFunction toggled_function, -+ void * data, -+ DBusFreeFunction free_data_function -+ ); -diff --git a/lib/services/pcmk-dbus.h b/lib/services/pcmk-dbus.h -new file mode 100644 -index 0000000..27ac737 ---- /dev/null -+++ b/lib/services/pcmk-dbus.h -@@ -0,0 +1,7 @@ -+DBusConnection *pcmk_dbus_connect(void); -+void pcmk_dbus_disconnect(DBusConnection *connection); -+ -+DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, char **error); -+bool pcmk_dbus_append_arg(DBusMessage *msg, int dtype, const void *value); -+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); -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index ea804c8..9aa5b03 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -24,6 +24,8 @@ - #include <gio/gio.h> - #include <services_private.h> - #include <systemd.h> -+#include <dbus/dbus.h> -+#include <pcmk-dbus.h> - - #define BUS_NAME "org.freedesktop.systemd1" - #define BUS_PATH "/org/freedesktop/systemd1" -@@ -47,42 +49,26 @@ struct unit_info { - const char *job_path; - }; - --static GDBusProxy *systemd_proxy = NULL; -- --static GDBusProxy * --get_proxy(const char *path, const char *interface) -+static DBusMessage *systemd_new_method(const char *iface, const char *method) - { -- GError *error = NULL; -- GDBusProxy *proxy = NULL; -- --#ifndef GLIB_DEPRECATED_IN_2_36 -- g_type_init(); --#endif -- -- if (path == NULL) { -- path = BUS_PATH; -- } -- -- proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, NULL, /* GDBusInterfaceInfo */ -- BUS_NAME, path, interface, -- NULL, /* GCancellable */ &error); -- -- if (error) { -- crm_err("Can't connect obtain proxy to %s interface: %s", interface, error->message); -- g_error_free(error); -- proxy = NULL; -- } -- return proxy; -+ crm_trace("Calling: %s on %s", method, iface); -+ return dbus_message_new_method_call(BUS_NAME, // target for the method call -+ BUS_PATH, // object to call on -+ iface, // interface to call on -+ method); // method name - } - -+ -+static DBusConnection* systemd_proxy = NULL; - static gboolean - systemd_init(void) - { - static int need_init = 1; -+ /* http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html */ - - if (need_init) { - need_init = 0; -- systemd_proxy = get_proxy(NULL, BUS_NAME ".Manager"); -+ systemd_proxy = pcmk_dbus_connect(); - } - if (systemd_proxy == NULL) { - return FALSE; -@@ -94,7 +80,7 @@ void - systemd_cleanup(void) - { - if (systemd_proxy) { -- g_object_unref(systemd_proxy); -+ pcmk_dbus_disconnect(systemd_proxy); - systemd_proxy = NULL; - } - } -@@ -112,130 +98,87 @@ systemd_service_name(const char *name) - return g_strdup_printf("%s.service", name); - } - --static void --systemd_daemon_reload(GDBusProxy * proxy, GError ** error) -+static bool -+systemd_daemon_reload(void) - { -- GVariant *_ret = g_dbus_proxy_call_sync(proxy, "Reload", g_variant_new("()"), -- G_DBUS_CALL_FLAGS_NONE, -1, NULL, error); -- -- if (_ret) { -- g_variant_unref(_ret); -+ const char *method = "Reload"; -+ DBusMessage *reply = NULL; -+ DBusMessage *msg = systemd_new_method(BUS_NAME".Manager", method); -+ -+ CRM_ASSERT(msg != NULL); -+ reply = pcmk_dbus_send_recv(msg, systemd_proxy, NULL); -+ dbus_message_unref(msg); -+ if(reply) { -+ dbus_message_unref(reply); - } -+ return TRUE; - } - - static gboolean --systemd_unit_by_name(GDBusProxy * proxy, -- const gchar * arg_name, -- gchar ** out_unit, GCancellable * cancellable, GError ** error) -+systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - { -- GError *reload_error = NULL; -- GVariant *_ret = NULL; -+ DBusMessage *msg; -+ DBusMessageIter args; -+ DBusMessage *reply = NULL; -+ const char *method = "GetUnit"; - char *name = NULL; -- int retry = 0; -+ char *error = NULL; - - /* -- " <method name=\"GetUnit\">\n" \ -- " <arg name=\"name\" type=\"s\" direction=\"in\"/>\n" \ -- " <arg name=\"unit\" type=\"o\" direction=\"out\"/>\n" \ -- " </method>\n" \ --*/ -- -- name = systemd_service_name(arg_name); -- crm_debug("Calling GetUnit"); -- _ret = g_dbus_proxy_call_sync(proxy, "GetUnit", g_variant_new("(s)", name), -- G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); -- -- if (_ret) { -- crm_debug("Checking output"); -- g_variant_get(_ret, "(o)", out_unit); -- crm_debug("%s = %s", arg_name, *out_unit); -- g_variant_unref(_ret); -- goto done; -- } -- -- crm_debug("Reloading the systemd manager configuration"); -- systemd_daemon_reload(proxy, &reload_error); -- retry++; -- -- if (reload_error) { -- crm_err("Cannot reload the systemd manager configuration: %s", reload_error->message); -- g_error_free(reload_error); -- goto done; -- } -- -- if (*error) { -- crm_debug("Cannot find %s: %s", name, (*error)->message); -- g_error_free(*error); -- *error = NULL; -- } -+ <method name="GetUnit"> -+ <arg name="name" type="s" direction="in"/> -+ <arg name="unit" type="o" direction="out"/> -+ </method> - --/* - <method name="LoadUnit"> - <arg name="name" type="s" direction="in"/> - <arg name="unit" type="o" direction="out"/> - </method> - */ -- crm_debug("Calling LoadUnit"); -- _ret = g_dbus_proxy_call_sync(proxy, "LoadUnit", g_variant_new("(s)", name), -- G_DBUS_CALL_FLAGS_NONE, -1, cancellable, error); - -- if (_ret) { -- crm_debug("Checking output"); -- g_variant_get(_ret, "(o)", out_unit); -- crm_debug("%s = %s", arg_name, *out_unit); -- g_variant_unref(_ret); -- } -+ name = systemd_service_name(arg_name); - -- done: -- free(name); -- return _ret != NULL; --} -+ while(*out_unit == NULL) { -+ msg = systemd_new_method(BUS_NAME".Manager", method); -+ CRM_ASSERT(msg != NULL); - --static char * --systemd_unit_property(const char *obj, const gchar * iface, const char *name) --{ -- GError *error = NULL; -- GDBusProxy *proxy; -- GVariant *asv = NULL; -- GVariant *value = NULL; -- GVariant *_ret = NULL; -- char *output = NULL; -+ pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &name); - -- crm_trace("Calling GetAll on %s", obj); -- proxy = get_proxy(obj, BUS_PROPERTY_IFACE); -+ reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); -+ dbus_message_unref(msg); - -- if (!proxy) { -- return NULL; -- } -+ if(error) { -+ crm_info("Call to %s failed: %s", method, error); -+ free(error); -+ error = NULL; - -- _ret = g_dbus_proxy_call_sync(proxy, "GetAll", g_variant_new("(s)", iface), -- G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); -+ } else if (dbus_message_iter_init(reply, &args)) { - -- if (error) { -- crm_err("Cannot get properties for %s: %s", g_dbus_proxy_get_object_path(proxy), -- error->message); -- g_error_free(error); -- g_object_unref(proxy); -- return NULL; -- } -- crm_debug("Call to GetAll passed: type '%s' %d\n", g_variant_get_type_string(_ret), -- g_variant_n_children(_ret)); -+ if(pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -+ DBusBasicValue value; - -- asv = g_variant_get_child_value(_ret, 0); -- crm_trace("asv type '%s' %d\n", g_variant_get_type_string(asv), g_variant_n_children(asv)); -+ dbus_message_iter_get_basic(&args, &value); -+ *out_unit = strdup(value.str); -+ dbus_message_unref(reply); -+ free(name); -+ return TRUE; -+ } -+ } - -- value = g_variant_lookup_value(asv, name, NULL); -- if (value && g_variant_is_of_type(value, G_VARIANT_TYPE_STRING)) { -- crm_info("Got value '%s' for %s[%s]", g_variant_get_string(value, NULL), obj, name); -- output = g_variant_dup_string(value, NULL); -+ if(strcmp(method, "LoadUnit") != 0) { -+ method = "LoadUnit"; -+ crm_debug("Cannot find %s, reloading the systemd manager configuration", name); -+ systemd_daemon_reload(); -+ if(reply) { -+ dbus_message_unref(reply); -+ } - -- } else { -- crm_info("No value for %s[%s]", obj, name); -+ } else { -+ free(name); -+ return FALSE; -+ } - } -- -- g_object_unref(proxy); -- g_variant_unref(_ret); -- return output; -+ return FALSE; - } - - GList * -@@ -243,11 +186,13 @@ systemd_unit_listall(void) - { - int lpc = 0; - GList *units = NULL; -- GError *error = NULL; -- GVariant *out_units = NULL; -- GVariantIter iter; -- struct unit_info u; -- GVariant *_ret = NULL; -+ DBusMessageIter args; -+ DBusMessageIter unit; -+ DBusMessageIter elem; -+ DBusMessage *msg = NULL; -+ DBusMessage *reply = NULL; -+ const char *method = "ListUnits"; -+ char *error = NULL; - - if (systemd_init() == FALSE) { - return NULL; -@@ -259,40 +204,60 @@ systemd_unit_listall(void) - " </method>\n" \ - */ - -- _ret = g_dbus_proxy_call_sync(systemd_proxy, "ListUnits", g_variant_new("()"), -- G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); -+ msg = systemd_new_method(BUS_NAME".Manager", method); -+ CRM_ASSERT(msg != NULL); - -- if (error || _ret == NULL) { -- crm_info("Call to ListUnits failed: %s", error ? error->message : "unknown"); -- if(error) { -- g_error_free(error); -- } -+ reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); -+ dbus_message_unref(msg); -+ -+ if(error) { -+ crm_err("Call to %s failed: %s", method, error); -+ free(error); -+ return NULL; -+ -+ } else if (!dbus_message_iter_init(reply, &args)) { -+ crm_err("Call to %s failed: Message has no arguments", method); -+ dbus_message_unref(reply); - return NULL; - } - -- g_variant_get(_ret, "(@a(ssssssouso))", &out_units); -- -- g_variant_iter_init(&iter, out_units); -- while (g_variant_iter_loop(&iter, "(ssssssouso)", -- &u.id, -- &u.description, -- &u.load_state, -- &u.active_state, -- &u.sub_state, -- &u.following, &u.unit_path, &u.job_id, &u.job_type, &u.job_path)) { -- char *match = strstr(u.id, ".service"); -- -- if (match) { -- lpc++; -- match[0] = 0; -- crm_trace("Got %s[%s] = %s", u.id, u.active_state, u.description); -- units = g_list_append(units, strdup(u.id)); -+ if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_ARRAY, __FUNCTION__, __LINE__)) { -+ crm_err("Call to %s failed: Message has invalid arguments", method); -+ dbus_message_unref(reply); -+ return NULL; -+ } -+ -+ dbus_message_iter_recurse(&args, &unit); -+ while (dbus_message_iter_get_arg_type (&unit) != DBUS_TYPE_INVALID) { -+ DBusBasicValue value; -+ -+ if(!pcmk_dbus_type_check(reply, &unit, DBUS_TYPE_STRUCT, __FUNCTION__, __LINE__)) { -+ continue; - } -+ -+ dbus_message_iter_recurse(&unit, &elem); -+ if(!pcmk_dbus_type_check(reply, &elem, DBUS_TYPE_STRING, __FUNCTION__, __LINE__)) { -+ continue; -+ } -+ -+ dbus_message_iter_get_basic(&elem, &value); -+ crm_trace("Got: %s", value.str); -+ if(value.str) { -+ char *match = strstr(value.str, ".service"); -+ -+ if (match) { -+ lpc++; -+ match[0] = 0; -+ -+ units = g_list_append(units, strdup(value.str)); -+ } -+ } -+ dbus_message_iter_next (&unit); - } - -- crm_info("Call to ListUnits passed: type '%s' count %d", g_variant_get_type_string(out_units), -- lpc); -- g_variant_unref(_ret); -+ dbus_message_unref(reply); -+ -+ crm_trace("Found %d systemd services", lpc); - return units; - } - -@@ -300,26 +265,18 @@ gboolean - systemd_unit_exists(const char *name) - { - char *path = NULL; -- GError *error = NULL; - gboolean pass = FALSE; - - if (systemd_init() == FALSE) { - return FALSE; - } - -- pass = systemd_unit_by_name(systemd_proxy, name, &path, NULL, &error); -- -- if (error || pass == FALSE) { -- pass = FALSE; -- crm_err("Call to ListUnits failed: %s", error ? error->message : "unknown"); -- if(error) { -- g_error_free(error); -- } -- -- } else { -+ if(systemd_unit_by_name(name, &path) && path) { - crm_trace("Got %s", path); -+ pass = TRUE; - } -- /* free(path) */ -+ -+ free(path); - return pass; - } - -@@ -329,11 +286,10 @@ systemd_unit_metadata(const char *name) - char *path = NULL; - char *meta = NULL; - char *desc = NULL; -- GError *error = NULL; - - CRM_ASSERT(systemd_init()); -- if (systemd_unit_by_name(systemd_proxy, name, &path, NULL, &error)) { -- desc = systemd_unit_property(path, BUS_NAME ".Unit", "Description"); -+ if (systemd_unit_by_name(name, &path)) { -+ desc = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, path, BUS_NAME ".Unit", "Description"); - } else { - desc = g_strdup_printf("systemd unit file for %s", name); - } -@@ -362,6 +318,7 @@ systemd_unit_metadata(const char *name) - return meta; - } - -+#if 0 - static void - systemd_unit_exec_done(GObject * source_object, GAsyncResult * res, gpointer user_data) - { -@@ -411,19 +368,23 @@ systemd_unit_exec_done(GObject * source_object, GAsyncResult * res, gpointer use - g_variant_unref(_ret); - } - } -+#endif - - #define SYSTEMD_OVERRIDE_ROOT "/run/systemd/system/" - - gboolean - systemd_unit_exec(svc_action_t * op, gboolean synchronous) - { -+ char *error = NULL; - char *unit = NULL; -- GError *error = NULL; -+ const char *replace_s = "replace"; - gboolean pass = FALSE; -- GVariant *_ret = NULL; -- const char *action = op->action; -+ const char *method = op->action; - char *name = systemd_service_name(op->agent); -- -+ DBusMessage *msg = NULL; -+ DBusMessage *reply = NULL; -+ DBusMessageIter args; -+ - op->rc = PCMK_OCF_UNKNOWN_ERROR; - CRM_ASSERT(systemd_init()); - -@@ -436,22 +397,20 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - goto cleanup; - } - -- pass = systemd_unit_by_name(systemd_proxy, op->agent, &unit, NULL, &error); -- if (error || pass == FALSE) { -- crm_debug("Could not obtain unit named '%s': %s", op->agent, -- error ? error->message : "unknown"); -+ pass = systemd_unit_by_name(op->agent, &unit); -+ if (pass == FALSE) { -+ crm_debug("Could not obtain unit named '%s'", op->agent); -+#if 0 - if (error && strstr(error->message, "systemd1.NoSuchUnit")) { - op->rc = PCMK_OCF_NOT_INSTALLED; - op->status = PCMK_LRM_OP_NOT_INSTALLED; - } -- if(error) { -- g_error_free(error); -- } -+#endif - goto cleanup; - } - -- if (safe_str_eq(op->action, "monitor") || safe_str_eq(action, "status")) { -- char *state = systemd_unit_property(unit, BUS_NAME ".Unit", "ActiveState"); -+ 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"); - - if (g_strcmp0(state, "active") == 0) { - op->rc = PCMK_OCF_OK; -@@ -462,12 +421,12 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - free(state); - goto cleanup; - -- } else if (g_strcmp0(action, "start") == 0) { -+ } else if (g_strcmp0(method, "start") == 0) { - FILE *file_strm = NULL; - char *override_dir = g_strdup_printf("%s/%s", SYSTEMD_OVERRIDE_ROOT, unit); - char *override_file = g_strdup_printf("%s/50-pacemaker.conf", override_dir); - -- action = "StartUnit"; -+ method = "StartUnit"; - crm_build_path(override_dir, 0755); - - file_strm = fopen(override_file, "w"); -@@ -485,74 +444,85 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - fflush(file_strm); - fclose(file_strm); - } -- systemd_daemon_reload(systemd_proxy, &error); -- if(error) { -- g_error_free(error); -- } -+ systemd_daemon_reload(); - free(override_file); - free(override_dir); - -- } else if (g_strcmp0(action, "stop") == 0) { -+ } else if (g_strcmp0(method, "stop") == 0) { - char *override_file = g_strdup_printf("%s/%s/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, unit); - -- action = "StopUnit"; -+ method = "StopUnit"; - unlink(override_file); - free(override_file); -- systemd_daemon_reload(systemd_proxy, &error); -- if(error) { -- g_error_free(error); -- } -+ systemd_daemon_reload(); - -- } else if (g_strcmp0(action, "restart") == 0) { -- action = "RestartUnit"; -+ } else if (g_strcmp0(method, "restart") == 0) { -+ method = "RestartUnit"; - } else { - op->rc = PCMK_OCF_UNIMPLEMENT_FEATURE; - goto cleanup; - } - -- crm_debug("Calling %s for %s: %s", action, op->rsc, unit); -+ crm_debug("Calling %s for %s: %s", method, op->rsc, unit); -+ -+#if 0 - if (synchronous == FALSE) { -- g_dbus_proxy_call(systemd_proxy, action, g_variant_new("(ss)", name, "replace"), -+ g_dbus_proxy_call(systemd_proxy, method, g_variant_new("(ss)", name, "replace"), - G_DBUS_CALL_FLAGS_NONE, op->timeout, NULL, systemd_unit_exec_done, op); - free(unit); - free(name); - return TRUE; - } -+#endif - -- _ret = g_dbus_proxy_call_sync(systemd_proxy, action, g_variant_new("(ss)", name, "replace"), -- G_DBUS_CALL_FLAGS_NONE, op->timeout, NULL, &error); -+ msg = systemd_new_method(BUS_NAME".Manager", method); -+ CRM_ASSERT(msg != NULL); - -- if (error) { -+ /* (ss) */ -+ pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &name); -+ pcmk_dbus_append_arg(msg, DBUS_TYPE_STRING, &replace_s); -+ -+ reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); -+ dbus_message_unref(msg); -+ -+ if(error) { - /* ignore "already started" or "not running" errors */ - if (safe_str_eq(op->action, "stop") -- && strstr(error->message, "systemd1.InvalidName")) { -+ && (strstr(error, "org.freedesktop.systemd1.InvalidName") -+ || strstr(error, "org.freedesktop.systemd1.NoSuchUnit"))) { - crm_trace("Masking Stop failure for %s: unknown services are stopped", op->rsc); - op->rc = PCMK_OCF_OK; - } else { -- crm_err("Could not issue %s for %s: %s (%s)", action, op->rsc, error->message, unit); -+ crm_err("Could not issue %s for %s: %s (%s)", method, op->rsc, error, unit); - } -- g_error_free(error); -+ goto cleanup; - -- } else if(g_variant_is_of_type (_ret, G_VARIANT_TYPE("(o)"))) { -- char *path = NULL; -+ } else if(!dbus_message_iter_init(reply, &args)) { -+ crm_err("Call to %s failed: no arguments", method); -+ goto cleanup; -+ } - -- g_variant_get(_ret, "(o)", &path); -- crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), -- path); -- op->rc = PCMK_OCF_OK; -+ /* (o) */ -+ if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { -+ crm_err("Call to %s failed: Message has invalid arguments", method); - - } else { -- crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); -+ DBusBasicValue value; -+ -+ dbus_message_iter_get_basic(&args, &value); -+ crm_info("Call to %s passed: %s", op->action, value.str); - op->rc = PCMK_OCF_OK; - } - - cleanup: -+ free(error); - free(unit); - free(name); - -- if (_ret) { -- g_variant_unref(_ret); -+ if(reply) { -+ dbus_message_unref(reply); - } -+ - if (synchronous == FALSE) { - operation_finalize(op); - return TRUE; diff --git a/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_upstart_support_to_avoid_problematic_use_of_threads.patch b/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_upstart_support_to_avoid_problematic_use_of_threads.patch deleted file mode 100644 index eae4e0a..0000000 --- a/SOURCES/bz1057697-pcmk-use_native_dbus_library_for_upstart_support_to_avoid_problematic_use_of_threads.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit c12446403e348c3d6f2763bcd370cea3e6b601d1 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Feb 3 14:44:51 2014 +1100 - - Fix: Bug rhbz#1057697 - Use native DBus library for upstart support to avoid problematic use of threads - - (cherry picked from commit d7996e792844b98021061bd8ae74ab929f9b8ba7) - - Conflicts: - lib/services/upstart.c - -diff --git a/configure.ac b/configure.ac -index 628f46f..f90ccdc 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1173,7 +1173,7 @@ AC_CHECK_TYPES([DBusBasicValue],,,[[#include <dbus/dbus.h>]]) - - if test $HAVE_dbus = 1 -a "x${enable_upstart}" != xno; then - HAVE_upstart=0 -- PCMK_FEATURES="$PCMK_FEATURES upstart" -+ dnl PCMK_FEATURES="$PCMK_FEATURES upstart" - fi - - AC_DEFINE_UNQUOTED(SUPPORT_UPSTART, $HAVE_upstart, Support upstart based system services) -diff --git a/lib/services/dbus.c b/lib/services/dbus.c -index a9b1eba..66a98a0 100644 ---- a/lib/services/dbus.c -+++ b/lib/services/dbus.c -@@ -141,7 +141,6 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, D - reply = NULL; - } - } -- crm_trace("Was error: '%s' '%s'", error->name, error->message); - - if(pending) { - /* free the pending message handle */ diff --git a/SOURCES/bz1060205-pcmk-mcp_tell_systemd_not_to_respawn_us_if_we_return_100.patch b/SOURCES/bz1060205-pcmk-mcp_tell_systemd_not_to_respawn_us_if_we_return_100.patch deleted file mode 100644 index e503a3c..0000000 --- a/SOURCES/bz1060205-pcmk-mcp_tell_systemd_not_to_respawn_us_if_we_return_100.patch +++ /dev/null @@ -1,18 +0,0 @@ -commit 8e0d074cd9dac515a95e49af23331e5d06b66fae -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Feb 12 23:10:16 2014 +1100 - - Fix: mcp: Tell systemd not to respawn us if we return 100 - -diff --git a/mcp/pacemaker.service.in b/mcp/pacemaker.service.in -index 4d7e308..b5f1ffc 100644 ---- a/mcp/pacemaker.service.in -+++ b/mcp/pacemaker.service.in -@@ -17,6 +17,7 @@ Type=simple - KillMode=process - NotifyAccess=main - SysVStartPriority=99 -+SuccessExitStatus=100 - EnvironmentFile=-@sysconfdir@/sysconfig/pacemaker - - ExecStart=@sbindir@/pacemakerd -f diff --git a/SOURCES/bz1064519-pcmk-controld-handles-dlm-startup-fencing.patch b/SOURCES/bz1064519-pcmk-controld-handles-dlm-startup-fencing.patch deleted file mode 100644 index 371dda0..0000000 --- a/SOURCES/bz1064519-pcmk-controld-handles-dlm-startup-fencing.patch +++ /dev/null @@ -1,97 +0,0 @@ -commit 1b0fa29aa0e52fa5cb28ef80139e657119b15fca -Author: David Vossel <dvossel@redhat.com> -Date: Mon Feb 17 15:19:27 2014 -0600 - - High: controld: handling startup fencing within the controld agent, not the dlm - - Resolves: rhbz#1064519 - (cherry picked from commit 11160a94b76ada9844c277128054719445acf22f) - -diff --git a/extra/resources/controld b/extra/resources/controld -index bdd31bb..bf5466d 100644 ---- a/extra/resources/controld -+++ b/extra/resources/controld -@@ -34,6 +34,12 @@ - - ####################################################################### - -+if [ -e "$OCF_ROOT/resource.d/heartbeat/controld" ]; then -+ ocf_log info "Using heartbeat controld agent" -+ $OCF_ROOT/resource.d/heartbeat/controld $1 -+ exit $? -+fi -+ - meta_data() { - cat <<END - <?xml version="1.0"?> -@@ -89,6 +95,8 @@ END - - ####################################################################### - -+DLM_SYSFS_DIR="/sys/kernel/dlm" -+ - controld_usage() { - cat <<END - usage: $0 {start|stop|monitor|validate-all|meta-data} -@@ -97,6 +105,21 @@ Expects to have a fully populated OCF RA-compliant environment set. - END - } - -+check_uncontrolled_locks() -+{ -+ local tmp -+ tmp=$(ls $DLM_SYSFS_DIR 2>&1) -+ if [ $? -eq 0 ]; then -+ if [ -n "$tmp" ]; then -+ -+ ocf_log err "Uncontrolled lockspace exists, system must reboot. Executing suicide fencing" -+ stonith_admin --reboot=$(crm_node -n) --tag controld -+ -+ exit $OCF_ERR_GENERIC -+ fi -+ fi -+} -+ - controld_start() { - controld_monitor; rc=$? - -@@ -180,13 +203,22 @@ controld_stop() { - } - - controld_monitor() { -+ local rc - killall -0 ${OCF_RESKEY_daemon} >/dev/null 2>&1 ; rc=$? - - case $rc in -- 0) return $OCF_SUCCESS;; -- 1) return $OCF_NOT_RUNNING;; -- *) return $OCF_ERR_GENERIC;; -+ 0) rc=$OCF_SUCCESS;; -+ 1) rc=$OCF_NOT_RUNNING;; -+ *) rc=$OCF_ERR_GENERIC;; - esac -+ -+ # if the dlm is not successfully running, but -+ # dlm lockspace bits are left over, we self must fence. -+ if [ $rc -ne $OCF_SUCCESS ]; then -+ check_uncontrolled_locks -+ fi -+ -+ return $rc - } - - controld_validate() { -@@ -219,11 +251,11 @@ case "$OCF_RESOURCE_INSTANCE" in - : ${OCF_RESKEY_daemon=gfs_controld${daemon_ext}} - ;; - *[dD][lL][mM]*) -- : ${OCF_RESKEY_args=-q 0} -+ : ${OCF_RESKEY_args=-q 0 -s 0} - : ${OCF_RESKEY_daemon=dlm_controld${daemon_ext}} - ;; - *) -- : ${OCF_RESKEY_args=-q 0} -+ : ${OCF_RESKEY_args=-q 0 -s 0} - : ${OCF_RESKEY_daemon=dlm_controld${daemon_ext}} - esac - diff --git a/SOURCES/bz1064519-pcmk-remove_q_0_from_default_dlm_controld_arguments.patch b/SOURCES/bz1064519-pcmk-remove_q_0_from_default_dlm_controld_arguments.patch deleted file mode 100644 index c3d2ef0..0000000 --- a/SOURCES/bz1064519-pcmk-remove_q_0_from_default_dlm_controld_arguments.patch +++ /dev/null @@ -1,39 +0,0 @@ -commit 2c3992bd6ad2dbcde5a39f8e02059cd99271fabd -Author: David Vossel <dvossel@redhat.com> -Date: Tue Mar 25 16:34:02 2014 -0500 - - Low: controld: Remove '-q 0' from default dlm_controld arguments - - The '-q 0' argument allows the dlm to fence nodes even when - quorum is lost. This is not a desired default. - - Resolves: rhbz#1064519 - (cherry picked from commit 20472946f54b0f6f07d286d96e5fb17baaf230ef) - -diff --git a/extra/resources/controld b/extra/resources/controld -index 2cc5f4d..a58d4ec 100644 ---- a/extra/resources/controld -+++ b/extra/resources/controld -@@ -61,7 +61,7 @@ In most cases, it should be run as an anonymous clone. - Any additional options to start the dlm_controld service with - </longdesc> - <shortdesc lang="en">DLM Options</shortdesc> --<content type="string" default="-q 0" /> -+<content type="string" default="-s 0" /> - </parameter> - - <parameter name="configdir" unique="1"> -@@ -251,11 +251,11 @@ case "$OCF_RESOURCE_INSTANCE" in - : ${OCF_RESKEY_daemon=gfs_controld${daemon_ext}} - ;; - *[dD][lL][mM]*) -- : ${OCF_RESKEY_args=-q 0 -s 0} -+ : ${OCF_RESKEY_args=-s 0} - : ${OCF_RESKEY_daemon=dlm_controld${daemon_ext}} - ;; - *) -- : ${OCF_RESKEY_args=-q 0 -s 0} -+ : ${OCF_RESKEY_args=-s 0} - : ${OCF_RESKEY_daemon=dlm_controld${daemon_ext}} - esac - diff --git a/SOURCES/bz1067536-pcmk-controld-wait-for-address-list.patch b/SOURCES/bz1067536-pcmk-controld-wait-for-address-list.patch deleted file mode 100644 index 3090f14..0000000 --- a/SOURCES/bz1067536-pcmk-controld-wait-for-address-list.patch +++ /dev/null @@ -1,23 +0,0 @@ -commit cd08b68161a541965a68433979ed6bb188fe39ec -Author: David Vossel <dvossel@redhat.com> -Date: Thu Feb 20 17:47:47 2014 -0500 - - Fix: controld: Do not consider the dlm up until the address list is present - - (cherry picked from commit 84c45113eadf321d69b13a5c34529d7234c26c0f) - -diff --git a/extra/resources/controld b/extra/resources/controld -index bf5466d..2cc5f4d 100644 ---- a/extra/resources/controld -+++ b/extra/resources/controld -@@ -159,8 +159,8 @@ controld_start() { - controld_monitor; rc=$? - case $rc in - $OCF_SUCCESS) -- check_dir=/sys/kernel/config/dlm/cluster/comms -- if grep 1 $check_dir/*/local >/dev/null 2>&1; then -+ local addr_list=$(cat /sys/kernel/config/dlm/cluster/comms/*/addr_list 2>/dev/null) -+ if [ $? -eq 0 ] && [ -n "$addr_list" ]; then - return $OCF_SUCCESS - fi - ;; diff --git a/SOURCES/bz1069284-pcmk-prevent_resources_in_an_anti_colocation_from_even_temporarily_running_on_a_same_node.patch b/SOURCES/bz1069284-pcmk-prevent_resources_in_an_anti_colocation_from_even_temporarily_running_on_a_same_node.patch deleted file mode 100644 index becd90e..0000000 --- a/SOURCES/bz1069284-pcmk-prevent_resources_in_an_anti_colocation_from_even_temporarily_running_on_a_same_node.patch +++ /dev/null @@ -1,70 +0,0 @@ -commit 79759709fd71a2d0b9f4d0167ba9697257a9653c -Author: Gao,Yan <ygao@suse.com> -Date: Thu Feb 20 01:24:46 2014 +0800 - - Fix: pengine: cl#5187 - Prevent resources in an anti-colocation from even temporarily running on a same node - - (cherry picked from commit 9f9ed87e01bfafec0ddeee6592eb07e81bef963e) - -diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h -index eb52464..158a562 100644 ---- a/include/crm/pengine/status.h -+++ b/include/crm/pengine/status.h -@@ -338,6 +338,7 @@ enum pe_ordering { - pe_order_asymmetrical = 0x100000, /* Indicates asymmetrical one way ordering constraint. */ - pe_order_load = 0x200000, /* Only relevant if... */ - pe_order_one_or_more = 0x400000, /* 'then' is only runnable if one or more of it's dependancies are too */ -+ pe_order_anti_colocation = 0x800000, - - pe_order_trace = 0x4000000 /* test marker */ - }; -diff --git a/pengine/constraints.c b/pengine/constraints.c -index 594d630..3b4370d 100644 ---- a/pengine/constraints.c -+++ b/pengine/constraints.c -@@ -689,6 +689,13 @@ rsc_colocation_new(const char *id, const char *node_attr, int score, - - data_set->colocation_constraints = g_list_append(data_set->colocation_constraints, new_con); - -+ if (score <= -INFINITY) { -+ new_rsc_order(rsc_lh, CRMD_ACTION_STOP, rsc_rh, CRMD_ACTION_START, -+ pe_order_anti_colocation, data_set); -+ new_rsc_order(rsc_rh, CRMD_ACTION_STOP, rsc_lh, CRMD_ACTION_START, -+ pe_order_anti_colocation, data_set); -+ } -+ - return TRUE; - } - -diff --git a/pengine/graph.c b/pengine/graph.c -index 9c1bc15..779f0e0 100644 ---- a/pengine/graph.c -+++ b/pengine/graph.c -@@ -991,6 +991,27 @@ should_dump_input(int last_action, action_t * action, action_wrapper_t * wrapper - return FALSE; - } - -+ } else if (wrapper->type == pe_order_anti_colocation) { -+ crm_trace("check anti-colocation filter %s.%s -> %s.%s", -+ wrapper->action->uuid, -+ wrapper->action->node ? wrapper->action->node->details->uname : "", -+ action->uuid, -+ action->node ? action->node->details->uname : ""); -+ -+ if (wrapper->action->node && action->node -+ && wrapper->action->node->details != action->node->details) { -+ /* Check if the actions are for the same node, ignore otherwise */ -+ crm_trace("anti-colocation filter - node"); -+ wrapper->type = pe_order_none; -+ return FALSE; -+ -+ } else if (is_set(wrapper->action->flags, pe_action_optional)) { -+ /* Check if the pre-req is optional, ignore if so */ -+ crm_trace("anti-colocation filter - optional"); -+ wrapper->type = pe_order_none; -+ return FALSE; -+ } -+ - } else if (wrapper->action->rsc - && wrapper->action->rsc != action->rsc - && is_set(wrapper->action->rsc->flags, pe_rsc_failed) diff --git a/SOURCES/bz1070916-pcmk-api_time_helper_now_returns_when_the_most_recent_fencing_operation_completed.patch b/SOURCES/bz1070916-pcmk-api_time_helper_now_returns_when_the_most_recent_fencing_operation_completed.patch deleted file mode 100644 index 2ef051c..0000000 --- a/SOURCES/bz1070916-pcmk-api_time_helper_now_returns_when_the_most_recent_fencing_operation_completed.patch +++ /dev/null @@ -1,26 +0,0 @@ -commit 893a7468b83b8323ee343903617bbc72a7c3205b -Author: David Vossel <dvossel@redhat.com> -Date: Thu Feb 27 11:50:32 2014 -0600 - - Fix: stonith_api_time_helper now returns when the most recent fencing operation completed - - (cherry picked from commit 054fedfe70867c6f333b61e68fb64bf68e71c90b) - - Conflicts: - lib/fencing/st_client.c - -diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c -index 02f2836..4deb71f 100644 ---- a/lib/fencing/st_client.c -+++ b/lib/fencing/st_client.c -@@ -2458,7 +2458,9 @@ stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress) - - } else if (hp->state == st_done) { - completed++; -- when = hp->completed; -+ if (hp->completed > when) { -+ when = hp->completed; -+ } - } - } - diff --git a/SOURCES/bz1070916-pcmk-crm_report_additional_dlm_detail.patch b/SOURCES/bz1070916-pcmk-crm_report_additional_dlm_detail.patch deleted file mode 100644 index 029b43a..0000000 --- a/SOURCES/bz1070916-pcmk-crm_report_additional_dlm_detail.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit 062630f5823635f7be31965738b9b1a4c0e29f10 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Feb 25 10:21:08 2014 +1100 - - Fix: crm_report: Additional dlm detail - - (cherry picked from commit 3cafe4b9b44fc3faea72d5738a428d2a7fcda53c) - -diff --git a/tools/report.collector b/tools/report.collector -index 62cbe8b..f40dc01 100644 ---- a/tools/report.collector -+++ b/tools/report.collector -@@ -491,15 +491,18 @@ sys_stats() { - - dlm_dump() { - if which dlm_tool >/dev/null 2>&1 ; then -- echo NOTICE - Lockspace overview: -- dlm_tool ls -+ echo "--- Lockspace overview:" -+ dlm_tool ls -n -+ -+ echo "---Lockspace history:" -+ dlm_tool dump -+ - dlm_tool ls | grep name | - while read X N ; do -- echo NOTICE - Lockspace $N: -- dlm_tool lockdump $N -+ echo "--- Lockspace $N:" -+ dlm_tool lockdump "$N" -+ dlm_tool lockdebug -svw "$N" - done -- echo NOTICE - Lockspace history: -- dlm_tool dump - fi - } - diff --git a/SOURCES/bz1070916-pcmk-crm_report_allow_ssh_alternatives_to_be_used.patch b/SOURCES/bz1070916-pcmk-crm_report_allow_ssh_alternatives_to_be_used.patch deleted file mode 100644 index 893851b..0000000 --- a/SOURCES/bz1070916-pcmk-crm_report_allow_ssh_alternatives_to_be_used.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit b7e8996ed0ecf7dd46c0cc2adf630f8c3f1ce9a3 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Feb 24 14:17:48 2014 +1100 - - Feature: crm_report: Allow ssh alternatives to be used - - (cherry picked from commit 334f4f7c2863424f2461c13880621fb1e7e26ebb) - -diff --git a/tools/crm_report.in b/tools/crm_report.in -index 3af1b3f..0607ebf 100755 ---- a/tools/crm_report.in -+++ b/tools/crm_report.in -@@ -20,12 +20,12 @@ - - # Note the quotes around `$TEMP': they are essential! - TEMP=`getopt \ -- -o hv?xl:f:t:n:T:Lp:c:dSACHu:D:MVs \ -- --long help,cts:,cts-log:,dest:,node:,nodes:,from:,to:logfile:,as-directory,single-node,cluster:,user:,max-depth:,version,features \ -+ -o hv?xl:f:t:n:T:Lp:c:dSACHu:D:MVse: \ -+ --long help,cts:,cts-log:,dest:,node:,nodes:,from:,to:logfile:,as-directory,single-node,cluster:,user:,max-depth:,version,features,rsh: \ - -n 'crm_report' -- "$@"` - eval set -- "$TEMP" - -- -+rsh="ssh -T" - times="" - tests="" - nodes="" -@@ -72,6 +72,7 @@ Options: - -H, --heartbeat force the cluster type to be Heartbeat - -u, --user user ssh username for cluster nodes (default: root) - -D, --depth search depth to use when attempting to locate files -+ -e, --rsh specify the remote shell to use (default: ssh -T) - --dest a custom destination directory/file - dest a custom destination directory/file - -@@ -115,6 +116,7 @@ while true; do - -C|--corosync) cluster="corosync"; shift;; - -H|--heartbeat) cluster="heartbeat"; shift;; - -c|--cluster) cluster="$2"; shift; shift;; -+ -e|--rsh) rsh="$2"; shift; shift;; - -u|--user) ssh_user="$2"; shift; shift;; - -D|--max-depth) maxdepth="$2"; shift; shift;; - -M) search_logs=0; shift;; -@@ -184,7 +186,7 @@ EOF - bash $l_base/collector - else - cat $l_base/.env $report_data/report.common $report_data/report.collector \ -- | ssh -l $ssh_user -T $node -- "mkdir -p $r_base; cat > $r_base/collector; bash $r_base/collector" | (cd $l_base && tar mxf -) -+ | $rsh -l $ssh_user $node -- "mkdir -p $r_base; cat > $r_base/collector; bash $r_base/collector" | (cd $l_base && tar mxf -) - fi - done - diff --git a/SOURCES/bz1070916-pcmk-crm_report_only_gather_dlm_data_if_dlm_controld_is_running.patch b/SOURCES/bz1070916-pcmk-crm_report_only_gather_dlm_data_if_dlm_controld_is_running.patch deleted file mode 100644 index 702e0fd..0000000 --- a/SOURCES/bz1070916-pcmk-crm_report_only_gather_dlm_data_if_dlm_controld_is_running.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 03e9a30a4d42d0495bcff45fc6c9df84615c6070 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Feb 28 08:41:58 2014 +1100 - - Fix: crm_report: Only gather dlm data if dlm_controld is running - - (cherry picked from commit 837763e9abe258baf8b916f5744c07b7ff348871) - -diff --git a/tools/report.collector b/tools/report.collector -index f40dc01..d17ce5f 100644 ---- a/tools/report.collector -+++ b/tools/report.collector -@@ -491,6 +491,9 @@ sys_stats() { - - dlm_dump() { - if which dlm_tool >/dev/null 2>&1 ; then -+ if -+ ps -ef | egrep -qs '[d]lm_controld' -+ then - echo "--- Lockspace overview:" - dlm_tool ls -n - -@@ -503,6 +506,7 @@ dlm_dump() { - dlm_tool lockdump "$N" - dlm_tool lockdebug -svw "$N" - done -+ fi - fi - } - diff --git a/SOURCES/bz1070916-pcmk-crm_resource_prevent_use_of_null.patch b/SOURCES/bz1070916-pcmk-crm_resource_prevent_use_of_null.patch deleted file mode 100644 index ca34199..0000000 --- a/SOURCES/bz1070916-pcmk-crm_resource_prevent_use_of_null.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit a59501c3e87e795c7295654e0172b5075639f143 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Feb 28 14:03:23 2014 +1100 - - crm_resource: Prevent use-of-NULL - -diff --git a/tools/crm_resource.c b/tools/crm_resource.c -index 2f0e282..1fcb2a2 100644 ---- a/tools/crm_resource.c -+++ b/tools/crm_resource.c -@@ -807,7 +807,7 @@ delete_lrm_rsc(cib_t *cib_conn, crm_ipc_t * crmd_channel, const char *host_uname - const char *id = rsc->id; - node_t *node = pe_find_node(data_set->nodes, host_uname); - -- if(node->details->remote_rsc == NULL) { -+ if(node && node->details->remote_rsc == NULL) { - crmd_replies_needed++; - } - if (rsc->clone_name) { diff --git a/SOURCES/bz1070916-pcmk-crmd_gracefully_handle_actions_that_cannot_be_initiated.patch b/SOURCES/bz1070916-pcmk-crmd_gracefully_handle_actions_that_cannot_be_initiated.patch deleted file mode 100644 index c4d7420..0000000 --- a/SOURCES/bz1070916-pcmk-crmd_gracefully_handle_actions_that_cannot_be_initiated.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit d7874e2b5e9072faac3655196f20a3f5d4880d36 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 09:10:15 2013 +1000 - - Fix: crmd: Gracefully handle actions that cannot be initiated - - (cherry picked from commit f02d6676bad129bee7175f31e810cf15f4786b70) - -diff --git a/lib/transition/graph.c b/lib/transition/graph.c -index 401a976..1965dde 100644 ---- a/lib/transition/graph.c -+++ b/lib/transition/graph.c -@@ -363,8 +363,13 @@ run_graph(crm_graph_t * graph) - } else if (should_fire_synapse(synapse)) { - crm_trace("Synapse %d fired", synapse->id); - graph->fired++; -- CRM_CHECK(fire_synapse(graph, synapse), stat_log_level = LOG_ERR; -- graph->abort_priority = INFINITY; graph->incomplete++; graph->fired--); -+ if(fire_synapse(graph, synapse) == FALSE) { -+ crm_err("Synapse %d failed to fire", synapse->id); -+ stat_log_level = LOG_ERR; -+ graph->abort_priority = INFINITY; -+ graph->incomplete++; -+ graph->fired--; -+ } - - if (synapse->confirmed == FALSE) { - graph->pending++; diff --git a/SOURCES/bz1070916-pcmk-fencing_pass_the_correct_options_when_looking_up_the_history_by_node_name.patch b/SOURCES/bz1070916-pcmk-fencing_pass_the_correct_options_when_looking_up_the_history_by_node_name.patch deleted file mode 100644 index a95c7b9..0000000 --- a/SOURCES/bz1070916-pcmk-fencing_pass_the_correct_options_when_looking_up_the_history_by_node_name.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit f50f6e73625bab6c6feee82acf94f84bede0137c -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Feb 27 11:28:35 2014 +1100 - - Fix: Fencing: Pass the correct options when looking up the history by node name - - (cherry picked from commit d9921e5783ef7a33bcacf844a4268bd08e583a93) - -diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c -index 7f2204f..02f2836 100644 ---- a/lib/fencing/st_client.c -+++ b/lib/fencing/st_client.c -@@ -2446,7 +2446,7 @@ stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress) - int progress = 0; - int completed = 0; - -- rc = st->cmds->history(st, st_opt_sync_call | st_opt_cs_nodeid, name, &history, 120); -+ rc = st->cmds->history(st, opts, name, &history, 120); - - for (hp = history; hp; hp = hp->next) { - entries++; diff --git a/SOURCES/bz1070916-pcmk-fencing_remove_shadow_definition_and_use_of_variable_progress.patch b/SOURCES/bz1070916-pcmk-fencing_remove_shadow_definition_and_use_of_variable_progress.patch deleted file mode 100644 index c9d4bb0..0000000 --- a/SOURCES/bz1070916-pcmk-fencing_remove_shadow_definition_and_use_of_variable_progress.patch +++ /dev/null @@ -1,40 +0,0 @@ -commit 29d542447da8bd120072a7fa8dd6df832f0856eb -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Feb 28 14:11:23 2014 +1100 - - Fix: Fencing: Remove shadow definition and use of variable 'progress' - - (cherry picked from commit 0debc914b1dda2c4d04f4a33a3b38fbb4d873b1b) - -diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c -index 4deb71f..95ea0f7 100644 ---- a/lib/fencing/st_client.c -+++ b/lib/fencing/st_client.c -@@ -2420,7 +2420,6 @@ stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress) - char *name = NULL; - - time_t when = 0; -- time_t progress = 0; - stonith_t *st = NULL; - stonith_history_t *history, *hp = NULL; - enum stonith_call_options opts = st_opt_sync_call; -@@ -2453,7 +2452,7 @@ stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress) - if (in_progress) { - progress++; - if (hp->state != st_done && hp->state != st_failed) { -- progress = time(NULL); -+ when = time(NULL); - } - - } else if (hp->state == st_done) { -@@ -2471,10 +2470,6 @@ stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress) - } - } - -- if (progress) { -- when = progress; -- } -- - if (st) { - st->cmds->disconnect(st); - stonith_api_delete(st); diff --git a/SOURCES/bz1070916-pcmk-pe_gracefully_handle_bad_values_for_xml_attr_transition_magic.patch b/SOURCES/bz1070916-pcmk-pe_gracefully_handle_bad_values_for_xml_attr_transition_magic.patch deleted file mode 100644 index c56bad6..0000000 --- a/SOURCES/bz1070916-pcmk-pe_gracefully_handle_bad_values_for_xml_attr_transition_magic.patch +++ /dev/null @@ -1,54 +0,0 @@ -commit 5882024877d6c22f0663160a3f7278a421f31819 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 09:03:43 2013 +1000 - - Fix: PE: Gracefully handle bad values for XML_ATTR_TRANSITION_MAGIC - - (cherry picked from commit 164ca366c14c914794f9230acd7646426641e6b2) - -diff --git a/lib/common/utils.c b/lib/common/utils.c -index 4e18039..7543464 100644 ---- a/lib/common/utils.c -+++ b/lib/common/utils.c -@@ -885,15 +885,13 @@ decode_transition_magic(const char *magic, char **uuid, int *transition_id, int - key = calloc(1, strlen(magic) + 1); - res = sscanf(magic, "%d:%d;%s", op_status, op_rc, key); - if (res != 3) { -- crm_crit("Only found %d items in: %s", res, magic); -- result = FALSE; -- goto bail; -+ crm_warn("Only found %d items in: '%s'", res, magic); -+ free(key); -+ return FALSE; - } - -- CRM_CHECK(decode_transition_key(key, uuid, transition_id, action_id, target_rc), result = FALSE; -- goto bail;); -+ CRM_CHECK(decode_transition_key(key, uuid, transition_id, action_id, target_rc), result = FALSE); - -- bail: - free(key); - return result; - } -diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c -index e9997a2..1e827e0 100644 ---- a/lib/pengine/utils.c -+++ b/lib/pengine/utils.c -@@ -1332,11 +1332,12 @@ sort_op_by_callid(gconstpointer a, gconstpointer b) - const char *b_magic = crm_element_value_const(xml_b, XML_ATTR_TRANSITION_MAGIC); - - CRM_CHECK(a_magic != NULL && b_magic != NULL, sort_return(0, "No magic")); -- CRM_CHECK(decode_transition_magic(a_magic, &a_uuid, &a_id, &dummy, &dummy, &dummy, &dummy), -- sort_return(0, "bad magic a")); -- CRM_CHECK(decode_transition_magic(b_magic, &b_uuid, &b_id, &dummy, &dummy, &dummy, &dummy), -- sort_return(0, "bad magic b")); -- -+ if(!decode_transition_magic(a_magic, &a_uuid, &a_id, &dummy, &dummy, &dummy, &dummy)) { -+ sort_return(0, "bad magic a"); -+ } -+ if(!decode_transition_magic(b_magic, &b_uuid, &b_id, &dummy, &dummy, &dummy, &dummy)) { -+ sort_return(0, "bad magic b"); -+ } - /* try and determin the relative age of the operation... - * some pending operations (ie. a start) may have been supuerceeded - * by a subsequent stop diff --git a/SOURCES/bz1070916-pcmk-pengine_update_regression_tests.patch b/SOURCES/bz1070916-pcmk-pengine_update_regression_tests.patch deleted file mode 100644 index c73b4f9..0000000 --- a/SOURCES/bz1070916-pcmk-pengine_update_regression_tests.patch +++ /dev/null @@ -1,137 +0,0 @@ -commit d4c8712bfcf95eeb746887f1fc3de73ca878528a -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Feb 28 11:03:10 2014 +1100 - - Update regression tests for bz1069284 fix - -diff --git a/pengine/test10/bug-lf-2435.dot b/pengine/test10/bug-lf-2435.dot -index 2313c38..2d0b65d 100644 ---- a/pengine/test10/bug-lf-2435.dot -+++ b/pengine/test10/bug-lf-2435.dot -@@ -5,6 +5,7 @@ digraph "g" { - "dummy2_stop_0 c20.chepkov.lan" -> "dummy2_start_0 c21.chepkov.lan" [ style = bold] - "dummy2_stop_0 c20.chepkov.lan" [ style=bold color="green" fontcolor="black" ] - "dummy3_stop_0 c21.chepkov.lan" -> "all_stopped" [ style = bold] -+"dummy3_stop_0 c21.chepkov.lan" -> "dummy2_start_0 c21.chepkov.lan" [ style = bold] - "dummy3_stop_0 c21.chepkov.lan" [ style=bold color="green" fontcolor="black" ] - "dummy4_monitor_0 c19.chepkov.lan" -> "probe_complete c19.chepkov.lan" [ style = bold] - "dummy4_monitor_0 c19.chepkov.lan" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/bug-lf-2435.exp b/pengine/test10/bug-lf-2435.exp -index 046dd97..7255127 100644 ---- a/pengine/test10/bug-lf-2435.exp -+++ b/pengine/test10/bug-lf-2435.exp -@@ -10,6 +10,9 @@ - <trigger> - <rsc_op id="11" operation="stop" operation_key="dummy2_stop_0" on_node="c20.chepkov.lan" on_node_uuid="c20.chepkov.lan"/> - </trigger> -+ <trigger> -+ <rsc_op id="13" operation="stop" operation_key="dummy3_stop_0" on_node="c21.chepkov.lan" on_node_uuid="c21.chepkov.lan"/> -+ </trigger> - </inputs> - </synapse> - <synapse id="1"> -diff --git a/pengine/test10/simple6.dot b/pengine/test10/simple6.dot -index ac3c495..3fac608 100644 ---- a/pengine/test10/simple6.dot -+++ b/pengine/test10/simple6.dot -@@ -6,6 +6,7 @@ - "probe_complete" -> "rsc2_start_0 node1" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] - "rsc1_stop_0 node1" -> "all_stopped" [ style = bold] -+"rsc1_stop_0 node1" -> "rsc2_start_0 node1" [ style = bold] - "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] - "rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] - "rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/simple6.exp b/pengine/test10/simple6.exp -index 590e64b..79d230d 100644 ---- a/pengine/test10/simple6.exp -+++ b/pengine/test10/simple6.exp -@@ -10,6 +10,9 @@ - <trigger> - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> - </inputs> - </synapse> - <synapse id="1" priority="2"> -diff --git a/pengine/test10/simple6.summary b/pengine/test10/simple6.summary -index 2c4079b..42dde4a 100644 ---- a/pengine/test10/simple6.summary -+++ b/pengine/test10/simple6.summary -@@ -12,9 +12,9 @@ Transition Summary: - Executing cluster transition: - * Resource action: rsc2 monitor on node1 - * Pseudo action: probe_complete -- * Resource action: rsc2 start on node1 - * Resource action: rsc1 stop on node1 - * Pseudo action: all_stopped -+ * Resource action: rsc2 start on node1 - - Revised cluster status: - Online: [ node1 ] -diff --git a/tools/regression.exp b/tools/regression.exp -index ef27353..1682f72 100755 ---- a/tools/regression.exp -+++ b/tools/regression.exp -@@ -1317,7 +1317,7 @@ WARNING: Creating rsc_location constraint 'cli-ban-dummy-on-node1' with a score - <primitive id="Fence" class="stonith" type="fence_true"/> - </resources> - <constraints> -- <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" node="node1" score="-INFINITY"/> -+ <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" role="Started" node="node1" score="-INFINITY"/> - </constraints> - </configuration> - <status> -@@ -2027,7 +2027,7 @@ WARNING: Creating rsc_location constraint 'cli-ban-dummy-on-node1' with a score - <primitive id="Fence" class="stonith" type="fence_true"/> - </resources> - <constraints> -- <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" node="node1" score="-INFINITY"/> -+ <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" role="Started" node="node1" score="-INFINITY"/> - </constraints> - </configuration> - <status> -@@ -2113,8 +2113,8 @@ WARNING: Creating rsc_location constraint 'cli-ban-dummy-on-node2' with a score - <primitive id="Fence" class="stonith" type="fence_true"/> - </resources> - <constraints> -- <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" node="node1" score="-INFINITY"/> -- <rsc_location id="cli-ban-dummy-on-node2" rsc="dummy" node="node2" score="-INFINITY"/> -+ <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" role="Started" node="node1" score="-INFINITY"/> -+ <rsc_location id="cli-ban-dummy-on-node2" rsc="dummy" role="Started" node="node2" score="-INFINITY"/> - </constraints> - </configuration> - <status> -@@ -2217,8 +2217,8 @@ Online: [ node1 node2 node3 ] - <primitive id="Fence" class="stonith" type="fence_true"/> - </resources> - <constraints> -- <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" node="node1" score="-INFINITY"/> -- <rsc_location id="cli-ban-dummy-on-node2" rsc="dummy" node="node2" score="-INFINITY"/> -+ <rsc_location id="cli-ban-dummy-on-node1" rsc="dummy" role="Started" node="node1" score="-INFINITY"/> -+ <rsc_location id="cli-ban-dummy-on-node2" rsc="dummy" role="Started" node="node2" score="-INFINITY"/> - </constraints> - </configuration> - <status> -@@ -2300,8 +2300,8 @@ Online: [ node1 node2 node3 ] - <primitive id="Fence" class="stonith" type="fence_true"/> - </resources> - <constraints> -- <rsc_location id="cli-ban-dummy-on-node2" rsc="dummy" node="node2" score="-INFINITY"/> -- <rsc_location id="cli-prefer-dummy" rsc="dummy" node="node1" score="INFINITY"/> -+ <rsc_location id="cli-ban-dummy-on-node2" rsc="dummy" role="Started" node="node2" score="-INFINITY"/> -+ <rsc_location id="cli-prefer-dummy" rsc="dummy" role="Started" node="node1" score="INFINITY"/> - </constraints> - </configuration> - <status> -@@ -2383,7 +2383,7 @@ Online: [ node1 node2 node3 ] - <primitive id="Fence" class="stonith" type="fence_true"/> - </resources> - <constraints> -- <rsc_location id="cli-prefer-dummy" rsc="dummy" node="node1" score="INFINITY"/> -+ <rsc_location id="cli-prefer-dummy" rsc="dummy" role="Started" node="node1" score="INFINITY"/> - </constraints> - </configuration> - <status> diff --git a/SOURCES/bz1070916-pcmk-send_details_of_stonith_api_time_and_stonith_api_kick_to_syslog.patch b/SOURCES/bz1070916-pcmk-send_details_of_stonith_api_time_and_stonith_api_kick_to_syslog.patch deleted file mode 100644 index 846bbd6..0000000 --- a/SOURCES/bz1070916-pcmk-send_details_of_stonith_api_time_and_stonith_api_kick_to_syslog.patch +++ /dev/null @@ -1,146 +0,0 @@ -commit 02bc6c85f814e85b5840f75e198a29d86ac6f2f2 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Feb 27 11:27:30 2014 +1100 - - Log: Fencing: Send details of stonith_api_time() and stonith_api_kick() to syslog - - (cherry picked from commit b0a8876fe230f5e3e5770734f78e36284c0bae62) - -diff --git a/include/crm/stonith-ng.h b/include/crm/stonith-ng.h -index 35f6e5a..7f6938a 100644 ---- a/include/crm/stonith-ng.h -+++ b/include/crm/stonith-ng.h -@@ -348,8 +348,8 @@ void stonith_key_value_freeall(stonith_key_value_t * kvp, int keys, int values); - * - * At least one of nodeid and uname are required - */ --int stonith_api_kick(int nodeid, const char *uname, int timeout, bool off); --time_t stonith_api_time(int nodeid, const char *uname, bool in_progress); -+int stonith_api_kick(uint32_t nodeid, const char *uname, int timeout, bool off); -+time_t stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress); - - /* - * Helpers for using the above functions without install-time dependancies -@@ -394,7 +394,7 @@ time_t stonith_api_time(int nodeid, const char *uname, bool in_progress); - # define STONITH_LIBRARY "libstonithd.so.2" - - static inline int --stonith_api_kick_helper(int nodeid, int timeout, bool off) -+stonith_api_kick_helper(uint32_t nodeid, int timeout, bool off) - { - static void *st_library = NULL; - static int (*st_kick_fn) (int nodeid, const char *uname, int timeout, bool off) = NULL; -@@ -413,7 +413,7 @@ stonith_api_kick_helper(int nodeid, int timeout, bool off) - } - - static inline time_t --stonith_api_time_helper(int nodeid, bool in_progress) -+stonith_api_time_helper(uint32_t nodeid, bool in_progress) - { - static void *st_library = NULL; - static time_t(*st_time_fn) (int nodeid, const char *uname, bool in_progress) = NULL; -diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c -index 3c6a7e7..7f2204f 100644 ---- a/lib/fencing/st_client.c -+++ b/lib/fencing/st_client.c -@@ -2361,8 +2361,11 @@ stonith_key_value_freeall(stonith_key_value_t * head, int keys, int values) - } - } - -+#define api_log_open() openlog("stonith-api", LOG_CONS | LOG_NDELAY | LOG_PID, LOG_DAEMON) -+#define api_log(level, fmt, args...) syslog(level, "%s: "fmt, __FUNCTION__, args) -+ - int --stonith_api_kick(int nodeid, const char *uname, int timeout, bool off) -+stonith_api_kick(uint32_t nodeid, const char *uname, int timeout, bool off) - { - char *name = NULL; - const char *action = "reboot"; -@@ -2371,9 +2374,13 @@ stonith_api_kick(int nodeid, const char *uname, int timeout, bool off) - stonith_t *st = NULL; - enum stonith_call_options opts = st_opt_sync_call | st_opt_allow_suicide; - -+ api_log_open(); - st = stonith_api_new(); - if (st) { - rc = st->cmds->connect(st, "stonith-api", NULL); -+ if(rc != pcmk_ok) { -+ api_log(LOG_ERR, "Connection failed, could not kick (%s) node %u/%s : %s (%d)", action, nodeid, uname, pcmk_strerror(rc), rc); -+ } - } - - if (uname != NULL) { -@@ -2390,6 +2397,11 @@ stonith_api_kick(int nodeid, const char *uname, int timeout, bool off) - - if (rc == pcmk_ok) { - rc = st->cmds->fence(st, opts, name, action, timeout, 0); -+ if(rc != pcmk_ok) { -+ api_log(LOG_ERR, "Could not kick (%s) node %u/%s : %s (%d)", action, nodeid, uname, pcmk_strerror(rc), rc); -+ } else { -+ api_log(LOG_NOTICE, "Node %u/%s kicked: %s ", nodeid, uname, action); -+ } - } - - if (st) { -@@ -2402,7 +2414,7 @@ stonith_api_kick(int nodeid, const char *uname, int timeout, bool off) - } - - time_t --stonith_api_time(int nodeid, const char *uname, bool in_progress) -+stonith_api_time(uint32_t nodeid, const char *uname, bool in_progress) - { - int rc = 0; - char *name = NULL; -@@ -2416,6 +2428,9 @@ stonith_api_time(int nodeid, const char *uname, bool in_progress) - st = stonith_api_new(); - if (st) { - rc = st->cmds->connect(st, "stonith-api", NULL); -+ if(rc != pcmk_ok) { -+ api_log(LOG_NOTICE, "Connection failed: %s (%d)", pcmk_strerror(rc), rc); -+ } - } - - if (uname != NULL) { -@@ -2427,18 +2442,31 @@ stonith_api_time(int nodeid, const char *uname, bool in_progress) - } - - if (st && rc == pcmk_ok) { -- st->cmds->history(st, st_opt_sync_call | st_opt_cs_nodeid, name, &history, 120); -+ int entries = 0; -+ int progress = 0; -+ int completed = 0; -+ -+ rc = st->cmds->history(st, st_opt_sync_call | st_opt_cs_nodeid, name, &history, 120); - - for (hp = history; hp; hp = hp->next) { -+ entries++; - if (in_progress) { -+ progress++; - if (hp->state != st_done && hp->state != st_failed) { - progress = time(NULL); - } - - } else if (hp->state == st_done) { -+ completed++; - when = hp->completed; - } - } -+ -+ if(rc == pcmk_ok) { -+ api_log(LOG_INFO, "Found %d entries for %u/%s: %d in progress, %d completed", entries, nodeid, uname, progress, completed); -+ } else { -+ api_log(LOG_ERR, "Could not retrieve fence history for %u/%s: %s (%d)", nodeid, uname, pcmk_strerror(rc), rc); -+ } - } - - if (progress) { -@@ -2450,6 +2478,9 @@ stonith_api_time(int nodeid, const char *uname, bool in_progress) - stonith_api_delete(st); - } - -+ if(when) { -+ api_log(LOG_INFO, "Node %u/%s last kicked at: %ld", nodeid, uname, (long int)when); -+ } - free(name); - return when; - } diff --git a/SOURCES/bz1070916-pcmk-systemd_prevent_use_of_null_when_determining_if_an_agent_exists.patch b/SOURCES/bz1070916-pcmk-systemd_prevent_use_of_null_when_determining_if_an_agent_exists.patch deleted file mode 100644 index cd22bff..0000000 --- a/SOURCES/bz1070916-pcmk-systemd_prevent_use_of_null_when_determining_if_an_agent_exists.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 4d52d269e3022a693155fd1b443990f5956057d7 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Feb 28 14:11:15 2014 +1100 - - Fix: systemd: Prevent use-of-NULL when determining if an agent exists - - (cherry picked from commit 0597697bf408690a5b52e1dfb128888ef974bfe7) - -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index 374a03e..a28ae14 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -142,7 +142,7 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) - - name = systemd_service_name(arg_name); - -- while(*out_unit == NULL) { -+ while(TRUE) { - msg = systemd_new_method(BUS_NAME".Manager", method); - CRM_ASSERT(msg != NULL); - diff --git a/SOURCES/bz1070916-pcmk-test_tools_set_up_override_for_local_schema_file_locations.patch b/SOURCES/bz1070916-pcmk-test_tools_set_up_override_for_local_schema_file_locations.patch deleted file mode 100644 index 14876f7..0000000 --- a/SOURCES/bz1070916-pcmk-test_tools_set_up_override_for_local_schema_file_locations.patch +++ /dev/null @@ -1,25 +0,0 @@ -commit 87b04358f7024ee1263f6baaa5a7df7f31b18028 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Feb 4 12:22:37 2014 +1100 - - Test: tools: Set up override for local schema file locations - - (cherry picked from commit 3d43ec1aa27420e23b8a5c9a921e9fab57669eb1) - -diff --git a/tools/regression.sh b/tools/regression.sh -index 12e2bcf..8c9a4d4 100755 ---- a/tools/regression.sh -+++ b/tools/regression.sh -@@ -60,8 +60,10 @@ while test "$done" = "0"; do - done - - if [ "x$VALGRIND_CMD" = "x" -a -x $test_home/crm_simulate ]; then -- echo "Using local binaries from: $test_home" -- PATH="$test_home:$PATH" -+ xml_home=`dirname ${test_home}` -+ echo "Using local binaries from: $test_home, schemas from $xml_home" -+ export PATH="$test_home:$PATH" -+ export PCMK_schema_directory=${xml_home}/xml - fi - - function test_tools() { diff --git a/SOURCES/bz1078078-pcmk-crm_report_suppress_logging_errors_after_the_target_directory_has_been_compressed.patch b/SOURCES/bz1078078-pcmk-crm_report_suppress_logging_errors_after_the_target_directory_has_been_compressed.patch deleted file mode 100644 index 4b96e99..0000000 --- a/SOURCES/bz1078078-pcmk-crm_report_suppress_logging_errors_after_the_target_directory_has_been_compressed.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 3de41452c059cb44028433bea1ab6425e239a38c -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Dec 18 08:12:29 2013 +1100 - - Fix: crm_report: Suppress logging errors after the target directory has been compressed - - (cherry picked from commit 571c7b0e66b174442604883fe105dbe8d10f1bc4) - -diff --git a/tools/report.common.in b/tools/report.common.in -index 9742f1c..bba7c63 100644 ---- a/tools/report.common.in -+++ b/tools/report.common.in -@@ -76,7 +76,7 @@ record() { - if [ x != x"$REPORT_HOME" -a -d "${REPORT_HOME}/$shorthost" ]; then - rec="${REPORT_HOME}/$shorthost/report.out" - -- elif [ x != x"${l_base}" ]; then -+ elif [ x != x"${l_base}" -a -d "${l_base}" ]; then - rec="${l_base}/report.summary" - - else diff --git a/SOURCES/bz1078078-pcmk-crm_resource_wait_for_the_correct_number_of_replies_when_cleaning_up_resources.patch b/SOURCES/bz1078078-pcmk-crm_resource_wait_for_the_correct_number_of_replies_when_cleaning_up_resources.patch deleted file mode 100644 index 9b7a4e5..0000000 --- a/SOURCES/bz1078078-pcmk-crm_resource_wait_for_the_correct_number_of_replies_when_cleaning_up_resources.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit ec35b157495c79cf79572fdca4b369f37d42e2bf -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Oct 31 14:04:21 2013 +1100 - - Fix: crm_resource: Wait for the correct number of replies when cleaning up resources - - (cherry picked from commit 145c782e432d8108ca865f994640cf5a62406363) - -diff --git a/tools/crm_resource.c b/tools/crm_resource.c -index 1fcb2a2..c344997 100644 ---- a/tools/crm_resource.c -+++ b/tools/crm_resource.c -@@ -61,7 +61,7 @@ char *our_pid = NULL; - crm_ipc_t *crmd_channel = NULL; - char *xml_file = NULL; - int cib_options = cib_sync_call; --int crmd_replies_needed = 0; -+int crmd_replies_needed = 1; /* The welcome message */ - GMainLoop *mainloop = NULL; - - extern void cleanup_alloc_calculations(pe_working_set_t * data_set); -@@ -93,7 +93,6 @@ static void - start_mainloop(void) - { - mainloop = g_main_new(FALSE); -- crmd_replies_needed++; /* The welcome message */ - fprintf(stderr, "Waiting for %d replies from the CRMd", crmd_replies_needed); - crm_debug("Waiting for %d replies from the CRMd", crmd_replies_needed); - diff --git a/SOURCES/bz1078078-pcmk-crmd_correctly_react_to_successful_unfencing_operations.patch b/SOURCES/bz1078078-pcmk-crmd_correctly_react_to_successful_unfencing_operations.patch deleted file mode 100644 index e3c79b3..0000000 --- a/SOURCES/bz1078078-pcmk-crmd_correctly_react_to_successful_unfencing_operations.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit 110cdd2056407a3a448a0e0cf3ef4e126fb26753 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Apr 4 12:13:04 2014 +1100 - - Fix: crmd: Correctly react to successful unfencing operations - - Hint: We don't want to shut down - (cherry picked from commit 69c8d227c605d0b85038a536be948f5a56cfe4bd) - -diff --git a/crmd/te_utils.c b/crmd/te_utils.c -index 239af63..60dd21c 100644 ---- a/crmd/te_utils.c -+++ b/crmd/te_utils.c -@@ -123,7 +123,12 @@ tengine_stonith_notify(stonith_t * st, stonith_event_t * st_event) - return; - } - -- if (st_event->result == pcmk_ok && crm_str_eq(st_event->target, fsa_our_uname, TRUE)) { -+ if (st_event->result == pcmk_ok && safe_str_eq("on", st_event->action)) { -+ crm_notice("%s was successfully unfenced by %s for %s with %s", -+ st_event->executioner, st_event->origin, st_event->device); -+ return; -+ -+ } else if (st_event->result == pcmk_ok && crm_str_eq(st_event->target, fsa_our_uname, TRUE)) { - crm_crit("We were alegedly just fenced by %s for %s with %s!", st_event->executioner, - st_event->origin, st_event->device); /* Dumps blackbox if enabled */ - diff --git a/SOURCES/bz1078078-pcmk-crmd_device_isn_t_hooked_up_yet_don_t_bother_logging_it.patch b/SOURCES/bz1078078-pcmk-crmd_device_isn_t_hooked_up_yet_don_t_bother_logging_it.patch deleted file mode 100644 index 3ddd9d2..0000000 --- a/SOURCES/bz1078078-pcmk-crmd_device_isn_t_hooked_up_yet_don_t_bother_logging_it.patch +++ /dev/null @@ -1,40 +0,0 @@ -commit 4cf4c0dee7128ae0896bf5fc6cbaeffd21cfb984 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Apr 10 13:20:20 2014 +1000 - - Log: crmd: device isn't hooked up yet, don't bother logging it - - (cherry picked from commit 97705f05e96dcc0f8b232f32b842ee36844a6567) - -diff --git a/crmd/te_utils.c b/crmd/te_utils.c -index b2003ba..c7260fd 100644 ---- a/crmd/te_utils.c -+++ b/crmd/te_utils.c -@@ -124,20 +124,20 @@ tengine_stonith_notify(stonith_t * st, stonith_event_t * st_event) - } - - if (st_event->result == pcmk_ok && safe_str_eq("on", st_event->action)) { -- crm_notice("%s was successfully unfenced by %s (at the request of %s) with %s", -- st_event->target, st_event->executioner, st_event->origin, -- st_event->device); /* TODO: Why is device never set? */ -+ crm_notice("%s was successfully unfenced by %s (at the request of %s)", -+ st_event->target, st_event->executioner, st_event->origin); -+ /* TODO: Hook up st_event->device */ - return; - - } else if (safe_str_eq("on", st_event->action)) { -- crm_err("Unfencing of %s by %s with %s failed: %s (%d)", -- st_event->target, st_event->executioner, st_event->device, -+ crm_err("Unfencing of %s by %s failed: %s (%d)", -+ st_event->target, st_event->executioner, - pcmk_strerror(st_event->result), st_event->result); - return; - - } else if (st_event->result == pcmk_ok && crm_str_eq(st_event->target, fsa_our_uname, TRUE)) { -- crm_crit("We were alegedly just fenced by %s for %s with %s!", st_event->executioner, -- st_event->origin, st_event->device); /* Dumps blackbox if enabled */ -+ crm_crit("We were alegedly just fenced by %s for %s!", -+ st_event->executioner, st_event->origin); /* Dumps blackbox if enabled */ - - qb_log_fini(); /* Try to get the above log message to disk - somehow */ - diff --git a/SOURCES/bz1078078-pcmk-crmd_do_not_erase_the_status_section_for_unfenced_nodes.patch b/SOURCES/bz1078078-pcmk-crmd_do_not_erase_the_status_section_for_unfenced_nodes.patch deleted file mode 100644 index 6b23f8b..0000000 --- a/SOURCES/bz1078078-pcmk-crmd_do_not_erase_the_status_section_for_unfenced_nodes.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit de876a58b6cd80389f7f345784a15080056faf9d -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Apr 10 08:59:04 2014 +1000 - - Fix: crmd: Do not erase the status section for unfenced nodes - - (cherry picked from commit ac788bf0eed36eeb489e7c6e9bcf5c5ded91fd44) - - Conflicts: - crmd/te_callbacks.c - -diff --git a/crmd/te_callbacks.c b/crmd/te_callbacks.c -index 4b8aac5..ce8ae9c 100644 ---- a/crmd/te_callbacks.c -+++ b/crmd/te_callbacks.c -@@ -442,11 +442,12 @@ tengine_stonith_callback(stonith_t * stonith, stonith_callback_data_t * data) - if (rc == pcmk_ok) { - const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); - const char *uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); -+ const char *op = crm_meta_value(action->params, "stonith_action"); - - crm_debug("Stonith operation %d for %s passed", call_id, target); - if (action->confirmed == FALSE) { - action->confirmed = TRUE; -- if (action->sent_update == FALSE) { -+ if (action->sent_update == FALSE && safe_str_neq("on", op)) { - send_stonith_update(action, target, uuid); - } - } diff --git a/SOURCES/bz1078078-pcmk-crmd_do_not_overwrite_existing_node_state_when_fencing_completes.patch b/SOURCES/bz1078078-pcmk-crmd_do_not_overwrite_existing_node_state_when_fencing_completes.patch deleted file mode 100644 index 7129505..0000000 --- a/SOURCES/bz1078078-pcmk-crmd_do_not_overwrite_existing_node_state_when_fencing_completes.patch +++ /dev/null @@ -1,155 +0,0 @@ -commit e0bcac68df1f684c1879ddb76387c47b177ece6f -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Feb 18 10:37:07 2014 +1100 - - Fix: crmd: Do not overwrite existing node state when fencing completes - - Let the normal membership callbacks do that. This allows us to function - correctly when a node returns before we get the fencing notification. - - (cherry picked from commit e777b1759786d0a917299399e8a1fee1242a1eef) - - Conflicts: - crmd/callbacks.c - crmd/te_utils.c - crmd/utils.c - -diff --git a/crmd/crmd_utils.h b/crmd/crmd_utils.h -index 92d14b1..ca1e177 100644 ---- a/crmd/crmd_utils.h -+++ b/crmd/crmd_utils.h -@@ -99,6 +99,7 @@ void crmd_join_phase_log(int level); - const char *get_timer_desc(fsa_timer_t * timer); - gboolean too_many_st_failures(void); - void st_fail_count_reset(const char * target); -+void crmd_peer_down(crm_node_t *peer, bool full); - - # define fsa_register_cib_callback(id, flag, data, fn) do { \ - fsa_cib_conn->cmds->register_callback( \ -diff --git a/crmd/te_actions.c b/crmd/te_actions.c -index 4e3bc22..ee66af6 100644 ---- a/crmd/te_actions.c -+++ b/crmd/te_actions.c -@@ -75,11 +75,8 @@ send_stonith_update(crm_action_t * action, const char *target, const char *uuid) - crm_info("Recording uuid '%s' for node '%s'", uuid, target); - peer->uuid = strdup(uuid); - } -- crm_update_peer_proc(__FUNCTION__, peer, crm_proc_none, NULL); -- crm_update_peer_state(__FUNCTION__, peer, CRM_NODE_LOST, 0); -- crm_update_peer_expected(__FUNCTION__, peer, CRMD_JOINSTATE_DOWN); -- crm_update_peer_join(__FUNCTION__, peer, crm_join_none); - -+ crmd_peer_down(peer, TRUE); - node_state = - do_update_node_cib(peer, - node_update_cluster | node_update_peer | node_update_join | -diff --git a/crmd/te_utils.c b/crmd/te_utils.c -index c7260fd..9edb128 100644 ---- a/crmd/te_utils.c -+++ b/crmd/te_utils.c -@@ -234,11 +234,7 @@ tengine_stonith_notify(stonith_t * st, stonith_event_t * st_event) - - } - -- /* Everyone records them as safely down */ -- crm_update_peer_proc(__FUNCTION__, peer, crm_proc_none, NULL); -- crm_update_peer_state(__FUNCTION__, peer, CRM_NODE_LOST, 0); -- crm_update_peer_expected(__FUNCTION__, peer, CRMD_JOINSTATE_DOWN); -- crm_update_peer_join(__FUNCTION__, peer, crm_join_none); -+ crmd_peer_down(peer, TRUE); - } - } - -diff --git a/crmd/utils.c b/crmd/utils.c -index 07c71b2..a8516c4 100644 ---- a/crmd/utils.c -+++ b/crmd/utils.c -@@ -1091,3 +1091,13 @@ update_attrd(const char *host, const char *name, const char *value, const char * - } - } - } -+ -+void crmd_peer_down(crm_node_t *peer, bool full) -+{ -+ if(full && peer->state == NULL) { -+ crm_update_peer_state(__FUNCTION__, peer, CRM_NODE_LOST, 0); -+ crm_update_peer_proc(__FUNCTION__, peer, crm_proc_none, NULL); -+ } -+ crm_update_peer_join(__FUNCTION__, peer, crm_join_none); -+ crm_update_peer_expected(__FUNCTION__, peer, CRMD_JOINSTATE_DOWN); -+} -diff --git a/pengine/test10/whitebox-orphan-ms.pe.dot b/pengine/test10/whitebox-orphan-ms.pe.dot -deleted file mode 100644 -index 81c37eb..0000000 ---- a/pengine/test10/whitebox-orphan-ms.pe.dot -+++ /dev/null -@@ -1,69 +0,0 @@ --digraph "g" { --"FencingFail_start_0 18node1" [ style=bold color="green" fontcolor="black"] --"FencingFail_stop_0 18node3" -> "FencingFail_start_0 18node1" [ style = bold] --"FencingFail_stop_0 18node3" -> "all_stopped" [ style = bold] --"FencingFail_stop_0 18node3" [ style=bold color="green" fontcolor="black"] --"all_stopped" [ style=bold color="green" fontcolor="orange"] --"container1_delete_0 18node1" -> "container1_start_0 <none>" [ style = dashed] --"container1_delete_0 18node1" [ style=bold color="green" fontcolor="black"] --"container1_delete_0 18node2" -> "container1_start_0 <none>" [ style = dashed] --"container1_delete_0 18node2" [ style=bold color="green" fontcolor="black"] --"container1_delete_0 18node3" -> "container1_start_0 <none>" [ style = dashed] --"container1_delete_0 18node3" [ style=bold color="green" fontcolor="black"] --"container1_start_0 <none>" [ style=dashed color="red" fontcolor="black"] --"container1_stop_0 18node1" -> "all_stopped" [ style = bold] --"container1_stop_0 18node1" -> "container1_delete_0 18node1" [ style = bold] --"container1_stop_0 18node1" -> "container1_delete_0 18node2" [ style = bold] --"container1_stop_0 18node1" -> "container1_delete_0 18node3" [ style = bold] --"container1_stop_0 18node1" -> "container1_start_0 <none>" [ style = dashed] --"container1_stop_0 18node1" [ style=bold color="green" fontcolor="black"] --"container2_delete_0 18node1" [ style=bold color="green" fontcolor="black"] --"container2_delete_0 18node2" [ style=bold color="green" fontcolor="black"] --"container2_delete_0 18node3" [ style=bold color="green" fontcolor="black"] --"container2_stop_0 18node1" -> "all_stopped" [ style = bold] --"container2_stop_0 18node1" -> "container2_delete_0 18node1" [ style = bold] --"container2_stop_0 18node1" -> "container2_delete_0 18node2" [ style = bold] --"container2_stop_0 18node1" -> "container2_delete_0 18node3" [ style = bold] --"container2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] --"lxc-ms_delete_0 18node1" [ style=bold color="green" fontcolor="black"] --"lxc-ms_delete_0 18node2" [ style=bold color="green" fontcolor="black"] --"lxc-ms_delete_0 18node3" [ style=bold color="green" fontcolor="black"] --"lxc-ms_demote_0 lxc1" -> "lxc-ms_stop_0 lxc1" [ style = bold] --"lxc-ms_demote_0 lxc1" -> "lxc-ms_stop_0 lxc2" [ style = bold] --"lxc-ms_demote_0 lxc1" -> "lxc1_stop_0 18node1" [ style = bold] --"lxc-ms_demote_0 lxc1" [ style=bold color="green" fontcolor="black"] --"lxc-ms_demote_0 lxc2" -> "lxc-ms_stop_0 lxc1" [ style = bold] --"lxc-ms_demote_0 lxc2" -> "lxc-ms_stop_0 lxc2" [ style = bold] --"lxc-ms_demote_0 lxc2" -> "lxc2_stop_0 18node1" [ style = bold] --"lxc-ms_demote_0 lxc2" [ style=bold color="green" fontcolor="black"] --"lxc-ms_stop_0 lxc1" -> "all_stopped" [ style = bold] --"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node1" [ style = bold] --"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node2" [ style = bold] --"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node3" [ style = bold] --"lxc-ms_stop_0 lxc1" -> "lxc1_stop_0 18node1" [ style = bold] --"lxc-ms_stop_0 lxc1" [ style=bold color="green" fontcolor="black"] --"lxc-ms_stop_0 lxc2" -> "all_stopped" [ style = bold] --"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node1" [ style = bold] --"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node2" [ style = bold] --"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node3" [ style = bold] --"lxc-ms_stop_0 lxc2" -> "lxc2_stop_0 18node1" [ style = bold] --"lxc-ms_stop_0 lxc2" [ style=bold color="green" fontcolor="black"] --"lxc1_delete_0 18node1" [ style=bold color="green" fontcolor="black"] --"lxc1_delete_0 18node2" [ style=bold color="green" fontcolor="black"] --"lxc1_delete_0 18node3" [ style=bold color="green" fontcolor="black"] --"lxc1_stop_0 18node1" -> "all_stopped" [ style = bold] --"lxc1_stop_0 18node1" -> "container1_stop_0 18node1" [ style = bold] --"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node1" [ style = bold] --"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node2" [ style = bold] --"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node3" [ style = bold] --"lxc1_stop_0 18node1" [ style=bold color="green" fontcolor="black"] --"lxc2_delete_0 18node1" [ style=bold color="green" fontcolor="black"] --"lxc2_delete_0 18node2" [ style=bold color="green" fontcolor="black"] --"lxc2_delete_0 18node3" [ style=bold color="green" fontcolor="black"] --"lxc2_stop_0 18node1" -> "all_stopped" [ style = bold] --"lxc2_stop_0 18node1" -> "container2_stop_0 18node1" [ style = bold] --"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node1" [ style = bold] --"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node2" [ style = bold] --"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node3" [ style = bold] --"lxc2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] --} diff --git a/SOURCES/bz1078078-pcmk-crmd_report_unsuccessful_unfencing_operations.patch b/SOURCES/bz1078078-pcmk-crmd_report_unsuccessful_unfencing_operations.patch deleted file mode 100644 index cddd885..0000000 --- a/SOURCES/bz1078078-pcmk-crmd_report_unsuccessful_unfencing_operations.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 2a8e1620b6a224905d6cb4e9bc444c957a85f946 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 9 12:17:25 2014 +1000 - - Fix: crmd: Report unsuccessful unfencing operations - - (cherry picked from commit 32f6349100e85b6a48dac01a80c967bc0134d165) - -diff --git a/crmd/te_utils.c b/crmd/te_utils.c -index 60dd21c..b2003ba 100644 ---- a/crmd/te_utils.c -+++ b/crmd/te_utils.c -@@ -124,8 +124,15 @@ tengine_stonith_notify(stonith_t * st, stonith_event_t * st_event) - } - - if (st_event->result == pcmk_ok && safe_str_eq("on", st_event->action)) { -- crm_notice("%s was successfully unfenced by %s for %s with %s", -- st_event->executioner, st_event->origin, st_event->device); -+ crm_notice("%s was successfully unfenced by %s (at the request of %s) with %s", -+ st_event->target, st_event->executioner, st_event->origin, -+ st_event->device); /* TODO: Why is device never set? */ -+ return; -+ -+ } else if (safe_str_eq("on", st_event->action)) { -+ crm_err("Unfencing of %s by %s with %s failed: %s (%d)", -+ st_event->target, st_event->executioner, st_event->device, -+ pcmk_strerror(st_event->result), st_event->result); - return; - - } else if (st_event->result == pcmk_ok && crm_str_eq(st_event->target, fsa_our_uname, TRUE)) { diff --git a/SOURCES/bz1078078-pcmk-default_to_off_when_agent_does_not_advertise_reboot_in_metadata.patch b/SOURCES/bz1078078-pcmk-default_to_off_when_agent_does_not_advertise_reboot_in_metadata.patch deleted file mode 100644 index 82fbf8d..0000000 --- a/SOURCES/bz1078078-pcmk-default_to_off_when_agent_does_not_advertise_reboot_in_metadata.patch +++ /dev/null @@ -1,57 +0,0 @@ -commit ad224d149d03351fd5ff63011697b117ad661aaf -Author: David Vossel <dvossel@redhat.com> -Date: Thu Apr 17 11:37:50 2014 -0500 - - High: fencing: default to 'off' when agent does not advertise 'reboot' in metadata - - (cherry picked from commit 8383a38a478ed6473ff2179596335ed4de583cfa) - -diff --git a/fencing/commands.c b/fencing/commands.c -index b4cd862..fbbee1a 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -206,6 +206,7 @@ static gboolean - stonith_device_execute(stonith_device_t * device) - { - int exec_rc = 0; -+ const char *action_str = NULL; - async_command_t *cmd = NULL; - stonith_action_t *action = NULL; - -@@ -246,8 +247,14 @@ stonith_device_execute(stonith_device_t * device) - } - #endif - -+ action_str = cmd->action; -+ if (safe_str_eq(cmd->action, "reboot") && is_not_set(device->flags, st_device_supports_reboot)) { -+ crm_warn("Agent '%s' does not advertise support for 'reboot', performing 'off' action instead", device->agent); -+ action_str = "off"; -+ } -+ - action = stonith_action_create(device->agent, -- cmd->action, -+ action_str, - cmd->victim, - cmd->victim_nodeid, - cmd->timeout, device->params, device->aliases); -@@ -592,6 +599,8 @@ read_action_metadata(stonith_device_t *device) - set_bit(device->flags, st_device_supports_list); - } else if(safe_str_eq(action, "status")) { - set_bit(device->flags, st_device_supports_status); -+ } else if(safe_str_eq(action, "reboot")) { -+ set_bit(device->flags, st_device_supports_reboot); - } else if(safe_str_eq(action, "on") && (crm_is_true(automatic))) { - /* this setting implies required=true for unfencing */ - required = "true"; -diff --git a/fencing/internal.h b/fencing/internal.h -index 3fcad20..d94e2d6 100644 ---- a/fencing/internal.h -+++ b/fencing/internal.h -@@ -16,6 +16,7 @@ enum st_device_flags - { - st_device_supports_list = 0x0001, - st_device_supports_status = 0x0002, -+ st_device_supports_reboot = 0x0004, - }; - - typedef struct stonith_device_s { diff --git a/SOURCES/bz1078078-pcmk-execute_all_required_fencing_devices_regardless_of_what_topology_level_they_are_at.patch b/SOURCES/bz1078078-pcmk-execute_all_required_fencing_devices_regardless_of_what_topology_level_they_are_at.patch deleted file mode 100644 index 6dfeeeb..0000000 --- a/SOURCES/bz1078078-pcmk-execute_all_required_fencing_devices_regardless_of_what_topology_level_they_are_at.patch +++ /dev/null @@ -1,180 +0,0 @@ -commit 7aa42a14d8b06638f3e3e175fc59e16f730979a8 -Author: David Vossel <dvossel@redhat.com> -Date: Thu Apr 17 10:52:45 2014 -0500 - - High: fencing: Execute all required fencing devices regardless of what topology level they are at - - (cherry picked from commit c922fd50f7c8deb337aad932cb0b8d1c26cbcd99) - -diff --git a/fencing/commands.c b/fencing/commands.c -index 8efb156..b4cd862 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -1297,6 +1297,10 @@ stonith_query_capable_device_cb(GList * devices, void *user_data) - crm_xml_add(dev, "namespace", device->namespace); - crm_xml_add(dev, "agent", device->agent); - crm_xml_add_int(dev, F_STONITH_DEVICE_VERIFIED, device->verified); -+ if (is_action_required(query->action, device)) { -+ crm_xml_add_int(dev, F_STONITH_DEVICE_REQUIRED, 1); -+ } -+ crm_xml_add_int(dev, F_STONITH_DEVICE_VERIFIED, device->verified); - if (action_specific_timeout) { - crm_xml_add_int(dev, F_STONITH_ACTION_TIMEOUT, action_specific_timeout); - } -diff --git a/fencing/internal.h b/fencing/internal.h -index 971a32f..3fcad20 100644 ---- a/fencing/internal.h -+++ b/fencing/internal.h -@@ -113,6 +113,10 @@ typedef struct remote_fencing_op_s { - - /*! The current topology level being executed */ - guint level; -+ -+ /*! List of required devices the topology must execute regardless of what -+ * topology level they exist at. */ -+ GListPtr required_list; - /*! The device list of all the devices at the current executing topology level. */ - GListPtr devices_list; - /*! Current entry in the topology device list */ -diff --git a/fencing/remote.c b/fencing/remote.c -index fd25025..10447e7 100644 ---- a/fencing/remote.c -+++ b/fencing/remote.c -@@ -68,6 +68,12 @@ static void report_timeout_period(remote_fencing_op_t * op, int op_timeout); - static int get_op_total_timeout(remote_fencing_op_t * op, st_query_result_t * chosen_peer, - int default_timeout); - -+static gint -+sort_strings(gconstpointer a, gconstpointer b) -+{ -+ return strcmp(a, b); -+} -+ - static void - free_remote_query(gpointer data) - { -@@ -128,6 +134,10 @@ free_remote_op(gpointer data) - g_list_free_full(op->devices_list, free); - op->devices_list = NULL; - } -+ if (op->required_list) { -+ g_list_free_full(op->required_list, free); -+ op->required_list = NULL; -+ } - free(op); - } - -@@ -400,6 +410,25 @@ topology_is_empty(stonith_topology_t *tp) - return TRUE; - } - -+static void -+add_required_device(remote_fencing_op_t * op, const char *device) -+{ -+ GListPtr match = g_list_find_custom(op->required_list, device, sort_strings); -+ if (match) { -+ /* device already marked required */ -+ return; -+ } -+ op->required_list = g_list_prepend(op->required_list, strdup(device)); -+ -+ /* make sure the required devices is in the current list of devices to be executed */ -+ if (op->devices_list) { -+ GListPtr match = g_list_find_custom(op->devices_list, device, sort_strings); -+ if (match == NULL) { -+ op->devices_list = g_list_append(op->devices_list, strdup(device)); -+ } -+ } -+} -+ - /* deep copy the device list */ - static void - set_op_device_list(remote_fencing_op_t * op, GListPtr devices) -@@ -413,6 +442,18 @@ set_op_device_list(remote_fencing_op_t * op, GListPtr devices) - for (lpc = devices; lpc != NULL; lpc = lpc->next) { - op->devices_list = g_list_append(op->devices_list, strdup(lpc->data)); - } -+ -+ /* tack on whatever required devices have not been executed -+ * to the end of the current devices list. This ensures that -+ * the required devices will get executed regardless of what topology -+ * level they exist at. */ -+ for (lpc = op->required_list; lpc != NULL; lpc = lpc->next) { -+ GListPtr match = g_list_find_custom(op->devices_list, lpc->data, sort_strings); -+ if (match == NULL) { -+ op->devices_list = g_list_append(op->devices_list, strdup(lpc->data)); -+ } -+ } -+ - op->devices = op->devices_list; - } - -@@ -714,12 +755,6 @@ initiate_remote_stonith_op(crm_client_t * client, xmlNode * request, gboolean ma - return op; - } - --static gint --sort_strings(gconstpointer a, gconstpointer b) --{ -- return strcmp(a, b); --} -- - enum find_best_peer_options { - /*! Skip checking the target peer for capable fencing devices */ - FIND_PEER_SKIP_TARGET = 0x0001, -@@ -1165,11 +1200,13 @@ process_remote_stonith_query(xmlNode * msg) - const char *device = ID(child); - int action_timeout = 0; - int verified = 0; -+ int required = 0; - - if (device) { - result->device_list = g_list_prepend(result->device_list, strdup(device)); - crm_element_value_int(child, F_STONITH_ACTION_TIMEOUT, &action_timeout); - crm_element_value_int(child, F_STONITH_DEVICE_VERIFIED, &verified); -+ crm_element_value_int(child, F_STONITH_DEVICE_REQUIRED, &required); - if (action_timeout) { - crm_trace("Peer %s with device %s returned action timeout %d", - result->host, device, action_timeout); -@@ -1181,6 +1218,13 @@ process_remote_stonith_query(xmlNode * msg) - g_hash_table_insert(result->verified_devices, - strdup(device), GINT_TO_POINTER(verified)); - } -+ if (required) { -+ crm_trace("Peer %s requires device %s to execute for action %s", -+ result->host, device, op->action); -+ /* This matters when executing a topology. Required devices will get -+ * executed regardless of their topology level. We use this for unfencing. */ -+ add_required_device(op, device); -+ } - } - } - -@@ -1312,10 +1356,14 @@ process_remote_stonith_exec(xmlNode * msg) - * Continue the topology if more devices exist at the current level, otherwise - * mark as done. */ - if (rc == pcmk_ok) { -+ GListPtr required_match = g_list_find_custom(op->required_list, device, sort_strings); - if (op->devices) { - /* Success, are there any more? */ - op->devices = op->devices->next; - } -+ if (required_match) { -+ op->required_list = g_list_remove(op->required_list, required_match->data); -+ } - /* if no more devices at this fencing level, we are done, - * else we need to contine with executing the next device in the list */ - if (op->devices == NULL) { -diff --git a/include/crm/fencing/internal.h b/include/crm/fencing/internal.h -index 2822e9a..3625cf9 100644 ---- a/include/crm/fencing/internal.h -+++ b/include/crm/fencing/internal.h -@@ -66,6 +66,8 @@ xmlNode *create_device_registration_xml(const char *id, const char *namespace, c - /*! Has this device been verified using a monitor type - * operation (monitor, list, status) */ - # define F_STONITH_DEVICE_VERIFIED "st_monitor_verified" -+/*! device is required for this action */ -+# define F_STONITH_DEVICE_REQUIRED "st_required" - # define F_STONITH_CALLBACK_TOKEN "st_async_id" - # define F_STONITH_CLIENTNAME "st_clientname" - # define F_STONITH_CLIENTNODE "st_clientnode" diff --git a/SOURCES/bz1078078-pcmk-fence_using_all_required_devices.patch b/SOURCES/bz1078078-pcmk-fence_using_all_required_devices.patch deleted file mode 100644 index 6a30090..0000000 --- a/SOURCES/bz1078078-pcmk-fence_using_all_required_devices.patch +++ /dev/null @@ -1,289 +0,0 @@ -commit 1928af7d8d2fc7d225df22caeb7ea93964f48bde -Author: David Vossel <dvossel@redhat.com> -Date: Wed Apr 16 10:28:46 2014 -0500 - - High: fencing: Fence using all required devices - - (cherry picked from commit 1f39dfe13d8cbfb5dd22f8324735319f81230fdb) - - Conflicts: - fencing/main.c - -diff --git a/fencing/commands.c b/fencing/commands.c -index 41690f7..8efb156 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -111,6 +111,20 @@ typedef struct async_command_s { - static xmlNode *stonith_construct_async_reply(async_command_t * cmd, const char *output, - xmlNode * data, int rc); - -+static gboolean -+is_action_required(const char *action, stonith_device_t *device) -+{ -+ if (device->required_actions == NULL) { -+ return FALSE; -+ } -+ -+ if (strstr(device->required_actions, action)) { -+ return TRUE; -+ } -+ -+ return FALSE; -+} -+ - static int - get_action_timeout(stonith_device_t * device, const char *action, int default_timeout) - { -@@ -318,6 +332,7 @@ free_device(gpointer data) - free_xml(device->agent_metadata); - free(device->namespace); - free(device->on_target_actions); -+ free(device->required_actions); - free(device->agent); - free(device->id); - free(device); -@@ -525,10 +540,24 @@ is_nodeid_required(xmlNode * xml) - return TRUE; - } - -+static char * -+add_action(char *actions, const char *action) -+{ -+ static size_t len = 256; -+ if (actions == NULL) { -+ actions = calloc(1, len); -+ } -+ if (strlen(actions)) { -+ g_strlcat(actions, " ", len); -+ } -+ g_strlcat(actions, action, len); -+ -+ return actions; -+} -+ - static void --get_on_target_actions(stonith_device_t *device) -+read_action_metadata(stonith_device_t *device) - { -- char *actions = NULL; - xmlXPathObjectPtr xpath = NULL; - int max = 0; - int lpc = 0; -@@ -545,40 +574,38 @@ get_on_target_actions(stonith_device_t *device) - return; - } - -- actions = calloc(1, 512); -- - for (lpc = 0; lpc < max; lpc++) { - const char *on_target = NULL; - const char *action = NULL; -+ const char *automatic = NULL; -+ const char *required = NULL; - xmlNode *match = getXpathResult(xpath, lpc); - - CRM_CHECK(match != NULL, continue); - - on_target = crm_element_value(match, "on_target"); - action = crm_element_value(match, "name"); -+ automatic = crm_element_value(match, "automatic"); -+ required = crm_element_value(match, "required"); - - if(safe_str_eq(action, "list")) { - set_bit(device->flags, st_device_supports_list); - } else if(safe_str_eq(action, "status")) { - set_bit(device->flags, st_device_supports_status); -+ } else if(safe_str_eq(action, "on") && (crm_is_true(automatic))) { -+ /* this setting implies required=true for unfencing */ -+ required = "true"; - } - - if (action && crm_is_true(on_target)) { -- if (strlen(actions)) { -- g_strlcat(actions, " ", 512); -- } -- g_strlcat(actions, action, 512); -+ device->on_target_actions = add_action(device->on_target_actions, action); -+ } -+ if (action && crm_is_true(required)) { -+ device->required_actions = add_action(device->required_actions, action); - } - } - - freeXpathObject(xpath); -- -- if (!strlen(actions)) { -- free(actions); -- actions = NULL; -- } -- -- device->on_target_actions = actions; - } - - static stonith_device_t * -@@ -603,13 +630,23 @@ build_device_from_xml(xmlNode * msg) - device->aliases = build_port_aliases(value, &(device->targets)); - - device->agent_metadata = get_agent_metadata(device->agent); -- get_on_target_actions(device); -+ read_action_metadata(device); - - value = g_hash_table_lookup(device->params, "nodeid"); - if (!value) { - device->include_nodeid = is_nodeid_required(device->agent_metadata); - } - -+ value = crm_element_value(dev, "rsc_provides"); -+ if (safe_str_eq(value, "unfencing")) { -+ /* if this agent requires unfencing, 'on' is considered a required action */ -+ device->required_actions = add_action(device->required_actions, "on"); -+ } -+ -+ if (is_action_required("on", device)) { -+ crm_info("The fencing device '%s' requires unfencing", device->id); -+ } -+ - if (device->on_target_actions) { - crm_info("The fencing device '%s' requires actions (%s) to be executed on the target node", - device->id, device->on_target_actions); -@@ -1460,6 +1497,7 @@ static void - st_child_done(GPid pid, int rc, const char *output, gpointer user_data) - { - stonith_device_t *device = NULL; -+ stonith_device_t *next_device = NULL; - async_command_t *cmd = user_data; - - GListPtr gIter = NULL; -@@ -1483,21 +1521,37 @@ st_child_done(GPid pid, int rc, const char *output, gpointer user_data) - mainloop_set_trigger(device->work); - } - -- crm_trace("Operation %s on %s completed with rc=%d (%d remaining)", -+ crm_debug("Operation '%s' on '%s' completed with rc=%d (%d remaining)", - cmd->action, cmd->device, rc, g_list_length(cmd->device_next)); - -- if (rc != 0 && cmd->device_next) { -- stonith_device_t *dev = g_hash_table_lookup(device_list, cmd->device_next->data); -- -- if (dev) { -- log_operation(cmd, rc, pid, dev->id, output); -+ if (rc == 0) { -+ GListPtr iter; -+ /* see if there are any required devices left to execute for this op */ -+ for (iter = cmd->device_next; iter != NULL; iter = iter->next) { -+ next_device = g_hash_table_lookup(device_list, iter->data); - -- cmd->device_next = cmd->device_next->next; -- schedule_stonith_command(cmd, dev); -- /* Prevent cmd from being freed */ -- cmd = NULL; -- goto done; -+ if (next_device != NULL && is_action_required(cmd->action, next_device)) { -+ cmd->device_next = iter->next; -+ break; -+ } -+ next_device = NULL; - } -+ -+ } else if (rc != 0 && cmd->device_next && (is_action_required(cmd->action, device) == FALSE)) { -+ /* if this device didn't work out, see if there are any others we can try. -+ * if the failed device was 'required', we can't pick another device. */ -+ next_device = g_hash_table_lookup(device_list, cmd->device_next->data); -+ cmd->device_next = cmd->device_next->next; -+ } -+ -+ /* this operation requires more fencing, hooray! */ -+ if (next_device) { -+ log_operation(cmd, rc, pid, device->id, output); -+ -+ schedule_stonith_command(cmd, next_device); -+ /* Prevent cmd from being freed */ -+ cmd = NULL; -+ goto done; - } - - if (rc > 0) { -diff --git a/fencing/internal.h b/fencing/internal.h -index 4e0525c..971a32f 100644 ---- a/fencing/internal.h -+++ b/fencing/internal.h -@@ -25,6 +25,7 @@ typedef struct stonith_device_s { - - /*! list of actions that must execute on the target node. Used for unfencing */ - char *on_target_actions; -+ char *required_actions; - GListPtr targets; - time_t targets_age; - gboolean has_attr_map; -diff --git a/fencing/main.c b/fencing/main.c -index e002125..16713fe 100644 ---- a/fencing/main.c -+++ b/fencing/main.c -@@ -645,9 +645,13 @@ static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) - const char *name = NULL; - const char *agent = crm_element_value(rsc->xml, XML_EXPR_ATTR_TYPE); - const char *provider = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); -+ const char *rsc_provides = NULL; - - crm_info("Device %s is allowed on %s: score=%d", rsc->id, stonith_our_uname, node->weight); - get_rsc_attributes(rsc->parameters, rsc, node, data_set); -+ get_meta_attributes(rsc->meta, rsc, node, data_set); -+ -+ rsc_provides = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_PROVIDES); - - g_hash_table_iter_init(&gIter, rsc->parameters); - while (g_hash_table_iter_next(&gIter, (gpointer *) & name, (gpointer *) & value)) { -@@ -658,7 +662,7 @@ static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) - crm_trace(" %s=%s", name, value); - } - -- data = create_device_registration_xml(rsc_name(rsc), provider, agent, params); -+ data = create_device_registration_xml(rsc_name(rsc), provider, agent, params, rsc_provides); - stonith_device_register(data, NULL, TRUE); - - stonith_key_value_freeall(params, 1, 1); -diff --git a/include/crm/fencing/internal.h b/include/crm/fencing/internal.h -index 4f30fed..2822e9a 100644 ---- a/include/crm/fencing/internal.h -+++ b/include/crm/fencing/internal.h -@@ -46,7 +46,7 @@ xmlNode *create_level_registration_xml(const char *node, int level, - stonith_key_value_t * device_list); - - xmlNode *create_device_registration_xml(const char *id, const char *namespace, const char *agent, -- stonith_key_value_t * params); -+ stonith_key_value_t * params, const char *rsc_provides); - - # define ST_LEVEL_MAX 10 - -diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c -index 2be854f..06e0726 100644 ---- a/lib/fencing/st_client.c -+++ b/lib/fencing/st_client.c -@@ -178,7 +178,7 @@ stonith_connection_destroy(gpointer user_data) - - xmlNode * - create_device_registration_xml(const char *id, const char *namespace, const char *agent, -- stonith_key_value_t * params) -+ stonith_key_value_t * params, const char *rsc_provides) - { - xmlNode *data = create_xml_node(NULL, F_STONITH_DEVICE); - xmlNode *args = create_xml_node(data, XML_TAG_ATTRS); -@@ -195,6 +195,9 @@ create_device_registration_xml(const char *id, const char *namespace, const char - crm_xml_add(data, "origin", __FUNCTION__); - crm_xml_add(data, "agent", agent); - crm_xml_add(data, "namespace", namespace); -+ if (rsc_provides) { -+ crm_xml_add(data, "rsc_provides", rsc_provides); -+ } - - for (; params; params = params->next) { - hash2field((gpointer) params->key, (gpointer) params->value, args); -@@ -211,7 +214,7 @@ stonith_api_register_device(stonith_t * st, int call_options, - int rc = 0; - xmlNode *data = NULL; - -- data = create_device_registration_xml(id, namespace, agent, params); -+ data = create_device_registration_xml(id, namespace, agent, params, NULL); - - rc = stonith_send_command(st, STONITH_OP_DEVICE_ADD, data, NULL, call_options, 0); - free_xml(data); diff --git a/SOURCES/bz1078078-pcmk-fencing_automatically_switch_from_list_to_status_to_static_list_if_those_actions_are_not_advertised_in_the_metadata.patch b/SOURCES/bz1078078-pcmk-fencing_automatically_switch_from_list_to_status_to_static_list_if_those_actions_are_not_advertised_in_the_metadata.patch deleted file mode 100644 index 247d9d7..0000000 --- a/SOURCES/bz1078078-pcmk-fencing_automatically_switch_from_list_to_status_to_static_list_if_those_actions_are_not_advertised_in_the_metadata.patch +++ /dev/null @@ -1,114 +0,0 @@ -commit 0fb13527630fd308d533110ab91b7cf00538e8da -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 9 09:05:36 2014 +1000 - - Fix: fencing: Automatically switch from 'list' to 'status' to 'static-list' if those actions are not advertised in the metadata - - (cherry picked from commit b87c249c7b862f6bac424e5d0bb5528e8f7b9c94) - -diff --git a/fencing/commands.c b/fencing/commands.c -index 909dc24..14933a5 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -524,24 +524,24 @@ is_nodeid_required(xmlNode * xml) - return TRUE; - } - --static char * --get_on_target_actions(xmlNode * xml) -+static void -+get_on_target_actions(stonith_device_t *device) - { - char *actions = NULL; - xmlXPathObjectPtr xpath = NULL; - int max = 0; - int lpc = 0; - -- if (!xml) { -- return NULL; -+ if (device->agent_metadata == NULL) { -+ return; - } - -- xpath = xpath_search(xml, "//action"); -+ xpath = xpath_search(device->agent_metadata, "//action"); - max = numXpathResults(xpath); - - if (max <= 0) { - freeXpathObject(xpath); -- return NULL; -+ return; - } - - actions = calloc(1, 512); -@@ -556,6 +556,12 @@ get_on_target_actions(xmlNode * xml) - on_target = crm_element_value(match, "on_target"); - action = crm_element_value(match, "name"); - -+ if(safe_str_eq(action, "list")) { -+ set_bit(device->flags, st_device_supports_list); -+ } else if(safe_str_eq(action, "status")) { -+ set_bit(device->flags, st_device_supports_status); -+ } -+ - if (action && crm_is_true(on_target)) { - if (strlen(actions)) { - g_strlcat(actions, " ", 512); -@@ -571,7 +577,7 @@ get_on_target_actions(xmlNode * xml) - actions = NULL; - } - -- return actions; -+ device->on_target_actions = actions; - } - - static stonith_device_t * -@@ -596,7 +602,7 @@ build_device_from_xml(xmlNode * msg) - device->aliases = build_port_aliases(value, &(device->targets)); - - device->agent_metadata = get_agent_metadata(device->agent); -- device->on_target_actions = get_on_target_actions(device->agent_metadata); -+ get_on_target_actions(device); - - value = g_hash_table_lookup(device->params, "nodeid"); - if (!value) { -@@ -627,8 +633,12 @@ target_list_type(stonith_device_t * dev) - check_type = "static-list"; - } else if (g_hash_table_lookup(dev->params, STONITH_ATTR_HOSTMAP)) { - check_type = "static-list"; -- } else { -+ } else if(is_set(dev->flags, st_device_supports_list)){ - check_type = "dynamic-list"; -+ } else if(is_set(dev->flags, st_device_supports_status)){ -+ check_type = "status"; -+ } else { -+ check_type = "none"; - } - } - -diff --git a/fencing/internal.h b/fencing/internal.h -index da510c3..4e0525c 100644 ---- a/fencing/internal.h -+++ b/fencing/internal.h -@@ -12,6 +12,12 @@ - */ - gboolean stonith_check_fence_tolerance(int tolerance, const char *target, const char *action); - -+enum st_device_flags -+{ -+ st_device_supports_list = 0x0001, -+ st_device_supports_status = 0x0002, -+}; -+ - typedef struct stonith_device_s { - char *id; - char *agent; -@@ -27,6 +33,8 @@ typedef struct stonith_device_s { - guint priority; - guint active_pid; - -+ enum st_device_flags flags; -+ - GHashTable *params; - GHashTable *aliases; - GList *pending_ops; diff --git a/SOURCES/bz1078078-pcmk-fencing_correctly_record_which_peer_performed_the_fencing_operation.patch b/SOURCES/bz1078078-pcmk-fencing_correctly_record_which_peer_performed_the_fencing_operation.patch deleted file mode 100644 index b7dc219..0000000 --- a/SOURCES/bz1078078-pcmk-fencing_correctly_record_which_peer_performed_the_fencing_operation.patch +++ /dev/null @@ -1,53 +0,0 @@ -commit e40eaf4a1ba1787696a2fea3043e2620a5d98e3c -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Apr 10 11:50:46 2014 +1000 - - Fix: Fencing: Correctly record which peer performed the fencing operation - - (cherry picked from commit a932361589964545f76376009d7ff7a61f03cab3) - -diff --git a/fencing/commands.c b/fencing/commands.c -index abbb1ad..41690f7 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -1405,7 +1405,8 @@ stonith_send_async_reply(async_command_t * cmd, const char *output, int rc, GPid - crm_xml_add_int(notify_data, F_STONITH_RC, rc); - crm_xml_add(notify_data, F_STONITH_TARGET, cmd->victim); - crm_xml_add(notify_data, F_STONITH_OPERATION, cmd->op); -- crm_xml_add(notify_data, F_STONITH_DELEGATE, cmd->device); -+ crm_xml_add(notify_data, F_STONITH_DELEGATE, "localhost"); -+ crm_xml_add(notify_data, F_STONITH_DEVICE, cmd->device); - crm_xml_add(notify_data, F_STONITH_REMOTE_OP_ID, cmd->remote_op_id); - crm_xml_add(notify_data, F_STONITH_ORIGIN, cmd->client); - -diff --git a/fencing/remote.c b/fencing/remote.c -index 399dce5..fd25025 100644 ---- a/fencing/remote.c -+++ b/fencing/remote.c -@@ -267,7 +267,12 @@ remote_op_done(remote_fencing_op_t * op, xmlNode * data, int rc, int dup) - } - - if (!op->delegate && data) { -- op->delegate = crm_element_value_copy(data, F_ORIG); -+ xmlNode *ndata = get_xpath_object("//@" F_STONITH_DELEGATE, data, LOG_WARNING); -+ if(ndata) { -+ op->delegate = crm_element_value_copy(ndata, F_STONITH_DELEGATE); -+ } else { -+ op->delegate = crm_element_value_copy(data, F_ORIG); -+ } - } - - if (data == NULL) { -diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c -index 95ea0f7..2be854f 100644 ---- a/lib/fencing/st_client.c -+++ b/lib/fencing/st_client.c -@@ -1981,6 +1981,8 @@ xml_to_event(xmlNode * msg) - event->executioner = crm_element_value_copy(data, F_STONITH_DELEGATE); - event->id = crm_element_value_copy(data, F_STONITH_REMOTE_OP_ID); - event->client_origin = crm_element_value_copy(data, F_STONITH_CLIENTNAME); -+ event->device = crm_element_value_copy(data, F_STONITH_DEVICE); -+ - } else { - crm_err("No data for %s event", ntype); - crm_log_xml_notice(msg, "BadEvent"); diff --git a/SOURCES/bz1078078-pcmk-filter_self_fencing_at_the_peers_to_allow_unfencing_to_work_correctly.patch b/SOURCES/bz1078078-pcmk-filter_self_fencing_at_the_peers_to_allow_unfencing_to_work_correctly.patch deleted file mode 100644 index 71fca5e..0000000 --- a/SOURCES/bz1078078-pcmk-filter_self_fencing_at_the_peers_to_allow_unfencing_to_work_correctly.patch +++ /dev/null @@ -1,222 +0,0 @@ -commit 5fbd9decbca3f40a8b29e9d1ef5d158808f71cf6 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 9 14:40:30 2014 +1000 - - Fix: fencing: Filter self-fencing at the peers to allow unfencing to work correctly - - (cherry picked from commit e1e7d7fad2b5ade3c6e433cb1b631d071b8d5e70) - - Conflicts: - fencing/commands.c - fencing/remote.c - -diff --git a/fencing/commands.c b/fencing/commands.c -index 14933a5..abbb1ad 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -60,6 +60,7 @@ struct device_search_s { - int per_device_timeout; - int replies_needed; - int replies_received; -+ bool allow_suicide; - - void *user_data; - void (*callback) (GList * devices, void *user_data); -@@ -1072,8 +1073,17 @@ can_fence_host_with_device(stonith_device_t * dev, struct device_search_s *searc - - if (dev->on_target_actions && - search->action && -- strstr(dev->on_target_actions, search->action) && safe_str_neq(host, stonith_our_uname)) { -+ strstr(dev->on_target_actions, search->action)) { - /* this device can only execute this action on the target node */ -+ -+ if(safe_str_neq(host, stonith_our_uname)) { -+ crm_trace("%s operation with %s can only be executed for localhost not %s", -+ search->action, dev->id, host); -+ goto search_report_results; -+ } -+ -+ } else if(safe_str_eq(host, stonith_our_uname) && search->allow_suicide == FALSE) { -+ crm_trace("%s operation does not support self-fencing", search->action); - goto search_report_results; - } - -@@ -1146,7 +1156,7 @@ search_devices(gpointer key, gpointer value, gpointer user_data) - - #define DEFAULT_QUERY_TIMEOUT 20 - static void --get_capable_devices(const char *host, const char *action, int timeout, void *user_data, -+get_capable_devices(const char *host, const char *action, int timeout, bool suicide, void *user_data, - void (*callback) (GList * devices, void *user_data)) - { - struct device_search_s *search; -@@ -1199,6 +1209,7 @@ get_capable_devices(const char *host, const char *action, int timeout, void *use - * unregistered some how during the async search, we will get - * the correct number of replies. */ - search->replies_needed = g_hash_table_size(device_list); -+ search->allow_suicide = suicide; - search->callback = callback; - search->user_data = user_data; - /* kick off the search */ -@@ -1313,7 +1324,9 @@ stonith_query(xmlNode * msg, const char *remote_peer, const char *client_id, int - query->action = action ? strdup(action) : NULL; - query->call_options = call_options; - -- get_capable_devices(target, action, timeout, query, stonith_query_capable_device_cb); -+ get_capable_devices(target, action, timeout, -+ is_set(call_options, st_opt_allow_suicide), -+ query, stonith_query_capable_device_cb); - } - - #define ST_LOG_OUTPUT_MAX 512 -@@ -1632,8 +1645,10 @@ stonith_fence(xmlNode * msg) - host = node->uname; - } - } -- get_capable_devices(host, cmd->action, cmd->default_timeout, cmd, -- stonith_fence_get_devices_cb); -+ -+ /* If we get to here, then self-fencing is implicitly allowed */ -+ get_capable_devices(host, cmd->action, cmd->default_timeout, -+ TRUE, cmd, stonith_fence_get_devices_cb); - } - - return -EINPROGRESS; -diff --git a/fencing/remote.c b/fencing/remote.c -index 8c8df6d..399dce5 100644 ---- a/fencing/remote.c -+++ b/fencing/remote.c -@@ -558,6 +558,7 @@ create_remote_stonith_op(const char *client, xmlNode * request, gboolean peer) - { - remote_fencing_op_t *op = NULL; - xmlNode *dev = get_xpath_object("//@" F_STONITH_TARGET, request, LOG_TRACE); -+ int call_options = 0; - - if (remote_op_list == NULL) { - remote_op_list = g_hash_table_new_full(crm_str_hash, g_str_equal, NULL, free_remote_op); -@@ -612,7 +613,9 @@ create_remote_stonith_op(const char *client, xmlNode * request, gboolean peer) - - op->target = crm_element_value_copy(dev, F_STONITH_TARGET); - op->request = copy_xml(request); /* TODO: Figure out how to avoid this */ -- crm_element_value_int(request, F_STONITH_CALLOPTS, (int *)&(op->call_options)); -+ crm_element_value_int(request, F_STONITH_CALLOPTS, &call_options); -+ op->call_options = call_options; -+ - crm_element_value_int(request, F_STONITH_CALLID, (int *)&(op->client_callid)); - - crm_trace("%s new stonith op: %s - %s of %s for %s", -@@ -662,7 +665,7 @@ initiate_remote_stonith_op(crm_client_t * client, xmlNode * request, gboolean ma - op->target, op->id); - return op; - } -- -+ - CRM_CHECK(op->action, return NULL); - - if (stonith_topology_next(op) != pcmk_ok) { -@@ -695,6 +698,7 @@ initiate_remote_stonith_op(crm_client_t * client, xmlNode * request, gboolean ma - crm_xml_add(query, F_STONITH_CLIENTID, op->client_id); - crm_xml_add(query, F_STONITH_CLIENTNAME, op->client_name); - crm_xml_add_int(query, F_STONITH_TIMEOUT, op->base_timeout); -+ crm_xml_add_int(query, F_STONITH_CALLOPTS, op->call_options); - - send_cluster_message(NULL, crm_msg_stonith_ng, query, FALSE); - free_xml(query); -@@ -964,29 +968,30 @@ call_remote_stonith(remote_fencing_op_t * op, st_query_result_t * peer) - - if (peer) { - int timeout_one = 0; -- xmlNode *query = stonith_create_op(op->client_callid, op->id, STONITH_OP_FENCE, NULL, 0); -+ xmlNode *remote_op = stonith_create_op(op->client_callid, op->id, STONITH_OP_FENCE, NULL, 0); - -- crm_xml_add(query, F_STONITH_REMOTE_OP_ID, op->id); -- crm_xml_add(query, F_STONITH_TARGET, op->target); -- crm_xml_add(query, F_STONITH_ACTION, op->action); -- crm_xml_add(query, F_STONITH_ORIGIN, op->originator); -- crm_xml_add(query, F_STONITH_CLIENTID, op->client_id); -- crm_xml_add(query, F_STONITH_CLIENTNAME, op->client_name); -- crm_xml_add_int(query, F_STONITH_TIMEOUT, timeout); -+ crm_xml_add(remote_op, F_STONITH_REMOTE_OP_ID, op->id); -+ crm_xml_add(remote_op, F_STONITH_TARGET, op->target); -+ crm_xml_add(remote_op, F_STONITH_ACTION, op->action); -+ crm_xml_add(remote_op, F_STONITH_ORIGIN, op->originator); -+ crm_xml_add(remote_op, F_STONITH_CLIENTID, op->client_id); -+ crm_xml_add(remote_op, F_STONITH_CLIENTNAME, op->client_name); -+ crm_xml_add_int(remote_op, F_STONITH_TIMEOUT, timeout); -+ crm_xml_add_int(remote_op, F_STONITH_CALLOPTS, op->call_options); - - if (device) { - timeout_one = - TIMEOUT_MULTIPLY_FACTOR * get_device_timeout(peer, device, op->base_timeout); - crm_info("Requesting that %s perform op %s %s with %s for %s (%ds)", peer->host, - op->action, op->target, device, op->client_name, timeout_one); -- crm_xml_add(query, F_STONITH_DEVICE, device); -- crm_xml_add(query, F_STONITH_MODE, "slave"); -+ crm_xml_add(remote_op, F_STONITH_DEVICE, device); -+ crm_xml_add(remote_op, F_STONITH_MODE, "slave"); - - } else { - timeout_one = TIMEOUT_MULTIPLY_FACTOR * get_peer_timeout(peer, op->base_timeout); - crm_info("Requesting that %s perform op %s %s for %s (%ds)", - peer->host, op->action, op->target, op->client_name, timeout_one); -- crm_xml_add(query, F_STONITH_MODE, "smart"); -+ crm_xml_add(remote_op, F_STONITH_MODE, "smart"); - } - - op->state = st_exec; -@@ -995,9 +1000,9 @@ call_remote_stonith(remote_fencing_op_t * op, st_query_result_t * peer) - } - op->op_timer_one = g_timeout_add((1000 * timeout_one), remote_op_timeout_one, op); - -- send_cluster_message(crm_get_peer(0, peer->host), crm_msg_stonith_ng, query, FALSE); -+ send_cluster_message(crm_get_peer(0, peer->host), crm_msg_stonith_ng, remote_op, FALSE); - peer->tried = TRUE; -- free_xml(query); -+ free_xml(remote_op); - return; - - } else if (op->owner == FALSE) { -@@ -1131,24 +1136,20 @@ process_remote_stonith_query(xmlNode * msg) - - if (devices <= 0) { - /* If we're doing 'known' then we might need to fire anyway */ -- crm_trace("Query result from %s (%d devices)", host, devices); -+ crm_trace("Query result %d of %d from %s for %s/%s (%d devices) %s", -+ op->replies, op->replies_expected, host, -+ op->target, op->action, devices, id); - if(op->state == st_query && (op->replies >= op->replies_expected || op->replies >= active)) { -- crm_info("All queries have arrived, continuing (%d, %d, %d) ", op->replies_expected, active, op->replies); -+ crm_info("All queries have arrived, continuing (%d, %d, %d, %s)", -+ op->replies_expected, active, op->replies, id); - call_remote_stonith(op, NULL); - } - return pcmk_ok; -- -- } else if (host_is_target) { -- if (op->call_options & st_opt_allow_suicide) { -- crm_trace("Allowing %s to potentialy fence itself", op->target); -- } else { -- crm_info("Ignoring reply from %s, hosts are not permitted to commit suicide", -- op->target); -- return pcmk_ok; -- } - } - -- crm_info("Query result %d of %d from %s (%d devices)", op->replies, op->replies_expected, host, devices); -+ crm_info("Query result %d of %d from %s for %s/%s (%d devices) %s", -+ op->replies, op->replies_expected, host, -+ op->target, op->action, devices, id); - result = calloc(1, sizeof(st_query_result_t)); - result->host = strdup(host); - result->devices = devices; -@@ -1206,10 +1207,6 @@ process_remote_stonith_query(xmlNode * msg) - crm_trace("Found %d verified devices", g_hash_table_size(result->verified_devices)); - call_remote_stonith(op, result); - -- } else if (safe_str_eq(op->action, "on")) { -- crm_trace("Unfencing %s", op->target); -- call_remote_stonith(op, result); -- - } else if(op->replies >= op->replies_expected || op->replies >= active) { - crm_info("All queries have arrived, continuing (%d, %d, %d) ", op->replies_expected, active, op->replies); - call_remote_stonith(op, NULL); diff --git a/SOURCES/bz1078078-pcmk-logging_daemons_always_get_a_log_file_unless_explicitly_set_to_configured_none.patch b/SOURCES/bz1078078-pcmk-logging_daemons_always_get_a_log_file_unless_explicitly_set_to_configured_none.patch deleted file mode 100644 index 9e30fea..0000000 --- a/SOURCES/bz1078078-pcmk-logging_daemons_always_get_a_log_file_unless_explicitly_set_to_configured_none.patch +++ /dev/null @@ -1,40 +0,0 @@ -commit 63547179498c939dc1c3450c85fac23b3c86742c -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Apr 8 11:26:56 2014 +1000 - - Feature: logging: daemons always get a log file, unless explicitly set to configured 'none' - - (cherry picked from commit 8410680fbd7d5d1fea8e411fdf32f9c3ebe889cb) - -diff --git a/lib/common/logging.c b/lib/common/logging.c -index 571cd03..ad6bcfd 100644 ---- a/lib/common/logging.c -+++ b/lib/common/logging.c -@@ -696,7 +696,12 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - - crm_enable_stderr(to_stderr); - -- if (logfile) { -+ if (safe_str_eq("none", logfile)) { -+ /* No soup^Hlogs for you! */ -+ } else if(crm_is_daemon) { -+ /* The daemons always get a log file, unless explicitly set to configured 'none' */ -+ crm_add_logfile(logfile); -+ } else if(logfile) { - crm_add_logfile(logfile); - } - -@@ -718,13 +723,6 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - set_daemon_option("logfacility", facility); - } - -- if (crm_is_daemon && crm_tracing_enabled() -- && qb_log_ctl(QB_LOG_STDERR, QB_LOG_CONF_STATE_GET, 0) != QB_LOG_STATE_ENABLED -- && qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_STATE_GET, 0) != QB_LOG_STATE_ENABLED) { -- /* Make sure tracing goes somewhere */ -- crm_add_logfile(NULL); -- } -- - crm_update_callsites(); - - /* Ok, now we can start logging... */ diff --git a/SOURCES/bz1078078-pcmk-logging_simplify_processing_of_logging_directives.patch b/SOURCES/bz1078078-pcmk-logging_simplify_processing_of_logging_directives.patch deleted file mode 100644 index 5a3de7a..0000000 --- a/SOURCES/bz1078078-pcmk-logging_simplify_processing_of_logging_directives.patch +++ /dev/null @@ -1,349 +0,0 @@ -commit 3cd57be790a6455b115d07c31bdb9a72767d7ee8 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Apr 8 14:45:24 2014 +1000 - - Refactor: logging: Simplify processing of logging directives - - (cherry picked from commit b3b5a57bca646377f644ff91ff724062ec8ec460) - - Conflicts: - mcp/corosync.c - -diff --git a/lib/ais/utils.c b/lib/ais/utils.c -index 465e381..0a3f95e 100644 ---- a/lib/ais/utils.c -+++ b/lib/ais/utils.c -@@ -237,7 +237,7 @@ spawn_child(crm_child_t * child) - /* *INDENT-ON* */ - - if (pcmk_env.logfile) { -- setenv("HA_debugfile", pcmk_env.logfile, 1); -+ setenv("HA_logfile", pcmk_env.logfile, 1); - } - - if (use_valgrind) { -diff --git a/lib/common/logging.c b/lib/common/logging.c -index ad6bcfd..167583e 100644 ---- a/lib/common/logging.c -+++ b/lib/common/logging.c -@@ -234,6 +234,10 @@ crm_add_logfile(const char *filename) - - if (filename == NULL) { - return FALSE; /* Nothing to do */ -+ } else if(safe_str_eq(filename, "none")) { -+ return FALSE; /* Nothing to do */ -+ } else if(safe_str_eq(filename, "/dev/null")) { -+ return FALSE; /* Nothing to do */ - } - - /* Check the parent directory */ -@@ -317,6 +321,7 @@ crm_add_logfile(const char *filename) - /* Enable callsites */ - crm_update_callsites(); - have_logfile = TRUE; -+ - return TRUE; - } - -@@ -623,7 +628,8 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - int argc, char **argv, gboolean quiet) - { - int lpc = 0; -- const char *logfile = daemon_option("debugfile"); -+ int32_t qb_facility = 0; -+ const char *logfile = daemon_option("logfile"); - const char *facility = daemon_option("logfacility"); - const char *f_copy = facility; - -@@ -643,14 +649,7 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - /* and for good measure... - this enum is a bit field (!) */ - g_log_set_always_fatal((GLogLevelFlags) 0); /*value out of range */ - -- if (facility == NULL) { -- facility = "daemon"; -- -- } else if (safe_str_eq(facility, "none")) { -- facility = "daemon"; -- quiet = TRUE; -- } -- -+ /* Who do we log as */ - if (entity) { - free(crm_system_name); - crm_system_name = strdup(entity); -@@ -673,29 +672,54 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - - setenv("PCMK_service", crm_system_name, 1); - -- if (daemon_option_enabled(crm_system_name, "debug")) { -- /* Override the default setting */ -- level = LOG_DEBUG; -+ /* Should we log to syslog */ -+ if (facility == NULL) { -+ if(crm_is_daemon) { -+ facility = "daemon"; -+ } else { -+ facility = "none"; -+ } -+ set_daemon_option("logfacility", facility); - } - -- if (daemon_option_enabled(crm_system_name, "stderr")) { -+ if (safe_str_eq(facility, "none")) { -+ quiet = TRUE; -+ qb_facility = qb_log_facility2int("daemon"); -+ -+ } else { -+ qb_facility = qb_log_facility2int(facility); -+ } -+ -+ if (daemon_option_enabled(crm_system_name, "debug")) { - /* Override the default setting */ -- to_stderr = TRUE; -+ level = LOG_DEBUG; - } - -+ /* What lower threshold do we have for sending to syslog */ - crm_log_priority = crm_priority2int(daemon_option("logpriority")); - - crm_log_level = level; -- qb_log_init(crm_system_name, qb_log_facility2int(facility), level); -- qb_log_tags_stringify_fn_set(crm_quark_to_string); -+ qb_log_init(crm_system_name, qb_facility, crm_log_level); - -- /* Set default format strings */ -+ if (quiet) { -+ /* Nuke any syslog activity */ -+ qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_ENABLED, QB_FALSE); -+ } -+ -+ /* Set format strings */ -+ qb_log_tags_stringify_fn_set(crm_quark_to_string); - for (lpc = QB_LOG_SYSLOG; lpc < QB_LOG_TARGET_MAX; lpc++) { - set_format_string(lpc, crm_system_name); - } - -+ /* Should we log to stderr */ -+ if (daemon_option_enabled(crm_system_name, "stderr")) { -+ /* Override the default setting */ -+ to_stderr = TRUE; -+ } - crm_enable_stderr(to_stderr); - -+ /* Should we log to a file */ - if (safe_str_eq("none", logfile)) { - /* No soup^Hlogs for you! */ - } else if(crm_is_daemon) { -@@ -709,20 +733,11 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - crm_enable_blackbox(0); - } - -+ /* Summary */ - crm_trace("Quiet: %d, facility %s", quiet, f_copy); -- daemon_option("debugfile"); -+ daemon_option("logfile"); - daemon_option("logfacility"); - -- if (quiet) { -- /* Nuke any syslog activity */ -- facility = NULL; -- qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_ENABLED, QB_FALSE); -- } -- -- if (crm_is_daemon) { -- set_daemon_option("logfacility", facility); -- } -- - crm_update_callsites(); - - /* Ok, now we can start logging... */ -diff --git a/mcp/corosync.c b/mcp/corosync.c -index a97c8d8..24f5c22 100644 ---- a/mcp/corosync.c -+++ b/mcp/corosync.c -@@ -266,16 +266,9 @@ mcp_read_config(void) - { - int rc = CS_OK; - int retries = 0; -- gboolean have_log = FALSE; - - const char *const_value = NULL; - -- char *logging_debug = NULL; -- char *logging_logfile = NULL; -- char *logging_to_logfile = NULL; -- char *logging_to_syslog = NULL; -- char *logging_syslog_facility = NULL; -- - #if HAVE_CONFDB - char *value = NULL; - confdb_handle_t config = 0; -@@ -379,35 +372,83 @@ mcp_read_config(void) - #endif - - /* =::=::= Logging =::=::= */ -- get_config_opt(config, local_handle, KEY_PREFIX "debug", &logging_debug, "off"); -+ if (daemon_option("debug")) { -+ /* Syslog logging is already setup by crm_log_init() */ -+ -+ } else { -+ /* Check corosync */ -+ char *debug_enabled = NULL; -+ -+ get_config_opt(config, local_handle, KEY_PREFIX "debug", &debug_enabled, "off"); -+ -+ if (crm_is_true(debug_enabled)) { -+ set_daemon_option("debug", "1"); -+ if (get_crm_log_level() < LOG_DEBUG) { -+ set_crm_log_level(LOG_DEBUG); -+ } -+ -+ } else { -+ set_daemon_option("debug", "0"); -+ } -+ -+ free(debug_enabled); -+ } - - const_value = daemon_option("debugfile"); -- if (const_value) { -- logging_to_logfile = strdup("on"); -- logging_logfile = strdup(const_value); -- crm_trace("Using debugfile setting from the environment: %s", logging_logfile); -+ if (daemon_option("logfile")) { -+ /* File logging is already setup by crm_log_init() */ -+ -+ } else if(const_value) { -+ /* From when we cared what options heartbeat used */ -+ set_daemon_option("logfile", const_value); -+ crm_add_logfile(const_value); - - } else { -- get_config_opt(config, local_handle, KEY_PREFIX "to_logfile", &logging_to_logfile, "off"); -- get_config_opt(config, local_handle, KEY_PREFIX "logfile", &logging_logfile, -- "/var/log/pacemaker"); -- } -+ /* Check corosync */ -+ char *logfile = NULL; -+ char *logfile_enabled = NULL; -+ -+ get_config_opt(config, local_handle, KEY_PREFIX "to_logfile", &logfile_enabled, "on"); -+ get_config_opt(config, local_handle, KEY_PREFIX "logfile", &logfile, "/var/log/pacemaker.log"); -+ -+ if (crm_is_true(logfile_enabled) == FALSE) { -+ crm_trace("File logging disabled in corosync"); - -- const_value = daemon_option("logfacility"); -- if (const_value) { -- logging_syslog_facility = strdup(const_value); -- crm_trace("Using logfacility setting from the environment: %s", logging_syslog_facility); -+ } else if (crm_add_logfile(logfile)) { -+ set_daemon_option("logfile", logfile); - -- if (safe_str_eq(logging_syslog_facility, "none")) { -- logging_to_syslog = strdup("off"); - } else { -- logging_to_syslog = strdup("on"); -+ crm_err("Couldn't create logfile: %s", logfile); -+ set_daemon_option("logfile", "none"); - } - -+ free(logfile); -+ free(logfile_enabled); -+ } -+ -+ if (daemon_option("logfacility")) { -+ /* Syslog logging is already setup by crm_log_init() */ -+ - } else { -- get_config_opt(config, local_handle, KEY_PREFIX "to_syslog", &logging_to_syslog, "on"); -- get_config_opt(config, local_handle, KEY_PREFIX "syslog_facility", &logging_syslog_facility, -- "daemon"); -+ /* Check corosync */ -+ char *syslog_enabled = NULL; -+ char *syslog_facility = NULL; -+ -+ get_config_opt(config, local_handle, KEY_PREFIX "to_syslog", &syslog_enabled, "on"); -+ get_config_opt(config, local_handle, KEY_PREFIX "syslog_facility", &syslog_facility, "daemon"); -+ -+ if (crm_is_true(syslog_enabled) == FALSE) { -+ qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_ENABLED, QB_FALSE); -+ set_daemon_option("logfacility", "none"); -+ -+ } else { -+ qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_FACILITY, qb_log_facility2int(syslog_facility)); -+ qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_ENABLED, QB_TRUE); -+ set_daemon_option("logfacility", syslog_facility); -+ } -+ -+ free(syslog_enabled); -+ free(syslog_facility); - } - - #if HAVE_CONFDB -@@ -429,52 +470,5 @@ mcp_read_config(void) - cmap_finalize(local_handle); - #endif - -- if (daemon_option("debug")) { -- crm_trace("Using debug setting from the environment: %s", daemon_option("debug")); -- if (get_crm_log_level() < LOG_DEBUG && daemon_option_enabled("pacemakerd", "debug")) { -- set_crm_log_level(LOG_DEBUG); -- } -- -- } else if (crm_is_true(logging_debug)) { -- set_daemon_option("debug", "1"); -- if (get_crm_log_level() < LOG_DEBUG) { -- set_crm_log_level(LOG_DEBUG); -- } -- -- } else { -- set_daemon_option("debug", "0"); -- } -- -- if (crm_is_true(logging_to_logfile)) { -- if (crm_add_logfile(logging_logfile)) { -- /* What a cluster fsck, eventually we need to mandate /one/ */ -- set_daemon_option("debugfile", logging_logfile); -- set_daemon_option("DEBUGLOG", logging_logfile); -- have_log = TRUE; -- -- } else { -- crm_err("Couldn't create logfile: %s", logging_logfile); -- } -- } -- -- if (have_log && crm_is_true(logging_to_syslog) == FALSE) { -- qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_ENABLED, QB_FALSE); -- free(logging_syslog_facility); -- logging_syslog_facility = strdup("none"); -- crm_info("User configured file based logging and explicitly disabled syslog."); -- -- } else if (crm_is_true(logging_to_syslog) == FALSE) { -- crm_err("Please enable some sort of logging, either 'to_logfile: on' or 'to_syslog: on'."); -- crm_err("If you use file logging, be sure to also define a value for 'logfile'"); -- } -- -- set_daemon_option("logfacility", logging_syslog_facility); -- setenv("HA_LOGFACILITY", logging_syslog_facility, 1); -- -- free(logging_debug); -- free(logging_logfile); -- free(logging_to_logfile); -- free(logging_to_syslog); -- free(logging_syslog_facility); - return TRUE; - } -diff --git a/mcp/pacemaker.sysconfig b/mcp/pacemaker.sysconfig -index 7f12111..50b4814 100644 ---- a/mcp/pacemaker.sysconfig -+++ b/mcp/pacemaker.sysconfig -@@ -14,7 +14,7 @@ - # Send INFO (and higher) messages to the named log file - # Additional messages may also appear here depending on any configured debug and trace settings - # By default Pacemaker will inherit the logfile specified in corosync.conf --# PCMK_debugfile=/var/log/pacemaker.log -+# PCMK_logfile=/var/log/pacemaker.log - - # Specify an alternate syslog target for NOTICE (and higher) messages - # Use 'none' to disable - not recommended diff --git a/SOURCES/bz1078078-pcmk-lrmd_expose_logging_variables_expected_by_ocf_agents.patch b/SOURCES/bz1078078-pcmk-lrmd_expose_logging_variables_expected_by_ocf_agents.patch deleted file mode 100644 index 31ff71b..0000000 --- a/SOURCES/bz1078078-pcmk-lrmd_expose_logging_variables_expected_by_ocf_agents.patch +++ /dev/null @@ -1,41 +0,0 @@ -commit 20d6b6e542b9814b081355ed19874f75445b0901 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Apr 8 15:44:00 2014 +1000 - - Fix: lrmd: Expose logging variables expected by OCF agents - - (cherry picked from commit fa8bd56b776b97c3c845986d084c01b4aaf4063c) - -diff --git a/lrmd/main.c b/lrmd/main.c -index 38c5466..8e00f11 100644 ---- a/lrmd/main.c -+++ b/lrmd/main.c -@@ -246,6 +246,7 @@ main(int argc, char **argv) - int rc = 0; - int flag = 0; - int index = 0; -+ const char *option = NULL; - - #ifdef ENABLE_PCMK_REMOTE - crm_log_init("pacemaker_remoted", LOG_INFO, TRUE, FALSE, argc, argv, FALSE); -@@ -282,6 +283,20 @@ main(int argc, char **argv) - } - } - -+ option = daemon_option("logfacility"); -+ if(safe_str_neq(option, "none")) { -+ setenv("HA_LOGFACILITY", option, 1); /* Used by the ocf_log/ha_log OCF macro */ -+ } -+ -+ option = daemon_option("logfile"); -+ if(safe_str_neq(option, "none")) { -+ setenv("HA_LOGFILE", option, 1); /* Used by the ocf_log/ha_log OCF macro */ -+ -+ if (daemon_option_enabled(crm_system_name, "debug")) { -+ setenv("HA_DEBUGLOG", option, 1); /* Used by the ocf_log/ha_debug OCF macro */ -+ } -+ } -+ - /* Used by RAs - Leave owned by root */ - crm_build_path(CRM_RSCTMP_DIR, 0755); - diff --git a/SOURCES/bz1078078-pcmk-lrmd_provide_stderr_output_from_agents_if_available_otherwise_fall_back_to_stdout.patch b/SOURCES/bz1078078-pcmk-lrmd_provide_stderr_output_from_agents_if_available_otherwise_fall_back_to_stdout.patch deleted file mode 100644 index 9ad7774..0000000 --- a/SOURCES/bz1078078-pcmk-lrmd_provide_stderr_output_from_agents_if_available_otherwise_fall_back_to_stdout.patch +++ /dev/null @@ -1,151 +0,0 @@ -commit 2c6e6e1ad3ecbb186f9a43f89280d0d4391277e5 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Apr 8 12:13:44 2014 +1000 - - Fix: lrmd: Provide stderr output from agents if available, otherwise fall back to stdout - - (cherry picked from commit d9cc751625ff3adfa158a2f769ab9038f6e317fd) - -diff --git a/lib/services/services_linux.c b/lib/services/services_linux.c -index ac0138f..534e362 100644 ---- a/lib/services/services_linux.c -+++ b/lib/services/services_linux.c -@@ -57,34 +57,37 @@ set_fd_opts(int fd, int opts) - } - - static gboolean --read_output(int fd, svc_action_t * op) -+svc_read_output(int fd, svc_action_t * op, bool is_stderr) - { - char *data = NULL; - int rc = 0, len = 0; -- gboolean is_err = FALSE; - char buf[500]; - static const size_t buf_read_len = sizeof(buf) - 1; - -- crm_trace("%p", op); - - if (fd < 0) { -+ crm_trace("No fd for %s", op->id); - return FALSE; - } - -- if (fd == op->opaque->stderr_fd) { -- is_err = TRUE; -- if (op->stderr_data) { -- len = strlen(op->stderr_data); -- data = op->stderr_data; -- } -- } else if (op->stdout_data) { -+ if (is_stderr && op->stderr_data) { -+ len = strlen(op->stderr_data); -+ data = op->stderr_data; -+ crm_trace("Reading %s stderr into offset %d", op->id, len); -+ -+ } else if (is_stderr == FALSE && op->stdout_data) { - len = strlen(op->stdout_data); - data = op->stdout_data; -+ crm_trace("Reading %s stdout into offset %d", op->id, len); -+ -+ } else { -+ crm_trace("Reading %s %s", op->id, is_stderr?"stderr":"stdout", len); - } - - do { - rc = read(fd, buf, buf_read_len); - if (rc > 0) { -+ crm_trace("Got %d characters starting with %.20s", rc, buf); - buf[rc] = 0; - data = realloc(data, len + rc + 1); - sprintf(data + len, "%s", buf); -@@ -99,7 +102,7 @@ read_output(int fd, svc_action_t * op) - - } while (rc == buf_read_len || rc < 0); - -- if (data != NULL && is_err) { -+ if (data != NULL && is_stderr) { - op->stderr_data = data; - } else if (data != NULL) { - op->stdout_data = data; -@@ -113,7 +116,7 @@ dispatch_stdout(gpointer userdata) - { - svc_action_t *op = (svc_action_t *) userdata; - -- return read_output(op->opaque->stdout_fd, op); -+ return svc_read_output(op->opaque->stdout_fd, op, FALSE); - } - - static int -@@ -121,7 +124,7 @@ dispatch_stderr(gpointer userdata) - { - svc_action_t *op = (svc_action_t *) userdata; - -- return read_output(op->opaque->stderr_fd, op); -+ return svc_read_output(op->opaque->stderr_fd, op, TRUE); - } - - static void -@@ -264,18 +267,23 @@ operation_finished(mainloop_child_t * p, pid_t pid, int core, int signo, int exi - op->status = PCMK_LRM_OP_DONE; - CRM_ASSERT(op->pid == pid); - -+ crm_trace("%s %p %p", prefix, op->opaque->stderr_gsource, op->opaque->stdout_gsource); - if (op->opaque->stderr_gsource) { - /* Make sure we have read everything from the buffer. - * Depending on the priority mainloop gives the fd, operation_finished - * could occur before all the reads are done. Force the read now.*/ -+ crm_trace("%s dispatching stderr", prefix); - dispatch_stderr(op); -+ crm_trace("%s: %p", op->stderr_data); - } - - if (op->opaque->stdout_gsource) { - /* Make sure we have read everything from the buffer. - * Depending on the priority mainloop gives the fd, operation_finished - * could occur before all the reads are done. Force the read now.*/ -+ crm_trace("%s dispatching stdout", prefix); - dispatch_stdout(op); -+ crm_trace("%s: %p", op->stdout_data); - } - - if (signo) { -@@ -495,11 +503,11 @@ services_os_action_execute(svc_action_t * op, gboolean synchronous) - - if (poll_rc > 0) { - if (fds[0].revents & POLLIN) { -- read_output(op->opaque->stdout_fd, op); -+ svc_read_output(op->opaque->stdout_fd, op, FALSE); - } - - if (fds[1].revents & POLLIN) { -- read_output(op->opaque->stderr_fd, op); -+ svc_read_output(op->opaque->stderr_fd, op, TRUE); - } - - if (fds[2].revents & POLLIN) { -@@ -578,8 +586,8 @@ services_os_action_execute(svc_action_t * op, gboolean synchronous) - } - #endif - -- read_output(op->opaque->stdout_fd, op); -- read_output(op->opaque->stderr_fd, op); -+ svc_read_output(op->opaque->stdout_fd, op, FALSE); -+ svc_read_output(op->opaque->stderr_fd, op, TRUE); - - close(op->opaque->stdout_fd); - close(op->opaque->stderr_fd); -diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c -index 65421d0..517e98f 100644 ---- a/lrmd/lrmd.c -+++ b/lrmd/lrmd.c -@@ -599,7 +599,9 @@ action_complete(svc_action_t * action) - cmd->lrmd_op_status = action->status; - rsc = cmd->rsc_id ? g_hash_table_lookup(rsc_list, cmd->rsc_id) : NULL; - -- if (action->stdout_data) { -+ if (action->stderr_data) { -+ cmd->output = strdup(action->stderr_data); -+ } else if (action->stdout_data) { - cmd->output = strdup(action->stdout_data); - } - #if SUPPORT_NAGIOS diff --git a/SOURCES/bz1078078-pcmk-pe_automatically_re_unfence_a_node_if_the_fencing_device_definition_changes.patch b/SOURCES/bz1078078-pcmk-pe_automatically_re_unfence_a_node_if_the_fencing_device_definition_changes.patch deleted file mode 100644 index aa43324..0000000 --- a/SOURCES/bz1078078-pcmk-pe_automatically_re_unfence_a_node_if_the_fencing_device_definition_changes.patch +++ /dev/null @@ -1,577 +0,0 @@ -commit 5efd173dac6b22eee48f1f9372b2e86cb6d27282 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Apr 3 16:02:23 2014 +1100 - - Feature: PE: Automatically re-unfence a node if the fencing device definition changes - - Ensures all resources that require unfencing are stopped first - If unfencing is enabled, this is the new default for resource.requires - - (cherry picked from commit 26fe2e39b9e060597cddeeb69d8b846784dfac55) - - Conflicts: - include/crm/pengine/internal.h - include/crm/pengine/status.h - lib/pengine/complex.c - -diff --git a/fencing/main.c b/fencing/main.c -index c40610e..e002125 100644 ---- a/fencing/main.c -+++ b/fencing/main.c -@@ -573,7 +573,6 @@ fencing_topology_init(xmlNode * msg) - } - - #define rsc_name(x) x->clone_name?x->clone_name:x->id --static bool have_fence_scsi = FALSE; - - static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) - { -@@ -662,34 +661,6 @@ static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) - data = create_device_registration_xml(rsc_name(rsc), provider, agent, params); - stonith_device_register(data, NULL, TRUE); - -- /* If required, unfence ourselves on cluster startup -- * -- * Make this generic/smarter if/when more than a single agent needs this -- */ -- if(have_fence_scsi == FALSE && safe_str_eq(agent, "fence_scsi")) { -- stonith_device_t *device = g_hash_table_lookup(device_list, rsc->id); -- -- if(stonith_our_uname == NULL) { -- crm_trace("Cannot unfence ourselves: no local host name"); -- -- } else if(device == NULL) { -- crm_err("Cannot unfence ourselves: no such device '%s'", rsc->id); -- -- } else { -- const char *alias = g_hash_table_lookup(device->aliases, stonith_our_uname); -- -- if (!alias) { -- alias = stonith_our_uname; -- } -- -- if (device->targets && string_in_list(device->targets, alias)) { -- have_fence_scsi = TRUE; -- crm_notice("Unfencing ourselves with %s (%s)", agent, device->id); -- schedule_internal_command(__FUNCTION__, device, "on", stonith_our_uname, 0, NULL, unfence_cb); -- } -- } -- } -- - stonith_key_value_freeall(params, 1, 1); - free_xml(data); - } -diff --git a/include/crm/msg_xml.h b/include/crm/msg_xml.h -index 8575163..055f476 100644 ---- a/include/crm/msg_xml.h -+++ b/include/crm/msg_xml.h -@@ -200,6 +200,7 @@ - # define XML_RSC_ATTR_MULTIPLE "multiple-active" - # define XML_RSC_ATTR_PRIORITY "priority" - # define XML_RSC_ATTR_REQUIRES "requires" -+# define XML_RSC_ATTR_PROVIDES "provides" - # define XML_RSC_ATTR_CONTAINER "container" - # define XML_RSC_ATTR_INTERNAL_RSC "internal_rsc" - # define XML_OP_ATTR_ON_FAIL "on-fail" -diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h -index dd52e7f..657c647 100644 ---- a/include/crm/pengine/internal.h -+++ b/include/crm/pengine/internal.h -@@ -261,6 +261,7 @@ op_digest_cache_t *rsc_action_digest_cmp(resource_t * rsc, xmlNode * xml_op, nod - pe_working_set_t * data_set); - - gboolean is_remote_node(xmlNode *xml); -+void clear_bit_recursive(resource_t * rsc, unsigned long long flag); - - resource_t * rsc_contains_remote_node(pe_working_set_t * data_set, resource_t *rsc); - #endif -diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h -index b74bf83..ddf9dd7 100644 ---- a/include/crm/pengine/status.h -+++ b/include/crm/pengine/status.h -@@ -60,6 +60,7 @@ enum pe_find { - - # define pe_flag_stonith_enabled 0x00000010ULL - # define pe_flag_have_stonith_resource 0x00000020ULL -+# define pe_flag_enable_unfencing 0x00000040ULL - - # define pe_flag_stop_rsc_orphans 0x00000100ULL - # define pe_flag_stop_action_orphans 0x00000200ULL -@@ -165,6 +166,7 @@ struct node_s { - - # define pe_rsc_notify 0x00000010ULL - # define pe_rsc_unique 0x00000020ULL -+# define pe_rsc_fence_device 0x00000040ULL - - # define pe_rsc_provisional 0x00000100ULL - # define pe_rsc_allocating 0x00000200ULL -@@ -329,6 +331,12 @@ enum pe_ordering { - - pe_order_runnable_left = 0x100, /* 'then' requires 'first' to be runnable */ - -+ pe_order_pseudo_left = 0x200, /* 'then' can only be pseudo if 'first' is runnable */ -+ pe_order_implies_then_on_node = 0x400, /* If 'first' is required on 'nodeX', -+ * ensure instances of 'then' on 'nodeX' are too. -+ * Only really useful if 'then' is a clone and 'first' is not -+ */ -+ - pe_order_restart = 0x1000, /* 'then' is runnable if 'first' is optional or runnable */ - pe_order_stonith_stop = 0x2000, /* only applies if the action is non-pseudo */ - pe_order_serialize_only = 0x4000, /* serialize */ -diff --git a/lib/pengine/clone.c b/lib/pengine/clone.c -index c6c69e6..b13cceb 100644 ---- a/lib/pengine/clone.c -+++ b/lib/pengine/clone.c -@@ -46,7 +46,7 @@ mark_as_orphan(resource_t * rsc) - } - } - --static void -+void - clear_bit_recursive(resource_t * rsc, unsigned long long flag) - { - GListPtr gIter = rsc->children; -diff --git a/lib/pengine/complex.c b/lib/pengine/complex.c -index 8a6049d..8b774c0 100644 ---- a/lib/pengine/complex.c -+++ b/lib/pengine/complex.c -@@ -340,12 +340,13 @@ gboolean - common_unpack(xmlNode * xml_obj, resource_t ** rsc, - resource_t * parent, pe_working_set_t * data_set) - { -+ bool isdefault = FALSE; - xmlNode *expanded_xml = NULL; - xmlNode *ops = NULL; - resource_t *top = NULL; - const char *value = NULL; -+ const char *rclass = NULL; /* Look for this after any templates have been expanded */ - const char *id = crm_element_value(xml_obj, XML_ATTR_ID); -- const char *class = crm_element_value(xml_obj, XML_AGENT_ATTR_CLASS); - - crm_log_xml_trace(xml_obj, "Processing resource input..."); - -@@ -375,6 +376,8 @@ common_unpack(xmlNode * xml_obj, resource_t ** rsc, - (*rsc)->orig_xml = NULL; - } - -+ /* Do not use xml_obj from here on, use (*rsc)->xml in case templates are involved */ -+ rclass = crm_element_value((*rsc)->xml, XML_AGENT_ATTR_CLASS); - (*rsc)->parent = parent; - - ops = find_xml_node((*rsc)->xml, "operations", FALSE); -@@ -538,47 +541,67 @@ common_unpack(xmlNode * xml_obj, resource_t ** rsc, - } - } - -+ if (safe_str_eq(rclass, "stonith")) { -+ set_bit(data_set->flags, pe_flag_have_stonith_resource); -+ set_bit((*rsc)->flags, pe_rsc_fence_device); -+ } -+ - value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_REQUIRES); -+ -+ handle_requires_pref: - if (safe_str_eq(value, "nothing")) { - - } else if (safe_str_eq(value, "quorum")) { - set_bit((*rsc)->flags, pe_rsc_needs_quorum); - - } else if (safe_str_eq(value, "unfencing")) { -- set_bit((*rsc)->flags, pe_rsc_needs_fencing); -- set_bit((*rsc)->flags, pe_rsc_needs_unfencing); -- if (is_set(data_set->flags, pe_flag_stonith_enabled)) { -- crm_notice("%s requires (un)fencing but fencing is disabled", (*rsc)->id); -+ if (is_set((*rsc)->flags, pe_rsc_fence_device)) { -+ crm_config_warn("%s is a fencing device but requires (un)fencing", (*rsc)->id); -+ value = "quorum"; -+ isdefault = TRUE; -+ goto handle_requires_pref; -+ -+ } else if (is_not_set(data_set->flags, pe_flag_stonith_enabled)) { -+ crm_config_warn("%s requires (un)fencing but fencing is disabled", (*rsc)->id); -+ value = "quorum"; -+ isdefault = TRUE; -+ goto handle_requires_pref; -+ -+ } else { -+ set_bit((*rsc)->flags, pe_rsc_needs_fencing); -+ set_bit((*rsc)->flags, pe_rsc_needs_unfencing); - } - - } else if (safe_str_eq(value, "fencing")) { - set_bit((*rsc)->flags, pe_rsc_needs_fencing); - if (is_set(data_set->flags, pe_flag_stonith_enabled)) { -- crm_notice("%s requires fencing but fencing is disabled", (*rsc)->id); -+ crm_config_warn("%s requires (un)fencing but fencing is disabled", (*rsc)->id); - } - - } else { - if (value) { - crm_config_err("Invalid value for %s->requires: %s%s", - (*rsc)->id, value, -- is_set(data_set->flags, -- pe_flag_stonith_enabled) ? "" : " (stonith-enabled=false)"); -+ is_set(data_set->flags, pe_flag_stonith_enabled) ? "" : " (stonith-enabled=false)"); - } - -- if (is_set(data_set->flags, pe_flag_stonith_enabled)) { -- set_bit((*rsc)->flags, pe_rsc_needs_fencing); -- value = "fencing (default)"; -+ isdefault = TRUE; -+ if (is_set(data_set->flags, pe_flag_enable_unfencing)) { -+ value = "unfencing"; -+ -+ } else if (is_set(data_set->flags, pe_flag_stonith_enabled)) { -+ value = "fencing"; - - } else if (data_set->no_quorum_policy == no_quorum_ignore) { -- value = "nothing (default)"; -+ value = "nothing"; - - } else { -- set_bit((*rsc)->flags, pe_rsc_needs_quorum); -- value = "quorum (default)"; -+ value = "quorum"; - } -+ goto handle_requires_pref; - } - -- pe_rsc_trace((*rsc), "\tRequired to start: %s", value); -+ pe_rsc_trace((*rsc), "\tRequired to start: %s%s", value, isdefault?" (default)":""); - - value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_FAIL_TIMEOUT); - if (value != NULL) { -@@ -606,10 +629,6 @@ common_unpack(xmlNode * xml_obj, resource_t ** rsc, - pe_rsc_trace((*rsc), "\tAction notification: %s", - is_set((*rsc)->flags, pe_rsc_notify) ? "required" : "not required"); - -- if (safe_str_eq(class, "stonith")) { -- set_bit(data_set->flags, pe_flag_have_stonith_resource); -- } -- - (*rsc)->utilization = - g_hash_table_new_full(crm_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str); - -diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c -index 56ed291..39ded96 100644 ---- a/lib/pengine/unpack.c -+++ b/lib/pengine/unpack.c -@@ -77,6 +77,35 @@ unpack_config(xmlNode * config, pe_working_set_t * data_set) - GHashTable *config_hash = - g_hash_table_new_full(crm_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str); - -+ xmlXPathObjectPtr xpathObj = NULL; -+ -+ if(is_not_set(data_set->flags, pe_flag_enable_unfencing)) { -+ xpathObj = xpath_search(data_set->input, "//nvpair[@name='provides' and @value='unfencing']"); -+ if(xpathObj && numXpathResults(xpathObj) > 0) { -+ set_bit(data_set->flags, pe_flag_enable_unfencing); -+ } -+ freeXpathObject(xpathObj); -+ } -+ -+ if(is_not_set(data_set->flags, pe_flag_enable_unfencing)) { -+ xpathObj = xpath_search(data_set->input, "//nvpair[@name='requires' and @value='unfencing']"); -+ if(xpathObj && numXpathResults(xpathObj) > 0) { -+ set_bit(data_set->flags, pe_flag_enable_unfencing); -+ } -+ freeXpathObject(xpathObj); -+ } -+ -+ -+#ifdef REDHAT_COMPAT_6 -+ if(is_not_set(data_set->flags, pe_flag_enable_unfencing)) { -+ xpathObj = xpath_search(data_set->input, "//primitive[@type='fence_scsi']"); -+ if(xpathObj && numXpathResults(xpathObj) > 0) { -+ set_bit(data_set->flags, pe_flag_enable_unfencing); -+ } -+ freeXpathObject(xpathObj); -+ } -+#endif -+ - data_set->config_hash = config_hash; - - unpack_instance_attributes(data_set->input, config, XML_CIB_TAG_PROPSET, NULL, config_hash, -diff --git a/pengine/allocate.c b/pengine/allocate.c -index b9ce069..88258f4 100644 ---- a/pengine/allocate.c -+++ b/pengine/allocate.c -@@ -123,6 +123,7 @@ check_rsc_parameters(resource_t * rsc, node_t * node, xmlNode * rsc_entry, - } - - changed = TRUE; -+ trigger_unfencing(rsc, node, "Device definition changed", NULL, data_set); - if (active_here) { - force_restart = TRUE; - crm_notice("Forcing restart of %s on %s, %s changed: %s -> %s", -@@ -169,6 +170,7 @@ CancelXmlOp(resource_t * rsc, xmlNode * xml_op, node_t * active_node, - crm_info("Action %s on %s will be stopped: %s", - key, active_node->details->uname, reason ? reason : "unknown"); - -+ /* TODO: This looks highly dangerous if we ever try to schedule 'key' too */ - cancel = custom_action(rsc, strdup(key), RSC_CANCEL, active_node, FALSE, TRUE, data_set); - - free(cancel->task); -@@ -227,6 +229,7 @@ check_action_definition(resource_t * rsc, node_t * active_node, xmlNode * xml_op - key = NULL; - } - -+ crm_trace("Testing %s_%s_%d on %s", rsc->id, task, interval, active_node?active_node->details->uname:"N/A"); - if (interval == 0 && safe_str_eq(task, RSC_STATUS)) { - /* Reload based on the start action not a probe */ - task = RSC_START; -@@ -252,6 +255,7 @@ check_action_definition(resource_t * rsc, node_t * active_node, xmlNode * xml_op - op_version, crm_element_value(xml_op, XML_ATTR_TRANSITION_MAGIC)); - - custom_action(rsc, key, task, NULL, FALSE, TRUE, data_set); -+ trigger_unfencing(rsc, NULL, "Device parameters changed", NULL, data_set); - - } else if ((digest_data->rc == RSC_DIGEST_ALL) || (digest_data->rc == RSC_DIGEST_UNKNOWN)) { - /* Changes that can potentially be handled by a reload */ -@@ -259,6 +263,7 @@ check_action_definition(resource_t * rsc, node_t * active_node, xmlNode * xml_op - const char *digest_all = crm_element_value(xml_op, XML_LRM_ATTR_OP_DIGEST); - - did_change = TRUE; -+ trigger_unfencing(rsc, NULL, "Device parameters changed (reload)", NULL, data_set); - crm_log_xml_info(digest_data->params_all, "params:reload"); - key = generate_op_key(rsc->id, task, interval); - pe_rsc_info(rsc, "Parameters to %s on %s changed: was %s vs. now %s (reload:%s) %s", -@@ -1262,8 +1267,40 @@ any_managed_resources(pe_working_set_t * data_set) - return FALSE; - } - -+void -+trigger_unfencing( -+ resource_t * rsc, node_t *node, const char *reason, action_t *dependancy, pe_working_set_t * data_set) -+{ -+ if(is_not_set(data_set->flags, pe_flag_enable_unfencing)) { -+ /* No resources require it */ -+ return; -+ -+ } else if (rsc != NULL && is_not_set(rsc->flags, pe_rsc_fence_device)) { -+ /* Wasnt a stonith device */ -+ return; -+ -+ } else if(node) { -+ action_t *unfence = pe_fence_op(node, "on", FALSE, data_set); -+ -+ crm_notice("Unfencing %s: %s", node->details->uname, reason); -+ if(FALSE && dependancy) { -+ order_actions(dependancy, unfence, pe_order_optional); -+ } -+ -+ } else if(rsc) { -+ GHashTableIter iter; -+ -+ g_hash_table_iter_init(&iter, rsc->allowed_nodes); -+ while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { -+ if(node->details->online && node->details->unclean == FALSE && node->details->shutdown == FALSE) { -+ trigger_unfencing(rsc, node, reason, dependancy, data_set); -+ } -+ } -+ } -+} -+ - action_t * --pe_fence_op(node_t * node, const char *op, pe_working_set_t * data_set) -+pe_fence_op(node_t * node, const char *op, bool optional, pe_working_set_t * data_set) - { - char *key = NULL; - action_t *stonith_op = NULL; -@@ -1279,13 +1316,18 @@ pe_fence_op(node_t * node, const char *op, pe_working_set_t * data_set) - } - - if(stonith_op == NULL) { -- stonith_op = custom_action(NULL, key, CRM_OP_FENCE, node, FALSE, TRUE, data_set); -+ stonith_op = custom_action(NULL, key, CRM_OP_FENCE, node, optional, TRUE, data_set); - - add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET, node->details->uname); - add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET_UUID, node->details->id); - add_hash_param(stonith_op->meta, "stonith_action", op); - } - -+ if(optional == FALSE) { -+ crm_trace("%s is no longer optional", stonith_op->uuid); -+ pe_clear_action_bit(stonith_op, pe_action_optional); -+ } -+ - return stonith_op; - } - -@@ -1323,7 +1365,7 @@ stage6(pe_working_set_t * data_set) - if (need_stonith && node->details->unclean && pe_can_fence(data_set, node)) { - pe_warn("Scheduling Node %s for STONITH", node->details->uname); - -- stonith_op = pe_fence_op(node, NULL, data_set); -+ stonith_op = pe_fence_op(node, NULL, FALSE, data_set); - - stonith_constraints(node, stonith_op, data_set); - -diff --git a/pengine/allocate.h b/pengine/allocate.h -index 042d3aa..712de60 100644 ---- a/pengine/allocate.h -+++ b/pengine/allocate.h -@@ -51,7 +51,7 @@ struct resource_alloc_functions_s { - void (*append_meta) (resource_t * rsc, xmlNode * xml); - }; - --action_t *pe_fence_op(node_t * node, const char *op, pe_working_set_t * data_set); -+action_t *pe_fence_op(node_t * node, const char *op, bool optional, pe_working_set_t * data_set); - - extern GHashTable *rsc_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, - const char *attr, float factor, enum pe_weights flags); -@@ -161,6 +161,8 @@ extern void rsc_migrate_reload(resource_t * rsc, pe_working_set_t * data_set); - extern void rsc_stonith_ordering(resource_t * rsc, action_t * stonith_op, - pe_working_set_t * data_set); - -+void trigger_unfencing(resource_t * rsc, node_t *node, const char *reason, action_t *dependancy, pe_working_set_t * data_set); -+ - extern enum pe_graph_flags native_update_actions(action_t * first, action_t * then, node_t * node, - enum pe_action_flags flags, - enum pe_action_flags filter, -diff --git a/pengine/graph.c b/pengine/graph.c -index 779f0e0..9c82d23 100644 ---- a/pengine/graph.c -+++ b/pengine/graph.c -@@ -430,11 +430,49 @@ update_action(action_t * then) - uname : "", other->type); - - if (first == other->action) { -+ /* -+ * 'first' was not expanded (ie. from 'start' to 'running'), which could mean it: -+ * - has no associated resource, -+ * - was a primitive, -+ * - was pre-expanded (ie. 'running' instead of 'start') -+ * -+ * The third argument here to graph_update_action() is a node which is used under two conditions: -+ * - Interleaving, in which case first->node and -+ * then->node are equal (and NULL) -+ * - If 'then' is a clone, to limit the scope of the -+ * constraint to instances on the supplied node -+ * -+ */ -+ int otype = other->type; -+ node_t *node = then->node; -+ -+ if(is_set(otype, pe_order_implies_then_on_node)) { -+ /* Normally we want the _whole_ 'then' clone to -+ * restart if 'first' is restarted, so then->node is -+ * needed. -+ * -+ * However for unfencing, we want to limit this to -+ * instances on the same node as 'first' (the -+ * unfencing operation), so first->node is supplied. -+ * -+ * Swap the node, from then on we can can treat it -+ * like any other 'pe_order_implies_then' -+ */ -+ -+ clear_bit(otype, pe_order_implies_then_on_node); -+ set_bit(otype, pe_order_implies_then); -+ node = first->node; -+ } - clear_bit(first_flags, pe_action_pseudo); -- changed |= graph_update_action(first, then, then->node, first_flags, other->type); -+ changed |= graph_update_action(first, then, node, first_flags, otype); - -+ /* 'first' was for a complex resource (clone, group, etc), -+ * create a new dependancy if necessary -+ */ - } else if (order_actions(first, then, other->type)) { -- /* Start again to get the new actions_before list */ -+ /* This was the first time 'first' and 'then' were associated, -+ * start again to get the new actions_before list -+ */ - changed |= (pe_graph_updated_then | pe_graph_disable); - } - -diff --git a/pengine/native.c b/pengine/native.c -index 4016a3c..d0eb950 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -1236,9 +1236,7 @@ native_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) - - resource_t *top = uber_parent(rsc); - int type = pe_order_optional | pe_order_implies_then | pe_order_restart; -- gboolean is_stonith = -- (rsc->xml && safe_str_eq(crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS), "stonith")) ? -- TRUE : FALSE; -+ gboolean is_stonith = is_set(rsc->flags, pe_rsc_fence_device); - - custom_action_order(rsc, generate_op_key(rsc->id, RSC_STOP, 0), NULL, - rsc, generate_op_key(rsc->id, RSC_START, 0), NULL, type, data_set); -@@ -1253,6 +1251,34 @@ native_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) - pe_order_runnable_left, data_set); - } - -+ if (is_stonith == FALSE -+ && is_set(data_set->flags, pe_flag_enable_unfencing) -+ && is_set(rsc->flags, pe_rsc_needs_unfencing)) { -+ /* Check if the node needs to be unfenced first */ -+ node_t *node = NULL; -+ GHashTableIter iter; -+ -+ if(rsc != top) { -+ /* Only create these constraints once, rsc is almost certainly cloned */ -+ clear_bit_recursive(top, pe_rsc_needs_unfencing); -+ } -+ -+ g_hash_table_iter_init(&iter, rsc->allowed_nodes); -+ while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { -+ action_t *unfence = pe_fence_op(node, "on", TRUE, data_set); -+ -+ custom_action_order(top, generate_op_key(top->id, top == rsc?RSC_STOP:RSC_STOPPED, 0), NULL, -+ NULL, strdup(unfence->uuid), unfence, -+ pe_order_optional, data_set); -+ -+ crm_debug("Stopping %s prior to unfencing %s", top->id, unfence->uuid); -+ -+ custom_action_order(NULL, strdup(unfence->uuid), unfence, -+ top, generate_op_key(top->id, RSC_START, 0), NULL, -+ pe_order_implies_then_on_node, data_set); -+ } -+ } -+ - if (is_not_set(rsc->flags, pe_rsc_managed)) { - pe_rsc_trace(rsc, "Skipping fencing constraints for unmanaged resource: %s", rsc->id); - return; -@@ -2456,20 +2482,9 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, - probe = custom_action(rsc, key, RSC_STATUS, node, FALSE, TRUE, data_set); - update_action_flags(probe, pe_action_optional | pe_action_clear); - -- /* Check if the node needs to be unfenced first */ -- if (is_set(rsc->flags, pe_rsc_needs_unfencing)) { -- action_t *unfence = pe_fence_op(node, "on", data_set); -- -- crm_notice("Unfencing %s for %s", node->details->uname, rsc->id); -- order_actions(unfence, probe, pe_order_implies_then); -- -- /* The lack of ordering constraints on STONITH_UP would -- * traditionally mean unfencing is initiated /before/ the -- * devices are started. -- * -- * However this is a non-issue as stonithd is now smart -- * enough to be able to use devices directly from the cib -- */ -+ if(is_set(rsc->flags, pe_rsc_fence_device)) { -+ crm_crit("TODO: %s: Trigger when probing the device or the resource that needs unfencing?", rsc->id); -+ trigger_unfencing(NULL, node, "node discovery", probe, data_set); - } - - /* -diff --git a/pengine/regression.sh b/pengine/regression.sh -index aa50854..9cb6c18 100755 ---- a/pengine/regression.sh -+++ b/pengine/regression.sh -@@ -317,6 +317,11 @@ do_test bug-cl-5170 "Prevent clone from starting with on-fail=block" - do_test clone-fail-block-colocation "Move colocated group when failed clone has on-fail=block" - - echo "" -+do_test unfence-startup "Clean unfencing" -+do_test unfence-definition "Unfencing when the agent changes" -+do_test unfence-parameters "Unfencing when the agent parameters changes" -+ -+echo "" - do_test master-0 "Stopped -> Slave" - do_test master-1 "Stopped -> Promote" - do_test master-2 "Stopped -> Promote : notify" diff --git a/SOURCES/bz1078078-pcmk-pe_delay_unfencing_until_after_we_know_the_state_of_all_resources_that_require_unfencing.patch b/SOURCES/bz1078078-pcmk-pe_delay_unfencing_until_after_we_know_the_state_of_all_resources_that_require_unfencing.patch deleted file mode 100644 index 3503c88..0000000 --- a/SOURCES/bz1078078-pcmk-pe_delay_unfencing_until_after_we_know_the_state_of_all_resources_that_require_unfencing.patch +++ /dev/null @@ -1,2251 +0,0 @@ -commit cf7988cb02e96f7a278569dcee410691cb7b85e0 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Apr 4 11:59:13 2014 +1100 - - Fix: PE: Delay unfencing until after we know the state of all resources that require unfencing - - (cherry picked from commit 22666466bd9e50efdd8efb6c1775c71785c900b1) - - Conflicts: - include/crm/pengine/internal.h - include/crm/pengine/status.h - lib/pengine/unpack.c - lib/pengine/utils.c - pengine/test10/unfence-definition.dot - pengine/test10/unfence-definition.exp - pengine/test10/unfence-definition.summary - pengine/test10/unfence-parameters.dot - pengine/test10/unfence-parameters.exp - pengine/test10/unfence-parameters.summary - pengine/test10/unfence-startup.dot - pengine/test10/unfence-startup.exp - pengine/test10/unfence-startup.xml - -diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h -index 657c647..b4907c1 100644 ---- a/include/crm/pengine/internal.h -+++ b/include/crm/pengine/internal.h -@@ -260,8 +260,13 @@ typedef struct op_digest_cache_s { - op_digest_cache_t *rsc_action_digest_cmp(resource_t * rsc, xmlNode * xml_op, node_t * node, - pe_working_set_t * data_set); - --gboolean is_remote_node(xmlNode *xml); -+action_t *pe_fence_op(node_t * node, const char *op, bool optional, pe_working_set_t * data_set); -+void trigger_unfencing( -+ resource_t * rsc, node_t *node, const char *reason, action_t *dependancy, pe_working_set_t * data_set); -+ -+void set_bit_recursive(resource_t * rsc, unsigned long long flag); - void clear_bit_recursive(resource_t * rsc, unsigned long long flag); - -+gboolean is_remote_node(xmlNode *xml); - resource_t * rsc_contains_remote_node(pe_working_set_t * data_set, resource_t *rsc); - #endif -diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h -index ddf9dd7..6542737 100644 ---- a/include/crm/pengine/status.h -+++ b/include/crm/pengine/status.h -@@ -191,6 +191,7 @@ struct node_s { - # define pe_rsc_needs_quorum 0x10000000ULL - # define pe_rsc_needs_fencing 0x20000000ULL - # define pe_rsc_needs_unfencing 0x40000000ULL -+# define pe_rsc_have_unfencing 0x80000000ULL - - enum pe_graph_flags { - pe_graph_none = 0x00000, -diff --git a/lib/pengine/clone.c b/lib/pengine/clone.c -index b13cceb..90d7eca 100644 ---- a/lib/pengine/clone.c -+++ b/lib/pengine/clone.c -@@ -47,19 +47,6 @@ mark_as_orphan(resource_t * rsc) - } - - void --clear_bit_recursive(resource_t * rsc, unsigned long long flag) --{ -- GListPtr gIter = rsc->children; -- -- clear_bit(rsc->flags, flag); -- for (; gIter != NULL; gIter = gIter->next) { -- resource_t *child_rsc = (resource_t *) gIter->data; -- -- clear_bit_recursive(child_rsc, flag); -- } --} -- --void - force_non_unique_clone(resource_t * rsc, const char *rid, pe_working_set_t * data_set) - { - if (rsc->variant == pe_clone || rsc->variant == pe_master) { -diff --git a/lib/pengine/complex.c b/lib/pengine/complex.c -index 0f20481..a3133e7 100644 ---- a/lib/pengine/complex.c -+++ b/lib/pengine/complex.c -@@ -575,7 +575,7 @@ common_unpack(xmlNode * xml_obj, resource_t ** rsc, - } else if (safe_str_eq(value, "fencing")) { - set_bit((*rsc)->flags, pe_rsc_needs_fencing); - if (is_set(data_set->flags, pe_flag_stonith_enabled)) { -- crm_config_warn("%s requires (un)fencing but fencing is disabled", (*rsc)->id); -+ crm_config_warn("%s requires fencing but fencing is disabled", (*rsc)->id); - } - - } else { -diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c -index 39ded96..eb10bd8 100644 ---- a/lib/pengine/unpack.c -+++ b/lib/pengine/unpack.c -@@ -2325,6 +2325,31 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - * didnt include target_rc and liked to remap status - */ - switch (actual_rc_i) { -+ case PCMK_OCF_OK: -+ if (is_probe && target_rc == 7) { -+ task_status_i = PCMK_LRM_OP_DONE; -+ set_bit(rsc->flags, pe_rsc_unexpectedly_running); -+ -+ if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { -+ /* _Require_ unfencing after probing resources that need unfencing and was found active */ -+ crm_warn("Operation %s found resource %s active on %s: triggering unfencing", -+ task, rsc->id, node->details->uname); -+ trigger_unfencing(NULL, node, "Unexpected state", NULL, data_set); -+ -+ } else { -+ pe_rsc_info(rsc, "Operation %s found resource %s active on %s", -+ task, rsc->id, node->details->uname); -+ } -+ -+ /* legacy code for pre-0.6.5 operations */ -+ } else if (target_rc < 0 && interval > 0 && rsc->role == RSC_ROLE_MASTER) { -+ /* catch status ops that return 0 instead of 8 while they -+ * are supposed to be in master mode -+ */ -+ task_status_i = PCMK_LRM_OP_ERROR; -+ } -+ break; -+ - case PCMK_OCF_NOT_RUNNING: - if (is_probe || target_rc == actual_rc_i) { - task_status_i = PCMK_LRM_OP_DONE; -@@ -2415,23 +2440,6 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - } - break; - -- case PCMK_OCF_OK: -- if (is_probe && target_rc == 7) { -- task_status_i = PCMK_LRM_OP_DONE; -- set_bit(rsc->flags, pe_rsc_unexpectedly_running); -- pe_rsc_info(rsc, "Operation %s found resource %s active on %s", -- task, rsc->id, node->details->uname); -- -- /* legacy code for pre-0.6.5 operations */ -- } else if (target_rc < 0 && interval > 0 && rsc->role == RSC_ROLE_MASTER) { -- /* catch status ops that return 0 instead of 8 while they -- * are supposed to be in master mode -- */ -- task_status_i = PCMK_LRM_OP_ERROR; -- } -- -- break; -- - default: - if (task_status_i == PCMK_LRM_OP_DONE) { - crm_info("Remapping %s (rc=%d) on %s to an ERROR", -diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c -index 2520eeb..e84d341 100644 ---- a/lib/pengine/utils.c -+++ b/lib/pengine/utils.c -@@ -1807,3 +1807,92 @@ rsc_contains_remote_node(pe_working_set_t * data_set, resource_t *rsc) - return NULL; - } - -+void -+clear_bit_recursive(resource_t * rsc, unsigned long long flag) -+{ -+ GListPtr gIter = rsc->children; -+ -+ clear_bit(rsc->flags, flag); -+ for (; gIter != NULL; gIter = gIter->next) { -+ resource_t *child_rsc = (resource_t *) gIter->data; -+ -+ clear_bit_recursive(child_rsc, flag); -+ } -+} -+ -+void -+set_bit_recursive(resource_t * rsc, unsigned long long flag) -+{ -+ GListPtr gIter = rsc->children; -+ -+ set_bit(rsc->flags, flag); -+ for (; gIter != NULL; gIter = gIter->next) { -+ resource_t *child_rsc = (resource_t *) gIter->data; -+ -+ set_bit_recursive(child_rsc, flag); -+ } -+} -+ -+action_t * -+pe_fence_op(node_t * node, const char *op, bool optional, pe_working_set_t * data_set) -+{ -+ char *key = NULL; -+ action_t *stonith_op = NULL; -+ -+ if(op == NULL) { -+ op = data_set->stonith_action; -+ } -+ -+ key = g_strdup_printf("%s-%s-%s", CRM_OP_FENCE, node->details->uname, op); -+ -+ if(data_set->singletons) { -+ stonith_op = g_hash_table_lookup(data_set->singletons, key); -+ } -+ -+ if(stonith_op == NULL) { -+ stonith_op = custom_action(NULL, key, CRM_OP_FENCE, node, optional, TRUE, data_set); -+ -+ add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET, node->details->uname); -+ add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET_UUID, node->details->id); -+ add_hash_param(stonith_op->meta, "stonith_action", op); -+ } -+ -+ if(optional == FALSE) { -+ crm_trace("%s is no longer optional", stonith_op->uuid); -+ pe_clear_action_bit(stonith_op, pe_action_optional); -+ } -+ -+ return stonith_op; -+} -+ -+void -+trigger_unfencing( -+ resource_t * rsc, node_t *node, const char *reason, action_t *dependancy, pe_working_set_t * data_set) -+{ -+ if(is_not_set(data_set->flags, pe_flag_enable_unfencing)) { -+ /* No resources require it */ -+ return; -+ -+ } else if (rsc != NULL && is_not_set(rsc->flags, pe_rsc_fence_device)) { -+ /* Wasnt a stonith device */ -+ return; -+ -+ } else if(node) { -+ action_t *unfence = pe_fence_op(node, "on", FALSE, data_set); -+ -+ crm_notice("Unfencing %s: %s", node->details->uname, reason); -+ if(FALSE && dependancy) { -+ order_actions(unfence, dependancy, pe_order_optional); -+ } -+ -+ } else if(rsc) { -+ GHashTableIter iter; -+ -+ g_hash_table_iter_init(&iter, rsc->allowed_nodes); -+ while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { -+ if(node->details->online && node->details->unclean == FALSE && node->details->shutdown == FALSE) { -+ trigger_unfencing(rsc, node, reason, dependancy, data_set); -+ } -+ } -+ } -+} -diff --git a/pengine/allocate.c b/pengine/allocate.c -index 88258f4..3480eb9 100644 ---- a/pengine/allocate.c -+++ b/pengine/allocate.c -@@ -1267,70 +1267,6 @@ any_managed_resources(pe_working_set_t * data_set) - return FALSE; - } - --void --trigger_unfencing( -- resource_t * rsc, node_t *node, const char *reason, action_t *dependancy, pe_working_set_t * data_set) --{ -- if(is_not_set(data_set->flags, pe_flag_enable_unfencing)) { -- /* No resources require it */ -- return; -- -- } else if (rsc != NULL && is_not_set(rsc->flags, pe_rsc_fence_device)) { -- /* Wasnt a stonith device */ -- return; -- -- } else if(node) { -- action_t *unfence = pe_fence_op(node, "on", FALSE, data_set); -- -- crm_notice("Unfencing %s: %s", node->details->uname, reason); -- if(FALSE && dependancy) { -- order_actions(dependancy, unfence, pe_order_optional); -- } -- -- } else if(rsc) { -- GHashTableIter iter; -- -- g_hash_table_iter_init(&iter, rsc->allowed_nodes); -- while (g_hash_table_iter_next(&iter, NULL, (void **)&node)) { -- if(node->details->online && node->details->unclean == FALSE && node->details->shutdown == FALSE) { -- trigger_unfencing(rsc, node, reason, dependancy, data_set); -- } -- } -- } --} -- --action_t * --pe_fence_op(node_t * node, const char *op, bool optional, pe_working_set_t * data_set) --{ -- char *key = NULL; -- action_t *stonith_op = NULL; -- -- if(op == NULL) { -- op = data_set->stonith_action; -- } -- -- key = g_strdup_printf("%s-%s-%s", CRM_OP_FENCE, node->details->uname, op); -- -- if(data_set->singletons) { -- stonith_op = g_hash_table_lookup(data_set->singletons, key); -- } -- -- if(stonith_op == NULL) { -- stonith_op = custom_action(NULL, key, CRM_OP_FENCE, node, optional, TRUE, data_set); -- -- add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET, node->details->uname); -- add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET_UUID, node->details->id); -- add_hash_param(stonith_op->meta, "stonith_action", op); -- } -- -- if(optional == FALSE) { -- crm_trace("%s is no longer optional", stonith_op->uuid); -- pe_clear_action_bit(stonith_op, pe_action_optional); -- } -- -- return stonith_op; --} -- - /* - * Create dependancies for stonith and shutdown operations - */ -diff --git a/pengine/allocate.h b/pengine/allocate.h -index 712de60..0a352fd 100644 ---- a/pengine/allocate.h -+++ b/pengine/allocate.h -@@ -51,8 +51,6 @@ struct resource_alloc_functions_s { - void (*append_meta) (resource_t * rsc, xmlNode * xml); - }; - --action_t *pe_fence_op(node_t * node, const char *op, bool optional, pe_working_set_t * data_set); -- - extern GHashTable *rsc_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, - const char *attr, float factor, enum pe_weights flags); - -@@ -161,8 +159,6 @@ extern void rsc_migrate_reload(resource_t * rsc, pe_working_set_t * data_set); - extern void rsc_stonith_ordering(resource_t * rsc, action_t * stonith_op, - pe_working_set_t * data_set); - --void trigger_unfencing(resource_t * rsc, node_t *node, const char *reason, action_t *dependancy, pe_working_set_t * data_set); -- - extern enum pe_graph_flags native_update_actions(action_t * first, action_t * then, node_t * node, - enum pe_action_flags flags, - enum pe_action_flags filter, -diff --git a/pengine/native.c b/pengine/native.c -index d0eb950..3d75dc9 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -1253,14 +1253,15 @@ native_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) - - if (is_stonith == FALSE - && is_set(data_set->flags, pe_flag_enable_unfencing) -- && is_set(rsc->flags, pe_rsc_needs_unfencing)) { -+ && is_set(rsc->flags, pe_rsc_needs_unfencing) -+ && is_not_set(rsc->flags, pe_rsc_have_unfencing)) { - /* Check if the node needs to be unfenced first */ - node_t *node = NULL; - GHashTableIter iter; - - if(rsc != top) { - /* Only create these constraints once, rsc is almost certainly cloned */ -- clear_bit_recursive(top, pe_rsc_needs_unfencing); -+ clear_bit_recursive(top, pe_rsc_have_unfencing); - } - - g_hash_table_iter_init(&iter, rsc->allowed_nodes); -@@ -2482,9 +2483,26 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, - probe = custom_action(rsc, key, RSC_STATUS, node, FALSE, TRUE, data_set); - update_action_flags(probe, pe_action_optional | pe_action_clear); - -- if(is_set(rsc->flags, pe_rsc_fence_device)) { -- crm_crit("TODO: %s: Trigger when probing the device or the resource that needs unfencing?", rsc->id); -+ /* If enabled, require unfencing before probing any fence devices -+ * but ensure it happens after any resources that require -+ * unfencing have been probed. -+ * -+ * Doing it the other way (requiring unfencing after probing -+ * resources that need it) would result in the node being -+ * unfenced, and all its resources being stopped, whenever a new -+ * resource is added. Which would be highly suboptimal. -+ * -+ * So essentially, at the point the fencing device(s) have been -+ * probed, we know the state of all resources that require -+ * unfencing and that unfencing occurred. -+ */ -+ if(is_set(rsc->flags, pe_rsc_fence_device) && is_set(data_set->flags, pe_flag_enable_unfencing)) { - trigger_unfencing(NULL, node, "node discovery", probe, data_set); -+ -+ } else if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { -+ action_t *unfence = pe_fence_op(node, "on", TRUE, data_set); -+ -+ order_actions(probe, unfence, pe_order_optional); - } - - /* -diff --git a/pengine/test10/unfence-definition.dot b/pengine/test10/unfence-definition.dot -new file mode 100644 -index 0000000..e737687 ---- /dev/null -+++ b/pengine/test10/unfence-definition.dot -@@ -0,0 +1,102 @@ -+digraph "g" { -+"all_stopped" -> "fencing_start_0 virt-1" [ style = bold] -+"all_stopped" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_running_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_start_0" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd_start_0 virt-1" [ style = bold] -+"clvmd-clone_start_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_stop_0" -> "clvmd-clone_stopped_0" [ style = bold] -+"clvmd-clone_stop_0" -> "clvmd_stop_0 virt-1" [ style = bold] -+"clvmd-clone_stop_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_stopped_0" -> "clvmd-clone_start_0" [ style = bold] -+"clvmd-clone_stopped_0" -> "dlm-clone_stop_0" [ style = bold] -+"clvmd-clone_stopped_0" -> "stonith 'on' virt-1" [ style = bold] -+"clvmd-clone_stopped_0" -> "stonith 'on' virt-3" [ style = bold] -+"clvmd-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd:1_monitor_0 virt-2" -> "probe_complete virt-2" [ style = bold] -+"clvmd:1_monitor_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"clvmd:1_start_0 virt-2" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd:1_start_0 virt-2" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"clvmd:1_start_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"clvmd:2_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"clvmd:2_monitor_0 virt-3" -> "stonith 'on' virt-3" [ style = bold] -+"clvmd:2_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"clvmd:2_start_0 virt-3" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd:2_start_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"clvmd_start_0 virt-1" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd_start_0 virt-1" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"clvmd_start_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"clvmd_stop_0 virt-1" -> "all_stopped" [ style = bold] -+"clvmd_stop_0 virt-1" -> "clvmd-clone_stopped_0" [ style = bold] -+"clvmd_stop_0 virt-1" -> "clvmd_start_0 virt-1" [ style = bold] -+"clvmd_stop_0 virt-1" -> "dlm_stop_0 virt-1" [ style = bold] -+"clvmd_stop_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"dlm-clone_running_0" -> "clvmd-clone_start_0" [ style = bold] -+"dlm-clone_running_0" [ style=bold color="green" fontcolor="orange"] -+"dlm-clone_start_0" -> "dlm-clone_running_0" [ style = bold] -+"dlm-clone_start_0" -> "dlm:2_start_0 virt-3" [ style = bold] -+"dlm-clone_start_0" -> "dlm_start_0 virt-1" [ style = bold] -+"dlm-clone_start_0" [ style=bold color="green" fontcolor="orange"] -+"dlm-clone_stop_0" -> "dlm-clone_stopped_0" [ style = bold] -+"dlm-clone_stop_0" -> "dlm_stop_0 virt-1" [ style = bold] -+"dlm-clone_stop_0" [ style=bold color="green" fontcolor="orange"] -+"dlm-clone_stopped_0" -> "dlm-clone_start_0" [ style = bold] -+"dlm-clone_stopped_0" -> "stonith 'on' virt-1" [ style = bold] -+"dlm-clone_stopped_0" -> "stonith 'on' virt-3" [ style = bold] -+"dlm-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] -+"dlm:2_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"dlm:2_monitor_0 virt-3" -> "stonith 'on' virt-3" [ style = bold] -+"dlm:2_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"dlm:2_start_0 virt-3" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"dlm:2_start_0 virt-3" -> "dlm-clone_running_0" [ style = bold] -+"dlm:2_start_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"dlm_start_0 virt-1" -> "clvmd_start_0 virt-1" [ style = bold] -+"dlm_start_0 virt-1" -> "dlm-clone_running_0" [ style = bold] -+"dlm_start_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"dlm_stop_0 virt-1" -> "all_stopped" [ style = bold] -+"dlm_stop_0 virt-1" -> "dlm-clone_stopped_0" [ style = bold] -+"dlm_stop_0 virt-1" -> "dlm_start_0 virt-1" [ style = bold] -+"dlm_stop_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"fencing_delete_0 virt-1" -> "fencing_start_0 virt-1" [ style = bold] -+"fencing_delete_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"fencing_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"fencing_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"fencing_start_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"fencing_stop_0 virt-1" -> "all_stopped" [ style = bold] -+"fencing_stop_0 virt-1" -> "fencing_delete_0 virt-1" [ style = bold] -+"fencing_stop_0 virt-1" -> "fencing_start_0 virt-1" [ style = bold] -+"fencing_stop_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-1" -> "probe_complete" [ style = bold] -+"probe_complete virt-1" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-2" -> "probe_complete" [ style = bold] -+"probe_complete virt-2" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-3" -> "probe_complete" [ style = bold] -+"probe_complete virt-3" [ style=bold color="green" fontcolor="black"] -+"probe_complete" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"probe_complete" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"probe_complete" -> "clvmd_start_0 virt-1" [ style = bold] -+"probe_complete" -> "clvmd_stop_0 virt-1" [ style = bold] -+"probe_complete" -> "dlm:2_start_0 virt-3" [ style = bold] -+"probe_complete" -> "dlm_start_0 virt-1" [ style = bold] -+"probe_complete" -> "dlm_stop_0 virt-1" [ style = bold] -+"probe_complete" -> "fencing_start_0 virt-1" [ style = bold] -+"probe_complete" -> "fencing_stop_0 virt-1" [ style = bold] -+"probe_complete" [ style=bold color="green" fontcolor="orange"] -+"stonith 'on' virt-1" -> "clvmd-clone_start_0" [ style = bold] -+"stonith 'on' virt-1" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-1" [ style=bold color="green" fontcolor="black"] -+"stonith 'on' virt-3" -> "clvmd-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' virt-4" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' virt-4" [ style=bold color="green" fontcolor="black"] -+"stonith_complete" -> "all_stopped" [ style = bold] -+"stonith_complete" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"stonith_complete" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"stonith_complete" -> "clvmd_start_0 virt-1" [ style = bold] -+"stonith_complete" -> "dlm:2_start_0 virt-3" [ style = bold] -+"stonith_complete" -> "dlm_start_0 virt-1" [ style = bold] -+"stonith_complete" [ style=bold color="green" fontcolor="orange"] -+} -diff --git a/pengine/test10/unfence-definition.exp b/pengine/test10/unfence-definition.exp -new file mode 100644 -index 0000000..9075347 ---- /dev/null -+++ b/pengine/test10/unfence-definition.exp -@@ -0,0 +1,495 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="16" operation="start" operation_key="fencing_start_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="delete" operation_key="fencing_delete_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="13" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="7" operation="delete" operation_key="fencing_delete_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="18" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="17" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="22" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="17" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="24" operation="stop" operation_key="dlm-clone_stop_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="21" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="22" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="14" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="8" priority="1000000"> -+ <action_set> -+ <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="17" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="24" operation="stop" operation_key="dlm-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <pseudo_event id="24" operation="stop" operation_key="dlm-clone_stop_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10" priority="1000000"> -+ <action_set> -+ <pseudo_event id="23" operation="running" operation_key="dlm-clone_running_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="18" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="22" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <pseudo_event id="22" operation="start" operation_key="dlm-clone_start_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <rsc_op id="27" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="30" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="stop" operation_key="clvmd-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <rsc_op id="28" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="27" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="30" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="15"> -+ <action_set> -+ <rsc_op id="11" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <rsc_op id="29" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="28" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="30" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <rsc_op id="15" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="18" priority="1000000"> -+ <action_set> -+ <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="stop" operation_key="clvmd-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="19"> -+ <action_set> -+ <pseudo_event id="32" operation="stop" operation_key="clvmd-clone_stop_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="20" priority="1000000"> -+ <action_set> -+ <pseudo_event id="31" operation="running" operation_key="clvmd-clone_running_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="27" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="28" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="29" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="30" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="21"> -+ <action_set> -+ <pseudo_event id="30" operation="start" operation_key="clvmd-clone_start_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="23" operation="running" operation_key="dlm-clone_running_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="22"> -+ <action_set> -+ <crm_event id="35" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"> -+ <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" /> -+ </crm_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="23"> -+ <action_set> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="35" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="24" priority="1000000"> -+ <action_set> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="14" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="15" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="25" priority="1000000"> -+ <action_set> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="11" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="26" priority="1000000"> -+ <action_set> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="27"> -+ <action_set> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="28"> -+ <action_set> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"> -+ <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" /> -+ </crm_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="14" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="15" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="29"> -+ <action_set> -+ <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="17" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="30"> -+ <action_set> -+ <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"> -+ <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" /> -+ </crm_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/unfence-definition.summary b/pengine/test10/unfence-definition.summary -new file mode 100644 -index 0000000..c954c4b ---- /dev/null -+++ b/pengine/test10/unfence-definition.summary -@@ -0,0 +1,63 @@ -+ -+Current cluster status: -+Node virt-4 (4): UNCLEAN (offline) -+Online: [ virt-1 virt-2 virt-3 ] -+ -+ fencing (stonith:fence_scsi): Started virt-1 -+ Clone Set: dlm-clone [dlm] -+ Started: [ virt-1 virt-2 ] -+ Stopped: [ virt-3 virt-4 ] -+ Clone Set: clvmd-clone [clvmd] -+ Started: [ virt-1 ] -+ Stopped: [ virt-2 virt-3 virt-4 ] -+ -+Transition Summary: -+ * Restart fencing (Started virt-1) -+ * Restart dlm:0 (Started virt-1) -+ * Start dlm:2 (virt-3) -+ * Restart clvmd:0 (Started virt-1) -+ * Start clvmd:1 (virt-2) -+ * Start clvmd:2 (virt-3) -+ -+Executing cluster transition: -+ * Resource action: fencing monitor on virt-3 -+ * Resource action: dlm monitor on virt-3 -+ * Resource action: clvmd monitor on virt-2 -+ * Resource action: clvmd monitor on virt-3 -+ * Pseudo action: clvmd-clone_stop_0 -+ * Fencing virt-4 (reboot) -+ * Pseudo action: stonith_complete -+ * Pseudo action: probe_complete -+ * Resource action: fencing stop on virt-1 -+ * Resource action: clvmd stop on virt-1 -+ * Pseudo action: clvmd-clone_stopped_0 -+ * Resource action: fencing delete on virt-1 -+ * Pseudo action: dlm-clone_stop_0 -+ * Resource action: dlm stop on virt-1 -+ * Pseudo action: dlm-clone_stopped_0 -+ * Fencing virt-3 (on) -+ * Pseudo action: all_stopped -+ * Fencing virt-1 (on) -+ * Resource action: fencing start on virt-1 -+ * Pseudo action: dlm-clone_start_0 -+ * Resource action: dlm start on virt-1 -+ * Resource action: dlm start on virt-3 -+ * Pseudo action: dlm-clone_running_0 -+ * Pseudo action: clvmd-clone_start_0 -+ * Resource action: clvmd start on virt-1 -+ * Resource action: clvmd start on virt-2 -+ * Resource action: clvmd start on virt-3 -+ * Pseudo action: clvmd-clone_running_0 -+ -+Revised cluster status: -+Online: [ virt-1 virt-2 virt-3 ] -+OFFLINE: [ virt-4 ] -+ -+ fencing (stonith:fence_scsi): Started virt-1 -+ Clone Set: dlm-clone [dlm] -+ Started: [ virt-1 virt-2 virt-3 ] -+ Stopped: [ virt-4 ] -+ Clone Set: clvmd-clone [clvmd] -+ Started: [ virt-1 virt-2 virt-3 ] -+ Stopped: [ virt-4 ] -+ -diff --git a/pengine/test10/unfence-parameters.dot b/pengine/test10/unfence-parameters.dot -new file mode 100644 -index 0000000..e67eb5a ---- /dev/null -+++ b/pengine/test10/unfence-parameters.dot -@@ -0,0 +1,125 @@ -+digraph "g" { -+"all_stopped" -> "fencing_start_0 virt-1" [ style = bold] -+"all_stopped" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_running_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_start_0" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd_start_0 virt-1" [ style = bold] -+"clvmd-clone_start_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_stop_0" -> "clvmd-clone_stopped_0" [ style = bold] -+"clvmd-clone_stop_0" -> "clvmd_stop_0 virt-1" [ style = bold] -+"clvmd-clone_stop_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_stopped_0" -> "clvmd-clone_start_0" [ style = bold] -+"clvmd-clone_stopped_0" -> "dlm-clone_stop_0" [ style = bold] -+"clvmd-clone_stopped_0" -> "stonith 'on' virt-1" [ style = bold] -+"clvmd-clone_stopped_0" -> "stonith 'on' virt-2" [ style = bold] -+"clvmd-clone_stopped_0" -> "stonith 'on' virt-3" [ style = bold] -+"clvmd-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd:1_monitor_0 virt-2" -> "probe_complete virt-2" [ style = bold] -+"clvmd:1_monitor_0 virt-2" -> "stonith 'on' virt-2" [ style = bold] -+"clvmd:1_monitor_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"clvmd:1_start_0 virt-2" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd:1_start_0 virt-2" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"clvmd:1_start_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"clvmd:2_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"clvmd:2_monitor_0 virt-3" -> "stonith 'on' virt-3" [ style = bold] -+"clvmd:2_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"clvmd:2_start_0 virt-3" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd:2_start_0 virt-3" -> "clvmd:3_start_0 <none>" [ style = dashed] -+"clvmd:2_start_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"clvmd:3_start_0 <none>" -> "clvmd-clone_running_0" [ style = dashed] -+"clvmd:3_start_0 <none>" [ style=dashed color="red" fontcolor="black"] -+"clvmd_start_0 virt-1" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd_start_0 virt-1" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"clvmd_start_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"clvmd_stop_0 virt-1" -> "all_stopped" [ style = bold] -+"clvmd_stop_0 virt-1" -> "clvmd-clone_stopped_0" [ style = bold] -+"clvmd_stop_0 virt-1" -> "clvmd_start_0 virt-1" [ style = bold] -+"clvmd_stop_0 virt-1" -> "dlm_stop_0 virt-1" [ style = bold] -+"clvmd_stop_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"dlm-clone_running_0" -> "clvmd-clone_start_0" [ style = bold] -+"dlm-clone_running_0" [ style=bold color="green" fontcolor="orange"] -+"dlm-clone_start_0" -> "dlm-clone_running_0" [ style = bold] -+"dlm-clone_start_0" -> "dlm:2_start_0 virt-3" [ style = bold] -+"dlm-clone_start_0" -> "dlm_start_0 virt-1" [ style = bold] -+"dlm-clone_start_0" -> "dlm_start_0 virt-2" [ style = bold] -+"dlm-clone_start_0" [ style=bold color="green" fontcolor="orange"] -+"dlm-clone_stop_0" -> "dlm-clone_stopped_0" [ style = bold] -+"dlm-clone_stop_0" -> "dlm_stop_0 virt-1" [ style = bold] -+"dlm-clone_stop_0" -> "dlm_stop_0 virt-2" [ style = bold] -+"dlm-clone_stop_0" [ style=bold color="green" fontcolor="orange"] -+"dlm-clone_stopped_0" -> "dlm-clone_start_0" [ style = bold] -+"dlm-clone_stopped_0" -> "stonith 'on' virt-1" [ style = bold] -+"dlm-clone_stopped_0" -> "stonith 'on' virt-2" [ style = bold] -+"dlm-clone_stopped_0" -> "stonith 'on' virt-3" [ style = bold] -+"dlm-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] -+"dlm:2_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"dlm:2_monitor_0 virt-3" -> "stonith 'on' virt-3" [ style = bold] -+"dlm:2_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"dlm:2_start_0 virt-3" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"dlm:2_start_0 virt-3" -> "dlm-clone_running_0" [ style = bold] -+"dlm:2_start_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"dlm_start_0 virt-1" -> "clvmd_start_0 virt-1" [ style = bold] -+"dlm_start_0 virt-1" -> "dlm-clone_running_0" [ style = bold] -+"dlm_start_0 virt-1" -> "dlm_start_0 virt-2" [ style = bold] -+"dlm_start_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"dlm_start_0 virt-2" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"dlm_start_0 virt-2" -> "clvmd:3_start_0 <none>" [ style = dashed] -+"dlm_start_0 virt-2" -> "dlm-clone_running_0" [ style = bold] -+"dlm_start_0 virt-2" -> "dlm:2_start_0 virt-3" [ style = bold] -+"dlm_start_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"dlm_stop_0 virt-1" -> "all_stopped" [ style = bold] -+"dlm_stop_0 virt-1" -> "dlm-clone_stopped_0" [ style = bold] -+"dlm_stop_0 virt-1" -> "dlm_start_0 virt-1" [ style = bold] -+"dlm_stop_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"dlm_stop_0 virt-2" -> "all_stopped" [ style = bold] -+"dlm_stop_0 virt-2" -> "dlm-clone_stopped_0" [ style = bold] -+"dlm_stop_0 virt-2" -> "dlm_start_0 virt-2" [ style = bold] -+"dlm_stop_0 virt-2" -> "dlm_stop_0 virt-1" [ style = bold] -+"dlm_stop_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"fencing_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"fencing_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"fencing_start_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"fencing_stop_0 virt-1" -> "all_stopped" [ style = bold] -+"fencing_stop_0 virt-1" -> "fencing_start_0 virt-1" [ style = bold] -+"fencing_stop_0 virt-1" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-1" -> "probe_complete" [ style = bold] -+"probe_complete virt-1" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-2" -> "probe_complete" [ style = bold] -+"probe_complete virt-2" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-3" -> "probe_complete" [ style = bold] -+"probe_complete virt-3" [ style=bold color="green" fontcolor="black"] -+"probe_complete" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"probe_complete" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"probe_complete" -> "clvmd:3_start_0 <none>" [ style = dashed] -+"probe_complete" -> "clvmd_start_0 virt-1" [ style = bold] -+"probe_complete" -> "clvmd_stop_0 virt-1" [ style = bold] -+"probe_complete" -> "dlm:2_start_0 virt-3" [ style = bold] -+"probe_complete" -> "dlm_start_0 virt-1" [ style = bold] -+"probe_complete" -> "dlm_start_0 virt-2" [ style = bold] -+"probe_complete" -> "dlm_stop_0 virt-1" [ style = bold] -+"probe_complete" -> "dlm_stop_0 virt-2" [ style = bold] -+"probe_complete" -> "fencing_start_0 virt-1" [ style = bold] -+"probe_complete" -> "fencing_stop_0 virt-1" [ style = bold] -+"probe_complete" [ style=bold color="green" fontcolor="orange"] -+"stonith 'on' virt-1" -> "clvmd-clone_start_0" [ style = bold] -+"stonith 'on' virt-1" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-1" [ style=bold color="green" fontcolor="black"] -+"stonith 'on' virt-2" -> "clvmd-clone_start_0" [ style = bold] -+"stonith 'on' virt-2" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-2" [ style=bold color="green" fontcolor="black"] -+"stonith 'on' virt-3" -> "clvmd-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' virt-4" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' virt-4" [ style=bold color="green" fontcolor="black"] -+"stonith_complete" -> "all_stopped" [ style = bold] -+"stonith_complete" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"stonith_complete" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"stonith_complete" -> "clvmd_start_0 virt-1" [ style = bold] -+"stonith_complete" -> "dlm:2_start_0 virt-3" [ style = bold] -+"stonith_complete" -> "dlm_start_0 virt-1" [ style = bold] -+"stonith_complete" -> "dlm_start_0 virt-2" [ style = bold] -+"stonith_complete" [ style=bold color="green" fontcolor="orange"] -+} -diff --git a/pengine/test10/unfence-parameters.exp b/pengine/test10/unfence-parameters.exp -new file mode 100644 -index 0000000..491d78e ---- /dev/null -+++ b/pengine/test10/unfence-parameters.exp -@@ -0,0 +1,562 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="15" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="12" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="6" operation="start" operation_key="fencing_start_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="15" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="17" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="16" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="16" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:1_stop_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="23" operation="stop" operation_key="dlm-clone_stop_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="25" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:1_start_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="dlm" long-id="dlm:1" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="17" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:1_stop_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="18" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:1_stop_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="dlm" long-id="dlm:1" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="23" operation="stop" operation_key="dlm-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="13" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="9" priority="1000000"> -+ <action_set> -+ <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="16" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:1_stop_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="23" operation="stop" operation_key="dlm-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <pseudo_event id="23" operation="stop" operation_key="dlm-clone_stop_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11" priority="1000000"> -+ <action_set> -+ <pseudo_event id="22" operation="running" operation_key="dlm-clone_running_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="17" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <crm_event id="3" operation="stonith" operation_key="stonith-virt-2-on" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <rsc_op id="26" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="17" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="25" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <rsc_op id="25" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"> -+ <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="31" operation="stop" operation_key="clvmd-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="15"> -+ <action_set> -+ <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="26" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <rsc_op id="10" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <rsc_op id="28" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="18"> -+ <action_set> -+ <rsc_op id="14" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="19" priority="1000000"> -+ <action_set> -+ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="25" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="31" operation="stop" operation_key="clvmd-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="20"> -+ <action_set> -+ <pseudo_event id="31" operation="stop" operation_key="clvmd-clone_stop_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="21" priority="1000000"> -+ <action_set> -+ <pseudo_event id="30" operation="running" operation_key="clvmd-clone_running_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="26" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="28" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="22"> -+ <action_set> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <crm_event id="3" operation="stonith" operation_key="stonith-virt-2-on" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="22" operation="running" operation_key="dlm-clone_running_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="23"> -+ <action_set> -+ <crm_event id="34" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"> -+ <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" /> -+ </crm_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="24"> -+ <action_set> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="34" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="25" priority="1000000"> -+ <action_set> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="12" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="14" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="26" priority="1000000"> -+ <action_set> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="10" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="27" priority="1000000"> -+ <action_set> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="28"> -+ <action_set> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="29"> -+ <action_set> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"> -+ <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" /> -+ </crm_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="14" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="30"> -+ <action_set> -+ <crm_event id="3" operation="stonith" operation_key="stonith-virt-2-on" on_node="virt-2" on_node_uuid="2"> -+ <attributes CRM_meta_on_node="virt-2" CRM_meta_on_node_uuid="2" CRM_meta_stonith_action="on" /> -+ </crm_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="10" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="31"> -+ <action_set> -+ <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="15" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="16" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:1_stop_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="25" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="32"> -+ <action_set> -+ <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"> -+ <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" /> -+ </crm_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/unfence-parameters.summary b/pengine/test10/unfence-parameters.summary -new file mode 100644 -index 0000000..17bbc62 ---- /dev/null -+++ b/pengine/test10/unfence-parameters.summary -@@ -0,0 +1,66 @@ -+ -+Current cluster status: -+Node virt-4 (4): UNCLEAN (offline) -+Online: [ virt-1 virt-2 virt-3 ] -+ -+ fencing (stonith:fence_scsi): Started virt-1 -+ Clone Set: dlm-clone [dlm] -+ Started: [ virt-1 virt-2 ] -+ Stopped: [ virt-3 virt-4 ] -+ Clone Set: clvmd-clone [clvmd] -+ Started: [ virt-1 ] -+ Stopped: [ virt-2 virt-3 virt-4 ] -+ -+Transition Summary: -+ * Restart fencing (Started virt-1) -+ * Restart dlm:0 (Started virt-1) -+ * Restart dlm:1 (Started virt-2) -+ * Start dlm:2 (virt-3) -+ * Restart clvmd:0 (Started virt-1) -+ * Start clvmd:1 (virt-2) -+ * Start clvmd:2 (virt-3) -+ -+Executing cluster transition: -+ * Resource action: fencing monitor on virt-3 -+ * Resource action: dlm monitor on virt-3 -+ * Resource action: clvmd monitor on virt-2 -+ * Resource action: clvmd monitor on virt-3 -+ * Pseudo action: clvmd-clone_stop_0 -+ * Fencing virt-4 (reboot) -+ * Pseudo action: stonith_complete -+ * Pseudo action: probe_complete -+ * Resource action: fencing stop on virt-1 -+ * Resource action: clvmd stop on virt-1 -+ * Pseudo action: clvmd-clone_stopped_0 -+ * Pseudo action: dlm-clone_stop_0 -+ * Resource action: dlm stop on virt-2 -+ * Resource action: dlm stop on virt-1 -+ * Pseudo action: dlm-clone_stopped_0 -+ * Fencing virt-3 (on) -+ * Fencing virt-2 (on) -+ * Pseudo action: all_stopped -+ * Fencing virt-1 (on) -+ * Resource action: fencing start on virt-1 -+ * Pseudo action: dlm-clone_start_0 -+ * Resource action: dlm start on virt-1 -+ * Resource action: dlm start on virt-2 -+ * Resource action: dlm start on virt-3 -+ * Pseudo action: dlm-clone_running_0 -+ * Pseudo action: clvmd-clone_start_0 -+ * Resource action: clvmd start on virt-1 -+ * Resource action: clvmd start on virt-2 -+ * Resource action: clvmd start on virt-3 -+ * Pseudo action: clvmd-clone_running_0 -+ -+Revised cluster status: -+Online: [ virt-1 virt-2 virt-3 ] -+OFFLINE: [ virt-4 ] -+ -+ fencing (stonith:fence_scsi): Started virt-1 -+ Clone Set: dlm-clone [dlm] -+ Started: [ virt-1 virt-2 virt-3 ] -+ Stopped: [ virt-4 ] -+ Clone Set: clvmd-clone [clvmd] -+ Started: [ virt-1 virt-2 virt-3 ] -+ Stopped: [ virt-4 ] -+ -diff --git a/pengine/test10/unfence-startup.dot b/pengine/test10/unfence-startup.dot -new file mode 100644 -index 0000000..a5cc606 ---- /dev/null -+++ b/pengine/test10/unfence-startup.dot -@@ -0,0 +1,51 @@ -+digraph "g" { -+"all_stopped" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_running_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd-clone_start_0" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"clvmd-clone_start_0" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"clvmd-clone_start_0" [ style=bold color="green" fontcolor="orange"] -+"clvmd:1_monitor_0 virt-2" -> "probe_complete virt-2" [ style = bold] -+"clvmd:1_monitor_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"clvmd:1_start_0 virt-2" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd:1_start_0 virt-2" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"clvmd:1_start_0 virt-2" [ style=bold color="green" fontcolor="black"] -+"clvmd:2_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"clvmd:2_monitor_0 virt-3" -> "stonith 'on' virt-3" [ style = bold] -+"clvmd:2_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"clvmd:2_start_0 virt-3" -> "clvmd-clone_running_0" [ style = bold] -+"clvmd:2_start_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"dlm-clone_running_0" -> "clvmd-clone_start_0" [ style = bold] -+"dlm-clone_running_0" [ style=bold color="green" fontcolor="orange"] -+"dlm-clone_start_0" -> "dlm-clone_running_0" [ style = bold] -+"dlm-clone_start_0" -> "dlm:2_start_0 virt-3" [ style = bold] -+"dlm-clone_start_0" [ style=bold color="green" fontcolor="orange"] -+"dlm:2_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"dlm:2_monitor_0 virt-3" -> "stonith 'on' virt-3" [ style = bold] -+"dlm:2_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"dlm:2_start_0 virt-3" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"dlm:2_start_0 virt-3" -> "dlm-clone_running_0" [ style = bold] -+"dlm:2_start_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"fencing_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"fencing_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-1" -> "probe_complete" [ style = bold] -+"probe_complete virt-1" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-2" -> "probe_complete" [ style = bold] -+"probe_complete virt-2" [ style=bold color="green" fontcolor="black"] -+"probe_complete virt-3" -> "probe_complete" [ style = bold] -+"probe_complete virt-3" [ style=bold color="green" fontcolor="black"] -+"probe_complete" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"probe_complete" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"probe_complete" -> "dlm:2_start_0 virt-3" [ style = bold] -+"probe_complete" [ style=bold color="green" fontcolor="orange"] -+"stonith 'on' virt-3" -> "clvmd-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' virt-4" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' virt-4" [ style=bold color="green" fontcolor="black"] -+"stonith_complete" -> "all_stopped" [ style = bold] -+"stonith_complete" -> "clvmd:1_start_0 virt-2" [ style = bold] -+"stonith_complete" -> "clvmd:2_start_0 virt-3" [ style = bold] -+"stonith_complete" -> "dlm:2_start_0 virt-3" [ style = bold] -+"stonith_complete" [ style=bold color="green" fontcolor="orange"] -+} -diff --git a/pengine/test10/unfence-startup.exp b/pengine/test10/unfence-startup.exp -new file mode 100644 -index 0000000..8a04d54 ---- /dev/null -+++ b/pengine/test10/unfence-startup.exp -@@ -0,0 +1,264 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="11" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="fencing" class="stonith" type="fence_scsi"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="12" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="3" priority="1000000"> -+ <action_set> -+ <pseudo_event id="22" operation="running" operation_key="dlm-clone_running_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="9" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"> -+ <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="28" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="13" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"> -+ <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="9" priority="1000000"> -+ <action_set> -+ <pseudo_event id="30" operation="running" operation_key="clvmd-clone_running_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="28" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="22" operation="running" operation_key="dlm-clone_running_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <crm_event id="34" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"> -+ <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" /> -+ </crm_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="34" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13" priority="1000000"> -+ <action_set> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="11" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="12" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14" priority="1000000"> -+ <action_set> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="9" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="15" priority="1000000"> -+ <action_set> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"> -+ <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" /> -+ </crm_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="12" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="18"> -+ <action_set> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/unfence-startup.xml b/pengine/test10/unfence-startup.xml -new file mode 100644 -index 0000000..83e9ffe ---- /dev/null -+++ b/pengine/test10/unfence-startup.xml -@@ -0,0 +1,73 @@ -+<cib epoch="17" num_updates="25" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Wed Mar 19 19:51:25 2014" update-origin="virt-009.cluster-qe.lab.eng.brq.redhat.com" update-client="crm_resource" crm_feature_set="3.0.7" have-quorum="1" dc-uuid="8"> -+ <configuration> -+ <crm_config> -+ <cluster_property_set id="cib-bootstrap-options"> -+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.10-27.el7-368c726"/> -+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> -+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="freeze"/> -+ </cluster_property_set> -+ </crm_config> -+ <nodes> -+ <node id="1" uname="virt-1"/> -+ <node id="2" uname="virt-2"/> -+ <node id="3" uname="virt-3"/> -+ <node id="4" uname="virt-4"/> -+ </nodes> -+ <resources> -+ <primitive class="stonith" id="fencing" type="fence_scsi"> -+ <meta_attributes id="stonith-meta"> -+ <nvpair id="stonith-unfence" name="provides" value="unfencing"/> -+ </meta_attributes> -+ </primitive> -+ <clone id="dlm-clone"> -+ <primitive class="ocf" id="dlm" provider="pacemaker" type="controld"/> -+ <meta_attributes id="dlm-clone-meta"> -+ <nvpair id="dlm-interleave" name="interleave" value="true"/> -+ <nvpair id="dlm-ordered" name="ordered" value="true"/> -+ </meta_attributes> -+ </clone> -+ <clone id="clvmd-clone"> -+ <primitive class="ocf" id="clvmd" provider="heartbeat" type="clvm"/> -+ <meta_attributes id="clvmd-clone-meta"> -+ <nvpair id="clvmd-interleave" name="interleave" value="true"/> -+ <nvpair id="clvmd-ordered" name="ordered" value="true"/> -+ </meta_attributes> -+ </clone> -+ </resources> -+ <constraints> -+ <rsc_order first="dlm-clone" first-action="start" id="order-dlm-clone-clvmd-clone-mandatory" then="clvmd-clone" then-action="start"/> -+ <rsc_colocation id="colocation-clvmd-clone-dlm-clone-INFINITY" rsc="clvmd-clone" score="INFINITY" with-rsc="dlm-clone"/> -+ </constraints> -+ </configuration> -+ <status> -+ <node_state id="1" uname="virt-1" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> -+ <lrm id="1"> -+ <lrm_resources> -+ <lrm_resource id="fencing" type="fence_scsi" class="stonith"> -+ <lrm_rsc_op id="fencing_last_0" operation_key="fencing_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="26" rc-code="0" op-status="0" interval="0" last-run="1395255112" last-rc-change="1395255112" exec-time="1047" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="24" rc-code="0" op-status="0" interval="0" last-run="1395255085" last-rc-change="1395255085" exec-time="1102" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="clvmd" type="clvm" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="clvmd_last_0" operation_key="clvmd_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:2:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;9:2:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="15" rc-code="0" op-status="0" interval="0" last-run="1395254324" last-rc-change="1395254324" exec-time="214" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="2" uname="virt-2" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> -+ <lrm id="2"> -+ <lrm_resources> -+ <lrm_resource id="fencing" type="fence_scsi" class="stonith"> -+ <lrm_rsc_op id="fencing_last_0" operation_key="fencing_status_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:8:7:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1395255112" last-rc-change="1395255112" exec-time="1047" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="24" rc-code="0" op-status="0" interval="0" last-run="1395255085" last-rc-change="1395255085" exec-time="1102" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="3" uname="virt-3" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"/> -+ </status> -+</cib> -+ diff --git a/SOURCES/bz1078078-pcmk-pe_do_not_unfence_nodes_that_are_offline_unclean_or_shutting_down.patch b/SOURCES/bz1078078-pcmk-pe_do_not_unfence_nodes_that_are_offline_unclean_or_shutting_down.patch deleted file mode 100644 index 6fce78c..0000000 --- a/SOURCES/bz1078078-pcmk-pe_do_not_unfence_nodes_that_are_offline_unclean_or_shutting_down.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit c2fd34cb2f81e795dae211466edd270613cb6543 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Apr 10 14:50:19 2014 +1000 - - Fix: PE: Do not unfence nodes that are offline, unclean or shutting down - - (cherry picked from commit 12c410557f7685366d8504e57e555624bc6f2a07) - -diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c -index 9cb744a..ccaaa3f 100644 ---- a/lib/pengine/utils.c -+++ b/lib/pengine/utils.c -@@ -1877,7 +1877,10 @@ trigger_unfencing( - /* Wasnt a stonith device */ - return; - -- } else if(node) { -+ } else if(node -+ && node->details->online -+ && node->details->unclean == FALSE -+ && node->details->shutdown == FALSE) { - action_t *unfence = pe_fence_op(node, "on", FALSE, data_set); - - crm_notice("Unfencing %s: %s", node->details->uname, reason); diff --git a/SOURCES/bz1078078-pcmk-pe_ensure_actions_like_shutdown_and_fence_have_a_unique_key.patch b/SOURCES/bz1078078-pcmk-pe_ensure_actions_like_shutdown_and_fence_have_a_unique_key.patch deleted file mode 100644 index 2a57c2b..0000000 --- a/SOURCES/bz1078078-pcmk-pe_ensure_actions_like_shutdown_and_fence_have_a_unique_key.patch +++ /dev/null @@ -1,15241 +0,0 @@ -commit 4b390749bf42df944402e2530a27521e89a45682 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 2 15:24:21 2014 +1100 - - Refactor: PE: Ensure actions like shutdown and fence have a unique key - - (cherry picked from commit 30bb942116c8e9a1e0ace47a98a0447889407d50) - - Conflicts: - pengine/regression.sh - pengine/test10/11-a-then-bm-b-move-a-clone-starting.exp - pengine/test10/594.exp - pengine/test10/662.exp - pengine/test10/696.exp - pengine/test10/726.exp - pengine/test10/735.exp - pengine/test10/764.exp - pengine/test10/797.exp - pengine/test10/829.exp - pengine/test10/anti-colocation-order.exp - pengine/test10/asymmetric.exp - pengine/test10/attrs1.exp - pengine/test10/attrs2.exp - pengine/test10/attrs3.exp - pengine/test10/attrs4.exp - pengine/test10/attrs5.exp - pengine/test10/attrs6.exp - pengine/test10/attrs7.exp - pengine/test10/attrs8.exp - pengine/test10/balanced.exp - pengine/test10/base-score.exp - pengine/test10/bug-1572-1.exp - pengine/test10/bug-1572-2.exp - pengine/test10/bug-1573.exp - pengine/test10/bug-1820-1.exp - pengine/test10/bug-1820.exp - pengine/test10/bug-1822.exp - pengine/test10/bug-5014-A-start-B-start.exp - pengine/test10/bug-5014-A-stopped-B-stopped.exp - pengine/test10/bug-5014-CLONE-A-start-B-start.exp - pengine/test10/bug-5014-CthenAthenB-C-stopped.exp - pengine/test10/bug-5028-detach.exp - pengine/test10/bug-lf-2160.exp - pengine/test10/bug-lf-2435.exp - pengine/test10/bug-lf-2445.exp - pengine/test10/bug-lf-2581.exp - pengine/test10/bug-lf-2606.exp - pengine/test10/bug-n-387749.exp - pengine/test10/bug-pm-11.exp - pengine/test10/clone-anon-dup.exp - pengine/test10/clone-anon-probe-1.exp - pengine/test10/clone-colocate-instance-1.exp - pengine/test10/clone-colocate-instance-2.exp - pengine/test10/clone-interleave-1.exp - pengine/test10/clone-interleave-2.exp - pengine/test10/clone-interleave-3.exp - pengine/test10/clone-no-shuffle.exp - pengine/test10/clone-order-instance.exp - pengine/test10/clone-order-primitive.exp - pengine/test10/coloc-group.exp - pengine/test10/coloc-list.exp - pengine/test10/coloc-loop.exp - pengine/test10/coloc-many-one.exp - pengine/test10/colocate-primitive-with-clone.exp - pengine/test10/comments.exp - pengine/test10/container-1.exp - pengine/test10/container-2.exp - pengine/test10/container-3.exp - pengine/test10/container-4.exp - pengine/test10/container-group-1.exp - pengine/test10/container-group-2.exp - pengine/test10/container-group-3.exp - pengine/test10/container-group-4.exp - pengine/test10/date-1.exp - pengine/test10/domain.exp - pengine/test10/group-fail.exp - pengine/test10/group-unmanaged-stopped.exp - pengine/test10/group-unmanaged.exp - pengine/test10/group1.exp - pengine/test10/group10.exp - pengine/test10/group11.exp - pengine/test10/group15.exp - pengine/test10/group2.exp - pengine/test10/group3.exp - pengine/test10/group4.exp - pengine/test10/group5.exp - pengine/test10/group6.exp - pengine/test10/group7.exp - pengine/test10/group8.exp - pengine/test10/group9.exp - pengine/test10/honor_stonith_rsc_order1.exp - pengine/test10/honor_stonith_rsc_order2.exp - pengine/test10/honor_stonith_rsc_order3.exp - pengine/test10/honor_stonith_rsc_order4.exp - pengine/test10/ignore_stonith_rsc_order1.exp - pengine/test10/ignore_stonith_rsc_order2.exp - pengine/test10/ignore_stonith_rsc_order3.exp - pengine/test10/ignore_stonith_rsc_order4.exp - pengine/test10/inc0.exp - pengine/test10/inc1.exp - pengine/test10/inc11.exp - pengine/test10/inc12.exp - pengine/test10/inc2.exp - pengine/test10/inc3.exp - pengine/test10/inc4.exp - pengine/test10/inc5.exp - pengine/test10/inc6.exp - pengine/test10/inc7.exp - pengine/test10/inc8.exp - pengine/test10/interleave-0.exp - pengine/test10/interleave-1.exp - pengine/test10/interleave-2.exp - pengine/test10/interleave-3.exp - pengine/test10/location-sets-templates.exp - pengine/test10/managed-0.exp - pengine/test10/managed-1.exp - pengine/test10/managed-2.exp - pengine/test10/master-0.exp - pengine/test10/master-1.exp - pengine/test10/master-10.exp - pengine/test10/master-11.exp - pengine/test10/master-2.exp - pengine/test10/master-3.exp - pengine/test10/master-4.exp - pengine/test10/master-5.exp - pengine/test10/master-6.exp - pengine/test10/master-7.exp - pengine/test10/master-8.exp - pengine/test10/master-9.exp - pengine/test10/master-depend.exp - pengine/test10/master-ordering.exp - pengine/test10/master-probed-score.exp - pengine/test10/master-reattach.exp - pengine/test10/master-stop.exp - pengine/test10/master-unmanaged-monitor.exp - pengine/test10/migrate-1.exp - pengine/test10/migrate-2.exp - pengine/test10/migrate-3.exp - pengine/test10/migrate-4.exp - pengine/test10/migrate-shutdown.exp - pengine/test10/migrate-start-complex.exp - pengine/test10/minimal.exp - pengine/test10/mon-rsc-1.exp - pengine/test10/mon-rsc-2.exp - pengine/test10/mon-rsc-3.exp - pengine/test10/mon-rsc-4.exp - pengine/test10/multi1.exp - pengine/test10/node-maintenance-1.exp - pengine/test10/node-maintenance-2.exp - pengine/test10/notify-0.exp - pengine/test10/notify-1.exp - pengine/test10/notify-2.exp - pengine/test10/notify-3.exp - pengine/test10/novell-239082.exp - pengine/test10/novell-252693-2.exp - pengine/test10/novell-252693-3.exp - pengine/test10/novell-252693.exp - pengine/test10/obsolete-lrm-resource.exp - pengine/test10/one-or-more-0.exp - pengine/test10/one-or-more-1.exp - pengine/test10/one-or-more-2.exp - pengine/test10/one-or-more-3.exp - pengine/test10/one-or-more-4.exp - pengine/test10/one-or-more-5.exp - pengine/test10/order-mandatory.exp - pengine/test10/order-optional-keyword.exp - pengine/test10/order-optional.exp - pengine/test10/order-required.exp - pengine/test10/order-wrong-kind.exp - pengine/test10/order1.exp - pengine/test10/order2.exp - pengine/test10/order3.exp - pengine/test10/order4.exp - pengine/test10/order5.exp - pengine/test10/order6.exp - pengine/test10/order7.exp - pengine/test10/ordered-set-basic-startup.exp - pengine/test10/orphan-0.exp - pengine/test10/orphan-1.exp - pengine/test10/orphan-2.exp - pengine/test10/params-0.exp - pengine/test10/params-1.exp - pengine/test10/params-2.exp - pengine/test10/params-4.exp - pengine/test10/params-5.exp - pengine/test10/per-node-attrs.exp - pengine/test10/placement-capacity.exp - pengine/test10/placement-location.exp - pengine/test10/placement-priority.exp - pengine/test10/placement-stickiness.exp - pengine/test10/probe-0.exp - pengine/test10/probe-1.exp - pengine/test10/probe-timeout.exp - pengine/test10/quorum-1.exp - pengine/test10/quorum-2.exp - pengine/test10/quorum-3.exp - pengine/test10/quorum-4.exp - pengine/test10/quorum-5.exp - pengine/test10/quorum-6.exp - pengine/test10/rec-node-1.exp - pengine/test10/rec-node-10.exp - pengine/test10/rec-node-11.exp - pengine/test10/rec-node-12.exp - pengine/test10/rec-node-15.exp - pengine/test10/rec-node-2.exp - pengine/test10/rec-node-3.exp - pengine/test10/rec-node-4.exp - pengine/test10/rec-node-5.exp - pengine/test10/rec-node-6.exp - pengine/test10/rec-node-7.exp - pengine/test10/rec-node-8.exp - pengine/test10/rec-node-9.exp - pengine/test10/rec-rsc-0.exp - pengine/test10/rec-rsc-1.exp - pengine/test10/rec-rsc-2.exp - pengine/test10/rec-rsc-3.exp - pengine/test10/rec-rsc-4.exp - pengine/test10/rec-rsc-5.exp - pengine/test10/rec-rsc-6.exp - pengine/test10/rec-rsc-7.exp - pengine/test10/rec-rsc-8.exp - pengine/test10/rec-rsc-9.exp - pengine/test10/remote-startup-probes.exp - pengine/test10/remote-startup.exp - pengine/test10/reprobe-target_rc.exp - pengine/test10/rsc-maintenance.exp - pengine/test10/rsc-sets-clone-1.exp - pengine/test10/rsc-sets-clone.exp - pengine/test10/rsc-sets-master.exp - pengine/test10/rsc-sets-seq-false.exp - pengine/test10/rsc-sets-seq-true.exp - pengine/test10/rsc_dep1.exp - pengine/test10/rsc_dep10.exp - pengine/test10/rsc_dep2.exp - pengine/test10/rsc_dep3.exp - pengine/test10/rsc_dep4.exp - pengine/test10/rsc_dep5.exp - pengine/test10/rsc_dep7.exp - pengine/test10/rsc_dep8.exp - pengine/test10/simple11.exp - pengine/test10/simple12.exp - pengine/test10/simple2.exp - pengine/test10/simple3.exp - pengine/test10/simple4.exp - pengine/test10/simple6.exp - pengine/test10/simple7.exp - pengine/test10/simple8.exp - pengine/test10/stonith-3.exp - pengine/test10/stop-failure-no-fencing.exp - pengine/test10/stop-failure-with-fencing.exp - pengine/test10/stopped-monitor-00.exp - pengine/test10/stopped-monitor-01.exp - pengine/test10/stopped-monitor-02.exp - pengine/test10/stopped-monitor-03.exp - pengine/test10/stopped-monitor-04.exp - pengine/test10/stopped-monitor-05.exp - pengine/test10/stopped-monitor-06.exp - pengine/test10/stopped-monitor-07.exp - pengine/test10/stopped-monitor-08.exp - pengine/test10/stopped-monitor-09.exp - pengine/test10/stopped-monitor-10.exp - pengine/test10/stopped-monitor-11.exp - pengine/test10/stopped-monitor-12.exp - pengine/test10/stopped-monitor-20.exp - pengine/test10/stopped-monitor-21.exp - pengine/test10/stopped-monitor-22.exp - pengine/test10/stopped-monitor-23.exp - pengine/test10/stopped-monitor-24.exp - pengine/test10/stopped-monitor-25.exp - pengine/test10/stopped-monitor-26.exp - pengine/test10/stopped-monitor-27.exp - pengine/test10/stopped-monitor-30.exp - pengine/test10/stopped-monitor-31.exp - pengine/test10/systemhealth2.exp - pengine/test10/systemhealth3.exp - pengine/test10/systemhealthm2.exp - pengine/test10/systemhealthm3.exp - pengine/test10/systemhealthn2.exp - pengine/test10/systemhealthn3.exp - pengine/test10/systemhealtho2.exp - pengine/test10/systemhealtho3.exp - pengine/test10/systemhealthp2.exp - pengine/test10/systemhealthp3.exp - pengine/test10/target-0.exp - pengine/test10/target-1.exp - pengine/test10/target-2.exp - pengine/test10/template-1.exp - pengine/test10/template-2.exp - pengine/test10/template-3.exp - pengine/test10/template-clone-group.exp - pengine/test10/template-clone-primitive.exp - pengine/test10/template-coloc-1.exp - pengine/test10/template-coloc-2.exp - pengine/test10/template-coloc-3.exp - pengine/test10/template-order-1.exp - pengine/test10/template-order-2.exp - pengine/test10/template-order-3.exp - pengine/test10/template-rsc-sets-1.exp - pengine/test10/template-rsc-sets-2.exp - pengine/test10/template-rsc-sets-3.exp - pengine/test10/template-rsc-sets-4.exp - pengine/test10/template-ticket.exp - pengine/test10/ticket-clone-1.exp - pengine/test10/ticket-clone-10.exp - pengine/test10/ticket-clone-11.exp - pengine/test10/ticket-clone-12.exp - pengine/test10/ticket-clone-13.exp - pengine/test10/ticket-clone-14.exp - pengine/test10/ticket-clone-15.exp - pengine/test10/ticket-clone-16.exp - pengine/test10/ticket-clone-17.exp - pengine/test10/ticket-clone-18.exp - pengine/test10/ticket-clone-19.exp - pengine/test10/ticket-clone-2.exp - pengine/test10/ticket-clone-20.exp - pengine/test10/ticket-clone-22.exp - pengine/test10/ticket-clone-23.exp - pengine/test10/ticket-clone-24.exp - pengine/test10/ticket-clone-3.exp - pengine/test10/ticket-clone-4.exp - pengine/test10/ticket-clone-5.exp - pengine/test10/ticket-clone-6.exp - pengine/test10/ticket-clone-7.exp - pengine/test10/ticket-clone-8.exp - pengine/test10/ticket-group-1.exp - pengine/test10/ticket-group-10.exp - pengine/test10/ticket-group-11.exp - pengine/test10/ticket-group-12.exp - pengine/test10/ticket-group-13.exp - pengine/test10/ticket-group-14.exp - pengine/test10/ticket-group-15.exp - pengine/test10/ticket-group-16.exp - pengine/test10/ticket-group-17.exp - pengine/test10/ticket-group-18.exp - pengine/test10/ticket-group-19.exp - pengine/test10/ticket-group-2.exp - pengine/test10/ticket-group-20.exp - pengine/test10/ticket-group-21.exp - pengine/test10/ticket-group-22.exp - pengine/test10/ticket-group-23.exp - pengine/test10/ticket-group-24.exp - pengine/test10/ticket-group-3.exp - pengine/test10/ticket-group-4.exp - pengine/test10/ticket-group-5.exp - pengine/test10/ticket-group-6.exp - pengine/test10/ticket-group-7.exp - pengine/test10/ticket-group-8.exp - pengine/test10/ticket-group-9.exp - pengine/test10/ticket-master-1.exp - pengine/test10/ticket-master-10.exp - pengine/test10/ticket-master-11.exp - pengine/test10/ticket-master-12.exp - pengine/test10/ticket-master-13.exp - pengine/test10/ticket-master-14.exp - pengine/test10/ticket-master-15.exp - pengine/test10/ticket-master-16.exp - pengine/test10/ticket-master-17.exp - pengine/test10/ticket-master-18.exp - pengine/test10/ticket-master-19.exp - pengine/test10/ticket-master-2.exp - pengine/test10/ticket-master-20.exp - pengine/test10/ticket-master-21.exp - pengine/test10/ticket-master-22.exp - pengine/test10/ticket-master-23.exp - pengine/test10/ticket-master-24.exp - pengine/test10/ticket-master-3.exp - pengine/test10/ticket-master-4.exp - pengine/test10/ticket-master-5.exp - pengine/test10/ticket-master-6.exp - pengine/test10/ticket-master-7.exp - pengine/test10/ticket-master-8.exp - pengine/test10/ticket-master-9.exp - pengine/test10/ticket-primitive-1.exp - pengine/test10/ticket-primitive-10.exp - pengine/test10/ticket-primitive-11.exp - pengine/test10/ticket-primitive-12.exp - pengine/test10/ticket-primitive-13.exp - pengine/test10/ticket-primitive-14.exp - pengine/test10/ticket-primitive-15.exp - pengine/test10/ticket-primitive-16.exp - pengine/test10/ticket-primitive-17.exp - pengine/test10/ticket-primitive-18.exp - pengine/test10/ticket-primitive-19.exp - pengine/test10/ticket-primitive-2.exp - pengine/test10/ticket-primitive-20.exp - pengine/test10/ticket-primitive-21.exp - pengine/test10/ticket-primitive-22.exp - pengine/test10/ticket-primitive-23.exp - pengine/test10/ticket-primitive-24.exp - pengine/test10/ticket-primitive-3.exp - pengine/test10/ticket-primitive-4.exp - pengine/test10/ticket-primitive-5.exp - pengine/test10/ticket-primitive-6.exp - pengine/test10/ticket-primitive-7.exp - pengine/test10/ticket-primitive-8.exp - pengine/test10/ticket-primitive-9.exp - pengine/test10/ticket-rsc-sets-1.exp - pengine/test10/ticket-rsc-sets-10.exp - pengine/test10/ticket-rsc-sets-11.exp - pengine/test10/ticket-rsc-sets-12.exp - pengine/test10/ticket-rsc-sets-13.exp - pengine/test10/ticket-rsc-sets-14.exp - pengine/test10/ticket-rsc-sets-2.exp - pengine/test10/ticket-rsc-sets-3.exp - pengine/test10/ticket-rsc-sets-4.exp - pengine/test10/ticket-rsc-sets-5.exp - pengine/test10/ticket-rsc-sets-6.exp - pengine/test10/ticket-rsc-sets-7.exp - pengine/test10/ticket-rsc-sets-8.exp - pengine/test10/ticket-rsc-sets-9.exp - pengine/test10/unmanaged-master.exp - pengine/test10/unmanaged-stop-1.exp - pengine/test10/unmanaged-stop-2.exp - pengine/test10/unmanaged-stop-3.exp - pengine/test10/unmanaged-stop-4.exp - pengine/test10/unrunnable-1.exp - pengine/test10/use-after-free-merge.exp - pengine/test10/utilization-order1.exp - pengine/test10/utilization-order2.exp - pengine/test10/utilization-order3.exp - pengine/test10/utilization.exp - pengine/test10/whitebox-ms-ordering.exp - -diff --git a/pengine/allocate.c b/pengine/allocate.c -index a8e5412..a07fdad 100644 ---- a/pengine/allocate.c -+++ b/pengine/allocate.c -@@ -851,14 +851,14 @@ probe_resources(pe_working_set_t * data_set) - } - - if (probed != NULL && crm_is_true(probed) == FALSE) { -- action_t *probe_op = custom_action(NULL, strdup(CRM_OP_REPROBE), -+ action_t *probe_op = custom_action(NULL, g_strdup_printf("%s-%s", CRM_OP_REPROBE, node->details->uname), - CRM_OP_REPROBE, node, FALSE, TRUE, data_set); - - add_hash_param(probe_op->meta, XML_ATTR_TE_NOWAIT, XML_BOOLEAN_TRUE); - continue; - } - -- probe_node_complete = custom_action(NULL, strdup(CRM_OP_PROBED), -+ probe_node_complete = custom_action(NULL, g_strdup_printf("%s-%s", CRM_OP_PROBED, node->details->uname), - CRM_OP_PROBED, node, FALSE, TRUE, data_set); - if (crm_is_true(probed)) { - crm_trace("unset"); -@@ -1265,21 +1265,22 @@ any_managed_resources(pe_working_set_t * data_set) - action_t * - pe_fence_op(node_t * node, const char *op, pe_working_set_t * data_set) - { -+ char *key = NULL; - action_t *stonith_op = NULL; - - if(op == NULL) { - op = data_set->stonith_action; - } - -- stonith_op = custom_action( -- NULL, g_strdup_printf("%s-%s-%s", CRM_OP_FENCE, node->details->uname, op), -- CRM_OP_FENCE, node, FALSE, TRUE, data_set); -- -- add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET, node->details->uname); -+ key = g_strdup_printf("%s-%s-%s", CRM_OP_FENCE, node->details->uname, op); - -- add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET_UUID, node->details->id); -+ if(stonith_op == NULL) { -+ stonith_op = custom_action(NULL, key, CRM_OP_FENCE, node, FALSE, TRUE, data_set); - -- add_hash_param(stonith_op->meta, "stonith_action", op); -+ add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET, node->details->uname); -+ add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET_UUID, node->details->id); -+ add_hash_param(stonith_op->meta, "stonith_action", op); -+ } - - return stonith_op; - } -@@ -1338,7 +1339,7 @@ stage6(pe_working_set_t * data_set) - - crm_notice("Scheduling Node %s for shutdown", node->details->uname); - -- down_op = custom_action(NULL, strdup(CRM_OP_SHUTDOWN), -+ down_op = custom_action(NULL, g_strdup_printf("%s-%s", CRM_OP_SHUTDOWN, node->details->uname), - CRM_OP_SHUTDOWN, node, FALSE, TRUE, data_set); - - shutdown_constraints(node, down_op, data_set); -@@ -1367,20 +1368,22 @@ stage6(pe_working_set_t * data_set) - } - - if (dc_down != NULL) { -- GListPtr shutdown_matches = find_actions(data_set->actions, CRM_OP_SHUTDOWN, NULL); -+ GListPtr gIter = NULL; - - crm_trace("Ordering shutdowns before %s on %s (DC)", - dc_down->task, dc_down->node->details->uname); - - add_hash_param(dc_down->meta, XML_ATTR_TE_NOWAIT, XML_BOOLEAN_TRUE); - -- gIter = shutdown_matches; -- for (; gIter != NULL; gIter = gIter->next) { -+ for (gIter = data_set->actions; gIter != NULL; gIter = gIter->next) { - action_t *node_stop = (action_t *) gIter->data; - -- if (node_stop->node->details->is_dc) { -+ if (safe_str_neq(CRM_OP_SHUTDOWN, node_stop->task)) { -+ continue; -+ } else if (node_stop->node->details->is_dc) { - continue; - } -+ - crm_debug("Ordering shutdown on %s before %s on %s", - node_stop->node->details->uname, - dc_down->task, dc_down->node->details->uname); -@@ -1391,7 +1394,6 @@ stage6(pe_working_set_t * data_set) - if (last_stonith && dc_down != last_stonith) { - order_actions(last_stonith, dc_down, pe_order_optional); - } -- g_list_free(shutdown_matches); - } - - if (last_stonith) { -diff --git a/pengine/test10/11-a-then-bm-b-move-a-clone-starting.exp b/pengine/test10/11-a-then-bm-b-move-a-clone-starting.exp -new file mode 100644 -index 0000000..6374d93 ---- /dev/null -+++ b/pengine/test10/11-a-then-bm-b-move-a-clone-starting.exp -@@ -0,0 +1,168 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="7" operation="start" operation_key="myclone_start_0" internal_operation_key="myclone:0_start_0" on_node="f20node2" on_node_uuid="2"> -+ <primitive id="myclone" long-id="myclone:0" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="myclone_stop_0" internal_operation_key="myclone:0_stop_0" on_node="f20node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="8" operation="start" operation_key="myclone-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="6" operation="stop" operation_key="myclone_stop_0" internal_operation_key="myclone:0_stop_0" on_node="f20node1" on_node_uuid="1"> -+ <primitive id="myclone" long-id="myclone:0" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="10" operation="stop" operation_key="myclone-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="5" operation="monitor" operation_key="myclone_monitor_0" internal_operation_key="myclone:0_monitor_0" on_node="f20node2" on_node_uuid="2"> -+ <primitive id="myclone" long-id="myclone:0" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="3" priority="1000000"> -+ <action_set> -+ <pseudo_event id="11" operation="stopped" operation_key="myclone-clone_stopped_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="myclone_stop_0" internal_operation_key="myclone:0_stop_0" on_node="f20node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="10" operation="stop" operation_key="myclone-clone_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <pseudo_event id="10" operation="stop" operation_key="myclone-clone_stop_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="12" operation="stop" operation_key="vm_stop_0" on_node="f20node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5" priority="1000000"> -+ <action_set> -+ <pseudo_event id="9" operation="running" operation_key="myclone-clone_running_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="7" operation="start" operation_key="myclone_start_0" internal_operation_key="myclone:0_start_0" on_node="f20node2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="8" operation="start" operation_key="myclone-clone_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <pseudo_event id="8" operation="start" operation_key="myclone-clone_start_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="11" operation="stopped" operation_key="myclone-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="13" operation="start" operation_key="vm_start_0" on_node="f20node2" on_node_uuid="2"> -+ <primitive id="vm" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="9" operation="running" operation_key="myclone-clone_running_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="12" operation="stop" operation_key="vm_stop_0" on_node="f20node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="12" operation="stop" operation_key="vm_stop_0" on_node="f20node1" on_node_uuid="1"> -+ <primitive id="vm" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9" priority="1000000"> -+ <action_set> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-f20node2" on_node="f20node2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="monitor" operation_key="myclone_monitor_0" internal_operation_key="myclone:0_monitor_0" on_node="f20node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-f20node2" on_node="f20node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="myclone_stop_0" internal_operation_key="myclone:0_stop_0" on_node="f20node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="12" operation="stop" operation_key="vm_stop_0" on_node="f20node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/594.exp b/pengine/test10/594.exp -index f1e77f8..357921c 100644 ---- a/pengine/test10/594.exp -+++ b/pengine/test10/594.exp -@@ -191,7 +191,7 @@ - </synapse> - <synapse id="16"> - <action_set> -- <crm_event id="36" operation="do_shutdown" operation_key="do_shutdown" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> -+ <crm_event id="36" operation="do_shutdown" operation_key="do_shutdown-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -221,7 +221,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -236,7 +236,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-hadev1" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -260,10 +260,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-hadev1" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"/> - </trigger> - <trigger> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/662.exp b/pengine/test10/662.exp -index 90f8a54..910f85f 100644 ---- a/pengine/test10/662.exp -+++ b/pengine/test10/662.exp -@@ -282,7 +282,7 @@ - </synapse> - <synapse id="29"> - <action_set> -- <crm_event id="62" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <crm_event id="62" operation="do_shutdown" operation_key="do_shutdown-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -297,7 +297,7 @@ - </synapse> - <synapse id="30" priority="1000000"> - <action_set> -- <rsc_op id="33" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -321,7 +321,7 @@ - </synapse> - <synapse id="31" priority="1000000"> - <action_set> -- <rsc_op id="25" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="25" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -351,7 +351,7 @@ - </synapse> - <synapse id="32" priority="1000000"> - <action_set> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -378,7 +378,7 @@ - </synapse> - <synapse id="33" priority="1000000"> - <action_set> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -408,16 +408,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="25" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="25" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="33" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/696.exp b/pengine/test10/696.exp -index ec6a5f6..45bf881 100644 ---- a/pengine/test10/696.exp -+++ b/pengine/test10/696.exp -@@ -309,7 +309,7 @@ - </synapse> - <synapse id="29" priority="1000000"> - <action_set> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-hadev3" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -330,7 +330,7 @@ - </synapse> - <synapse id="30" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -351,7 +351,7 @@ - </synapse> - <synapse id="31" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev1" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -387,13 +387,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev1" on_node="hadev1" on_node_uuid="6125a0df-456a-4395-829a-418e9a380d36"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> - </trigger> - <trigger> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"/> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-hadev3" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/726.exp b/pengine/test10/726.exp -index 0f56ae3..0a10a6d 100644 ---- a/pengine/test10/726.exp -+++ b/pengine/test10/726.exp -@@ -531,7 +531,7 @@ - </synapse> - <synapse id="49" priority="1000000"> - <action_set> -- <rsc_op id="32" operation="probe_complete" operation_key="probe_complete" on_node="test03" on_node_uuid="f9c593eb-ca0d-4ab3-ba88-fde12c02334a"> -+ <rsc_op id="32" operation="probe_complete" operation_key="probe_complete-test03" on_node="test03" on_node_uuid="f9c593eb-ca0d-4ab3-ba88-fde12c02334a"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -552,7 +552,7 @@ - </synapse> - <synapse id="50" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="test02" on_node_uuid="f75e684a-be1e-4036-89e5-a14f8dcdc947"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-test02" on_node="test02" on_node_uuid="f75e684a-be1e-4036-89e5-a14f8dcdc947"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -585,7 +585,7 @@ - </synapse> - <synapse id="51" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="sgi2" on_node_uuid="619e8a37-147a-4782-ac11-46afad7c32b8"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-sgi2" on_node="sgi2" on_node_uuid="619e8a37-147a-4782-ac11-46afad7c32b8"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -621,7 +621,7 @@ - </synapse> - <synapse id="52" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-ibm1" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -663,16 +663,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-ibm1" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="sgi2" on_node_uuid="619e8a37-147a-4782-ac11-46afad7c32b8"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-sgi2" on_node="sgi2" on_node_uuid="619e8a37-147a-4782-ac11-46afad7c32b8"/> - </trigger> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="test02" on_node_uuid="f75e684a-be1e-4036-89e5-a14f8dcdc947"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-test02" on_node="test02" on_node_uuid="f75e684a-be1e-4036-89e5-a14f8dcdc947"/> - </trigger> - <trigger> -- <rsc_op id="32" operation="probe_complete" operation_key="probe_complete" on_node="test03" on_node_uuid="f9c593eb-ca0d-4ab3-ba88-fde12c02334a"/> -+ <rsc_op id="32" operation="probe_complete" operation_key="probe_complete-test03" on_node="test03" on_node_uuid="f9c593eb-ca0d-4ab3-ba88-fde12c02334a"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/735.exp b/pengine/test10/735.exp -index fd66dfe..e4b73e5 100644 ---- a/pengine/test10/735.exp -+++ b/pengine/test10/735.exp -@@ -182,7 +182,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-hadev3" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -209,7 +209,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-hadev3" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/764.exp b/pengine/test10/764.exp -index 890665a..bbb2d32 100644 ---- a/pengine/test10/764.exp -+++ b/pengine/test10/764.exp -@@ -156,7 +156,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="posic043" on_node_uuid="3daa25e7-8713-4c6f-8790-7f41599a1596"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-posic043" on_node="posic043" on_node_uuid="3daa25e7-8713-4c6f-8790-7f41599a1596"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -177,7 +177,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="posic041" on_node_uuid="c5d5ed56-7340-4d81-afd6-40b5ee6803ad"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-posic041" on_node="posic041" on_node_uuid="c5d5ed56-7340-4d81-afd6-40b5ee6803ad"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -204,10 +204,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="posic041" on_node_uuid="c5d5ed56-7340-4d81-afd6-40b5ee6803ad"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-posic041" on_node="posic041" on_node_uuid="c5d5ed56-7340-4d81-afd6-40b5ee6803ad"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="posic043" on_node_uuid="3daa25e7-8713-4c6f-8790-7f41599a1596"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-posic043" on_node="posic043" on_node_uuid="3daa25e7-8713-4c6f-8790-7f41599a1596"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/797.exp b/pengine/test10/797.exp -index cac962d..02ef70b 100644 ---- a/pengine/test10/797.exp -+++ b/pengine/test10/797.exp -@@ -324,7 +324,7 @@ - </synapse> - <synapse id="28"> - <action_set> -- <crm_event id="51" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <crm_event id="51" operation="do_shutdown" operation_key="do_shutdown-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -342,7 +342,7 @@ - </synapse> - <synapse id="29" priority="1000000"> - <action_set> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -363,7 +363,7 @@ - </synapse> - <synapse id="30" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -381,7 +381,7 @@ - </synapse> - <synapse id="31" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -414,13 +414,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/829.exp b/pengine/test10/829.exp -index 749014f..21a9ecd 100644 ---- a/pengine/test10/829.exp -+++ b/pengine/test10/829.exp -@@ -266,7 +266,7 @@ - </synapse> - <synapse id="25" priority="1000000"> - <action_set> -- <rsc_op id="25" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="25" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -287,7 +287,7 @@ - </synapse> - <synapse id="26" priority="1000000"> - <action_set> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -314,7 +314,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -350,13 +350,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="25" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="25" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/anti-colocation-order.exp b/pengine/test10/anti-colocation-order.exp -new file mode 100644 -index 0000000..99d5f3a ---- /dev/null -+++ b/pengine/test10/anti-colocation-order.exp -@@ -0,0 +1,217 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0" priority="100"> -+ <action_set> -+ <pseudo_event id="12" operation="stopped" operation_key="group1_stopped_0"> -+ <attributes CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="11" operation="stop" operation_key="group1_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1" priority="100"> -+ <action_set> -+ <pseudo_event id="11" operation="stop" operation_key="group1_stop_0"> -+ <attributes CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2" priority="100"> -+ <action_set> -+ <pseudo_event id="10" operation="running" operation_key="group1_running_0"> -+ <attributes CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="9" operation="start" operation_key="group1_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3" priority="100"> -+ <action_set> -+ <pseudo_event id="9" operation="start" operation_key="group1_start_0"> -+ <attributes CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="12" operation="stopped" operation_key="group1_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="18" operation="stopped" operation_key="group2_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4" priority="100"> -+ <action_set> -+ <rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="9" operation="start" operation_key="group1_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5" priority="100"> -+ <action_set> -+ <rsc_op id="5" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="11" operation="stop" operation_key="group1_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6" priority="100"> -+ <action_set> -+ <rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="9" operation="start" operation_key="group1_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7" priority="100"> -+ <action_set> -+ <rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="11" operation="stop" operation_key="group1_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8" priority="10"> -+ <action_set> -+ <pseudo_event id="18" operation="stopped" operation_key="group2_stopped_0"> -+ <attributes CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="13" operation="stop" operation_key="rsc3_stop_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="14" operation="stop" operation_key="rsc4_stop_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="17" operation="stop" operation_key="group2_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9" priority="10"> -+ <action_set> -+ <pseudo_event id="17" operation="stop" operation_key="group2_stop_0"> -+ <attributes CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="10" priority="10"> -+ <action_set> -+ <rsc_op id="13" operation="stop" operation_key="rsc3_stop_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="14" operation="stop" operation_key="rsc4_stop_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="17" operation="stop" operation_key="group2_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11" priority="10"> -+ <action_set> -+ <rsc_op id="14" operation="stop" operation_key="rsc4_stop_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="17" operation="stop" operation_key="group2_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12" priority="1000000"> -+ <action_set> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="13" priority="1000000"> -+ <action_set> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="13" operation="stop" operation_key="rsc3_stop_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="14" operation="stop" operation_key="rsc4_stop_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/asymmetric.exp b/pengine/test10/asymmetric.exp -index 33850dd..52a2327 100644 ---- a/pengine/test10/asymmetric.exp -+++ b/pengine/test10/asymmetric.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="puma3" on_node_uuid="d61fe2cb-98f0-4815-9b7e-2552f5330ad3"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-puma3" on_node="puma3" on_node_uuid="d61fe2cb-98f0-4815-9b7e-2552f5330ad3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,7 +49,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="puma1" on_node_uuid="c1b88737-8c7c-4824-81de-843fe7f2e88a"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-puma1" on_node="puma1" on_node_uuid="c1b88737-8c7c-4824-81de-843fe7f2e88a"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -67,10 +67,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="puma1" on_node_uuid="c1b88737-8c7c-4824-81de-843fe7f2e88a"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-puma1" on_node="puma1" on_node_uuid="c1b88737-8c7c-4824-81de-843fe7f2e88a"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="puma3" on_node_uuid="d61fe2cb-98f0-4815-9b7e-2552f5330ad3"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-puma3" on_node="puma3" on_node_uuid="d61fe2cb-98f0-4815-9b7e-2552f5330ad3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs1.exp b/pengine/test10/attrs1.exp -index 9e83487..8dd6a40 100644 ---- a/pengine/test10/attrs1.exp -+++ b/pengine/test10/attrs1.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs2.exp b/pengine/test10/attrs2.exp -index 9e83487..8dd6a40 100644 ---- a/pengine/test10/attrs2.exp -+++ b/pengine/test10/attrs2.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs3.exp b/pengine/test10/attrs3.exp -index 99b81e7..b6e55a2 100644 ---- a/pengine/test10/attrs3.exp -+++ b/pengine/test10/attrs3.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs4.exp b/pengine/test10/attrs4.exp -index 99b81e7..b6e55a2 100644 ---- a/pengine/test10/attrs4.exp -+++ b/pengine/test10/attrs4.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs5.exp b/pengine/test10/attrs5.exp -index c7f836f..5e7b2c7 100644 ---- a/pengine/test10/attrs5.exp -+++ b/pengine/test10/attrs5.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs6.exp b/pengine/test10/attrs6.exp -index 99b81e7..b6e55a2 100644 ---- a/pengine/test10/attrs6.exp -+++ b/pengine/test10/attrs6.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs7.exp b/pengine/test10/attrs7.exp -index 9e83487..8dd6a40 100644 ---- a/pengine/test10/attrs7.exp -+++ b/pengine/test10/attrs7.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/attrs8.exp b/pengine/test10/attrs8.exp -index 9e83487..8dd6a40 100644 ---- a/pengine/test10/attrs8.exp -+++ b/pengine/test10/attrs8.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/balanced.exp b/pengine/test10/balanced.exp -index e6e96d0..c188632 100644 ---- a/pengine/test10/balanced.exp -+++ b/pengine/test10/balanced.exp -@@ -69,7 +69,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="host2" on_node_uuid="host2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-host2" on_node="host2" on_node_uuid="host2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -84,7 +84,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="host1" on_node_uuid="host1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-host1" on_node="host1" on_node_uuid="host1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -105,10 +105,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="host1" on_node_uuid="host1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-host1" on_node="host1" on_node_uuid="host1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="host2" on_node_uuid="host2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-host2" on_node="host2" on_node_uuid="host2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/base-score.exp b/pengine/test10/base-score.exp -index b6710f5..ab71c3b 100644 ---- a/pengine/test10/base-score.exp -+++ b/pengine/test10/base-score.exp -@@ -50,7 +50,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="puma4" on_node_uuid="puma4"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-puma4" on_node="puma4" on_node_uuid="puma4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,7 +62,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="puma3" on_node_uuid="puma3"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-puma3" on_node="puma3" on_node_uuid="puma3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -74,7 +74,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="puma2" on_node_uuid="puma2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-puma2" on_node="puma2" on_node_uuid="puma2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -86,7 +86,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="puma1" on_node_uuid="puma1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-puma1" on_node="puma1" on_node_uuid="puma1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -104,16 +104,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="puma1" on_node_uuid="puma1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-puma1" on_node="puma1" on_node_uuid="puma1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="puma2" on_node_uuid="puma2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-puma2" on_node="puma2" on_node_uuid="puma2"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="puma3" on_node_uuid="puma3"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-puma3" on_node="puma3" on_node_uuid="puma3"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="puma4" on_node_uuid="puma4"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-puma4" on_node="puma4" on_node_uuid="puma4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-1572-1.exp b/pengine/test10/bug-1572-1.exp -index 2b3bf4c..c0184ae 100644 ---- a/pengine/test10/bug-1572-1.exp -+++ b/pengine/test10/bug-1572-1.exp -@@ -750,7 +750,7 @@ - </synapse> - <synapse id="50"> - <action_set> -- <crm_event id="47" operation="do_shutdown" operation_key="do_shutdown" on_node="arc-dknightlx" on_node_uuid="8c16c69e-f753-49cf-ba89-3ae421940042"> -+ <crm_event id="47" operation="do_shutdown" operation_key="do_shutdown-arc-dknightlx" on_node="arc-dknightlx" on_node_uuid="8c16c69e-f753-49cf-ba89-3ae421940042"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/bug-1572-2.exp b/pengine/test10/bug-1572-2.exp -index ad91bab..465bf1d 100644 ---- a/pengine/test10/bug-1572-2.exp -+++ b/pengine/test10/bug-1572-2.exp -@@ -371,7 +371,7 @@ - </synapse> - <synapse id="26"> - <action_set> -- <crm_event id="43" operation="do_shutdown" operation_key="do_shutdown" on_node="arc-dknightlx" on_node_uuid="8c16c69e-f753-49cf-ba89-3ae421940042"> -+ <crm_event id="43" operation="do_shutdown" operation_key="do_shutdown-arc-dknightlx" on_node="arc-dknightlx" on_node_uuid="8c16c69e-f753-49cf-ba89-3ae421940042"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/bug-1573.exp b/pengine/test10/bug-1573.exp -index 86eb893..39f7a61 100644 ---- a/pengine/test10/bug-1573.exp -+++ b/pengine/test10/bug-1573.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="15" operation="do_shutdown" operation_key="do_shutdown" on_node="xen-b" on_node_uuid="6a0b1629-ab27-47c7-a6a4-461c94e477f2"> -+ <crm_event id="15" operation="do_shutdown" operation_key="do_shutdown-xen-b" on_node="xen-b" on_node_uuid="6a0b1629-ab27-47c7-a6a4-461c94e477f2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/bug-1820-1.exp b/pengine/test10/bug-1820-1.exp -index 732ded8..2753fd0 100644 ---- a/pengine/test10/bug-1820-1.exp -+++ b/pengine/test10/bug-1820-1.exp -@@ -178,7 +178,7 @@ - </synapse> - <synapse id="13"> - <action_set> -- <crm_event id="21" operation="do_shutdown" operation_key="do_shutdown" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"> -+ <crm_event id="21" operation="do_shutdown" operation_key="do_shutdown-star" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -193,7 +193,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="world" on_node_uuid="e4603bf6-d10f-4af2-b53b-ba72de6164d0"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-world" on_node="world" on_node_uuid="e4603bf6-d10f-4af2-b53b-ba72de6164d0"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -205,7 +205,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-star" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -223,10 +223,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-star" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="world" on_node_uuid="e4603bf6-d10f-4af2-b53b-ba72de6164d0"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-world" on_node="world" on_node_uuid="e4603bf6-d10f-4af2-b53b-ba72de6164d0"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-1820.exp b/pengine/test10/bug-1820.exp -index ad98db1..434d4b6 100644 ---- a/pengine/test10/bug-1820.exp -+++ b/pengine/test10/bug-1820.exp -@@ -175,7 +175,7 @@ - </synapse> - <synapse id="12"> - <action_set> -- <crm_event id="18" operation="do_shutdown" operation_key="do_shutdown" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"> -+ <crm_event id="18" operation="do_shutdown" operation_key="do_shutdown-star" on_node="star" on_node_uuid="3f368213-61d5-409a-a30e-1428efe70f63"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/bug-1822.exp b/pengine/test10/bug-1822.exp -index 0e101b5..6dc28f8 100644 ---- a/pengine/test10/bug-1822.exp -+++ b/pengine/test10/bug-1822.exp -@@ -166,7 +166,7 @@ - </synapse> - <synapse id="12"> - <action_set> -- <crm_event id="37" operation="do_shutdown" operation_key="do_shutdown" on_node="process1a" on_node_uuid="4dbb8c56-330e-4835-a15e-c0aa632d4e89"> -+ <crm_event id="37" operation="do_shutdown" operation_key="do_shutdown-process1a" on_node="process1a" on_node_uuid="4dbb8c56-330e-4835-a15e-c0aa632d4e89"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/bug-5014-A-start-B-start.exp b/pengine/test10/bug-5014-A-start-B-start.exp -index 63c271d..6670814 100644 ---- a/pengine/test10/bug-5014-A-start-B-start.exp -+++ b/pengine/test10/bug-5014-A-start-B-start.exp -@@ -74,7 +74,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -95,7 +95,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-5014-A-stopped-B-stopped.exp b/pengine/test10/bug-5014-A-stopped-B-stopped.exp -index e1a25cd..8814477 100644 ---- a/pengine/test10/bug-5014-A-stopped-B-stopped.exp -+++ b/pengine/test10/bug-5014-A-stopped-B-stopped.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -40,7 +40,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-5014-CLONE-A-start-B-start.exp b/pengine/test10/bug-5014-CLONE-A-start-B-start.exp -index 30d8952..1fc2c70 100644 ---- a/pengine/test10/bug-5014-CLONE-A-start-B-start.exp -+++ b/pengine/test10/bug-5014-CLONE-A-start-B-start.exp -@@ -127,7 +127,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -148,7 +148,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-5014-CthenAthenB-C-stopped.exp b/pengine/test10/bug-5014-CthenAthenB-C-stopped.exp -index 6961d8a..318ba6f 100644 ---- a/pengine/test10/bug-5014-CthenAthenB-C-stopped.exp -+++ b/pengine/test10/bug-5014-CthenAthenB-C-stopped.exp -@@ -28,7 +28,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -52,7 +52,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-5028-detach.exp b/pengine/test10/bug-5028-detach.exp -index 1c3374b..58d12ec 100644 ---- a/pengine/test10/bug-5028-detach.exp -+++ b/pengine/test10/bug-5028-detach.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="14" operation="do_shutdown" operation_key="do_shutdown" on_node="bl460g6a" on_node_uuid="11111111-1111-1111-1111-111111111111"> -+ <crm_event id="14" operation="do_shutdown" operation_key="do_shutdown-bl460g6a" on_node="bl460g6a" on_node_uuid="11111111-1111-1111-1111-111111111111"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/bug-lf-2160.exp b/pengine/test10/bug-lf-2160.exp -index ed0b455..3d41f1e 100644 ---- a/pengine/test10/bug-lf-2160.exp -+++ b/pengine/test10/bug-lf-2160.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="cardhu" on_node_uuid="cardhu"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-cardhu" on_node="cardhu" on_node_uuid="cardhu"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -40,7 +40,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="cardhu" on_node_uuid="cardhu"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-cardhu" on_node="cardhu" on_node_uuid="cardhu"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-lf-2435.exp b/pengine/test10/bug-lf-2435.exp -index 7255127..5a12601 100644 ---- a/pengine/test10/bug-lf-2435.exp -+++ b/pengine/test10/bug-lf-2435.exp -@@ -70,7 +70,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="c21.chepkov.lan" on_node_uuid="c21.chepkov.lan"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-c21.chepkov.lan" on_node="c21.chepkov.lan" on_node_uuid="c21.chepkov.lan"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="c20.chepkov.lan" on_node_uuid="c20.chepkov.lan"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-c20.chepkov.lan" on_node="c20.chepkov.lan" on_node_uuid="c20.chepkov.lan"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -94,7 +94,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="c19.chepkov.lan" on_node_uuid="c19.chepkov.lan"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-c19.chepkov.lan" on_node="c19.chepkov.lan" on_node_uuid="c19.chepkov.lan"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -112,13 +112,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="c19.chepkov.lan" on_node_uuid="c19.chepkov.lan"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-c19.chepkov.lan" on_node="c19.chepkov.lan" on_node_uuid="c19.chepkov.lan"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="c20.chepkov.lan" on_node_uuid="c20.chepkov.lan"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-c20.chepkov.lan" on_node="c20.chepkov.lan" on_node_uuid="c20.chepkov.lan"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="c21.chepkov.lan" on_node_uuid="c21.chepkov.lan"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-c21.chepkov.lan" on_node="c21.chepkov.lan" on_node_uuid="c21.chepkov.lan"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-lf-2445.exp b/pengine/test10/bug-lf-2445.exp -index 5733768..d8f88c3 100644 ---- a/pengine/test10/bug-lf-2445.exp -+++ b/pengine/test10/bug-lf-2445.exp -@@ -80,7 +80,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -88,7 +88,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/bug-lf-2581.exp b/pengine/test10/bug-lf-2581.exp -index 60667fc..2906613 100644 ---- a/pengine/test10/bug-lf-2581.exp -+++ b/pengine/test10/bug-lf-2581.exp -@@ -230,7 +230,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="queen" on_node_uuid="queen"> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-queen" on_node="queen" on_node_uuid="queen"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -266,7 +266,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="queen" on_node_uuid="queen"/> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-queen" on_node="queen" on_node_uuid="queen"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-lf-2606.exp b/pengine/test10/bug-lf-2606.exp -index 270131a..71d8457 100644 ---- a/pengine/test10/bug-lf-2606.exp -+++ b/pengine/test10/bug-lf-2606.exp -@@ -160,7 +160,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/bug-n-387749.exp b/pengine/test10/bug-n-387749.exp -index 394f8ac..ea0cc27 100644 ---- a/pengine/test10/bug-n-387749.exp -+++ b/pengine/test10/bug-n-387749.exp -@@ -345,7 +345,7 @@ - </synapse> - <synapse id="25" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="power720-1" on_node_uuid="ac446085-4c9d-4d4a-a94d-5e63b6e421e3"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-power720-1" on_node="power720-1" on_node_uuid="ac446085-4c9d-4d4a-a94d-5e63b6e421e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -375,7 +375,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="power720-1" on_node_uuid="ac446085-4c9d-4d4a-a94d-5e63b6e421e3"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-power720-1" on_node="power720-1" on_node_uuid="ac446085-4c9d-4d4a-a94d-5e63b6e421e3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-pm-11.exp b/pengine/test10/bug-pm-11.exp -index 42d405f..bb23360 100644 ---- a/pengine/test10/bug-pm-11.exp -+++ b/pengine/test10/bug-pm-11.exp -@@ -213,7 +213,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node-b" on_node_uuid="9b262633-815c-4e5e-8f63-76486cab9ad2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node-b" on_node="node-b" on_node_uuid="9b262633-815c-4e5e-8f63-76486cab9ad2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -228,7 +228,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node-a" on_node_uuid="babfee4b-9c89-4df2-8ccb-3de2a3587d8d"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node-a" on_node="node-a" on_node_uuid="babfee4b-9c89-4df2-8ccb-3de2a3587d8d"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -249,10 +249,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node-a" on_node_uuid="babfee4b-9c89-4df2-8ccb-3de2a3587d8d"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node-a" on_node="node-a" on_node_uuid="babfee4b-9c89-4df2-8ccb-3de2a3587d8d"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node-b" on_node_uuid="9b262633-815c-4e5e-8f63-76486cab9ad2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node-b" on_node="node-b" on_node_uuid="9b262633-815c-4e5e-8f63-76486cab9ad2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-suse-707150.exp b/pengine/test10/bug-suse-707150.exp -index 270b3fd..ca3d57b 100644 ---- a/pengine/test10/bug-suse-707150.exp -+++ b/pengine/test10/bug-suse-707150.exp -@@ -169,7 +169,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="hex-9" on_node_uuid="hex-9"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-hex-9" on_node="hex-9" on_node_uuid="hex-9"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -187,7 +187,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="hex-9" on_node_uuid="hex-9"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/clone-anon-dup.exp b/pengine/test10/clone-anon-dup.exp -index 69ed601..1fea098 100644 ---- a/pengine/test10/clone-anon-dup.exp -+++ b/pengine/test10/clone-anon-dup.exp -@@ -107,7 +107,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="wc03" on_node_uuid="f61edb1d-6f49-4ffa-a46a-42ceef796f6e"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-wc03" on_node="wc03" on_node_uuid="f61edb1d-6f49-4ffa-a46a-42ceef796f6e"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -119,7 +119,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="wc02" on_node_uuid="f36760d8-d84a-46b2-b452-4c8cac8b3396"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-wc02" on_node="wc02" on_node_uuid="f36760d8-d84a-46b2-b452-4c8cac8b3396"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -131,7 +131,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="wc01" on_node_uuid="31de4ab3-2d05-476e-8f9a-627ad6cd94ca"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-wc01" on_node="wc01" on_node_uuid="31de4ab3-2d05-476e-8f9a-627ad6cd94ca"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -149,13 +149,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="wc01" on_node_uuid="31de4ab3-2d05-476e-8f9a-627ad6cd94ca"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-wc01" on_node="wc01" on_node_uuid="31de4ab3-2d05-476e-8f9a-627ad6cd94ca"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="wc02" on_node_uuid="f36760d8-d84a-46b2-b452-4c8cac8b3396"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-wc02" on_node="wc02" on_node_uuid="f36760d8-d84a-46b2-b452-4c8cac8b3396"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="wc03" on_node_uuid="f61edb1d-6f49-4ffa-a46a-42ceef796f6e"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-wc03" on_node="wc03" on_node_uuid="f61edb1d-6f49-4ffa-a46a-42ceef796f6e"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/clone-anon-probe-1.exp b/pengine/test10/clone-anon-probe-1.exp -index 13b8d3d..6a0b6de 100644 ---- a/pengine/test10/clone-anon-probe-1.exp -+++ b/pengine/test10/clone-anon-probe-1.exp -@@ -77,7 +77,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="mysql-02" on_node_uuid="06f7483d-273b-4c51-95a6-bccde94d7fdb"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-mysql-02" on_node="mysql-02" on_node_uuid="06f7483d-273b-4c51-95a6-bccde94d7fdb"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -89,7 +89,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="mysql-01" on_node_uuid="3f3eb909-e719-4bc4-a700-d7aa91a65098"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-mysql-01" on_node="mysql-01" on_node_uuid="3f3eb909-e719-4bc4-a700-d7aa91a65098"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -107,10 +107,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="mysql-01" on_node_uuid="3f3eb909-e719-4bc4-a700-d7aa91a65098"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-mysql-01" on_node="mysql-01" on_node_uuid="3f3eb909-e719-4bc4-a700-d7aa91a65098"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="mysql-02" on_node_uuid="06f7483d-273b-4c51-95a6-bccde94d7fdb"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-mysql-02" on_node="mysql-02" on_node_uuid="06f7483d-273b-4c51-95a6-bccde94d7fdb"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/clone-colocate-instance-1.exp b/pengine/test10/clone-colocate-instance-1.exp -index 0d358be..c1d4629 100644 ---- a/pengine/test10/clone-colocate-instance-1.exp -+++ b/pengine/test10/clone-colocate-instance-1.exp -@@ -139,7 +139,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-bob.demo" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,7 +157,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-alice.demo" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -181,10 +181,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-alice.demo" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-bob.demo" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/clone-colocate-instance-2.exp b/pengine/test10/clone-colocate-instance-2.exp -index a02a737..34d03bd 100644 ---- a/pengine/test10/clone-colocate-instance-2.exp -+++ b/pengine/test10/clone-colocate-instance-2.exp -@@ -139,7 +139,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-bob.demo" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,7 +157,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-alice.demo" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -181,10 +181,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-alice.demo" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-bob.demo" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/clone-interleave-1.exp b/pengine/test10/clone-interleave-1.exp -new file mode 100644 -index 0000000..a0d8995 ---- /dev/null -+++ b/pengine/test10/clone-interleave-1.exp -@@ -0,0 +1,231 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="6" operation="start" operation_key="dummy_start_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="24" operation="running" operation_key="clone-3_running_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="7" operation="start" operation_key="child-1:0_start_0" on_node="pcmk-2" on_node_uuid="2"> -+ <primitive id="child-1" long-id="child-1:0" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="10" operation="start" operation_key="clone-1_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="8" operation="start" operation_key="child-1:1_start_0" on_node="pcmk-3" on_node_uuid="3"> -+ <primitive id="child-1" long-id="child-1:1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="10" operation="start" operation_key="clone-1_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="9" operation="start" operation_key="child-1:2_start_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="child-1" long-id="child-1:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="10" operation="start" operation_key="clone-1_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4" priority="1000000"> -+ <action_set> -+ <pseudo_event id="11" operation="running" operation_key="clone-1_running_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="7" operation="start" operation_key="child-1:0_start_0" on_node="pcmk-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="8" operation="start" operation_key="child-1:1_start_0" on_node="pcmk-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="9" operation="start" operation_key="child-1:2_start_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="10" operation="start" operation_key="clone-1_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <pseudo_event id="10" operation="start" operation_key="clone-1_start_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="14" operation="start" operation_key="child-2:0_start_0" on_node="pcmk-2" on_node_uuid="2"> -+ <primitive id="child-2" long-id="child-2:0" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="7" operation="start" operation_key="child-1:0_start_0" on_node="pcmk-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="16" operation="start" operation_key="clone-2_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="15" operation="start" operation_key="child-2:1_start_0" on_node="pcmk-3" on_node_uuid="3"> -+ <primitive id="child-2" long-id="child-2:1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="8" operation="start" operation_key="child-1:1_start_0" on_node="pcmk-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="16" operation="start" operation_key="clone-2_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8" priority="1000000"> -+ <action_set> -+ <pseudo_event id="17" operation="running" operation_key="clone-2_running_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="14" operation="start" operation_key="child-2:0_start_0" on_node="pcmk-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="15" operation="start" operation_key="child-2:1_start_0" on_node="pcmk-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="16" operation="start" operation_key="clone-2_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <pseudo_event id="16" operation="start" operation_key="clone-2_start_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="11" operation="running" operation_key="clone-1_running_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="21" operation="start" operation_key="child-3:1_start_0" on_node="pcmk-2" on_node_uuid="2"> -+ <primitive id="child-3" long-id="child-3:1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="14" operation="start" operation_key="child-2:0_start_0" on_node="pcmk-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="23" operation="start" operation_key="clone-3_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="22" operation="start" operation_key="child-3:2_start_0" on_node="pcmk-3" on_node_uuid="3"> -+ <primitive id="child-3" long-id="child-3:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="15" operation="start" operation_key="child-2:1_start_0" on_node="pcmk-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="23" operation="start" operation_key="clone-3_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12" priority="1000000"> -+ <action_set> -+ <pseudo_event id="24" operation="running" operation_key="clone-3_running_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="21" operation="start" operation_key="child-3:1_start_0" on_node="pcmk-2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="22" operation="start" operation_key="child-3:2_start_0" on_node="pcmk-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="23" operation="start" operation_key="clone-3_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <pseudo_event id="23" operation="start" operation_key="clone-3_start_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="17" operation="running" operation_key="clone-2_running_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14" priority="1000000"> -+ <action_set> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-pcmk-3" on_node="pcmk-3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="15" priority="1000000"> -+ <action_set> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="16" priority="1000000"> -+ <action_set> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/clone-interleave-2.exp b/pengine/test10/clone-interleave-2.exp -new file mode 100644 -index 0000000..fa59afb ---- /dev/null -+++ b/pengine/test10/clone-interleave-2.exp -@@ -0,0 +1,176 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="7" operation="start" operation_key="dummy_start_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="running" operation_key="clone-3_running_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="6" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="18" operation="stop" operation_key="child-2:2_stop_0" internal_operation_key="child-2:0_stop_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="child-2" long-id="child-2:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="25" operation="stop" operation_key="clone-2_stop_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="27" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3" priority="1000000"> -+ <action_set> -+ <pseudo_event id="26" operation="stopped" operation_key="clone-2_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="child-2:2_stop_0" internal_operation_key="child-2:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="25" operation="stop" operation_key="clone-2_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <pseudo_event id="25" operation="stop" operation_key="clone-2_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="36" operation="stopped" operation_key="clone-3_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="27" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="child-3" long-id="child-3:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="35" operation="stop" operation_key="clone-3_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6" priority="1000000"> -+ <action_set> -+ <pseudo_event id="36" operation="stopped" operation_key="clone-3_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="27" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="35" operation="stop" operation_key="clone-3_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <pseudo_event id="35" operation="stop" operation_key="clone-3_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8" priority="1000000"> -+ <action_set> -+ <pseudo_event id="34" operation="running" operation_key="clone-3_running_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="33" operation="start" operation_key="clone-3_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <pseudo_event id="33" operation="start" operation_key="clone-3_start_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="36" operation="stopped" operation_key="clone-3_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10" priority="1000000"> -+ <action_set> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-pcmk-3" on_node="pcmk-3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="11" priority="1000000"> -+ <action_set> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="12" priority="1000000"> -+ <action_set> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="child-2:2_stop_0" internal_operation_key="child-2:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="27" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/clone-interleave-3.exp b/pengine/test10/clone-interleave-3.exp -new file mode 100644 -index 0000000..85f6d8b ---- /dev/null -+++ b/pengine/test10/clone-interleave-3.exp -@@ -0,0 +1,244 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="8" operation="start" operation_key="dummy_start_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="7" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="35" operation="running" operation_key="clone-3_running_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="7" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="child-2:2_start_0" internal_operation_key="child-2:0_start_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="child-2" long-id="child-2:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="1" operation="stop" operation_key="child-2:2_stop_0" internal_operation_key="child-2:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="24" operation="start" operation_key="clone-2_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="1" operation="stop" operation_key="child-2:2_stop_0" internal_operation_key="child-2:0_stop_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="child-2" long-id="child-2:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="26" operation="stop" operation_key="clone-2_stop_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="28" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4" priority="1000000"> -+ <action_set> -+ <pseudo_event id="27" operation="stopped" operation_key="clone-2_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="1" operation="stop" operation_key="child-2:2_stop_0" internal_operation_key="child-2:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="26" operation="stop" operation_key="clone-2_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <pseudo_event id="26" operation="stop" operation_key="clone-2_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="37" operation="stopped" operation_key="clone-3_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6" priority="1000000"> -+ <action_set> -+ <pseudo_event id="25" operation="running" operation_key="clone-2_running_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="child-2:2_start_0" internal_operation_key="child-2:0_start_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="24" operation="start" operation_key="clone-2_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <pseudo_event id="24" operation="start" operation_key="clone-2_start_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="27" operation="stopped" operation_key="clone-2_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="29" operation="start" operation_key="child-3:2_start_0" internal_operation_key="child-3:0_start_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="child-3" long-id="child-3:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="child-2:2_start_0" internal_operation_key="child-2:0_start_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="28" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="start" operation_key="clone-3_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="28" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="child-3" long-id="child-3:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="36" operation="stop" operation_key="clone-3_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10" priority="1000000"> -+ <action_set> -+ <pseudo_event id="37" operation="stopped" operation_key="clone-3_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="28" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="36" operation="stop" operation_key="clone-3_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <pseudo_event id="36" operation="stop" operation_key="clone-3_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="7" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12" priority="1000000"> -+ <action_set> -+ <pseudo_event id="35" operation="running" operation_key="clone-3_running_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="29" operation="start" operation_key="child-3:2_start_0" internal_operation_key="child-3:0_start_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="start" operation_key="clone-3_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <pseudo_event id="34" operation="start" operation_key="clone-3_start_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="25" operation="running" operation_key="clone-2_running_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="37" operation="stopped" operation_key="clone-3_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14" priority="1000000"> -+ <action_set> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-pcmk-3" on_node="pcmk-3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="15" priority="1000000"> -+ <action_set> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="16" priority="1000000"> -+ <action_set> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="1" operation="stop" operation_key="child-2:2_stop_0" internal_operation_key="child-2:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="stop" operation_key="dummy_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="28" operation="stop" operation_key="child-3:2_stop_0" internal_operation_key="child-3:0_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/clone-no-shuffle.exp b/pengine/test10/clone-no-shuffle.exp -index c6437a6..4c9ee1b 100644 ---- a/pengine/test10/clone-no-shuffle.exp -+++ b/pengine/test10/clone-no-shuffle.exp -@@ -436,7 +436,7 @@ - </synapse> - <synapse id="32" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="dktest2sles10" on_node_uuid="6676c8d5-552e-4a86-a2ea-172e954f7342"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-dktest2sles10" on_node="dktest2sles10" on_node_uuid="6676c8d5-552e-4a86-a2ea-172e954f7342"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -448,7 +448,7 @@ - </synapse> - <synapse id="33" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="dktest1sles10" on_node_uuid="c563f60c-45a8-439e-85dc-645f4ecc150d"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-dktest1sles10" on_node="dktest1sles10" on_node_uuid="c563f60c-45a8-439e-85dc-645f4ecc150d"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -472,10 +472,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="dktest1sles10" on_node_uuid="c563f60c-45a8-439e-85dc-645f4ecc150d"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-dktest1sles10" on_node="dktest1sles10" on_node_uuid="c563f60c-45a8-439e-85dc-645f4ecc150d"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="dktest2sles10" on_node_uuid="6676c8d5-552e-4a86-a2ea-172e954f7342"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-dktest2sles10" on_node="dktest2sles10" on_node_uuid="6676c8d5-552e-4a86-a2ea-172e954f7342"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/clone-order-instance.exp b/pengine/test10/clone-order-instance.exp -index dd277ae..f6c51de 100644 ---- a/pengine/test10/clone-order-instance.exp -+++ b/pengine/test10/clone-order-instance.exp -@@ -111,7 +111,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-bob.demo" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -126,7 +126,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-alice.demo" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -147,10 +147,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-alice.demo" on_node="alice.demo" on_node_uuid="df0d4306-9cf3-4c5c-a23a-027ac36da131"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-bob.demo" on_node="bob.demo" on_node_uuid="0af1add7-22b5-4342-9816-67e6351605de"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/clone-order-primitive.exp b/pengine/test10/clone-order-primitive.exp -index aefaf50..e46f1fc 100644 ---- a/pengine/test10/clone-order-primitive.exp -+++ b/pengine/test10/clone-order-primitive.exp -@@ -66,7 +66,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="pcw2709.see.ed.ac.uk" on_node_uuid="pcw2709.see.ed.ac.uk"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-pcw2709.see.ed.ac.uk" on_node="pcw2709.see.ed.ac.uk" on_node_uuid="pcw2709.see.ed.ac.uk"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -74,7 +74,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="pcw2688.see.ed.ac.uk" on_node_uuid="pcw2688.see.ed.ac.uk"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-pcw2688.see.ed.ac.uk" on_node="pcw2688.see.ed.ac.uk" on_node_uuid="pcw2688.see.ed.ac.uk"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="pcw2059.see.ed.ac.uk" on_node_uuid="pcw2059.see.ed.ac.uk"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-pcw2059.see.ed.ac.uk" on_node="pcw2059.see.ed.ac.uk" on_node_uuid="pcw2059.see.ed.ac.uk"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -90,7 +90,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="pcw2058.see.ed.ac.uk" on_node_uuid="pcw2058.see.ed.ac.uk"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-pcw2058.see.ed.ac.uk" on_node="pcw2058.see.ed.ac.uk" on_node_uuid="pcw2058.see.ed.ac.uk"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/coloc-group.exp b/pengine/test10/coloc-group.exp -index f6c95f0..04b3b49 100644 ---- a/pengine/test10/coloc-group.exp -+++ b/pengine/test10/coloc-group.exp -@@ -119,7 +119,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -137,7 +137,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -155,7 +155,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -179,13 +179,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/coloc-list.exp b/pengine/test10/coloc-list.exp -index 673c021..ca9d78e 100644 ---- a/pengine/test10/coloc-list.exp -+++ b/pengine/test10/coloc-list.exp -@@ -139,7 +139,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -160,7 +160,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -178,7 +178,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -205,13 +205,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - <trigger> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"/> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/coloc-loop.exp b/pengine/test10/coloc-loop.exp -index 12e86a2..1b50bad 100644 ---- a/pengine/test10/coloc-loop.exp -+++ b/pengine/test10/coloc-loop.exp -@@ -121,7 +121,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -139,7 +139,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,7 +157,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -181,13 +181,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/coloc-many-one.exp b/pengine/test10/coloc-many-one.exp -index 0dca637..e8503a4 100644 ---- a/pengine/test10/coloc-many-one.exp -+++ b/pengine/test10/coloc-many-one.exp -@@ -121,7 +121,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -139,7 +139,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,7 +157,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -181,13 +181,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/colocate-primitive-with-clone.exp b/pengine/test10/colocate-primitive-with-clone.exp -index 2dacc06..44fac10 100644 ---- a/pengine/test10/colocate-primitive-with-clone.exp -+++ b/pengine/test10/colocate-primitive-with-clone.exp -@@ -133,7 +133,7 @@ - </synapse> - <synapse id="9"> - <action_set> -- <crm_event id="191" operation="do_shutdown" operation_key="do_shutdown" on_node="srv01" on_node_uuid="srv01"> -+ <crm_event id="191" operation="do_shutdown" operation_key="do_shutdown-srv01" on_node="srv01" on_node_uuid="srv01"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/comments.exp b/pengine/test10/comments.exp -index 1ad8819..5d6abb2 100644 ---- a/pengine/test10/comments.exp -+++ b/pengine/test10/comments.exp -@@ -63,7 +63,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,7 +78,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,10 +99,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/container-1.exp b/pengine/test10/container-1.exp -index 522b0f1..e252625 100644 ---- a/pengine/test10/container-1.exp -+++ b/pengine/test10/container-1.exp -@@ -97,7 +97,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -109,7 +109,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -127,10 +127,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/container-2.exp b/pengine/test10/container-2.exp -index c5f9e9e..4b1532b 100644 ---- a/pengine/test10/container-2.exp -+++ b/pengine/test10/container-2.exp -@@ -119,7 +119,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -127,7 +127,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/container-3.exp b/pengine/test10/container-3.exp -index 3c2703a..e1fb4d9 100644 ---- a/pengine/test10/container-3.exp -+++ b/pengine/test10/container-3.exp -@@ -104,7 +104,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/container-4.exp b/pengine/test10/container-4.exp -index d1da381..ed9bafa 100644 ---- a/pengine/test10/container-4.exp -+++ b/pengine/test10/container-4.exp -@@ -119,7 +119,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -127,7 +127,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/container-group-1.exp b/pengine/test10/container-group-1.exp -index b14aa4c..af8a7d9 100644 ---- a/pengine/test10/container-group-1.exp -+++ b/pengine/test10/container-group-1.exp -@@ -144,7 +144,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -156,7 +156,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -174,10 +174,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/container-group-2.exp b/pengine/test10/container-group-2.exp -index ce32cc3..5acdcbc 100644 ---- a/pengine/test10/container-group-2.exp -+++ b/pengine/test10/container-group-2.exp -@@ -207,7 +207,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -215,7 +215,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/container-group-3.exp b/pengine/test10/container-group-3.exp -index 96d99c6..d07c9cb 100644 ---- a/pengine/test10/container-group-3.exp -+++ b/pengine/test10/container-group-3.exp -@@ -160,7 +160,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -168,7 +168,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/container-group-4.exp b/pengine/test10/container-group-4.exp -index 6128599..7970a76 100644 ---- a/pengine/test10/container-group-4.exp -+++ b/pengine/test10/container-group-4.exp -@@ -207,7 +207,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -215,7 +215,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/date-1.exp b/pengine/test10/date-1.exp -index 2a64721..eba26f2 100644 ---- a/pengine/test10/date-1.exp -+++ b/pengine/test10/date-1.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/domain.exp b/pengine/test10/domain.exp -index 3d9eb9a..1228dde 100644 ---- a/pengine/test10/domain.exp -+++ b/pengine/test10/domain.exp -@@ -50,7 +50,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="puma4" on_node_uuid="puma4"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-puma4" on_node="puma4" on_node_uuid="puma4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,7 +62,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="puma3" on_node_uuid="puma3"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-puma3" on_node="puma3" on_node_uuid="puma3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -74,7 +74,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="puma2" on_node_uuid="puma2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-puma2" on_node="puma2" on_node_uuid="puma2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -86,7 +86,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="puma1" on_node_uuid="puma1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-puma1" on_node="puma1" on_node_uuid="puma1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -104,16 +104,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="puma1" on_node_uuid="puma1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-puma1" on_node="puma1" on_node_uuid="puma1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="puma2" on_node_uuid="puma2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-puma2" on_node="puma2" on_node_uuid="puma2"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="puma3" on_node_uuid="puma3"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-puma3" on_node="puma3" on_node_uuid="puma3"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="puma4" on_node_uuid="puma4"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-puma4" on_node="puma4" on_node_uuid="puma4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group-fail.exp b/pengine/test10/group-fail.exp -index cf4c6eb..79ae80a 100644 ---- a/pengine/test10/group-fail.exp -+++ b/pengine/test10/group-fail.exp -@@ -159,7 +159,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -167,7 +167,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/group-unmanaged-stopped.exp b/pengine/test10/group-unmanaged-stopped.exp -new file mode 100644 -index 0000000..3ea67ca ---- /dev/null -+++ b/pengine/test10/group-unmanaged-stopped.exp -@@ -0,0 +1,66 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="1" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <pseudo_event id="15" operation="stopped" operation_key="group-1_stopped_0"> -+ <attributes CRM_meta_timeout="90000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="11" operation="stop" operation_key="r192.168.122.115_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="14" operation="stop" operation_key="group-1_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <pseudo_event id="14" operation="stop" operation_key="group-1_stop_0"> -+ <attributes CRM_meta_timeout="90000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="11" operation="stop" operation_key="r192.168.122.115_stop_0" on_node="pcmk-1" on_node_uuid="1"> -+ <primitive id="r192.168.122.115" class="ocf" provider="heartbeat" type="IPaddr2"/> -+ <attributes CRM_meta_timeout="90000" cidr_netmask="32" ip="192.168.122.115"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="14" operation="stop" operation_key="group-1_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3" priority="1000000"> -+ <action_set> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="4" priority="1000000"> -+ <action_set> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <pseudo_event id="4" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="11" operation="stop" operation_key="r192.168.122.115_stop_0" on_node="pcmk-1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/group-unmanaged.exp b/pengine/test10/group-unmanaged.exp -new file mode 100644 -index 0000000..9ccb828 ---- /dev/null -+++ b/pengine/test10/group-unmanaged.exp -@@ -0,0 +1,18 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="1" transition_id="0"> -+ <synapse id="0" priority="1000000"> -+ <action_set> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="1" priority="1000000"> -+ <action_set> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/group1.exp b/pengine/test10/group1.exp -index e0c19fe..45e2fcc 100644 ---- a/pengine/test10/group1.exp -+++ b/pengine/test10/group1.exp -@@ -138,7 +138,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -156,7 +156,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -180,10 +180,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group10.exp b/pengine/test10/group10.exp -index 4285683..7fab8b3 100644 ---- a/pengine/test10/group10.exp -+++ b/pengine/test10/group10.exp -@@ -291,7 +291,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="26" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -306,7 +306,7 @@ - </synapse> - <synapse id="23" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -321,7 +321,7 @@ - </synapse> - <synapse id="24" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -336,7 +336,7 @@ - </synapse> - <synapse id="25" priority="1000000"> - <action_set> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -360,16 +360,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="26" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group11.exp b/pengine/test10/group11.exp -index 5c24675..b316b01 100644 ---- a/pengine/test10/group11.exp -+++ b/pengine/test10/group11.exp -@@ -68,7 +68,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/group15.exp b/pengine/test10/group15.exp -index 421cd86..47a744a 100644 ---- a/pengine/test10/group15.exp -+++ b/pengine/test10/group15.exp -@@ -192,7 +192,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -219,7 +219,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -252,10 +252,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group2.exp b/pengine/test10/group2.exp -index 061798d..7df6735 100644 ---- a/pengine/test10/group2.exp -+++ b/pengine/test10/group2.exp -@@ -207,7 +207,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -231,7 +231,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -261,10 +261,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group3.exp b/pengine/test10/group3.exp -index 7cb477e..7cf2962 100644 ---- a/pengine/test10/group3.exp -+++ b/pengine/test10/group3.exp -@@ -279,7 +279,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -306,7 +306,7 @@ - </synapse> - <synapse id="23" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -339,10 +339,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group4.exp b/pengine/test10/group4.exp -index b6b275e..207a905 100644 ---- a/pengine/test10/group4.exp -+++ b/pengine/test10/group4.exp -@@ -46,7 +46,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -54,7 +54,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -84,10 +84,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group5.exp b/pengine/test10/group5.exp -index 920af4d..fa85bbe 100644 ---- a/pengine/test10/group5.exp -+++ b/pengine/test10/group5.exp -@@ -296,7 +296,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -320,7 +320,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -334,10 +334,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group6.exp b/pengine/test10/group6.exp -index 40d149f..d71f695 100644 ---- a/pengine/test10/group6.exp -+++ b/pengine/test10/group6.exp -@@ -420,7 +420,7 @@ - </synapse> - <synapse id="26" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -447,7 +447,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -461,10 +461,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group7.exp b/pengine/test10/group7.exp -index 18abb01..4834e86 100644 ---- a/pengine/test10/group7.exp -+++ b/pengine/test10/group7.exp -@@ -373,7 +373,7 @@ - </synapse> - <synapse id="32" priority="1000000"> - <action_set> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="uuid3"> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="uuid3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -403,7 +403,7 @@ - </synapse> - <synapse id="33" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -433,7 +433,7 @@ - </synapse> - <synapse id="34" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -469,13 +469,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - <trigger> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="uuid3"/> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="uuid3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group8.exp b/pengine/test10/group8.exp -index 6700350..c4887dd 100644 ---- a/pengine/test10/group8.exp -+++ b/pengine/test10/group8.exp -@@ -160,7 +160,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -196,7 +196,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/group9.exp b/pengine/test10/group9.exp -index cf8dfea..650dfab 100644 ---- a/pengine/test10/group9.exp -+++ b/pengine/test10/group9.exp -@@ -384,7 +384,7 @@ - </synapse> - <synapse id="26" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -417,7 +417,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -431,10 +431,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/honor_stonith_rsc_order1.exp b/pengine/test10/honor_stonith_rsc_order1.exp -index 66a401b..7dd0ffb 100644 ---- a/pengine/test10/honor_stonith_rsc_order1.exp -+++ b/pengine/test10/honor_stonith_rsc_order1.exp -@@ -123,7 +123,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -147,7 +147,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/honor_stonith_rsc_order2.exp b/pengine/test10/honor_stonith_rsc_order2.exp -index c4b0ee2..2ceba4a 100644 ---- a/pengine/test10/honor_stonith_rsc_order2.exp -+++ b/pengine/test10/honor_stonith_rsc_order2.exp -@@ -185,7 +185,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -215,7 +215,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/honor_stonith_rsc_order3.exp b/pengine/test10/honor_stonith_rsc_order3.exp -index 8c0973a..780b1ba 100644 ---- a/pengine/test10/honor_stonith_rsc_order3.exp -+++ b/pengine/test10/honor_stonith_rsc_order3.exp -@@ -212,7 +212,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -242,7 +242,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/honor_stonith_rsc_order4.exp b/pengine/test10/honor_stonith_rsc_order4.exp -index 6ddf8f9..4bf90b1 100644 ---- a/pengine/test10/honor_stonith_rsc_order4.exp -+++ b/pengine/test10/honor_stonith_rsc_order4.exp -@@ -70,7 +70,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -94,7 +94,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ignore_stonith_rsc_order1.exp b/pengine/test10/ignore_stonith_rsc_order1.exp -index 883ba7a..099022c 100644 ---- a/pengine/test10/ignore_stonith_rsc_order1.exp -+++ b/pengine/test10/ignore_stonith_rsc_order1.exp -@@ -48,7 +48,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -69,7 +69,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ignore_stonith_rsc_order2.exp b/pengine/test10/ignore_stonith_rsc_order2.exp -index f25ec5a..22850b9 100644 ---- a/pengine/test10/ignore_stonith_rsc_order2.exp -+++ b/pengine/test10/ignore_stonith_rsc_order2.exp -@@ -105,7 +105,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -129,7 +129,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ignore_stonith_rsc_order3.exp b/pengine/test10/ignore_stonith_rsc_order3.exp -index 2ccc016..4feaa51 100644 ---- a/pengine/test10/ignore_stonith_rsc_order3.exp -+++ b/pengine/test10/ignore_stonith_rsc_order3.exp -@@ -132,7 +132,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -156,7 +156,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ignore_stonith_rsc_order4.exp b/pengine/test10/ignore_stonith_rsc_order4.exp -index a1a840d..f6967c1 100644 ---- a/pengine/test10/ignore_stonith_rsc_order4.exp -+++ b/pengine/test10/ignore_stonith_rsc_order4.exp -@@ -159,7 +159,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -183,7 +183,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc0.exp b/pengine/test10/inc0.exp -index 71cced1..2d957aa 100644 ---- a/pengine/test10/inc0.exp -+++ b/pengine/test10/inc0.exp -@@ -187,7 +187,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -211,7 +211,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -241,10 +241,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc1.exp b/pengine/test10/inc1.exp -index 6f5d759..172ae77 100644 ---- a/pengine/test10/inc1.exp -+++ b/pengine/test10/inc1.exp -@@ -256,7 +256,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -286,7 +286,7 @@ - </synapse> - <synapse id="23" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -322,10 +322,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc11.exp b/pengine/test10/inc11.exp -index 54314c1..527d335 100644 ---- a/pengine/test10/inc11.exp -+++ b/pengine/test10/inc11.exp -@@ -193,7 +193,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -211,7 +211,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -229,7 +229,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node0" on_node_uuid="uuid0"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node0" on_node="node0" on_node_uuid="uuid0"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -253,13 +253,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node0" on_node_uuid="uuid0"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node0" on_node="node0" on_node_uuid="uuid0"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc12.exp b/pengine/test10/inc12.exp -index 4fabf43..aa3f992 100644 ---- a/pengine/test10/inc12.exp -+++ b/pengine/test10/inc12.exp -@@ -420,7 +420,7 @@ - </synapse> - <synapse id="31"> - <action_set> -- <crm_event id="80" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n07" on_node_uuid="6637ebb5-ab11-4728-b69e-b61222af9a0c"> -+ <crm_event id="80" operation="do_shutdown" operation_key="do_shutdown-c001n07" on_node="c001n07" on_node_uuid="6637ebb5-ab11-4728-b69e-b61222af9a0c"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -441,7 +441,7 @@ - </synapse> - <synapse id="32"> - <action_set> -- <crm_event id="79" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n06" on_node_uuid="169e4673-93fb-4c0a-8082-d3408bae9431"> -+ <crm_event id="79" operation="do_shutdown" operation_key="do_shutdown-c001n06" on_node="c001n06" on_node_uuid="169e4673-93fb-4c0a-8082-d3408bae9431"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -462,7 +462,7 @@ - </synapse> - <synapse id="33"> - <action_set> -- <crm_event id="78" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"> -+ <crm_event id="78" operation="do_shutdown" operation_key="do_shutdown-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -486,7 +486,7 @@ - </synapse> - <synapse id="34"> - <action_set> -- <crm_event id="77" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"> -+ <crm_event id="77" operation="do_shutdown" operation_key="do_shutdown-c001n04" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -510,31 +510,31 @@ - </synapse> - <synapse id="35"> - <action_set> -- <crm_event id="76" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"> -+ <crm_event id="76" operation="do_shutdown" operation_key="do_shutdown-c001n03" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="75" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n02" on_node_uuid="e8973f32-1c97-40cb-a84a-c489f49664a5"/> -+ <crm_event id="75" operation="do_shutdown" operation_key="do_shutdown-c001n02" on_node="c001n02" on_node_uuid="e8973f32-1c97-40cb-a84a-c489f49664a5"/> - </trigger> - <trigger> -- <crm_event id="77" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> -+ <crm_event id="77" operation="do_shutdown" operation_key="do_shutdown-c001n04" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> - </trigger> - <trigger> -- <crm_event id="78" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <crm_event id="78" operation="do_shutdown" operation_key="do_shutdown-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - <trigger> -- <crm_event id="79" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n06" on_node_uuid="169e4673-93fb-4c0a-8082-d3408bae9431"/> -+ <crm_event id="79" operation="do_shutdown" operation_key="do_shutdown-c001n06" on_node="c001n06" on_node_uuid="169e4673-93fb-4c0a-8082-d3408bae9431"/> - </trigger> - <trigger> -- <crm_event id="80" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n07" on_node_uuid="6637ebb5-ab11-4728-b69e-b61222af9a0c"/> -+ <crm_event id="80" operation="do_shutdown" operation_key="do_shutdown-c001n07" on_node="c001n07" on_node_uuid="6637ebb5-ab11-4728-b69e-b61222af9a0c"/> - </trigger> - </inputs> - </synapse> - <synapse id="36"> - <action_set> -- <crm_event id="75" operation="do_shutdown" operation_key="do_shutdown" on_node="c001n02" on_node_uuid="e8973f32-1c97-40cb-a84a-c489f49664a5"> -+ <crm_event id="75" operation="do_shutdown" operation_key="do_shutdown-c001n02" on_node="c001n02" on_node_uuid="e8973f32-1c97-40cb-a84a-c489f49664a5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/inc2.exp b/pengine/test10/inc2.exp -index 82474dc..f3064aa 100644 ---- a/pengine/test10/inc2.exp -+++ b/pengine/test10/inc2.exp -@@ -191,7 +191,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -221,7 +221,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc3.exp b/pengine/test10/inc3.exp -index 653c377..5e566bb 100644 ---- a/pengine/test10/inc3.exp -+++ b/pengine/test10/inc3.exp -@@ -369,7 +369,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -393,7 +393,7 @@ - </synapse> - <synapse id="28" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -423,10 +423,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc4.exp b/pengine/test10/inc4.exp -index 7b73210..6a9e648 100644 ---- a/pengine/test10/inc4.exp -+++ b/pengine/test10/inc4.exp -@@ -384,7 +384,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -408,7 +408,7 @@ - </synapse> - <synapse id="28" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -438,10 +438,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc5.exp b/pengine/test10/inc5.exp -index f8be6e4..3b0ad75 100644 ---- a/pengine/test10/inc5.exp -+++ b/pengine/test10/inc5.exp -@@ -629,7 +629,7 @@ - </synapse> - <synapse id="56" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -686,7 +686,7 @@ - </synapse> - <synapse id="57" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -749,10 +749,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc6.exp b/pengine/test10/inc6.exp -index 5b347d0..3b4c8e2 100644 ---- a/pengine/test10/inc6.exp -+++ b/pengine/test10/inc6.exp -@@ -438,7 +438,7 @@ - </synapse> - <synapse id="32" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -446,7 +446,7 @@ - </synapse> - <synapse id="33" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/inc7.exp b/pengine/test10/inc7.exp -index ec1c6d2..2685678 100644 ---- a/pengine/test10/inc7.exp -+++ b/pengine/test10/inc7.exp -@@ -560,7 +560,7 @@ - </synapse> - <synapse id="48" priority="1000000"> - <action_set> -- <rsc_op id="27" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="uuid3"> -+ <rsc_op id="27" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="uuid3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -602,7 +602,7 @@ - </synapse> - <synapse id="49" priority="1000000"> - <action_set> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -644,7 +644,7 @@ - </synapse> - <synapse id="50" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -692,13 +692,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - <trigger> -- <rsc_op id="27" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="uuid3"/> -+ <rsc_op id="27" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="uuid3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/inc8.exp b/pengine/test10/inc8.exp -index e6ac6de..03f3a4c 100644 ---- a/pengine/test10/inc8.exp -+++ b/pengine/test10/inc8.exp -@@ -270,7 +270,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -312,7 +312,7 @@ - </synapse> - <synapse id="28" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -360,10 +360,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/interleave-0.exp b/pengine/test10/interleave-0.exp -index d5523d5..8a3c701 100644 ---- a/pengine/test10/interleave-0.exp -+++ b/pengine/test10/interleave-0.exp -@@ -1591,7 +1591,7 @@ - </synapse> - <synapse id="164" priority="1000000"> - <action_set> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1660,7 +1660,7 @@ - </synapse> - <synapse id="165" priority="1000000"> - <action_set> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1735,7 +1735,7 @@ - </synapse> - <synapse id="166" priority="1000000"> - <action_set> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1807,7 +1807,7 @@ - </synapse> - <synapse id="167" priority="1000000"> - <action_set> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1849,7 +1849,7 @@ - </synapse> - <synapse id="168" priority="1000000"> - <action_set> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1918,7 +1918,7 @@ - </synapse> - <synapse id="169" priority="1000000"> - <action_set> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1984,7 +1984,7 @@ - </synapse> - <synapse id="170" priority="1000000"> - <action_set> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2041,7 +2041,7 @@ - </synapse> - <synapse id="171" priority="1000000"> - <action_set> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2107,28 +2107,28 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> - </trigger> - <trigger> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> - </trigger> - <trigger> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> - </trigger> - <trigger> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/interleave-1.exp b/pengine/test10/interleave-1.exp -index d5523d5..8a3c701 100644 ---- a/pengine/test10/interleave-1.exp -+++ b/pengine/test10/interleave-1.exp -@@ -1591,7 +1591,7 @@ - </synapse> - <synapse id="164" priority="1000000"> - <action_set> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1660,7 +1660,7 @@ - </synapse> - <synapse id="165" priority="1000000"> - <action_set> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1735,7 +1735,7 @@ - </synapse> - <synapse id="166" priority="1000000"> - <action_set> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1807,7 +1807,7 @@ - </synapse> - <synapse id="167" priority="1000000"> - <action_set> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1849,7 +1849,7 @@ - </synapse> - <synapse id="168" priority="1000000"> - <action_set> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1918,7 +1918,7 @@ - </synapse> - <synapse id="169" priority="1000000"> - <action_set> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1984,7 +1984,7 @@ - </synapse> - <synapse id="170" priority="1000000"> - <action_set> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2041,7 +2041,7 @@ - </synapse> - <synapse id="171" priority="1000000"> - <action_set> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2107,28 +2107,28 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> - </trigger> - <trigger> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> - </trigger> - <trigger> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> - </trigger> - <trigger> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/interleave-2.exp b/pengine/test10/interleave-2.exp -index d5523d5..8a3c701 100644 ---- a/pengine/test10/interleave-2.exp -+++ b/pengine/test10/interleave-2.exp -@@ -1591,7 +1591,7 @@ - </synapse> - <synapse id="164" priority="1000000"> - <action_set> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1660,7 +1660,7 @@ - </synapse> - <synapse id="165" priority="1000000"> - <action_set> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1735,7 +1735,7 @@ - </synapse> - <synapse id="166" priority="1000000"> - <action_set> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1807,7 +1807,7 @@ - </synapse> - <synapse id="167" priority="1000000"> - <action_set> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1849,7 +1849,7 @@ - </synapse> - <synapse id="168" priority="1000000"> - <action_set> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1918,7 +1918,7 @@ - </synapse> - <synapse id="169" priority="1000000"> - <action_set> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1984,7 +1984,7 @@ - </synapse> - <synapse id="170" priority="1000000"> - <action_set> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2041,7 +2041,7 @@ - </synapse> - <synapse id="171" priority="1000000"> - <action_set> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2107,28 +2107,28 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> - </trigger> - <trigger> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> - </trigger> - <trigger> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> - </trigger> - <trigger> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/interleave-3.exp b/pengine/test10/interleave-3.exp -index d5523d5..8a3c701 100644 ---- a/pengine/test10/interleave-3.exp -+++ b/pengine/test10/interleave-3.exp -@@ -1591,7 +1591,7 @@ - </synapse> - <synapse id="164" priority="1000000"> - <action_set> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1660,7 +1660,7 @@ - </synapse> - <synapse id="165" priority="1000000"> - <action_set> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1735,7 +1735,7 @@ - </synapse> - <synapse id="166" priority="1000000"> - <action_set> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1807,7 +1807,7 @@ - </synapse> - <synapse id="167" priority="1000000"> - <action_set> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1849,7 +1849,7 @@ - </synapse> - <synapse id="168" priority="1000000"> - <action_set> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1918,7 +1918,7 @@ - </synapse> - <synapse id="169" priority="1000000"> - <action_set> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1984,7 +1984,7 @@ - </synapse> - <synapse id="170" priority="1000000"> - <action_set> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2041,7 +2041,7 @@ - </synapse> - <synapse id="171" priority="1000000"> - <action_set> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2107,28 +2107,28 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="54" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="54" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="74" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> -+ <rsc_op id="74" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> - </trigger> - <trigger> -- <rsc_op id="95" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> -+ <rsc_op id="95" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> - </trigger> - <trigger> -- <rsc_op id="107" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> -+ <rsc_op id="107" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> - </trigger> - <trigger> -- <rsc_op id="129" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="129" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="152" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="152" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/location-sets-templates.exp b/pengine/test10/location-sets-templates.exp -new file mode 100644 -index 0000000..9ffacc6 ---- /dev/null -+++ b/pengine/test10/location-sets-templates.exp -@@ -0,0 +1,257 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="17" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="11" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="18" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="12" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="rsc3_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="13" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="6" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc3" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="20" operation="start" operation_key="rsc4_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="14" operation="monitor" operation_key="rsc4_monitor_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="7" operation="monitor" operation_key="rsc4_monitor_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc4" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <rsc_op id="21" operation="start" operation_key="rsc5_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <rsc_op id="15" operation="monitor" operation_key="rsc5_monitor_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <rsc_op id="8" operation="monitor" operation_key="rsc5_monitor_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc5" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="15"> -+ <action_set> -+ <rsc_op id="22" operation="start" operation_key="rsc6_start_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc6" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <rsc_op id="16" operation="monitor" operation_key="rsc6_monitor_0" on_node="node2" on_node_uuid="node2"> -+ <primitive id="rsc6" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <rsc_op id="9" operation="monitor" operation_key="rsc6_monitor_0" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc6" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="18" priority="1000000"> -+ <action_set> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="11" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="12" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="rsc3_monitor_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="14" operation="monitor" operation_key="rsc4_monitor_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="15" operation="monitor" operation_key="rsc5_monitor_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="16" operation="monitor" operation_key="rsc6_monitor_0" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="19" priority="1000000"> -+ <action_set> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="6" operation="monitor" operation_key="rsc3_monitor_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="monitor" operation_key="rsc4_monitor_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="8" operation="monitor" operation_key="rsc5_monitor_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="9" operation="monitor" operation_key="rsc6_monitor_0" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="20"> -+ <action_set> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/managed-0.exp b/pengine/test10/managed-0.exp -index 67fcacb..40f48ed 100644 ---- a/pengine/test10/managed-0.exp -+++ b/pengine/test10/managed-0.exp -@@ -730,7 +730,7 @@ - </synapse> - <synapse id="81" priority="1000000"> - <action_set> -- <rsc_op id="97" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="97" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -772,7 +772,7 @@ - </synapse> - <synapse id="82" priority="1000000"> - <action_set> -- <rsc_op id="82" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="82" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -823,7 +823,7 @@ - </synapse> - <synapse id="83" priority="1000000"> - <action_set> -- <rsc_op id="68" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> -+ <rsc_op id="68" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -871,7 +871,7 @@ - </synapse> - <synapse id="84" priority="1000000"> - <action_set> -- <rsc_op id="64" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> -+ <rsc_op id="64" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -889,7 +889,7 @@ - </synapse> - <synapse id="85" priority="1000000"> - <action_set> -- <rsc_op id="51" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> -+ <rsc_op id="51" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -934,7 +934,7 @@ - </synapse> - <synapse id="86" priority="1000000"> - <action_set> -- <rsc_op id="39" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="39" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -976,7 +976,7 @@ - </synapse> - <synapse id="87" priority="1000000"> - <action_set> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1009,7 +1009,7 @@ - </synapse> - <synapse id="88" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1051,28 +1051,28 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="39" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="39" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="51" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> -+ <rsc_op id="51" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> - </trigger> - <trigger> -- <rsc_op id="64" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> -+ <rsc_op id="64" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> - </trigger> - <trigger> -- <rsc_op id="68" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> -+ <rsc_op id="68" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> - </trigger> - <trigger> -- <rsc_op id="82" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="82" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="97" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="97" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/managed-1.exp b/pengine/test10/managed-1.exp -index 67fcacb..40f48ed 100644 ---- a/pengine/test10/managed-1.exp -+++ b/pengine/test10/managed-1.exp -@@ -730,7 +730,7 @@ - </synapse> - <synapse id="81" priority="1000000"> - <action_set> -- <rsc_op id="97" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="97" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -772,7 +772,7 @@ - </synapse> - <synapse id="82" priority="1000000"> - <action_set> -- <rsc_op id="82" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="82" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -823,7 +823,7 @@ - </synapse> - <synapse id="83" priority="1000000"> - <action_set> -- <rsc_op id="68" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> -+ <rsc_op id="68" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -871,7 +871,7 @@ - </synapse> - <synapse id="84" priority="1000000"> - <action_set> -- <rsc_op id="64" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> -+ <rsc_op id="64" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -889,7 +889,7 @@ - </synapse> - <synapse id="85" priority="1000000"> - <action_set> -- <rsc_op id="51" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> -+ <rsc_op id="51" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -934,7 +934,7 @@ - </synapse> - <synapse id="86" priority="1000000"> - <action_set> -- <rsc_op id="39" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="39" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -976,7 +976,7 @@ - </synapse> - <synapse id="87" priority="1000000"> - <action_set> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1009,7 +1009,7 @@ - </synapse> - <synapse id="88" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1051,28 +1051,28 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="39" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="39" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="51" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> -+ <rsc_op id="51" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> - </trigger> - <trigger> -- <rsc_op id="64" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> -+ <rsc_op id="64" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> - </trigger> - <trigger> -- <rsc_op id="68" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> -+ <rsc_op id="68" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> - </trigger> - <trigger> -- <rsc_op id="82" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="82" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="97" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="97" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/managed-2.exp b/pengine/test10/managed-2.exp -index 59dcdaf..5020993 100644 ---- a/pengine/test10/managed-2.exp -+++ b/pengine/test10/managed-2.exp -@@ -1036,7 +1036,7 @@ - </synapse> - <synapse id="115" priority="1000000"> - <action_set> -- <rsc_op id="119" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> -+ <rsc_op id="119" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1090,7 +1090,7 @@ - </synapse> - <synapse id="116" priority="1000000"> - <action_set> -- <rsc_op id="102" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="102" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1147,7 +1147,7 @@ - </synapse> - <synapse id="117" priority="1000000"> - <action_set> -- <rsc_op id="85" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> -+ <rsc_op id="85" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1204,7 +1204,7 @@ - </synapse> - <synapse id="118" priority="1000000"> - <action_set> -- <rsc_op id="73" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> -+ <rsc_op id="73" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1246,7 +1246,7 @@ - </synapse> - <synapse id="119" priority="1000000"> - <action_set> -- <rsc_op id="56" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> -+ <rsc_op id="56" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1303,7 +1303,7 @@ - </synapse> - <synapse id="120" priority="1000000"> - <action_set> -- <rsc_op id="40" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> -+ <rsc_op id="40" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1357,7 +1357,7 @@ - </synapse> - <synapse id="121" priority="1000000"> - <action_set> -- <rsc_op id="26" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1405,7 +1405,7 @@ - </synapse> - <synapse id="122" priority="1000000"> - <action_set> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -1459,28 +1459,28 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="26" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="40" operation="probe_complete" operation_key="probe_complete" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> -+ <rsc_op id="40" operation="probe_complete" operation_key="probe_complete-c001n04" on_node="c001n04" on_node_uuid="c2896699-96b8-4dbc-a94e-6c3b9252b559"/> - </trigger> - <trigger> -- <rsc_op id="56" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> -+ <rsc_op id="56" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="c13968a2-bcf0-41f6-9133-01e5bbb63cd5"/> - </trigger> - <trigger> -- <rsc_op id="73" operation="probe_complete" operation_key="probe_complete" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> -+ <rsc_op id="73" operation="probe_complete" operation_key="probe_complete-c001n06" on_node="c001n06" on_node_uuid="f91e6074-699d-48af-80d6-223132f291e2"/> - </trigger> - <trigger> -- <rsc_op id="85" operation="probe_complete" operation_key="probe_complete" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> -+ <rsc_op id="85" operation="probe_complete" operation_key="probe_complete-c001n07" on_node="c001n07" on_node_uuid="208d89a6-e052-4e9d-973d-07c9036c506b"/> - </trigger> - <trigger> -- <rsc_op id="102" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="102" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="119" operation="probe_complete" operation_key="probe_complete" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> -+ <rsc_op id="119" operation="probe_complete" operation_key="probe_complete-c001n09" on_node="c001n09" on_node_uuid="f67904e0-4dfc-4db1-83a2-e930fc1d20f4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-0.exp b/pengine/test10/master-0.exp -index 695f274..a1423de 100644 ---- a/pengine/test10/master-0.exp -+++ b/pengine/test10/master-0.exp -@@ -187,7 +187,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -211,7 +211,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -241,10 +241,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-1.exp b/pengine/test10/master-1.exp -index d5e0def..cb2b4a3 100644 ---- a/pengine/test10/master-1.exp -+++ b/pengine/test10/master-1.exp -@@ -227,7 +227,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -251,7 +251,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -281,10 +281,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-10.exp b/pengine/test10/master-10.exp -index c34c62c..45b3817 100644 ---- a/pengine/test10/master-10.exp -+++ b/pengine/test10/master-10.exp -@@ -603,7 +603,7 @@ - </synapse> - <synapse id="43" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -627,7 +627,7 @@ - </synapse> - <synapse id="44" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -657,10 +657,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-11.exp b/pengine/test10/master-11.exp -index ae85aa6..33d3ede 100644 ---- a/pengine/test10/master-11.exp -+++ b/pengine/test10/master-11.exp -@@ -166,7 +166,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -184,7 +184,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -208,10 +208,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-2.exp b/pengine/test10/master-2.exp -index ef4095b..6bb01f6 100644 ---- a/pengine/test10/master-2.exp -+++ b/pengine/test10/master-2.exp -@@ -524,7 +524,7 @@ - </synapse> - <synapse id="39" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -548,7 +548,7 @@ - </synapse> - <synapse id="40" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -578,10 +578,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-3.exp b/pengine/test10/master-3.exp -index d5e0def..cb2b4a3 100644 ---- a/pengine/test10/master-3.exp -+++ b/pengine/test10/master-3.exp -@@ -227,7 +227,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -251,7 +251,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -281,10 +281,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-4.exp b/pengine/test10/master-4.exp -index a1e61b3..8ec3c39 100644 ---- a/pengine/test10/master-4.exp -+++ b/pengine/test10/master-4.exp -@@ -302,7 +302,7 @@ - </synapse> - <synapse id="32" priority="1000000"> - <action_set> -- <rsc_op id="45" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="45" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -335,7 +335,7 @@ - </synapse> - <synapse id="33" priority="1000000"> - <action_set> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -365,7 +365,7 @@ - </synapse> - <synapse id="34" priority="1000000"> - <action_set> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -392,7 +392,7 @@ - </synapse> - <synapse id="35" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -425,16 +425,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="45" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="45" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-5.exp b/pengine/test10/master-5.exp -index 0196883..1312668 100644 ---- a/pengine/test10/master-5.exp -+++ b/pengine/test10/master-5.exp -@@ -244,7 +244,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="45" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="45" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -277,7 +277,7 @@ - </synapse> - <synapse id="28" priority="1000000"> - <action_set> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -307,7 +307,7 @@ - </synapse> - <synapse id="29" priority="1000000"> - <action_set> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -334,7 +334,7 @@ - </synapse> - <synapse id="30" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -367,16 +367,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="37" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="37" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="45" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="45" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-6.exp b/pengine/test10/master-6.exp -index 381bfd5..b9cdb41 100644 ---- a/pengine/test10/master-6.exp -+++ b/pengine/test10/master-6.exp -@@ -217,7 +217,7 @@ - </synapse> - <synapse id="24" priority="1000000"> - <action_set> -- <rsc_op id="43" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="43" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -250,7 +250,7 @@ - </synapse> - <synapse id="25" priority="1000000"> - <action_set> -- <rsc_op id="36" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="36" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -277,7 +277,7 @@ - </synapse> - <synapse id="26" priority="1000000"> - <action_set> -- <rsc_op id="31" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="31" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -298,7 +298,7 @@ - </synapse> - <synapse id="27" priority="1000000"> - <action_set> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -331,16 +331,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="31" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="31" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="36" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="36" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="43" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="43" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-7.exp b/pengine/test10/master-7.exp -index 4fba172..3f45706 100644 ---- a/pengine/test10/master-7.exp -+++ b/pengine/test10/master-7.exp -@@ -647,7 +647,7 @@ - </synapse> - <synapse id="47" priority="1000000"> - <action_set> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -668,7 +668,7 @@ - </synapse> - <synapse id="48" priority="1000000"> - <action_set> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -692,7 +692,7 @@ - </synapse> - <synapse id="49" priority="1000000"> - <action_set> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -719,13 +719,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-8.exp b/pengine/test10/master-8.exp -index c0cd853..26ba512 100644 ---- a/pengine/test10/master-8.exp -+++ b/pengine/test10/master-8.exp -@@ -703,7 +703,7 @@ - </synapse> - <synapse id="51" priority="1000000"> - <action_set> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -724,7 +724,7 @@ - </synapse> - <synapse id="52" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -751,7 +751,7 @@ - </synapse> - <synapse id="53" priority="1000000"> - <action_set> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -778,13 +778,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="30" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="30" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-9.exp b/pengine/test10/master-9.exp -index 333f272..989f087 100644 ---- a/pengine/test10/master-9.exp -+++ b/pengine/test10/master-9.exp -@@ -190,7 +190,7 @@ - </synapse> - <synapse id="20"> - <action_set> -- <crm_event id="66" operation="do_shutdown" operation_key="do_shutdown" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"> -+ <crm_event id="66" operation="do_shutdown" operation_key="do_shutdown-ibm1" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -202,7 +202,7 @@ - </synapse> - <synapse id="21" priority="1000000"> - <action_set> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="va1" on_node_uuid="b8f81462-2d65-42bf-bbb1-70db0ea29e5b"> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-va1" on_node="va1" on_node_uuid="b8f81462-2d65-42bf-bbb1-70db0ea29e5b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -238,7 +238,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-ibm1" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -277,10 +277,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-ibm1" on_node="ibm1" on_node_uuid="d0d76dd9-7a01-4c12-bbec-98aa2a669638"/> - </trigger> - <trigger> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="va1" on_node_uuid="b8f81462-2d65-42bf-bbb1-70db0ea29e5b"/> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-va1" on_node="va1" on_node_uuid="b8f81462-2d65-42bf-bbb1-70db0ea29e5b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-depend.exp b/pengine/test10/master-depend.exp -index 87d7d68..d9347f2 100644 ---- a/pengine/test10/master-depend.exp -+++ b/pengine/test10/master-depend.exp -@@ -225,7 +225,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="vbox4" on_node_uuid="a9a4b0ab-fc17-48ab-9d91-29e398e15cb6"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-vbox4" on_node="vbox4" on_node_uuid="a9a4b0ab-fc17-48ab-9d91-29e398e15cb6"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -261,7 +261,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="vbox4" on_node_uuid="a9a4b0ab-fc17-48ab-9d91-29e398e15cb6"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-vbox4" on_node="vbox4" on_node_uuid="a9a4b0ab-fc17-48ab-9d91-29e398e15cb6"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-ordering.exp b/pengine/test10/master-ordering.exp -index 365bb7b..de4fe7e 100644 ---- a/pengine/test10/master-ordering.exp -+++ b/pengine/test10/master-ordering.exp -@@ -446,7 +446,7 @@ - </synapse> - <synapse id="37" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="webcluster01" on_node_uuid="49e81295-8e2f-4aeb-98f3-a14de6f62298"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-webcluster01" on_node="webcluster01" on_node_uuid="49e81295-8e2f-4aeb-98f3-a14de6f62298"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -500,7 +500,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="webcluster01" on_node_uuid="49e81295-8e2f-4aeb-98f3-a14de6f62298"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-webcluster01" on_node="webcluster01" on_node_uuid="49e81295-8e2f-4aeb-98f3-a14de6f62298"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-probed-score.exp b/pengine/test10/master-probed-score.exp -index 0992921..be0cf84 100644 ---- a/pengine/test10/master-probed-score.exp -+++ b/pengine/test10/master-probed-score.exp -@@ -2752,7 +2752,7 @@ - </synapse> - <synapse id="190" priority="1000000"> - <action_set> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="orestes-corosync.nevis.columbia.edu" on_node_uuid="orestes-corosync.nevis.columbia.edu"> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-orestes-corosync.nevis.columbia.edu" on_node="orestes-corosync.nevis.columbia.edu" on_node_uuid="orestes-corosync.nevis.columbia.edu"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2818,7 +2818,7 @@ - </synapse> - <synapse id="191" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hypatia-corosync.nevis.columbia.edu" on_node_uuid="hypatia-corosync.nevis.columbia.edu"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hypatia-corosync.nevis.columbia.edu" on_node="hypatia-corosync.nevis.columbia.edu" on_node_uuid="hypatia-corosync.nevis.columbia.edu"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -2893,10 +2893,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hypatia-corosync.nevis.columbia.edu" on_node_uuid="hypatia-corosync.nevis.columbia.edu"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hypatia-corosync.nevis.columbia.edu" on_node="hypatia-corosync.nevis.columbia.edu" on_node_uuid="hypatia-corosync.nevis.columbia.edu"/> - </trigger> - <trigger> -- <rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="orestes-corosync.nevis.columbia.edu" on_node_uuid="orestes-corosync.nevis.columbia.edu"/> -+ <rsc_op id="24" operation="probe_complete" operation_key="probe_complete-orestes-corosync.nevis.columbia.edu" on_node="orestes-corosync.nevis.columbia.edu" on_node_uuid="orestes-corosync.nevis.columbia.edu"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-reattach.exp b/pengine/test10/master-reattach.exp -index afe989b..edf107e 100644 ---- a/pengine/test10/master-reattach.exp -+++ b/pengine/test10/master-reattach.exp -@@ -46,7 +46,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="dktest2" on_node_uuid="f430bc66-3388-4b7d-9e99-24fb02855f54"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-dktest2" on_node="dktest2" on_node_uuid="f430bc66-3388-4b7d-9e99-24fb02855f54"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -54,7 +54,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="2" operation="probe_complete" operation_key="probe_complete" on_node="dktest1" on_node_uuid="c738bee8-591f-4653-aaad-20a961923f25"> -+ <rsc_op id="2" operation="probe_complete" operation_key="probe_complete-dktest1" on_node="dktest1" on_node_uuid="c738bee8-591f-4653-aaad-20a961923f25"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/master-stop.exp b/pengine/test10/master-stop.exp -new file mode 100644 -index 0000000..5d9e4c1 ---- /dev/null -+++ b/pengine/test10/master-stop.exp -@@ -0,0 +1,74 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="10" operation="stop" operation_key="dummy:2_stop_0" on_node="node3" on_node_uuid="3"> -+ <primitive id="dummy" long-id="dummy:2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="13" operation="stop" operation_key="m_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1" priority="1000000"> -+ <action_set> -+ <pseudo_event id="14" operation="stopped" operation_key="m_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="10" operation="stop" operation_key="dummy:2_stop_0" on_node="node3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="13" operation="stop" operation_key="m_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <pseudo_event id="13" operation="stop" operation_key="m_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="3" priority="1000000"> -+ <action_set> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="4" priority="1000000"> -+ <action_set> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="5" priority="1000000"> -+ <action_set> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="10" operation="stop" operation_key="dummy:2_stop_0" on_node="node3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/master-unmanaged-monitor.exp b/pengine/test10/master-unmanaged-monitor.exp -index 2f7c2da..3f650a5 100644 ---- a/pengine/test10/master-unmanaged-monitor.exp -+++ b/pengine/test10/master-unmanaged-monitor.exp -@@ -91,7 +91,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-1" on_node_uuid="pcmk-1"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="pcmk-1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -109,7 +109,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-1" on_node_uuid="pcmk-1"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="pcmk-1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/migrate-1.exp b/pengine/test10/migrate-1.exp -index 9111b0f..7830a51 100644 ---- a/pengine/test10/migrate-1.exp -+++ b/pengine/test10/migrate-1.exp -@@ -67,7 +67,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -79,7 +79,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -93,10 +93,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/migrate-2.exp b/pengine/test10/migrate-2.exp -index 3888892..cf7f123 100644 ---- a/pengine/test10/migrate-2.exp -+++ b/pengine/test10/migrate-2.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/migrate-3.exp b/pengine/test10/migrate-3.exp -index 6c8b5af..6476943 100644 ---- a/pengine/test10/migrate-3.exp -+++ b/pengine/test10/migrate-3.exp -@@ -39,7 +39,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -51,7 +51,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -65,10 +65,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/migrate-4.exp b/pengine/test10/migrate-4.exp -index 14ce94d..8cac495 100644 ---- a/pengine/test10/migrate-4.exp -+++ b/pengine/test10/migrate-4.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/migrate-shutdown.exp b/pengine/test10/migrate-shutdown.exp -index b6a4365..e6d068a 100644 ---- a/pengine/test10/migrate-shutdown.exp -+++ b/pengine/test10/migrate-shutdown.exp -@@ -325,7 +325,7 @@ - </synapse> - <synapse id="25"> - <action_set> -- <crm_event id="59" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-4" on_node_uuid="104"> -+ <crm_event id="59" operation="do_shutdown" operation_key="do_shutdown-pcmk-4" on_node="pcmk-4" on_node_uuid="104"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -343,7 +343,7 @@ - </synapse> - <synapse id="26"> - <action_set> -- <crm_event id="58" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-3" on_node_uuid="103"> -+ <crm_event id="58" operation="do_shutdown" operation_key="do_shutdown-pcmk-3" on_node="pcmk-3" on_node_uuid="103"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -355,7 +355,7 @@ - </synapse> - <synapse id="27"> - <action_set> -- <crm_event id="57" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-2" on_node_uuid="102"> -+ <crm_event id="57" operation="do_shutdown" operation_key="do_shutdown-pcmk-2" on_node="pcmk-2" on_node_uuid="102"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -385,7 +385,7 @@ - </synapse> - <synapse id="28"> - <action_set> -- <crm_event id="56" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-1" on_node_uuid="101"> -+ <crm_event id="56" operation="do_shutdown" operation_key="do_shutdown-pcmk-1" on_node="pcmk-1" on_node_uuid="101"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -406,13 +406,13 @@ - <rsc_op id="43" operation="stop" operation_key="stateful-1:2_stop_0" internal_operation_key="stateful-1:0_stop_0" on_node="pcmk-1" on_node_uuid="101"/> - </trigger> - <trigger> -- <crm_event id="57" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-2" on_node_uuid="102"/> -+ <crm_event id="57" operation="do_shutdown" operation_key="do_shutdown-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - <trigger> -- <crm_event id="58" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-3" on_node_uuid="103"/> -+ <crm_event id="58" operation="do_shutdown" operation_key="do_shutdown-pcmk-3" on_node="pcmk-3" on_node_uuid="103"/> - </trigger> - <trigger> -- <crm_event id="59" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-4" on_node_uuid="104"/> -+ <crm_event id="59" operation="do_shutdown" operation_key="do_shutdown-pcmk-4" on_node="pcmk-4" on_node_uuid="104"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/migrate-start-complex.exp b/pengine/test10/migrate-start-complex.exp -index 7f9e3fa..33e54f6 100644 ---- a/pengine/test10/migrate-start-complex.exp -+++ b/pengine/test10/migrate-start-complex.exp -@@ -241,7 +241,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="dom0-02" on_node_uuid="dom0-02"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-dom0-02" on_node="dom0-02" on_node_uuid="dom0-02"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -253,7 +253,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="dom0-01" on_node_uuid="dom0-01"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-dom0-01" on_node="dom0-01" on_node_uuid="dom0-01"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -271,10 +271,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="dom0-01" on_node_uuid="dom0-01"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-dom0-01" on_node="dom0-01" on_node_uuid="dom0-01"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="dom0-02" on_node_uuid="dom0-02"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-dom0-02" on_node="dom0-02" on_node_uuid="dom0-02"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/minimal.exp b/pengine/test10/minimal.exp -index 565452b..ce47557 100644 ---- a/pengine/test10/minimal.exp -+++ b/pengine/test10/minimal.exp -@@ -69,7 +69,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="host2" on_node_uuid="host2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-host2" on_node="host2" on_node_uuid="host2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -84,7 +84,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="host1" on_node_uuid="host1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-host1" on_node="host1" on_node_uuid="host1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -105,10 +105,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="host1" on_node_uuid="host1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-host1" on_node="host1" on_node_uuid="host1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="host2" on_node_uuid="host2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-host2" on_node="host2" on_node_uuid="host2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/mon-rsc-1.exp b/pengine/test10/mon-rsc-1.exp -index 3b67915..c1cf031 100644 ---- a/pengine/test10/mon-rsc-1.exp -+++ b/pengine/test10/mon-rsc-1.exp -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -57,7 +57,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -75,10 +75,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/mon-rsc-2.exp b/pengine/test10/mon-rsc-2.exp -index 6a6fd07..317b84c 100644 ---- a/pengine/test10/mon-rsc-2.exp -+++ b/pengine/test10/mon-rsc-2.exp -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -60,7 +60,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,10 +78,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/mon-rsc-3.exp b/pengine/test10/mon-rsc-3.exp -index b32054f..6d93160 100644 ---- a/pengine/test10/mon-rsc-3.exp -+++ b/pengine/test10/mon-rsc-3.exp -@@ -36,7 +36,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -48,7 +48,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/mon-rsc-4.exp b/pengine/test10/mon-rsc-4.exp -index 2abfdec..58a64f5 100644 ---- a/pengine/test10/mon-rsc-4.exp -+++ b/pengine/test10/mon-rsc-4.exp -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -60,7 +60,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,10 +78,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/multi1.exp b/pengine/test10/multi1.exp -index 58d9dbf..18fe162 100644 ---- a/pengine/test10/multi1.exp -+++ b/pengine/test10/multi1.exp -@@ -35,7 +35,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -43,7 +43,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/node-maintenance-1.exp b/pengine/test10/node-maintenance-1.exp -index 3c73791..6a24c07 100644 ---- a/pengine/test10/node-maintenance-1.exp -+++ b/pengine/test10/node-maintenance-1.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -27,7 +27,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/node-maintenance-2.exp b/pengine/test10/node-maintenance-2.exp -index 0156835..d8b15e4 100644 ---- a/pengine/test10/node-maintenance-2.exp -+++ b/pengine/test10/node-maintenance-2.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -40,7 +40,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/notify-0.exp b/pengine/test10/notify-0.exp -index 3198a86..626fb59 100644 ---- a/pengine/test10/notify-0.exp -+++ b/pengine/test10/notify-0.exp -@@ -97,7 +97,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -118,7 +118,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/notify-1.exp b/pengine/test10/notify-1.exp -index 8c290aa..ca02a84 100644 ---- a/pengine/test10/notify-1.exp -+++ b/pengine/test10/notify-1.exp -@@ -263,7 +263,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -284,7 +284,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/notify-2.exp b/pengine/test10/notify-2.exp -index 8c290aa..ca02a84 100644 ---- a/pengine/test10/notify-2.exp -+++ b/pengine/test10/notify-2.exp -@@ -263,7 +263,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -284,7 +284,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/notify-3.exp b/pengine/test10/notify-3.exp -index 1615df0..c5708dc 100644 ---- a/pengine/test10/notify-3.exp -+++ b/pengine/test10/notify-3.exp -@@ -438,7 +438,7 @@ - </synapse> - <synapse id="33" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -456,7 +456,7 @@ - </synapse> - <synapse id="34" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -477,10 +477,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/novell-239082.exp b/pengine/test10/novell-239082.exp -index 3073f7f..538eda6 100644 ---- a/pengine/test10/novell-239082.exp -+++ b/pengine/test10/novell-239082.exp -@@ -454,7 +454,7 @@ - </synapse> - <synapse id="32"> - <action_set> -- <crm_event id="37" operation="do_shutdown" operation_key="do_shutdown" on_node="xen-1" on_node_uuid="00aaa02f-110f-44e6-9a9d-af93827bfdb9"> -+ <crm_event id="37" operation="do_shutdown" operation_key="do_shutdown-xen-1" on_node="xen-1" on_node_uuid="00aaa02f-110f-44e6-9a9d-af93827bfdb9"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/novell-252693-2.exp b/pengine/test10/novell-252693-2.exp -index f30cf03..ca3c378 100644 ---- a/pengine/test10/novell-252693-2.exp -+++ b/pengine/test10/novell-252693-2.exp -@@ -696,7 +696,7 @@ - </synapse> - <synapse id="51" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -729,7 +729,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/novell-252693-3.exp b/pengine/test10/novell-252693-3.exp -index 48be681..6ebe9a7 100644 ---- a/pengine/test10/novell-252693-3.exp -+++ b/pengine/test10/novell-252693-3.exp -@@ -800,7 +800,7 @@ - </synapse> - <synapse id="58" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -833,7 +833,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="85d23ecf-8b5b-4cd3-9344-e1ff5d869d6a"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/novell-252693.exp b/pengine/test10/novell-252693.exp -index 4ab727a..ca4b942 100644 ---- a/pengine/test10/novell-252693.exp -+++ b/pengine/test10/novell-252693.exp -@@ -554,7 +554,7 @@ - </synapse> - <synapse id="41"> - <action_set> -- <crm_event id="77" operation="do_shutdown" operation_key="do_shutdown" on_node="node1" on_node_uuid="3d8227f0-31dd-4801-b0db-987909d4a321"> -+ <crm_event id="77" operation="do_shutdown" operation_key="do_shutdown-node1" on_node="node1" on_node_uuid="3d8227f0-31dd-4801-b0db-987909d4a321"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -diff --git a/pengine/test10/obsolete-lrm-resource.exp b/pengine/test10/obsolete-lrm-resource.exp -index e56e556..0939b4f 100644 ---- a/pengine/test10/obsolete-lrm-resource.exp -+++ b/pengine/test10/obsolete-lrm-resource.exp -@@ -58,7 +58,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="yingying.site" on_node_uuid="yingying.site"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-yingying.site" on_node="yingying.site" on_node_uuid="yingying.site"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -76,7 +76,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="yingying.site" on_node_uuid="yingying.site"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-yingying.site" on_node="yingying.site" on_node_uuid="yingying.site"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/one-or-more-0.exp b/pengine/test10/one-or-more-0.exp -index 315c596..01c59c7 100644 ---- a/pengine/test10/one-or-more-0.exp -+++ b/pengine/test10/one-or-more-0.exp -@@ -98,7 +98,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -125,7 +125,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/one-or-more-1.exp b/pengine/test10/one-or-more-1.exp -index 30e68b2..900fc5d 100644 ---- a/pengine/test10/one-or-more-1.exp -+++ b/pengine/test10/one-or-more-1.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/one-or-more-2.exp b/pengine/test10/one-or-more-2.exp -index d94fd9d..019b8d0 100644 ---- a/pengine/test10/one-or-more-2.exp -+++ b/pengine/test10/one-or-more-2.exp -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -109,7 +109,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/one-or-more-3.exp b/pengine/test10/one-or-more-3.exp -index 2070f51..09776cd 100644 ---- a/pengine/test10/one-or-more-3.exp -+++ b/pengine/test10/one-or-more-3.exp -@@ -50,7 +50,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -77,7 +77,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/one-or-more-4.exp b/pengine/test10/one-or-more-4.exp -index 002fc27..2496808 100644 ---- a/pengine/test10/one-or-more-4.exp -+++ b/pengine/test10/one-or-more-4.exp -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -109,7 +109,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/one-or-more-5.exp b/pengine/test10/one-or-more-5.exp -index 67d1231..fe94627 100644 ---- a/pengine/test10/one-or-more-5.exp -+++ b/pengine/test10/one-or-more-5.exp -@@ -116,7 +116,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -149,7 +149,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/order-mandatory.exp b/pengine/test10/order-mandatory.exp -index 7aa18d2..166e578 100644 ---- a/pengine/test10/order-mandatory.exp -+++ b/pengine/test10/order-mandatory.exp -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/order-optional-keyword.exp b/pengine/test10/order-optional-keyword.exp -index d398916..aa3da4e 100644 ---- a/pengine/test10/order-optional-keyword.exp -+++ b/pengine/test10/order-optional-keyword.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/order-optional.exp b/pengine/test10/order-optional.exp -index d14157b..76126ad 100644 ---- a/pengine/test10/order-optional.exp -+++ b/pengine/test10/order-optional.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/order-required.exp b/pengine/test10/order-required.exp -index 2d871fa..6fc0257 100644 ---- a/pengine/test10/order-required.exp -+++ b/pengine/test10/order-required.exp -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/order-wrong-kind.exp b/pengine/test10/order-wrong-kind.exp -index 68796f8..426153d 100644 ---- a/pengine/test10/order-wrong-kind.exp -+++ b/pengine/test10/order-wrong-kind.exp -@@ -35,7 +35,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/order1.exp b/pengine/test10/order1.exp -index 6db9031..d69e2f6 100644 ---- a/pengine/test10/order1.exp -+++ b/pengine/test10/order1.exp -@@ -100,7 +100,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -118,7 +118,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -142,10 +142,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/order2.exp b/pengine/test10/order2.exp -index 9041ba0..9eacda0 100644 ---- a/pengine/test10/order2.exp -+++ b/pengine/test10/order2.exp -@@ -134,7 +134,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -155,7 +155,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -182,10 +182,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/order3.exp b/pengine/test10/order3.exp -index 215b49c..0ce0585 100644 ---- a/pengine/test10/order3.exp -+++ b/pengine/test10/order3.exp -@@ -171,7 +171,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -192,7 +192,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -206,10 +206,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/order4.exp b/pengine/test10/order4.exp -index 6db9031..d69e2f6 100644 ---- a/pengine/test10/order4.exp -+++ b/pengine/test10/order4.exp -@@ -100,7 +100,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -118,7 +118,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -142,10 +142,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/order5.exp b/pengine/test10/order5.exp -index eceee4f..970f13a 100644 ---- a/pengine/test10/order5.exp -+++ b/pengine/test10/order5.exp -@@ -189,7 +189,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -210,7 +210,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -237,10 +237,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/order6.exp b/pengine/test10/order6.exp -index 7ebade6..e82ec71 100644 ---- a/pengine/test10/order6.exp -+++ b/pengine/test10/order6.exp -@@ -189,7 +189,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -210,7 +210,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -237,10 +237,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/order7.exp b/pengine/test10/order7.exp -index cc7cf86..abfbe43 100644 ---- a/pengine/test10/order7.exp -+++ b/pengine/test10/order7.exp -@@ -76,7 +76,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -103,7 +103,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ordered-set-basic-startup.exp b/pengine/test10/ordered-set-basic-startup.exp -index 4704f66..22d6dbb 100644 ---- a/pengine/test10/ordered-set-basic-startup.exp -+++ b/pengine/test10/ordered-set-basic-startup.exp -@@ -68,7 +68,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -101,7 +101,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="fc16-builder" on_node_uuid="fc16-builder"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-fc16-builder" on_node="fc16-builder" on_node_uuid="fc16-builder"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/orphan-0.exp b/pengine/test10/orphan-0.exp -index afccffb..ca56f40 100644 ---- a/pengine/test10/orphan-0.exp -+++ b/pengine/test10/orphan-0.exp -@@ -118,7 +118,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -139,7 +139,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,7 +157,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -172,7 +172,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -196,16 +196,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/orphan-1.exp b/pengine/test10/orphan-1.exp -index b3a6470..6e76cba 100644 ---- a/pengine/test10/orphan-1.exp -+++ b/pengine/test10/orphan-1.exp -@@ -162,7 +162,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -183,7 +183,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -201,7 +201,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -216,7 +216,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -240,16 +240,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/orphan-2.exp b/pengine/test10/orphan-2.exp -index ad9ad59..516422c 100644 ---- a/pengine/test10/orphan-2.exp -+++ b/pengine/test10/orphan-2.exp -@@ -180,7 +180,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -201,7 +201,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -219,7 +219,7 @@ - </synapse> - <synapse id="21" priority="1000000"> - <action_set> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -234,7 +234,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -276,16 +276,16 @@ - <crm_event id="3" operation="clear_failcount" operation_key="rsc_c001n08_clear_failcount" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/params-0.exp b/pengine/test10/params-0.exp -index 1489e3e..3b036ab 100644 ---- a/pengine/test10/params-0.exp -+++ b/pengine/test10/params-0.exp -@@ -136,7 +136,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,7 +157,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="17" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -178,7 +178,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -196,7 +196,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -223,16 +223,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="17" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/params-1.exp b/pengine/test10/params-1.exp -index 09470ab..6b6ef2d 100644 ---- a/pengine/test10/params-1.exp -+++ b/pengine/test10/params-1.exp -@@ -205,7 +205,7 @@ - </synapse> - <synapse id="21" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -226,7 +226,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -247,7 +247,7 @@ - </synapse> - <synapse id="23" priority="1000000"> - <action_set> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -265,7 +265,7 @@ - </synapse> - <synapse id="24" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -292,16 +292,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/params-2.exp b/pengine/test10/params-2.exp -index 7dd199b..fbac4a2 100644 ---- a/pengine/test10/params-2.exp -+++ b/pengine/test10/params-2.exp -@@ -134,7 +134,7 @@ - </synapse> - <synapse id="12"> - <action_set> -- <crm_event id="19" operation="do_shutdown" operation_key="do_shutdown" on_node="node1" on_node_uuid="node1"> -+ <crm_event id="19" operation="do_shutdown" operation_key="do_shutdown-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -146,7 +146,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -176,7 +176,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -197,13 +197,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/params-4.exp b/pengine/test10/params-4.exp -index 50d9b7f..c5987e02 100644 ---- a/pengine/test10/params-4.exp -+++ b/pengine/test10/params-4.exp -@@ -189,7 +189,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -210,7 +210,7 @@ - </synapse> - <synapse id="21" priority="1000000"> - <action_set> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -231,7 +231,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -249,7 +249,7 @@ - </synapse> - <synapse id="23" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -276,16 +276,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/params-5.exp b/pengine/test10/params-5.exp -index 85736b0..01231e0 100644 ---- a/pengine/test10/params-5.exp -+++ b/pengine/test10/params-5.exp -@@ -205,7 +205,7 @@ - </synapse> - <synapse id="21" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -226,7 +226,7 @@ - </synapse> - <synapse id="22" priority="1000000"> - <action_set> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -247,7 +247,7 @@ - </synapse> - <synapse id="23" priority="1000000"> - <action_set> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -265,7 +265,7 @@ - </synapse> - <synapse id="24" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -292,16 +292,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/per-node-attrs.exp b/pengine/test10/per-node-attrs.exp -index 1e38557..aff6b4f 100644 ---- a/pengine/test10/per-node-attrs.exp -+++ b/pengine/test10/per-node-attrs.exp -@@ -41,7 +41,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-3" on_node_uuid="103"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-pcmk-3" on_node="pcmk-3" on_node_uuid="103"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-2" on_node_uuid="102"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="102"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -65,7 +65,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-1" on_node_uuid="101"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="101"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -83,13 +83,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-1" on_node_uuid="101"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="101"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-2" on_node_uuid="102"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-3" on_node_uuid="103"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-pcmk-3" on_node="pcmk-3" on_node_uuid="103"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/placement-capacity.exp b/pengine/test10/placement-capacity.exp -index f70c8c5..406d502 100644 ---- a/pengine/test10/placement-capacity.exp -+++ b/pengine/test10/placement-capacity.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/placement-location.exp b/pengine/test10/placement-location.exp -index f70c8c5..406d502 100644 ---- a/pengine/test10/placement-location.exp -+++ b/pengine/test10/placement-location.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/placement-priority.exp b/pengine/test10/placement-priority.exp -index c72759e..557f033 100644 ---- a/pengine/test10/placement-priority.exp -+++ b/pengine/test10/placement-priority.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/placement-stickiness.exp b/pengine/test10/placement-stickiness.exp -index f70c8c5..406d502 100644 ---- a/pengine/test10/placement-stickiness.exp -+++ b/pengine/test10/placement-stickiness.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/probe-0.exp b/pengine/test10/probe-0.exp -index c1310d9..562e855 100644 ---- a/pengine/test10/probe-0.exp -+++ b/pengine/test10/probe-0.exp -@@ -160,7 +160,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="x32c48" on_node_uuid="ca93fea5-67c9-473d-9ce0-7ed7fb823872"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-x32c48" on_node="x32c48" on_node_uuid="ca93fea5-67c9-473d-9ce0-7ed7fb823872"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -172,7 +172,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="x32c47" on_node_uuid="a1dbc8cc-4d33-41e7-a75a-cd4f93b26410"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-x32c47" on_node="x32c47" on_node_uuid="a1dbc8cc-4d33-41e7-a75a-cd4f93b26410"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -190,10 +190,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="x32c47" on_node_uuid="a1dbc8cc-4d33-41e7-a75a-cd4f93b26410"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-x32c47" on_node="x32c47" on_node_uuid="a1dbc8cc-4d33-41e7-a75a-cd4f93b26410"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="x32c48" on_node_uuid="ca93fea5-67c9-473d-9ce0-7ed7fb823872"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-x32c48" on_node="x32c48" on_node_uuid="ca93fea5-67c9-473d-9ce0-7ed7fb823872"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/probe-1.exp b/pengine/test10/probe-1.exp -index a62f2f3..37d49e3 100644 ---- a/pengine/test10/probe-1.exp -+++ b/pengine/test10/probe-1.exp -@@ -36,7 +36,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -54,7 +54,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/probe-4.exp b/pengine/test10/probe-4.exp -index 819dd5c..4f2d325 100644 ---- a/pengine/test10/probe-4.exp -+++ b/pengine/test10/probe-4.exp -@@ -33,7 +33,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/probe-timeout.exp b/pengine/test10/probe-timeout.exp -index 2458e7b..baf2440 100644 ---- a/pengine/test10/probe-timeout.exp -+++ b/pengine/test10/probe-timeout.exp -@@ -115,7 +115,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -130,7 +130,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -151,10 +151,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/quorum-1.exp b/pengine/test10/quorum-1.exp -index f2de2c8..97dec69 100644 ---- a/pengine/test10/quorum-1.exp -+++ b/pengine/test10/quorum-1.exp -@@ -79,7 +79,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -97,7 +97,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -115,10 +115,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/quorum-2.exp b/pengine/test10/quorum-2.exp -index ed60d5e..ac868ff 100644 ---- a/pengine/test10/quorum-2.exp -+++ b/pengine/test10/quorum-2.exp -@@ -66,7 +66,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -84,7 +84,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -102,10 +102,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/quorum-3.exp b/pengine/test10/quorum-3.exp -index 175b11d..8ddd88c 100644 ---- a/pengine/test10/quorum-3.exp -+++ b/pengine/test10/quorum-3.exp -@@ -63,7 +63,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -81,7 +81,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,10 +99,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/quorum-4.exp b/pengine/test10/quorum-4.exp -index 3b90816..42ba483 100644 ---- a/pengine/test10/quorum-4.exp -+++ b/pengine/test10/quorum-4.exp -@@ -36,7 +36,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -54,7 +54,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/quorum-5.exp b/pengine/test10/quorum-5.exp -index b2844a9..ee9e28e 100644 ---- a/pengine/test10/quorum-5.exp -+++ b/pengine/test10/quorum-5.exp -@@ -106,7 +106,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -127,7 +127,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/quorum-6.exp b/pengine/test10/quorum-6.exp -index 685a514..0c46abe 100644 ---- a/pengine/test10/quorum-6.exp -+++ b/pengine/test10/quorum-6.exp -@@ -125,7 +125,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -164,7 +164,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hadev2" on_node="hadev2" on_node_uuid="190b75b6-5585-42d9-8cde-eb6041843ae3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-1.exp b/pengine/test10/rec-node-1.exp -index f26fd66..2cc4595 100644 ---- a/pengine/test10/rec-node-1.exp -+++ b/pengine/test10/rec-node-1.exp -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -66,7 +66,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-10.exp b/pengine/test10/rec-node-10.exp -index 741bcf1..60ab810 100644 ---- a/pengine/test10/rec-node-10.exp -+++ b/pengine/test10/rec-node-10.exp -@@ -28,7 +28,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -52,7 +52,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-11.exp b/pengine/test10/rec-node-11.exp -index 173df21..f441ce8 100644 ---- a/pengine/test10/rec-node-11.exp -+++ b/pengine/test10/rec-node-11.exp -@@ -245,7 +245,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -269,7 +269,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-12.exp b/pengine/test10/rec-node-12.exp -index 9732907..1ac908f 100644 ---- a/pengine/test10/rec-node-12.exp -+++ b/pengine/test10/rec-node-12.exp -@@ -534,7 +534,7 @@ - </synapse> - <synapse id="47" priority="1000000"> - <action_set> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -570,7 +570,7 @@ - </synapse> - <synapse id="48" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -606,7 +606,7 @@ - </synapse> - <synapse id="49" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -648,13 +648,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="23" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-15.exp b/pengine/test10/rec-node-15.exp -index 3c79d65..e1330a6 100644 ---- a/pengine/test10/rec-node-15.exp -+++ b/pengine/test10/rec-node-15.exp -@@ -465,7 +465,7 @@ - </synapse> - <synapse id="30" priority="1000000"> - <action_set> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="sapcl02" on_node_uuid="09fa194c-d7e1-41fa-a0d0-afd79a139181"> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-sapcl02" on_node="sapcl02" on_node_uuid="09fa194c-d7e1-41fa-a0d0-afd79a139181"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -477,7 +477,7 @@ - </synapse> - <synapse id="31" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="sapcl01" on_node_uuid="85180fd0-70c9-4136-a5e0-90d89ea6079d"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-sapcl01" on_node="sapcl01" on_node_uuid="85180fd0-70c9-4136-a5e0-90d89ea6079d"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -495,10 +495,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="sapcl01" on_node_uuid="85180fd0-70c9-4136-a5e0-90d89ea6079d"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-sapcl01" on_node="sapcl01" on_node_uuid="85180fd0-70c9-4136-a5e0-90d89ea6079d"/> - </trigger> - <trigger> -- <rsc_op id="11" operation="probe_complete" operation_key="probe_complete" on_node="sapcl02" on_node_uuid="09fa194c-d7e1-41fa-a0d0-afd79a139181"/> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-sapcl02" on_node="sapcl02" on_node_uuid="09fa194c-d7e1-41fa-a0d0-afd79a139181"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-2.exp b/pengine/test10/rec-node-2.exp -index 901eded..fd04c37 100644 ---- a/pengine/test10/rec-node-2.exp -+++ b/pengine/test10/rec-node-2.exp -@@ -266,7 +266,7 @@ - </synapse> - <synapse id="20" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -302,7 +302,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-3.exp b/pengine/test10/rec-node-3.exp -index f26fd66..2cc4595 100644 ---- a/pengine/test10/rec-node-3.exp -+++ b/pengine/test10/rec-node-3.exp -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -66,7 +66,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-4.exp b/pengine/test10/rec-node-4.exp -index 1e98f4d..2cbfecb 100644 ---- a/pengine/test10/rec-node-4.exp -+++ b/pengine/test10/rec-node-4.exp -@@ -132,7 +132,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -156,7 +156,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-5.exp b/pengine/test10/rec-node-5.exp -index f26fd66..2cc4595 100644 ---- a/pengine/test10/rec-node-5.exp -+++ b/pengine/test10/rec-node-5.exp -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -66,7 +66,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-6.exp b/pengine/test10/rec-node-6.exp -index 1e98f4d..2cbfecb 100644 ---- a/pengine/test10/rec-node-6.exp -+++ b/pengine/test10/rec-node-6.exp -@@ -132,7 +132,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -156,7 +156,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-7.exp b/pengine/test10/rec-node-7.exp -index 1e98f4d..2cbfecb 100644 ---- a/pengine/test10/rec-node-7.exp -+++ b/pengine/test10/rec-node-7.exp -@@ -132,7 +132,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -156,7 +156,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-8.exp b/pengine/test10/rec-node-8.exp -index 00e58ef..1237a82 100644 ---- a/pengine/test10/rec-node-8.exp -+++ b/pengine/test10/rec-node-8.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-9.exp b/pengine/test10/rec-node-9.exp -index e2192c8..9868f6f 100644 ---- a/pengine/test10/rec-node-9.exp -+++ b/pengine/test10/rec-node-9.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -40,7 +40,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-0.exp b/pengine/test10/rec-rsc-0.exp -index 93bfb15..8caa0c0 100644 ---- a/pengine/test10/rec-rsc-0.exp -+++ b/pengine/test10/rec-rsc-0.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -27,7 +27,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rec-rsc-1.exp b/pengine/test10/rec-rsc-1.exp -index 3825203..25030c6 100644 ---- a/pengine/test10/rec-rsc-1.exp -+++ b/pengine/test10/rec-rsc-1.exp -@@ -39,7 +39,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -51,7 +51,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -65,10 +65,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-2.exp b/pengine/test10/rec-rsc-2.exp -index 7db7a0e..5f64c90 100644 ---- a/pengine/test10/rec-rsc-2.exp -+++ b/pengine/test10/rec-rsc-2.exp -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,10 +78,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-3.exp b/pengine/test10/rec-rsc-3.exp -index 80a6252..7faada9 100644 ---- a/pengine/test10/rec-rsc-3.exp -+++ b/pengine/test10/rec-rsc-3.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-4.exp b/pengine/test10/rec-rsc-4.exp -index 78a90db..c186199 100644 ---- a/pengine/test10/rec-rsc-4.exp -+++ b/pengine/test10/rec-rsc-4.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="2" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="2" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -36,10 +36,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="2" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="2" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-5.exp b/pengine/test10/rec-rsc-5.exp -index 69a85d1..95a3558 100644 ---- a/pengine/test10/rec-rsc-5.exp -+++ b/pengine/test10/rec-rsc-5.exp -@@ -132,7 +132,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -156,7 +156,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-6.exp b/pengine/test10/rec-rsc-6.exp -index 58d9dbf..18fe162 100644 ---- a/pengine/test10/rec-rsc-6.exp -+++ b/pengine/test10/rec-rsc-6.exp -@@ -35,7 +35,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -43,7 +43,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rec-rsc-7.exp b/pengine/test10/rec-rsc-7.exp -index eb2335e..1454ff3 100644 ---- a/pengine/test10/rec-rsc-7.exp -+++ b/pengine/test10/rec-rsc-7.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -27,7 +27,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rec-rsc-8.exp b/pengine/test10/rec-rsc-8.exp -index 8b8bce3..c53091f 100644 ---- a/pengine/test10/rec-rsc-8.exp -+++ b/pengine/test10/rec-rsc-8.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="2" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="2" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rec-rsc-9.exp b/pengine/test10/rec-rsc-9.exp -index 4d0e70b..5a48606 100644 ---- a/pengine/test10/rec-rsc-9.exp -+++ b/pengine/test10/rec-rsc-9.exp -@@ -194,7 +194,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/remote-startup-probes.exp b/pengine/test10/remote-startup-probes.exp -new file mode 100644 -index 0000000..3c0f4e5 ---- /dev/null -+++ b/pengine/test10/remote-startup-probes.exp -@@ -0,0 +1,214 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="20" operation="monitor" operation_key="remote1_monitor_60000" on_node="18builder" on_node_uuid="5"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="23" operation="monitor" operation_key="FAKE1_monitor_60000" on_node="18node2" on_node_uuid="2"> -+ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="22" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="22" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="FAKE1_stop_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="21" operation="stop" operation_key="FAKE1_stop_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="13" operation="monitor" operation_key="FAKE1_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="26" operation="monitor" operation_key="FAKE2_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="25" operation="start" operation_key="FAKE2_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="25" operation="start" operation_key="FAKE2_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="24" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="14" operation="monitor" operation_key="FAKE2_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="15" operation="monitor" operation_key="FAKE3_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="16" operation="monitor" operation_key="FAKE4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12" priority="1000000"> -+ <action_set> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="FAKE1_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="14" operation="monitor" operation_key="FAKE2_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="15" operation="monitor" operation_key="FAKE3_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="16" operation="monitor" operation_key="FAKE4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <pseudo_event id="6" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="FAKE1_stop_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/remote-startup.exp b/pengine/test10/remote-startup.exp -new file mode 100644 -index 0000000..82fd243 ---- /dev/null -+++ b/pengine/test10/remote-startup.exp -@@ -0,0 +1,246 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="18" operation="monitor" operation_key="shooter_monitor_60000" on_node="18node1" on_node_uuid="1"> -+ <primitive id="shooter" class="stonith" type="fence_xvm"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="17" operation="start" operation_key="shooter_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="17" operation="start" operation_key="shooter_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="shooter" class="stonith" type="fence_xvm"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="16" operation="stop" operation_key="shooter_stop_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="16" operation="stop" operation_key="shooter_stop_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="shooter" class="stonith" type="fence_xvm"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="fake_start_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="fake" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="15" operation="monitor" operation_key="fake_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <primitive id="fake" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="20" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="12" operation="monitor" operation_key="fake_monitor_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="fake" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="9" operation="monitor" operation_key="fake_monitor_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="fake" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="6" operation="monitor" operation_key="fake_monitor_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="fake" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="21" operation="monitor" operation_key="remote1_monitor_60000" on_node="18builder" on_node_uuid="5"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="20" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="20" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="4" operation="probe_nodes_complete" operation_key="probe_nodes_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="13" operation="monitor" operation_key="remote1_monitor_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="10" operation="monitor" operation_key="remote1_monitor_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <rsc_op id="7" operation="monitor" operation_key="remote1_monitor_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="13" priority="1000000"> -+ <action_set> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="15" operation="monitor" operation_key="fake_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14" priority="1000000"> -+ <action_set> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="12" operation="monitor" operation_key="fake_monitor_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="remote1_monitor_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="15" priority="1000000"> -+ <action_set> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="9" operation="monitor" operation_key="fake_monitor_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="10" operation="monitor" operation_key="remote1_monitor_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="16" priority="1000000"> -+ <action_set> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="monitor" operation_key="fake_monitor_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="monitor" operation_key="remote1_monitor_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <pseudo_event id="4" operation="probe_nodes_complete" operation_key="probe_nodes_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="18"> -+ <action_set> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="14" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="19"> -+ <action_set> -+ <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="16" operation="stop" operation_key="shooter_stop_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/reprobe-target_rc.exp b/pengine/test10/reprobe-target_rc.exp -index 9c09de7..f3b5a38 100644 ---- a/pengine/test10/reprobe-target_rc.exp -+++ b/pengine/test10/reprobe-target_rc.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <rsc_op id="4" operation="probe_again" operation_key="probe_again" on_node="node-1" on_node_uuid="node-1"> -+ <rsc_op id="4" operation="probe_again" operation_key="probe_again-node-1" on_node="node-1" on_node_uuid="node-1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1"> - <action_set> -- <rsc_op id="3" operation="probe_again" operation_key="probe_again" on_node="node-0" on_node_uuid="node-0"> -+ <rsc_op id="3" operation="probe_again" operation_key="probe_again-node-0" on_node="node-0" on_node_uuid="node-0"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rsc-maintenance.exp b/pengine/test10/rsc-maintenance.exp -new file mode 100644 -index 0000000..146519c ---- /dev/null -+++ b/pengine/test10/rsc-maintenance.exp -@@ -0,0 +1,36 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="1" operation="cancel" operation_key="rsc1_monitor_10000" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_call_id="3" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_operation="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="2" operation="cancel" operation_key="rsc2_monitor_10000" on_node="node1" on_node_uuid="node1"> -+ <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_call_id="3" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_operation="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2" priority="1000000"> -+ <action_set> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="3" priority="1000000"> -+ <action_set> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/rsc-sets-clone-1.exp b/pengine/test10/rsc-sets-clone-1.exp -index 7e441c3..c338d7a 100644 ---- a/pengine/test10/rsc-sets-clone-1.exp -+++ b/pengine/test10/rsc-sets-clone-1.exp -@@ -476,7 +476,7 @@ - </synapse> - <synapse id="36" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="sys3" on_node_uuid="sys3"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-sys3" on_node="sys3" on_node_uuid="sys3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -536,7 +536,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="sys3" on_node_uuid="sys3"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-sys3" on_node="sys3" on_node_uuid="sys3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc-sets-clone.exp b/pengine/test10/rsc-sets-clone.exp -index 042eff5..14d9ccb 100644 ---- a/pengine/test10/rsc-sets-clone.exp -+++ b/pengine/test10/rsc-sets-clone.exp -@@ -88,7 +88,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -96,7 +96,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rsc-sets-master.exp b/pengine/test10/rsc-sets-master.exp -index 18609c9..f801973 100644 ---- a/pengine/test10/rsc-sets-master.exp -+++ b/pengine/test10/rsc-sets-master.exp -@@ -205,7 +205,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -213,7 +213,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rsc-sets-seq-false.exp b/pengine/test10/rsc-sets-seq-false.exp -index 36109e4..76f5156 100644 ---- a/pengine/test10/rsc-sets-seq-false.exp -+++ b/pengine/test10/rsc-sets-seq-false.exp -@@ -166,7 +166,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -174,7 +174,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rsc-sets-seq-true.exp b/pengine/test10/rsc-sets-seq-true.exp -index be82497..c37c9a9 100644 ---- a/pengine/test10/rsc-sets-seq-true.exp -+++ b/pengine/test10/rsc-sets-seq-true.exp -@@ -168,7 +168,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -176,7 +176,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/rsc_dep1.exp b/pengine/test10/rsc_dep1.exp -index 9b61a44..96b998a 100644 ---- a/pengine/test10/rsc_dep1.exp -+++ b/pengine/test10/rsc_dep1.exp -@@ -63,7 +63,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,7 +78,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,10 +99,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc_dep10.exp b/pengine/test10/rsc_dep10.exp -index a8f0bdf..727e20d 100644 ---- a/pengine/test10/rsc_dep10.exp -+++ b/pengine/test10/rsc_dep10.exp -@@ -50,7 +50,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -65,7 +65,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -86,10 +86,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc_dep2.exp b/pengine/test10/rsc_dep2.exp -index 9040091..0e861e6 100644 ---- a/pengine/test10/rsc_dep2.exp -+++ b/pengine/test10/rsc_dep2.exp -@@ -81,7 +81,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,7 +99,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -123,10 +123,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc_dep3.exp b/pengine/test10/rsc_dep3.exp -index 15bf782..4c78ffc 100644 ---- a/pengine/test10/rsc_dep3.exp -+++ b/pengine/test10/rsc_dep3.exp -@@ -63,7 +63,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,7 +78,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,10 +99,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc_dep4.exp b/pengine/test10/rsc_dep4.exp -index 6b4eb82..1ad9e3e 100644 ---- a/pengine/test10/rsc_dep4.exp -+++ b/pengine/test10/rsc_dep4.exp -@@ -110,7 +110,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -131,7 +131,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -152,10 +152,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc_dep5.exp b/pengine/test10/rsc_dep5.exp -index 64ba084..9119f77 100644 ---- a/pengine/test10/rsc_dep5.exp -+++ b/pengine/test10/rsc_dep5.exp -@@ -81,7 +81,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,7 +99,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -123,10 +123,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc_dep7.exp b/pengine/test10/rsc_dep7.exp -index 8da56fe..64f1140 100644 ---- a/pengine/test10/rsc_dep7.exp -+++ b/pengine/test10/rsc_dep7.exp -@@ -94,7 +94,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -136,10 +136,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rsc_dep8.exp b/pengine/test10/rsc_dep8.exp -index 9040091..0e861e6 100644 ---- a/pengine/test10/rsc_dep8.exp -+++ b/pengine/test10/rsc_dep8.exp -@@ -81,7 +81,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,7 +99,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -123,10 +123,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/simple11.exp b/pengine/test10/simple11.exp -index 315a7fd..f94ad53 100644 ---- a/pengine/test10/simple11.exp -+++ b/pengine/test10/simple11.exp -@@ -63,7 +63,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,7 +78,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,10 +99,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/simple12.exp b/pengine/test10/simple12.exp -index 2b0a9f8..fda3c50 100644 ---- a/pengine/test10/simple12.exp -+++ b/pengine/test10/simple12.exp -@@ -63,7 +63,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -78,7 +78,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -99,10 +99,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/simple2.exp b/pengine/test10/simple2.exp -index 99b81e7..b6e55a2 100644 ---- a/pengine/test10/simple2.exp -+++ b/pengine/test10/simple2.exp -@@ -32,7 +32,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -62,10 +62,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/simple3.exp b/pengine/test10/simple3.exp -index 6e4c8cb..2ff55a8 100644 ---- a/pengine/test10/simple3.exp -+++ b/pengine/test10/simple3.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/simple4.exp b/pengine/test10/simple4.exp -index 73c62e6..8702eab 100644 ---- a/pengine/test10/simple4.exp -+++ b/pengine/test10/simple4.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/simple6.exp b/pengine/test10/simple6.exp -index 79d230d..785c04c 100644 ---- a/pengine/test10/simple6.exp -+++ b/pengine/test10/simple6.exp -@@ -39,7 +39,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -57,7 +57,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/simple7.exp b/pengine/test10/simple7.exp -index ed0c1db..5cbf960 100644 ---- a/pengine/test10/simple7.exp -+++ b/pengine/test10/simple7.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="6" operation="do_shutdown" operation_key="do_shutdown" on_node="node1" on_node_uuid="node1"> -+ <crm_event id="6" operation="do_shutdown" operation_key="do_shutdown-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -22,7 +22,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/simple8.exp b/pengine/test10/simple8.exp -index 0344648..4e8f09b 100644 ---- a/pengine/test10/simple8.exp -+++ b/pengine/test10/simple8.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -58,7 +58,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -72,10 +72,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stonith-3.exp b/pengine/test10/stonith-3.exp -index 49e6e81..c4c1e32 100644 ---- a/pengine/test10/stonith-3.exp -+++ b/pengine/test10/stonith-3.exp -@@ -137,7 +137,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="rh5node2" on_node_uuid="fb62f5f4-015c-466a-8778-7b5c1c5639d6"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-rh5node2" on_node="rh5node2" on_node_uuid="fb62f5f4-015c-466a-8778-7b5c1c5639d6"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -158,7 +158,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="rh5node2" on_node_uuid="fb62f5f4-015c-466a-8778-7b5c1c5639d6"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-rh5node2" on_node="rh5node2" on_node_uuid="fb62f5f4-015c-466a-8778-7b5c1c5639d6"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stonith-4.exp b/pengine/test10/stonith-4.exp -index 2cfffc0..2be0a96 100644 ---- a/pengine/test10/stonith-4.exp -+++ b/pengine/test10/stonith-4.exp -@@ -79,13 +79,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-11" on_node_uuid="111"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-pcmk-11" on_node="pcmk-11" on_node_uuid="111"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-2" on_node_uuid="102"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-3" on_node_uuid="103"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-pcmk-3" on_node="pcmk-3" on_node_uuid="103"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stop-failure-no-fencing.exp b/pengine/test10/stop-failure-no-fencing.exp -index e9d94b8..52fe598 100644 ---- a/pengine/test10/stop-failure-no-fencing.exp -+++ b/pengine/test10/stop-failure-no-fencing.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-2" on_node_uuid="102"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-pcmk-2" on_node="pcmk-2" on_node_uuid="102"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stop-failure-with-fencing.exp b/pengine/test10/stop-failure-with-fencing.exp -index 335ac37..8a467b4 100644 ---- a/pengine/test10/stop-failure-with-fencing.exp -+++ b/pengine/test10/stop-failure-with-fencing.exp -@@ -72,7 +72,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-1" on_node_uuid="101"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="101"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -90,7 +90,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="pcmk-1" on_node_uuid="101"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-pcmk-1" on_node="pcmk-1" on_node_uuid="101"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stopped-monitor-00.exp b/pengine/test10/stopped-monitor-00.exp -index 2788366..c27f870 100644 ---- a/pengine/test10/stopped-monitor-00.exp -+++ b/pengine/test10/stopped-monitor-00.exp -@@ -58,7 +58,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -70,7 +70,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -88,10 +88,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stopped-monitor-01.exp b/pengine/test10/stopped-monitor-01.exp -index 04e44ee..5ca1496 100644 ---- a/pengine/test10/stopped-monitor-01.exp -+++ b/pengine/test10/stopped-monitor-01.exp -@@ -36,7 +36,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-02.exp b/pengine/test10/stopped-monitor-02.exp -index 236d8ec..a735b0f 100644 ---- a/pengine/test10/stopped-monitor-02.exp -+++ b/pengine/test10/stopped-monitor-02.exp -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -69,7 +69,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-03.exp b/pengine/test10/stopped-monitor-03.exp -index 9598ad7..92a5f57 100644 ---- a/pengine/test10/stopped-monitor-03.exp -+++ b/pengine/test10/stopped-monitor-03.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-04.exp b/pengine/test10/stopped-monitor-04.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/stopped-monitor-04.exp -+++ b/pengine/test10/stopped-monitor-04.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-05.exp b/pengine/test10/stopped-monitor-05.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/stopped-monitor-05.exp -+++ b/pengine/test10/stopped-monitor-05.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-06.exp b/pengine/test10/stopped-monitor-06.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/stopped-monitor-06.exp -+++ b/pengine/test10/stopped-monitor-06.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-07.exp b/pengine/test10/stopped-monitor-07.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/stopped-monitor-07.exp -+++ b/pengine/test10/stopped-monitor-07.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-08.exp b/pengine/test10/stopped-monitor-08.exp -index d1da812..a291c47 100644 ---- a/pengine/test10/stopped-monitor-08.exp -+++ b/pengine/test10/stopped-monitor-08.exp -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -69,7 +69,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-09.exp b/pengine/test10/stopped-monitor-09.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/stopped-monitor-09.exp -+++ b/pengine/test10/stopped-monitor-09.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-10.exp b/pengine/test10/stopped-monitor-10.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/stopped-monitor-10.exp -+++ b/pengine/test10/stopped-monitor-10.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-11.exp b/pengine/test10/stopped-monitor-11.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/stopped-monitor-11.exp -+++ b/pengine/test10/stopped-monitor-11.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-12.exp b/pengine/test10/stopped-monitor-12.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/stopped-monitor-12.exp -+++ b/pengine/test10/stopped-monitor-12.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-20.exp b/pengine/test10/stopped-monitor-20.exp -index 0d1c05e..d4a4076 100644 ---- a/pengine/test10/stopped-monitor-20.exp -+++ b/pengine/test10/stopped-monitor-20.exp -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -57,7 +57,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -75,10 +75,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stopped-monitor-21.exp b/pengine/test10/stopped-monitor-21.exp -index 39054cf..0a912fe 100644 ---- a/pengine/test10/stopped-monitor-21.exp -+++ b/pengine/test10/stopped-monitor-21.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-22.exp b/pengine/test10/stopped-monitor-22.exp -index e5dc1de..5a3476e 100644 ---- a/pengine/test10/stopped-monitor-22.exp -+++ b/pengine/test10/stopped-monitor-22.exp -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-23.exp b/pengine/test10/stopped-monitor-23.exp -index eb42407..75bfca2 100644 ---- a/pengine/test10/stopped-monitor-23.exp -+++ b/pengine/test10/stopped-monitor-23.exp -@@ -36,7 +36,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -44,7 +44,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-24.exp b/pengine/test10/stopped-monitor-24.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/stopped-monitor-24.exp -+++ b/pengine/test10/stopped-monitor-24.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-25.exp b/pengine/test10/stopped-monitor-25.exp -index 1cff5b2..cc62d3f 100644 ---- a/pengine/test10/stopped-monitor-25.exp -+++ b/pengine/test10/stopped-monitor-25.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -27,7 +27,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-26.exp b/pengine/test10/stopped-monitor-26.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/stopped-monitor-26.exp -+++ b/pengine/test10/stopped-monitor-26.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-27.exp b/pengine/test10/stopped-monitor-27.exp -index 1cff5b2..cc62d3f 100644 ---- a/pengine/test10/stopped-monitor-27.exp -+++ b/pengine/test10/stopped-monitor-27.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -27,7 +27,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/stopped-monitor-30.exp b/pengine/test10/stopped-monitor-30.exp -index 2dce65f..fb3c88f 100644 ---- a/pengine/test10/stopped-monitor-30.exp -+++ b/pengine/test10/stopped-monitor-30.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -35,7 +35,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -43,7 +43,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -57,13 +57,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stopped-monitor-31.exp b/pengine/test10/stopped-monitor-31.exp -index 394cbc7..e51c78d 100644 ---- a/pengine/test10/stopped-monitor-31.exp -+++ b/pengine/test10/stopped-monitor-31.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -35,7 +35,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -43,7 +43,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -57,13 +57,13 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node3" on_node_uuid="node3"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node3" on_node="node3" on_node_uuid="node3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealth2.exp b/pengine/test10/systemhealth2.exp -index 68b5078..95d8847 100644 ---- a/pengine/test10/systemhealth2.exp -+++ b/pengine/test10/systemhealth2.exp -@@ -122,7 +122,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -146,7 +146,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealth3.exp b/pengine/test10/systemhealth3.exp -index 68b5078..95d8847 100644 ---- a/pengine/test10/systemhealth3.exp -+++ b/pengine/test10/systemhealth3.exp -@@ -122,7 +122,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -146,7 +146,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthm2.exp b/pengine/test10/systemhealthm2.exp -index 68b5078..95d8847 100644 ---- a/pengine/test10/systemhealthm2.exp -+++ b/pengine/test10/systemhealthm2.exp -@@ -122,7 +122,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -146,7 +146,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthm3.exp b/pengine/test10/systemhealthm3.exp -index 7246b5b..4100342 100644 ---- a/pengine/test10/systemhealthm3.exp -+++ b/pengine/test10/systemhealthm3.exp -@@ -48,7 +48,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -72,7 +72,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthn2.exp b/pengine/test10/systemhealthn2.exp -index 68b5078..95d8847 100644 ---- a/pengine/test10/systemhealthn2.exp -+++ b/pengine/test10/systemhealthn2.exp -@@ -122,7 +122,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -146,7 +146,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthn3.exp b/pengine/test10/systemhealthn3.exp -index 68b5078..95d8847 100644 ---- a/pengine/test10/systemhealthn3.exp -+++ b/pengine/test10/systemhealthn3.exp -@@ -122,7 +122,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -146,7 +146,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealtho2.exp b/pengine/test10/systemhealtho2.exp -index 7246b5b..4100342 100644 ---- a/pengine/test10/systemhealtho2.exp -+++ b/pengine/test10/systemhealtho2.exp -@@ -48,7 +48,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -72,7 +72,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealtho3.exp b/pengine/test10/systemhealtho3.exp -index 7246b5b..4100342 100644 ---- a/pengine/test10/systemhealtho3.exp -+++ b/pengine/test10/systemhealtho3.exp -@@ -48,7 +48,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -72,7 +72,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthp2.exp b/pengine/test10/systemhealthp2.exp -index e3ba25d..77729c4 100644 ---- a/pengine/test10/systemhealthp2.exp -+++ b/pengine/test10/systemhealthp2.exp -@@ -106,7 +106,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -130,7 +130,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthp3.exp b/pengine/test10/systemhealthp3.exp -index 7246b5b..4100342 100644 ---- a/pengine/test10/systemhealthp3.exp -+++ b/pengine/test10/systemhealthp3.exp -@@ -48,7 +48,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -72,7 +72,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/target-0.exp b/pengine/test10/target-0.exp -index 1233c09..825d9ae 100644 ---- a/pengine/test10/target-0.exp -+++ b/pengine/test10/target-0.exp -@@ -136,7 +136,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,7 +157,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="17" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -178,7 +178,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -196,7 +196,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -223,16 +223,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="17" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/target-1.exp b/pengine/test10/target-1.exp -index 15d6a54..06ac73d 100644 ---- a/pengine/test10/target-1.exp -+++ b/pengine/test10/target-1.exp -@@ -122,7 +122,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -140,7 +140,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -176,7 +176,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -200,16 +200,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="15" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="15" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="20" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/target-2.exp b/pengine/test10/target-2.exp -index 94e1e86..a723118 100644 ---- a/pengine/test10/target-2.exp -+++ b/pengine/test10/target-2.exp -@@ -149,7 +149,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -170,7 +170,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="17" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -191,7 +191,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -209,7 +209,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -236,16 +236,16 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - <trigger> -- <rsc_op id="13" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - <trigger> -- <rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="17" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - <trigger> -- <rsc_op id="22" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> -+ <rsc_op id="22" operation="probe_complete" operation_key="probe_complete-c001n08" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-1.exp b/pengine/test10/template-1.exp -index a65f3c5..0fef2b0 100644 ---- a/pengine/test10/template-1.exp -+++ b/pengine/test10/template-1.exp -@@ -66,7 +66,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -81,7 +81,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -102,10 +102,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-2.exp b/pengine/test10/template-2.exp -index a206d20..0fd08cb 100644 ---- a/pengine/test10/template-2.exp -+++ b/pengine/test10/template-2.exp -@@ -66,7 +66,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -81,7 +81,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -102,10 +102,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-3.exp b/pengine/test10/template-3.exp -index f76a695..6b65404 100644 ---- a/pengine/test10/template-3.exp -+++ b/pengine/test10/template-3.exp -@@ -121,7 +121,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -136,7 +136,7 @@ - </synapse> - <synapse id="11" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -157,10 +157,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-clone-group.exp b/pengine/test10/template-clone-group.exp -index 7d06925..2ec6921 100644 ---- a/pengine/test10/template-clone-group.exp -+++ b/pengine/test10/template-clone-group.exp -@@ -193,7 +193,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -208,7 +208,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -229,10 +229,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-clone-primitive.exp b/pengine/test10/template-clone-primitive.exp -index b631908..151edf6 100644 ---- a/pengine/test10/template-clone-primitive.exp -+++ b/pengine/test10/template-clone-primitive.exp -@@ -77,7 +77,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -89,7 +89,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -107,10 +107,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-coloc-1.exp b/pengine/test10/template-coloc-1.exp -index 871e4e1..96fce66 100644 ---- a/pengine/test10/template-coloc-1.exp -+++ b/pengine/test10/template-coloc-1.exp -@@ -125,7 +125,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -146,7 +146,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -173,10 +173,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-coloc-2.exp b/pengine/test10/template-coloc-2.exp -index 871e4e1..96fce66 100644 ---- a/pengine/test10/template-coloc-2.exp -+++ b/pengine/test10/template-coloc-2.exp -@@ -125,7 +125,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -146,7 +146,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -173,10 +173,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-coloc-3.exp b/pengine/test10/template-coloc-3.exp -index 37e359b..74e9f90 100644 ---- a/pengine/test10/template-coloc-3.exp -+++ b/pengine/test10/template-coloc-3.exp -@@ -187,7 +187,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -214,7 +214,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -247,10 +247,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-order-1.exp b/pengine/test10/template-order-1.exp -index 82c79fa..dc9ecd9 100644 ---- a/pengine/test10/template-order-1.exp -+++ b/pengine/test10/template-order-1.exp -@@ -134,7 +134,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -155,7 +155,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -182,10 +182,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-order-2.exp b/pengine/test10/template-order-2.exp -index 261ae44..bbf7d9c 100644 ---- a/pengine/test10/template-order-2.exp -+++ b/pengine/test10/template-order-2.exp -@@ -134,7 +134,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -155,7 +155,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -182,10 +182,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-order-3.exp b/pengine/test10/template-order-3.exp -index 7e2e90f..17eab13 100644 ---- a/pengine/test10/template-order-3.exp -+++ b/pengine/test10/template-order-3.exp -@@ -214,7 +214,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -241,7 +241,7 @@ - </synapse> - <synapse id="19" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -274,10 +274,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="10" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-rsc-sets-1.exp b/pengine/test10/template-rsc-sets-1.exp -index 0e0f6bd..5166d93 100644 ---- a/pengine/test10/template-rsc-sets-1.exp -+++ b/pengine/test10/template-rsc-sets-1.exp -@@ -168,7 +168,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -192,7 +192,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -222,10 +222,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-rsc-sets-2.exp b/pengine/test10/template-rsc-sets-2.exp -index 6e08aad..43c138b 100644 ---- a/pengine/test10/template-rsc-sets-2.exp -+++ b/pengine/test10/template-rsc-sets-2.exp -@@ -174,7 +174,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -198,7 +198,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -228,10 +228,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-rsc-sets-3.exp b/pengine/test10/template-rsc-sets-3.exp -index 0e0f6bd..5166d93 100644 ---- a/pengine/test10/template-rsc-sets-3.exp -+++ b/pengine/test10/template-rsc-sets-3.exp -@@ -168,7 +168,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -192,7 +192,7 @@ - </synapse> - <synapse id="16" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -222,10 +222,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-rsc-sets-4.exp b/pengine/test10/template-rsc-sets-4.exp -index f97def2..a00ac64 100644 ---- a/pengine/test10/template-rsc-sets-4.exp -+++ b/pengine/test10/template-rsc-sets-4.exp -@@ -55,7 +55,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -73,7 +73,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -97,10 +97,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/template-ticket.exp b/pengine/test10/template-ticket.exp -index f97def2..a00ac64 100644 ---- a/pengine/test10/template-ticket.exp -+++ b/pengine/test10/template-ticket.exp -@@ -55,7 +55,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -73,7 +73,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -97,10 +97,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-clone-1.exp b/pengine/test10/ticket-clone-1.exp -index e3a5cb8..e127ef8 100644 ---- a/pengine/test10/ticket-clone-1.exp -+++ b/pengine/test10/ticket-clone-1.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-clone-10.exp b/pengine/test10/ticket-clone-10.exp -index e3a5cb8..e127ef8 100644 ---- a/pengine/test10/ticket-clone-10.exp -+++ b/pengine/test10/ticket-clone-10.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-clone-11.exp b/pengine/test10/ticket-clone-11.exp -index 9fc69df..cc7e89a 100644 ---- a/pengine/test10/ticket-clone-11.exp -+++ b/pengine/test10/ticket-clone-11.exp -@@ -79,7 +79,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -87,7 +87,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-12.exp b/pengine/test10/ticket-clone-12.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-clone-12.exp -+++ b/pengine/test10/ticket-clone-12.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-13.exp b/pengine/test10/ticket-clone-13.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-clone-13.exp -+++ b/pengine/test10/ticket-clone-13.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-14.exp b/pengine/test10/ticket-clone-14.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-14.exp -+++ b/pengine/test10/ticket-clone-14.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-15.exp b/pengine/test10/ticket-clone-15.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-15.exp -+++ b/pengine/test10/ticket-clone-15.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-16.exp b/pengine/test10/ticket-clone-16.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-clone-16.exp -+++ b/pengine/test10/ticket-clone-16.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-17.exp b/pengine/test10/ticket-clone-17.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-17.exp -+++ b/pengine/test10/ticket-clone-17.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-18.exp b/pengine/test10/ticket-clone-18.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-18.exp -+++ b/pengine/test10/ticket-clone-18.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-19.exp b/pengine/test10/ticket-clone-19.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-clone-19.exp -+++ b/pengine/test10/ticket-clone-19.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-2.exp b/pengine/test10/ticket-clone-2.exp -index 9fc69df..cc7e89a 100644 ---- a/pengine/test10/ticket-clone-2.exp -+++ b/pengine/test10/ticket-clone-2.exp -@@ -79,7 +79,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -87,7 +87,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-20.exp b/pengine/test10/ticket-clone-20.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-20.exp -+++ b/pengine/test10/ticket-clone-20.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-22.exp b/pengine/test10/ticket-clone-22.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-clone-22.exp -+++ b/pengine/test10/ticket-clone-22.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-23.exp b/pengine/test10/ticket-clone-23.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-23.exp -+++ b/pengine/test10/ticket-clone-23.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-24.exp b/pengine/test10/ticket-clone-24.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-clone-24.exp -+++ b/pengine/test10/ticket-clone-24.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-3.exp b/pengine/test10/ticket-clone-3.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-3.exp -+++ b/pengine/test10/ticket-clone-3.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-4.exp b/pengine/test10/ticket-clone-4.exp -index e3a5cb8..e127ef8 100644 ---- a/pengine/test10/ticket-clone-4.exp -+++ b/pengine/test10/ticket-clone-4.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-clone-5.exp b/pengine/test10/ticket-clone-5.exp -index 9fc69df..cc7e89a 100644 ---- a/pengine/test10/ticket-clone-5.exp -+++ b/pengine/test10/ticket-clone-5.exp -@@ -79,7 +79,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -87,7 +87,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-6.exp b/pengine/test10/ticket-clone-6.exp -index f9dffd7..cd56b44 100644 ---- a/pengine/test10/ticket-clone-6.exp -+++ b/pengine/test10/ticket-clone-6.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -61,7 +61,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-clone-7.exp b/pengine/test10/ticket-clone-7.exp -index e3a5cb8..e127ef8 100644 ---- a/pengine/test10/ticket-clone-7.exp -+++ b/pengine/test10/ticket-clone-7.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-clone-8.exp b/pengine/test10/ticket-clone-8.exp -index 9fc69df..cc7e89a 100644 ---- a/pengine/test10/ticket-clone-8.exp -+++ b/pengine/test10/ticket-clone-8.exp -@@ -79,7 +79,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -87,7 +87,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-1.exp b/pengine/test10/ticket-group-1.exp -index 328d7a7..15dd4eb 100644 ---- a/pengine/test10/ticket-group-1.exp -+++ b/pengine/test10/ticket-group-1.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -73,10 +73,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-group-10.exp b/pengine/test10/ticket-group-10.exp -index 328d7a7..15dd4eb 100644 ---- a/pengine/test10/ticket-group-10.exp -+++ b/pengine/test10/ticket-group-10.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -73,10 +73,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-group-11.exp b/pengine/test10/ticket-group-11.exp -index e1b6cc1..7048e97 100644 ---- a/pengine/test10/ticket-group-11.exp -+++ b/pengine/test10/ticket-group-11.exp -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -90,7 +90,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-12.exp b/pengine/test10/ticket-group-12.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-group-12.exp -+++ b/pengine/test10/ticket-group-12.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-13.exp b/pengine/test10/ticket-group-13.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-group-13.exp -+++ b/pengine/test10/ticket-group-13.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-14.exp b/pengine/test10/ticket-group-14.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-14.exp -+++ b/pengine/test10/ticket-group-14.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-15.exp b/pengine/test10/ticket-group-15.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-15.exp -+++ b/pengine/test10/ticket-group-15.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-16.exp b/pengine/test10/ticket-group-16.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-group-16.exp -+++ b/pengine/test10/ticket-group-16.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-17.exp b/pengine/test10/ticket-group-17.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-17.exp -+++ b/pengine/test10/ticket-group-17.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-18.exp b/pengine/test10/ticket-group-18.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-18.exp -+++ b/pengine/test10/ticket-group-18.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-19.exp b/pengine/test10/ticket-group-19.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-group-19.exp -+++ b/pengine/test10/ticket-group-19.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-2.exp b/pengine/test10/ticket-group-2.exp -index e1b6cc1..7048e97 100644 ---- a/pengine/test10/ticket-group-2.exp -+++ b/pengine/test10/ticket-group-2.exp -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -90,7 +90,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-20.exp b/pengine/test10/ticket-group-20.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-20.exp -+++ b/pengine/test10/ticket-group-20.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-21.exp b/pengine/test10/ticket-group-21.exp -index d85b683..c7b5b72 100644 ---- a/pengine/test10/ticket-group-21.exp -+++ b/pengine/test10/ticket-group-21.exp -@@ -84,7 +84,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-22.exp b/pengine/test10/ticket-group-22.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-group-22.exp -+++ b/pengine/test10/ticket-group-22.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-23.exp b/pengine/test10/ticket-group-23.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-23.exp -+++ b/pengine/test10/ticket-group-23.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-24.exp b/pengine/test10/ticket-group-24.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-group-24.exp -+++ b/pengine/test10/ticket-group-24.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-3.exp b/pengine/test10/ticket-group-3.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-3.exp -+++ b/pengine/test10/ticket-group-3.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-4.exp b/pengine/test10/ticket-group-4.exp -index 328d7a7..15dd4eb 100644 ---- a/pengine/test10/ticket-group-4.exp -+++ b/pengine/test10/ticket-group-4.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -73,10 +73,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-group-5.exp b/pengine/test10/ticket-group-5.exp -index e1b6cc1..7048e97 100644 ---- a/pengine/test10/ticket-group-5.exp -+++ b/pengine/test10/ticket-group-5.exp -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -90,7 +90,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-6.exp b/pengine/test10/ticket-group-6.exp -index 250b6ee..b3b1182 100644 ---- a/pengine/test10/ticket-group-6.exp -+++ b/pengine/test10/ticket-group-6.exp -@@ -56,7 +56,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-7.exp b/pengine/test10/ticket-group-7.exp -index 328d7a7..15dd4eb 100644 ---- a/pengine/test10/ticket-group-7.exp -+++ b/pengine/test10/ticket-group-7.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -73,10 +73,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-group-8.exp b/pengine/test10/ticket-group-8.exp -index e1b6cc1..7048e97 100644 ---- a/pengine/test10/ticket-group-8.exp -+++ b/pengine/test10/ticket-group-8.exp -@@ -82,7 +82,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -90,7 +90,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-group-9.exp b/pengine/test10/ticket-group-9.exp -index d85b683..c7b5b72 100644 ---- a/pengine/test10/ticket-group-9.exp -+++ b/pengine/test10/ticket-group-9.exp -@@ -84,7 +84,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-1.exp b/pengine/test10/ticket-master-1.exp -index 3a93a0e..55abf78 100644 ---- a/pengine/test10/ticket-master-1.exp -+++ b/pengine/test10/ticket-master-1.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-master-10.exp b/pengine/test10/ticket-master-10.exp -index 8f76f85..44cb6a0 100644 ---- a/pengine/test10/ticket-master-10.exp -+++ b/pengine/test10/ticket-master-10.exp -@@ -77,7 +77,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -89,7 +89,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -107,10 +107,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-master-11.exp b/pengine/test10/ticket-master-11.exp -index d160526..c0299ae 100644 ---- a/pengine/test10/ticket-master-11.exp -+++ b/pengine/test10/ticket-master-11.exp -@@ -34,7 +34,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -42,7 +42,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-12.exp b/pengine/test10/ticket-master-12.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-master-12.exp -+++ b/pengine/test10/ticket-master-12.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-13.exp b/pengine/test10/ticket-master-13.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-master-13.exp -+++ b/pengine/test10/ticket-master-13.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-14.exp b/pengine/test10/ticket-master-14.exp -index 256060e..2e1faee 100644 ---- a/pengine/test10/ticket-master-14.exp -+++ b/pengine/test10/ticket-master-14.exp -@@ -96,7 +96,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -104,7 +104,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-15.exp b/pengine/test10/ticket-master-15.exp -index 256060e..2e1faee 100644 ---- a/pengine/test10/ticket-master-15.exp -+++ b/pengine/test10/ticket-master-15.exp -@@ -96,7 +96,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -104,7 +104,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-16.exp b/pengine/test10/ticket-master-16.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-master-16.exp -+++ b/pengine/test10/ticket-master-16.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-17.exp b/pengine/test10/ticket-master-17.exp -index b1b51b2..47b3cd7 100644 ---- a/pengine/test10/ticket-master-17.exp -+++ b/pengine/test10/ticket-master-17.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-18.exp b/pengine/test10/ticket-master-18.exp -index b1b51b2..47b3cd7 100644 ---- a/pengine/test10/ticket-master-18.exp -+++ b/pengine/test10/ticket-master-18.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-19.exp b/pengine/test10/ticket-master-19.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-master-19.exp -+++ b/pengine/test10/ticket-master-19.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-2.exp b/pengine/test10/ticket-master-2.exp -index 967072c..c995d00 100644 ---- a/pengine/test10/ticket-master-2.exp -+++ b/pengine/test10/ticket-master-2.exp -@@ -93,7 +93,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -101,7 +101,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-20.exp b/pengine/test10/ticket-master-20.exp -index b1b51b2..47b3cd7 100644 ---- a/pengine/test10/ticket-master-20.exp -+++ b/pengine/test10/ticket-master-20.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-21.exp b/pengine/test10/ticket-master-21.exp -index 1ed731c..5b21e47 100644 ---- a/pengine/test10/ticket-master-21.exp -+++ b/pengine/test10/ticket-master-21.exp -@@ -135,7 +135,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-22.exp b/pengine/test10/ticket-master-22.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-master-22.exp -+++ b/pengine/test10/ticket-master-22.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-23.exp b/pengine/test10/ticket-master-23.exp -index b1b51b2..47b3cd7 100644 ---- a/pengine/test10/ticket-master-23.exp -+++ b/pengine/test10/ticket-master-23.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-24.exp b/pengine/test10/ticket-master-24.exp -index 6d57001..641b47d 100644 ---- a/pengine/test10/ticket-master-24.exp -+++ b/pengine/test10/ticket-master-24.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-3.exp b/pengine/test10/ticket-master-3.exp -index 256060e..2e1faee 100644 ---- a/pengine/test10/ticket-master-3.exp -+++ b/pengine/test10/ticket-master-3.exp -@@ -96,7 +96,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -104,7 +104,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-4.exp b/pengine/test10/ticket-master-4.exp -index 8f76f85..44cb6a0 100644 ---- a/pengine/test10/ticket-master-4.exp -+++ b/pengine/test10/ticket-master-4.exp -@@ -77,7 +77,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -89,7 +89,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -107,10 +107,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-master-5.exp b/pengine/test10/ticket-master-5.exp -index d160526..c0299ae 100644 ---- a/pengine/test10/ticket-master-5.exp -+++ b/pengine/test10/ticket-master-5.exp -@@ -34,7 +34,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -42,7 +42,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-6.exp b/pengine/test10/ticket-master-6.exp -index b1b51b2..47b3cd7 100644 ---- a/pengine/test10/ticket-master-6.exp -+++ b/pengine/test10/ticket-master-6.exp -@@ -37,7 +37,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -45,7 +45,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-7.exp b/pengine/test10/ticket-master-7.exp -index 8f76f85..44cb6a0 100644 ---- a/pengine/test10/ticket-master-7.exp -+++ b/pengine/test10/ticket-master-7.exp -@@ -77,7 +77,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -89,7 +89,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -107,10 +107,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-master-8.exp b/pengine/test10/ticket-master-8.exp -index d160526..c0299ae 100644 ---- a/pengine/test10/ticket-master-8.exp -+++ b/pengine/test10/ticket-master-8.exp -@@ -34,7 +34,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -42,7 +42,7 @@ - </synapse> - <synapse id="4" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-master-9.exp b/pengine/test10/ticket-master-9.exp -index 1ed731c..5b21e47 100644 ---- a/pengine/test10/ticket-master-9.exp -+++ b/pengine/test10/ticket-master-9.exp -@@ -135,7 +135,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-1.exp b/pengine/test10/ticket-primitive-1.exp -index b532698..88a1075 100644 ---- a/pengine/test10/ticket-primitive-1.exp -+++ b/pengine/test10/ticket-primitive-1.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-primitive-10.exp b/pengine/test10/ticket-primitive-10.exp -index b532698..88a1075 100644 ---- a/pengine/test10/ticket-primitive-10.exp -+++ b/pengine/test10/ticket-primitive-10.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-primitive-11.exp b/pengine/test10/ticket-primitive-11.exp -index 2d13079..ed47627 100644 ---- a/pengine/test10/ticket-primitive-11.exp -+++ b/pengine/test10/ticket-primitive-11.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-12.exp b/pengine/test10/ticket-primitive-12.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/ticket-primitive-12.exp -+++ b/pengine/test10/ticket-primitive-12.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-13.exp b/pengine/test10/ticket-primitive-13.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-primitive-13.exp -+++ b/pengine/test10/ticket-primitive-13.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-14.exp b/pengine/test10/ticket-primitive-14.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-14.exp -+++ b/pengine/test10/ticket-primitive-14.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-15.exp b/pengine/test10/ticket-primitive-15.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-15.exp -+++ b/pengine/test10/ticket-primitive-15.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-16.exp b/pengine/test10/ticket-primitive-16.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-primitive-16.exp -+++ b/pengine/test10/ticket-primitive-16.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-17.exp b/pengine/test10/ticket-primitive-17.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-17.exp -+++ b/pengine/test10/ticket-primitive-17.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-18.exp b/pengine/test10/ticket-primitive-18.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-18.exp -+++ b/pengine/test10/ticket-primitive-18.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-19.exp b/pengine/test10/ticket-primitive-19.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-primitive-19.exp -+++ b/pengine/test10/ticket-primitive-19.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-2.exp b/pengine/test10/ticket-primitive-2.exp -index 2d13079..ed47627 100644 ---- a/pengine/test10/ticket-primitive-2.exp -+++ b/pengine/test10/ticket-primitive-2.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-20.exp b/pengine/test10/ticket-primitive-20.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-20.exp -+++ b/pengine/test10/ticket-primitive-20.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-21.exp b/pengine/test10/ticket-primitive-21.exp -index c88cf38..72fcacd 100644 ---- a/pengine/test10/ticket-primitive-21.exp -+++ b/pengine/test10/ticket-primitive-21.exp -@@ -33,7 +33,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-22.exp b/pengine/test10/ticket-primitive-22.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-primitive-22.exp -+++ b/pengine/test10/ticket-primitive-22.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-23.exp b/pengine/test10/ticket-primitive-23.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-23.exp -+++ b/pengine/test10/ticket-primitive-23.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-24.exp b/pengine/test10/ticket-primitive-24.exp -index ba6632b..0f663b1 100644 ---- a/pengine/test10/ticket-primitive-24.exp -+++ b/pengine/test10/ticket-primitive-24.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-3.exp b/pengine/test10/ticket-primitive-3.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-3.exp -+++ b/pengine/test10/ticket-primitive-3.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-4.exp b/pengine/test10/ticket-primitive-4.exp -index b532698..88a1075 100644 ---- a/pengine/test10/ticket-primitive-4.exp -+++ b/pengine/test10/ticket-primitive-4.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-primitive-5.exp b/pengine/test10/ticket-primitive-5.exp -index 2d13079..ed47627 100644 ---- a/pengine/test10/ticket-primitive-5.exp -+++ b/pengine/test10/ticket-primitive-5.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-6.exp b/pengine/test10/ticket-primitive-6.exp -index 3cb5f90..12753e9 100644 ---- a/pengine/test10/ticket-primitive-6.exp -+++ b/pengine/test10/ticket-primitive-6.exp -@@ -10,7 +10,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -18,7 +18,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-7.exp b/pengine/test10/ticket-primitive-7.exp -index b532698..88a1075 100644 ---- a/pengine/test10/ticket-primitive-7.exp -+++ b/pengine/test10/ticket-primitive-7.exp -@@ -19,7 +19,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -49,10 +49,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-primitive-8.exp b/pengine/test10/ticket-primitive-8.exp -index 2d13079..ed47627 100644 ---- a/pengine/test10/ticket-primitive-8.exp -+++ b/pengine/test10/ticket-primitive-8.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-primitive-9.exp b/pengine/test10/ticket-primitive-9.exp -index c88cf38..72fcacd 100644 ---- a/pengine/test10/ticket-primitive-9.exp -+++ b/pengine/test10/ticket-primitive-9.exp -@@ -33,7 +33,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-1.exp b/pengine/test10/ticket-rsc-sets-1.exp -index 20800e2..869b1e3 100644 ---- a/pengine/test10/ticket-rsc-sets-1.exp -+++ b/pengine/test10/ticket-rsc-sets-1.exp -@@ -149,7 +149,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -173,7 +173,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -203,10 +203,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-rsc-sets-10.exp b/pengine/test10/ticket-rsc-sets-10.exp -index 35e5a99..36b6cc9 100644 ---- a/pengine/test10/ticket-rsc-sets-10.exp -+++ b/pengine/test10/ticket-rsc-sets-10.exp -@@ -153,7 +153,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-11.exp b/pengine/test10/ticket-rsc-sets-11.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-rsc-sets-11.exp -+++ b/pengine/test10/ticket-rsc-sets-11.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-12.exp b/pengine/test10/ticket-rsc-sets-12.exp -index 2712003..bc5c4d4 100644 ---- a/pengine/test10/ticket-rsc-sets-12.exp -+++ b/pengine/test10/ticket-rsc-sets-12.exp -@@ -65,7 +65,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -73,7 +73,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-13.exp b/pengine/test10/ticket-rsc-sets-13.exp -index 35e5a99..36b6cc9 100644 ---- a/pengine/test10/ticket-rsc-sets-13.exp -+++ b/pengine/test10/ticket-rsc-sets-13.exp -@@ -153,7 +153,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-14.exp b/pengine/test10/ticket-rsc-sets-14.exp -index 35e5a99..36b6cc9 100644 ---- a/pengine/test10/ticket-rsc-sets-14.exp -+++ b/pengine/test10/ticket-rsc-sets-14.exp -@@ -153,7 +153,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-2.exp b/pengine/test10/ticket-rsc-sets-2.exp -index 5618565..0594676 100644 ---- a/pengine/test10/ticket-rsc-sets-2.exp -+++ b/pengine/test10/ticket-rsc-sets-2.exp -@@ -215,7 +215,7 @@ - </synapse> - <synapse id="17" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -223,7 +223,7 @@ - </synapse> - <synapse id="18" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-3.exp b/pengine/test10/ticket-rsc-sets-3.exp -index 35e5a99..36b6cc9 100644 ---- a/pengine/test10/ticket-rsc-sets-3.exp -+++ b/pengine/test10/ticket-rsc-sets-3.exp -@@ -153,7 +153,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-4.exp b/pengine/test10/ticket-rsc-sets-4.exp -index 20800e2..869b1e3 100644 ---- a/pengine/test10/ticket-rsc-sets-4.exp -+++ b/pengine/test10/ticket-rsc-sets-4.exp -@@ -149,7 +149,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -173,7 +173,7 @@ - </synapse> - <synapse id="15" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -203,10 +203,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"/> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-rsc-sets-5.exp b/pengine/test10/ticket-rsc-sets-5.exp -index 9e20a6b..206959f 100644 ---- a/pengine/test10/ticket-rsc-sets-5.exp -+++ b/pengine/test10/ticket-rsc-sets-5.exp -@@ -104,7 +104,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-6.exp b/pengine/test10/ticket-rsc-sets-6.exp -index 9bd2d3a..91ce17e 100644 ---- a/pengine/test10/ticket-rsc-sets-6.exp -+++ b/pengine/test10/ticket-rsc-sets-6.exp -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="9" priority="1000000"> - <action_set> -- <rsc_op id="7" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -120,7 +120,7 @@ - </synapse> - <synapse id="10" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-7.exp b/pengine/test10/ticket-rsc-sets-7.exp -index 35e5a99..36b6cc9 100644 ---- a/pengine/test10/ticket-rsc-sets-7.exp -+++ b/pengine/test10/ticket-rsc-sets-7.exp -@@ -153,7 +153,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-8.exp b/pengine/test10/ticket-rsc-sets-8.exp -index ccd7539..cf75a01 100644 ---- a/pengine/test10/ticket-rsc-sets-8.exp -+++ b/pengine/test10/ticket-rsc-sets-8.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/ticket-rsc-sets-9.exp b/pengine/test10/ticket-rsc-sets-9.exp -index 35e5a99..36b6cc9 100644 ---- a/pengine/test10/ticket-rsc-sets-9.exp -+++ b/pengine/test10/ticket-rsc-sets-9.exp -@@ -153,7 +153,7 @@ - </synapse> - <synapse id="12" priority="1000000"> - <action_set> -- <rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -161,7 +161,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/unmanaged-master.exp b/pengine/test10/unmanaged-master.exp -index 9e0f188..58311fd 100644 ---- a/pengine/test10/unmanaged-master.exp -+++ b/pengine/test10/unmanaged-master.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="1" batch-limit="10" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="92" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-2" on_node_uuid="pcmk-2"> -+ <crm_event id="92" operation="do_shutdown" operation_key="do_shutdown-pcmk-2" on_node="pcmk-2" on_node_uuid="pcmk-2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -9,13 +9,13 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="91" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-1" on_node_uuid="pcmk-1"> -+ <crm_event id="91" operation="do_shutdown" operation_key="do_shutdown-pcmk-1" on_node="pcmk-1" on_node_uuid="pcmk-1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="92" operation="do_shutdown" operation_key="do_shutdown" on_node="pcmk-2" on_node_uuid="pcmk-2"/> -+ <crm_event id="92" operation="do_shutdown" operation_key="do_shutdown-pcmk-2" on_node="pcmk-2" on_node_uuid="pcmk-2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/unmanaged-stop-1.exp b/pengine/test10/unmanaged-stop-1.exp -index 7845919..ed7dcfb 100644 ---- a/pengine/test10/unmanaged-stop-1.exp -+++ b/pengine/test10/unmanaged-stop-1.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="yingying.site" on_node_uuid="yingying.site"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-yingying.site" on_node="yingying.site" on_node_uuid="yingying.site"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/unmanaged-stop-2.exp b/pengine/test10/unmanaged-stop-2.exp -index 7845919..ed7dcfb 100644 ---- a/pengine/test10/unmanaged-stop-2.exp -+++ b/pengine/test10/unmanaged-stop-2.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="yingying.site" on_node_uuid="yingying.site"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-yingying.site" on_node="yingying.site" on_node_uuid="yingying.site"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/unmanaged-stop-3.exp b/pengine/test10/unmanaged-stop-3.exp -index 2cb2435..a1db8b0 100644 ---- a/pengine/test10/unmanaged-stop-3.exp -+++ b/pengine/test10/unmanaged-stop-3.exp -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="yingying.site" on_node_uuid="yingying.site"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-yingying.site" on_node="yingying.site" on_node_uuid="yingying.site"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/unmanaged-stop-4.exp b/pengine/test10/unmanaged-stop-4.exp -index 2cb2435..a1db8b0 100644 ---- a/pengine/test10/unmanaged-stop-4.exp -+++ b/pengine/test10/unmanaged-stop-4.exp -@@ -9,7 +9,7 @@ - </synapse> - <synapse id="1" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="yingying.site" on_node_uuid="yingying.site"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-yingying.site" on_node="yingying.site" on_node_uuid="yingying.site"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/unrunnable-1.exp b/pengine/test10/unrunnable-1.exp -index 62a6e29..35b17ee 100644 ---- a/pengine/test10/unrunnable-1.exp -+++ b/pengine/test10/unrunnable-1.exp -@@ -120,7 +120,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -168,7 +168,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="4" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> -+ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-c001n03" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/use-after-free-merge.exp b/pengine/test10/use-after-free-merge.exp -index e7052b1..178b84e 100644 ---- a/pengine/test10/use-after-free-merge.exp -+++ b/pengine/test10/use-after-free-merge.exp -@@ -144,7 +144,7 @@ - </synapse> - <synapse id="13" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="hex-14" on_node_uuid="hex-14"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-hex-14" on_node="hex-14" on_node_uuid="hex-14"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -165,7 +165,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hex-13" on_node_uuid="hex-13"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hex-13" on_node="hex-13" on_node_uuid="hex-13"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -192,10 +192,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="hex-13" on_node_uuid="hex-13"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-hex-13" on_node="hex-13" on_node_uuid="hex-13"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="hex-14" on_node_uuid="hex-14"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-hex-14" on_node="hex-14" on_node_uuid="hex-14"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/utilization-order1.exp b/pengine/test10/utilization-order1.exp -index c5e551d..40ba326 100644 ---- a/pengine/test10/utilization-order1.exp -+++ b/pengine/test10/utilization-order1.exp -@@ -23,7 +23,7 @@ - </synapse> - <synapse id="2" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -31,7 +31,7 @@ - </synapse> - <synapse id="3" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/utilization-order2.exp b/pengine/test10/utilization-order2.exp -index f62a8ef..dfa3f60 100644 ---- a/pengine/test10/utilization-order2.exp -+++ b/pengine/test10/utilization-order2.exp -@@ -84,7 +84,7 @@ - </synapse> - <synapse id="7" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -92,7 +92,7 @@ - </synapse> - <synapse id="8" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/utilization-order3.exp b/pengine/test10/utilization-order3.exp -index 570a39e..9075052 100644 ---- a/pengine/test10/utilization-order3.exp -+++ b/pengine/test10/utilization-order3.exp -@@ -64,7 +64,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="6" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="node2"> -+ <rsc_op id="6" operation="probe_complete" operation_key="probe_complete-node2" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -72,7 +72,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="node1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-node1" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -diff --git a/pengine/test10/utilization.exp b/pengine/test10/utilization.exp -index ed08a2b..f6c1b69 100644 ---- a/pengine/test10/utilization.exp -+++ b/pengine/test10/utilization.exp -@@ -53,7 +53,7 @@ - </synapse> - <synapse id="5" priority="1000000"> - <action_set> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="host2" on_node_uuid="host2"> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-host2" on_node="host2" on_node_uuid="host2"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -68,7 +68,7 @@ - </synapse> - <synapse id="6" priority="1000000"> - <action_set> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="host1" on_node_uuid="host1"> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-host1" on_node="host1" on_node_uuid="host1"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -89,10 +89,10 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="5" operation="probe_complete" operation_key="probe_complete" on_node="host1" on_node_uuid="host1"/> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-host1" on_node="host1" on_node_uuid="host1"/> - </trigger> - <trigger> -- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete" on_node="host2" on_node_uuid="host2"/> -+ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-host2" on_node="host2" on_node_uuid="host2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/whitebox-fail3.exp b/pengine/test10/whitebox-fail3.exp -index c5a6474..739d71b 100644 ---- a/pengine/test10/whitebox-fail3.exp -+++ b/pengine/test10/whitebox-fail3.exp -@@ -187,7 +187,7 @@ - </synapse> - <synapse id="14" priority="1000000"> - <action_set> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="dvossel-laptop2" on_node_uuid="24815808"> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-dvossel-laptop2" on_node="dvossel-laptop2" on_node_uuid="24815808"> - <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> -@@ -205,7 +205,7 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="dvossel-laptop2" on_node_uuid="24815808"/> -+ <rsc_op id="3" operation="probe_complete" operation_key="probe_complete-dvossel-laptop2" on_node="dvossel-laptop2" on_node_uuid="24815808"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/whitebox-ms-ordering.exp b/pengine/test10/whitebox-ms-ordering.exp -new file mode 100644 -index 0000000..1ff4595 ---- /dev/null -+++ b/pengine/test10/whitebox-ms-ordering.exp -@@ -0,0 +1,503 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="container1_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc1.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc1"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="4" operation="probe_nodes_complete" operation_key="probe_nodes_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="14" operation="monitor" operation_key="container1_monitor_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc1.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc1"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="10" operation="monitor" operation_key="container1_monitor_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc1.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc1"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="6" operation="monitor" operation_key="container1_monitor_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc1.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc1"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="20" operation="start" operation_key="container2_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc2.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc2"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="4" operation="probe_nodes_complete" operation_key="probe_nodes_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="15" operation="monitor" operation_key="container2_monitor_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc2.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc2"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="11" operation="monitor" operation_key="container2_monitor_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc2.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc2"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="7" operation="monitor" operation_key="container2_monitor_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" config="/var/lib/pacemaker/cts/lxc/lxc2.xml" force_stop="true" hypervisor="lxc:///" remote-node="lxc2"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="24" operation="promote" operation_key="lxc-ms_promote_0" internal_operation_key="lxc-ms:0_promote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> -+ <primitive id="lxc-ms" long-id="lxc-ms:0" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="21" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="23" operation="start" operation_key="lxc-ms_start_0" internal_operation_key="lxc-ms:0_start_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="promote" operation_key="lxc-ms-master_promote_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="36" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="23" operation="start" operation_key="lxc-ms_start_0" internal_operation_key="lxc-ms:0_start_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> -+ <primitive id="lxc-ms" long-id="lxc-ms:0" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="22" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="28" operation="start" operation_key="lxc-ms-master_start_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="36" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <pseudo_event id="22" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:0_stop_0"> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="30" operation="stop" operation_key="lxc-ms-master_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="21" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> -+ <primitive id="lxc-ms" long-id="lxc-ms:0" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="34" operation="demote" operation_key="lxc-ms-master_demote_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="36" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <rsc_op id="16" operation="monitor" operation_key="lxc-ms_monitor_0" internal_operation_key="lxc-ms:0_monitor_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="lxc-ms" long-id="lxc-ms:0" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <rsc_op id="12" operation="monitor" operation_key="lxc-ms_monitor_0" internal_operation_key="lxc-ms:0_monitor_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="lxc-ms" long-id="lxc-ms:0" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <rsc_op id="8" operation="monitor" operation_key="lxc-ms_monitor_0" internal_operation_key="lxc-ms:0_monitor_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc-ms" long-id="lxc-ms:0" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="15"> -+ <action_set> -+ <rsc_op id="27" operation="monitor" operation_key="lxc-ms_monitor_10000" internal_operation_key="lxc-ms:1_monitor_10000" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"> -+ <primitive id="lxc-ms" long-id="lxc-ms:1" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="26" operation="start" operation_key="lxc-ms_start_0" internal_operation_key="lxc-ms:1_start_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="38" operation="start" operation_key="lxc2_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <rsc_op id="26" operation="start" operation_key="lxc-ms_start_0" internal_operation_key="lxc-ms:1_start_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"> -+ <primitive id="lxc-ms" long-id="lxc-ms:1" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="25" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:1_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="28" operation="start" operation_key="lxc-ms-master_start_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="38" operation="start" operation_key="lxc2_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <pseudo_event id="25" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:1_stop_0"> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="30" operation="stop" operation_key="lxc-ms-master_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="18" priority="1000000"> -+ <action_set> -+ <pseudo_event id="35" operation="demoted" operation_key="lxc-ms-master_demoted_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="21" operation="demote" operation_key="lxc-ms_demote_0" internal_operation_key="lxc-ms:0_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="demote" operation_key="lxc-ms-master_demote_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="19"> -+ <action_set> -+ <pseudo_event id="34" operation="demote" operation_key="lxc-ms-master_demote_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="20" priority="1000000"> -+ <action_set> -+ <pseudo_event id="33" operation="promoted" operation_key="lxc-ms-master_promoted_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="24" operation="promote" operation_key="lxc-ms_promote_0" internal_operation_key="lxc-ms:0_promote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="21"> -+ <action_set> -+ <pseudo_event id="32" operation="promote" operation_key="lxc-ms-master_promote_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="29" operation="running" operation_key="lxc-ms-master_running_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="31" operation="stopped" operation_key="lxc-ms-master_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="35" operation="demoted" operation_key="lxc-ms-master_demoted_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="22" priority="1000000"> -+ <action_set> -+ <pseudo_event id="31" operation="stopped" operation_key="lxc-ms-master_stopped_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="22" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="25" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:1_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="30" operation="stop" operation_key="lxc-ms-master_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="23"> -+ <action_set> -+ <pseudo_event id="30" operation="stop" operation_key="lxc-ms-master_stop_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="35" operation="demoted" operation_key="lxc-ms-master_demoted_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="24" priority="1000000"> -+ <action_set> -+ <pseudo_event id="29" operation="running" operation_key="lxc-ms-master_running_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="23" operation="start" operation_key="lxc-ms_start_0" internal_operation_key="lxc-ms:0_start_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="26" operation="start" operation_key="lxc-ms_start_0" internal_operation_key="lxc-ms:1_start_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="28" operation="start" operation_key="lxc-ms-master_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="25"> -+ <action_set> -+ <pseudo_event id="28" operation="start" operation_key="lxc-ms-master_start_0"> -+ <attributes CRM_meta_clone_max="2" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_master_max="1" CRM_meta_master_node_max="1" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="31" operation="stopped" operation_key="lxc-ms-master_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="35" operation="demoted" operation_key="lxc-ms-master_demoted_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="26"> -+ <action_set> -+ <rsc_op id="37" operation="monitor" operation_key="lxc1_monitor_30000" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="36" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="27"> -+ <action_set> -+ <rsc_op id="36" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container1" CRM_meta_name="start" CRM_meta_timeout="60000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="container1_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="28"> -+ <action_set> -+ <rsc_op id="39" operation="monitor" operation_key="lxc2_monitor_30000" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc2" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container2" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="38" operation="start" operation_key="lxc2_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="29"> -+ <action_set> -+ <rsc_op id="38" operation="start" operation_key="lxc2_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc2" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container2" CRM_meta_name="start" CRM_meta_timeout="60000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="20" operation="start" operation_key="container2_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="30" priority="1000000"> -+ <action_set> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="14" operation="monitor" operation_key="container1_monitor_0" on_node="18node3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="15" operation="monitor" operation_key="container2_monitor_0" on_node="18node3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="16" operation="monitor" operation_key="lxc-ms_monitor_0" internal_operation_key="lxc-ms:0_monitor_0" on_node="18node3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="31" priority="1000000"> -+ <action_set> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="10" operation="monitor" operation_key="container1_monitor_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="11" operation="monitor" operation_key="container2_monitor_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="12" operation="monitor" operation_key="lxc-ms_monitor_0" internal_operation_key="lxc-ms:0_monitor_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="32" priority="1000000"> -+ <action_set> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"> -+ <attributes CRM_meta_op_no_wait="true" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="6" operation="monitor" operation_key="container1_monitor_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="7" operation="monitor" operation_key="container2_monitor_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="8" operation="monitor" operation_key="lxc-ms_monitor_0" internal_operation_key="lxc-ms:0_monitor_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="33"> -+ <action_set> -+ <pseudo_event id="4" operation="probe_nodes_complete" operation_key="probe_nodes_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="34"> -+ <action_set> -+ <pseudo_event id="3" operation="probe_complete" operation_key="probe_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="35"> -+ <action_set> -+ <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="22" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="25" operation="stop" operation_key="lxc-ms_stop_0" internal_operation_key="lxc-ms:1_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c -index 78cab50..2eb68f1 100644 ---- a/tools/crm_simulate.c -+++ b/tools/crm_simulate.c -@@ -760,9 +760,12 @@ create_action_name(action_t * action) - } else if (safe_str_eq(action->task, CRM_OP_FENCE)) { - action_name = g_strdup_printf("%s%s %s", prefix ? prefix : "", action->task, action_host); - -- } else if (action_host) { -+ } else if (action->rsc && action_host) { - action_name = g_strdup_printf("%s%s %s", prefix ? prefix : "", action->uuid, action_host); - -+ } else if (action_host) { -+ action_name = g_strdup_printf("%s%s %s", prefix ? prefix : "", action->task, action_host); -+ - } else { - action_name = g_strdup_printf("%s", action->uuid); - } -@@ -789,7 +792,7 @@ create_dotfile(pe_working_set_t * data_set, const char *dot_file, gboolean all_a - const char *color = "black"; - char *action_name = create_action_name(action); - -- crm_trace("Action %d: %p", action->id, action); -+ crm_trace("Action %d: %s %s %p", action->id, action_name, action->uuid, action); - - if (is_set(action->flags, pe_action_pseudo)) { - font = "orange"; -@@ -819,6 +822,8 @@ create_dotfile(pe_working_set_t * data_set, const char *dot_file, gboolean all_a - } - - set_bit(action->flags, pe_action_dumped); -+ crm_trace("\"%s\" [ style=%s color=\"%s\" fontcolor=\"%s\"]", -+ action_name, style, color, font); - fprintf(dot_strm, "\"%s\" [ style=%s color=\"%s\" fontcolor=\"%s\"]\n", - action_name, style, color, font); - dont_write: -@@ -857,6 +862,8 @@ create_dotfile(pe_working_set_t * data_set, const char *dot_file, gboolean all_a - if (all_actions || optional == FALSE) { - before_name = create_action_name(before->action); - after_name = create_action_name(action); -+ crm_trace("\"%s\" -> \"%s\" [ style = %s]", -+ before_name, after_name, style); - fprintf(dot_strm, "\"%s\" -> \"%s\" [ style = %s]\n", - before_name, after_name, style); - free(before_name); diff --git a/SOURCES/bz1078078-pcmk-pe_ensure_unfencing_occurs_before_fencing_devices_are_re_probed.patch b/SOURCES/bz1078078-pcmk-pe_ensure_unfencing_occurs_before_fencing_devices_are_re_probed.patch deleted file mode 100644 index b7d7017..0000000 --- a/SOURCES/bz1078078-pcmk-pe_ensure_unfencing_occurs_before_fencing_devices_are_re_probed.patch +++ /dev/null @@ -1,311 +0,0 @@ -commit 5566c3e6b194cbe682408ef9c88ad3b6a9755f7d -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 9 12:07:46 2014 +1000 - - Fix: PE: Ensure unfencing occurs before fencing devices are (re-)probed - - (cherry picked from commit 6be22945726c204b9c73da843bb04981e46126be) - - Conflicts: - pengine/test10/unfence-startup.summary - -diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c -index e84d341..9cb744a 100644 ---- a/lib/pengine/utils.c -+++ b/lib/pengine/utils.c -@@ -1881,7 +1881,7 @@ trigger_unfencing( - action_t *unfence = pe_fence_op(node, "on", FALSE, data_set); - - crm_notice("Unfencing %s: %s", node->details->uname, reason); -- if(FALSE && dependancy) { -+ if(dependancy) { - order_actions(unfence, dependancy, pe_order_optional); - } - -diff --git a/pengine/native.c b/pengine/native.c -index 3d75dc9..5c723c2 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -2518,8 +2518,21 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, - } - - pe_rsc_debug(rsc, "Probing %s on %s (%s)", rsc->id, node->details->uname, role2text(rsc->role)); -- order_actions(probe, complete, pe_order_implies_then); - -+ if(is_set(rsc->flags, pe_rsc_fence_device) && is_set(data_set->flags, pe_flag_enable_unfencing)) { -+ /* Normally rsc.start depends on probe complete which depends -+ * on rsc.probe. But this can't be the case in this scenario as -+ * it would create graph loops. -+ * -+ * So instead we explicitly order 'rsc.probe then rsc.start' -+ */ -+ custom_action_order(rsc, NULL, probe, -+ rsc, generate_op_key(rsc->id, RSC_START, 0), NULL, -+ pe_order_optional, data_set); -+ -+ } else { -+ order_actions(probe, complete, pe_order_implies_then); -+ } - return TRUE; - } - -diff --git a/pengine/test10/unfence-definition.dot b/pengine/test10/unfence-definition.dot -index e737687..6ab0e28 100644 ---- a/pengine/test10/unfence-definition.dot -+++ b/pengine/test10/unfence-definition.dot -@@ -61,7 +61,7 @@ digraph "g" { - "dlm_stop_0 virt-1" [ style=bold color="green" fontcolor="black"] - "fencing_delete_0 virt-1" -> "fencing_start_0 virt-1" [ style = bold] - "fencing_delete_0 virt-1" [ style=bold color="green" fontcolor="black"] --"fencing_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"fencing_monitor_0 virt-3" -> "fencing_start_0 virt-1" [ style = bold] - "fencing_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] - "fencing_start_0 virt-1" [ style=bold color="green" fontcolor="black"] - "fencing_stop_0 virt-1" -> "all_stopped" [ style = bold] -@@ -89,6 +89,7 @@ digraph "g" { - "stonith 'on' virt-1" [ style=bold color="green" fontcolor="black"] - "stonith 'on' virt-3" -> "clvmd-clone_start_0" [ style = bold] - "stonith 'on' virt-3" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" -> "fencing_monitor_0 virt-3" [ style = bold] - "stonith 'on' virt-3" [ style=bold color="green" fontcolor="black"] - "stonith 'reboot' virt-4" -> "stonith_complete" [ style = bold] - "stonith 'reboot' virt-4" [ style=bold color="green" fontcolor="black"] -diff --git a/pengine/test10/unfence-definition.exp b/pengine/test10/unfence-definition.exp -index 9075347..0f779da 100644 ---- a/pengine/test10/unfence-definition.exp -+++ b/pengine/test10/unfence-definition.exp -@@ -19,6 +19,9 @@ - <trigger> - <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> - </trigger> -+ <trigger> -+ <rsc_op id="13" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> - </inputs> - </synapse> - <synapse id="1"> -@@ -28,7 +31,11 @@ - <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> - </rsc_op> - </action_set> -- <inputs/> -+ <inputs> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> - </synapse> - <synapse id="2"> - <action_set> -@@ -387,9 +394,6 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="13" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -- </trigger> -- <trigger> - <rsc_op id="14" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> - </trigger> - <trigger> -diff --git a/pengine/test10/unfence-definition.summary b/pengine/test10/unfence-definition.summary -index c954c4b..3e4b66b 100644 ---- a/pengine/test10/unfence-definition.summary -+++ b/pengine/test10/unfence-definition.summary -@@ -20,7 +20,6 @@ Transition Summary: - * Start clvmd:2 (virt-3) - - Executing cluster transition: -- * Resource action: fencing monitor on virt-3 - * Resource action: dlm monitor on virt-3 - * Resource action: clvmd monitor on virt-2 - * Resource action: clvmd monitor on virt-3 -@@ -38,8 +37,9 @@ Executing cluster transition: - * Fencing virt-3 (on) - * Pseudo action: all_stopped - * Fencing virt-1 (on) -- * Resource action: fencing start on virt-1 -+ * Resource action: fencing monitor on virt-3 - * Pseudo action: dlm-clone_start_0 -+ * Resource action: fencing start on virt-1 - * Resource action: dlm start on virt-1 - * Resource action: dlm start on virt-3 - * Pseudo action: dlm-clone_running_0 -diff --git a/pengine/test10/unfence-parameters.dot b/pengine/test10/unfence-parameters.dot -index e67eb5a..082bbe1 100644 ---- a/pengine/test10/unfence-parameters.dot -+++ b/pengine/test10/unfence-parameters.dot -@@ -78,7 +78,7 @@ digraph "g" { - "dlm_stop_0 virt-2" -> "dlm_start_0 virt-2" [ style = bold] - "dlm_stop_0 virt-2" -> "dlm_stop_0 virt-1" [ style = bold] - "dlm_stop_0 virt-2" [ style=bold color="green" fontcolor="black"] --"fencing_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] -+"fencing_monitor_0 virt-3" -> "fencing_start_0 virt-1" [ style = bold] - "fencing_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] - "fencing_start_0 virt-1" [ style=bold color="green" fontcolor="black"] - "fencing_stop_0 virt-1" -> "all_stopped" [ style = bold] -@@ -111,6 +111,7 @@ digraph "g" { - "stonith 'on' virt-2" [ style=bold color="green" fontcolor="black"] - "stonith 'on' virt-3" -> "clvmd-clone_start_0" [ style = bold] - "stonith 'on' virt-3" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" -> "fencing_monitor_0 virt-3" [ style = bold] - "stonith 'on' virt-3" [ style=bold color="green" fontcolor="black"] - "stonith 'reboot' virt-4" -> "stonith_complete" [ style = bold] - "stonith 'reboot' virt-4" [ style=bold color="green" fontcolor="black"] -diff --git a/pengine/test10/unfence-parameters.exp b/pengine/test10/unfence-parameters.exp -index 491d78e..d3480f3 100644 ---- a/pengine/test10/unfence-parameters.exp -+++ b/pengine/test10/unfence-parameters.exp -@@ -19,7 +19,11 @@ - <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> - </rsc_op> - </action_set> -- <inputs/> -+ <inputs> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> - </synapse> - <synapse id="2"> - <action_set> -@@ -36,6 +40,9 @@ - <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -+ <rsc_op id="12" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> - <rsc_op id="15" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> - </trigger> - </inputs> -@@ -433,9 +440,6 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="12" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -- </trigger> -- <trigger> - <rsc_op id="13" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> - </trigger> - <trigger> -diff --git a/pengine/test10/unfence-parameters.summary b/pengine/test10/unfence-parameters.summary -index 17bbc62..5276cba 100644 ---- a/pengine/test10/unfence-parameters.summary -+++ b/pengine/test10/unfence-parameters.summary -@@ -21,7 +21,6 @@ Transition Summary: - * Start clvmd:2 (virt-3) - - Executing cluster transition: -- * Resource action: fencing monitor on virt-3 - * Resource action: dlm monitor on virt-3 - * Resource action: clvmd monitor on virt-2 - * Resource action: clvmd monitor on virt-3 -@@ -40,6 +39,7 @@ Executing cluster transition: - * Fencing virt-2 (on) - * Pseudo action: all_stopped - * Fencing virt-1 (on) -+ * Resource action: fencing monitor on virt-3 - * Resource action: fencing start on virt-1 - * Pseudo action: dlm-clone_start_0 - * Resource action: dlm start on virt-1 -diff --git a/pengine/test10/unfence-startup.dot b/pengine/test10/unfence-startup.dot -index a5cc606..4dbd273 100644 ---- a/pengine/test10/unfence-startup.dot -+++ b/pengine/test10/unfence-startup.dot -@@ -26,7 +26,6 @@ digraph "g" { - "dlm:2_start_0 virt-3" -> "clvmd:2_start_0 virt-3" [ style = bold] - "dlm:2_start_0 virt-3" -> "dlm-clone_running_0" [ style = bold] - "dlm:2_start_0 virt-3" [ style=bold color="green" fontcolor="black"] --"fencing_monitor_0 virt-3" -> "probe_complete virt-3" [ style = bold] - "fencing_monitor_0 virt-3" [ style=bold color="green" fontcolor="black"] - "probe_complete virt-1" -> "probe_complete" [ style = bold] - "probe_complete virt-1" [ style=bold color="green" fontcolor="black"] -@@ -40,6 +39,7 @@ digraph "g" { - "probe_complete" [ style=bold color="green" fontcolor="orange"] - "stonith 'on' virt-3" -> "clvmd-clone_start_0" [ style = bold] - "stonith 'on' virt-3" -> "dlm-clone_start_0" [ style = bold] -+"stonith 'on' virt-3" -> "fencing_monitor_0 virt-3" [ style = bold] - "stonith 'on' virt-3" [ style=bold color="green" fontcolor="black"] - "stonith 'reboot' virt-4" -> "stonith_complete" [ style = bold] - "stonith 'reboot' virt-4" [ style=bold color="green" fontcolor="black"] -diff --git a/pengine/test10/unfence-startup.exp b/pengine/test10/unfence-startup.exp -index 8a04d54..7c55d2c 100644 ---- a/pengine/test10/unfence-startup.exp -+++ b/pengine/test10/unfence-startup.exp -@@ -6,7 +6,11 @@ - <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> - </rsc_op> - </action_set> -- <inputs/> -+ <inputs> -+ <trigger> -+ <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> - </synapse> - <synapse id="1"> - <action_set> -@@ -186,9 +190,6 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="11" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"/> -- </trigger> -- <trigger> - <rsc_op id="12" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"/> - </trigger> - <trigger> -diff --git a/pengine/test10/unfence-startup.summary b/pengine/test10/unfence-startup.summary -new file mode 100644 -index 0000000..a03fa15 ---- /dev/null -+++ b/pengine/test10/unfence-startup.summary -@@ -0,0 +1,48 @@ -+ -+Current cluster status: -+Node virt-4 (4): UNCLEAN (offline) -+Online: [ virt-1 virt-2 virt-3 ] -+ -+ fencing (stonith:fence_scsi): Started virt-1 -+ Clone Set: dlm-clone [dlm] -+ Started: [ virt-1 virt-2 ] -+ Stopped: [ virt-3 virt-4 ] -+ Clone Set: clvmd-clone [clvmd] -+ Started: [ virt-1 ] -+ Stopped: [ virt-2 virt-3 virt-4 ] -+ -+Transition Summary: -+ * Start dlm:2 (virt-3) -+ * Start clvmd:1 (virt-2) -+ * Start clvmd:2 (virt-3) -+ -+Executing cluster transition: -+ * Resource action: dlm monitor on virt-3 -+ * Resource action: clvmd monitor on virt-2 -+ * Resource action: clvmd monitor on virt-3 -+ * Fencing virt-4 (reboot) -+ * Pseudo action: stonith_complete -+ * Pseudo action: probe_complete -+ * Fencing virt-3 (on) -+ * Pseudo action: all_stopped -+ * Resource action: fencing monitor on virt-3 -+ * Pseudo action: dlm-clone_start_0 -+ * Resource action: dlm start on virt-3 -+ * Pseudo action: dlm-clone_running_0 -+ * Pseudo action: clvmd-clone_start_0 -+ * Resource action: clvmd start on virt-2 -+ * Resource action: clvmd start on virt-3 -+ * Pseudo action: clvmd-clone_running_0 -+ -+Revised cluster status: -+Online: [ virt-1 virt-2 virt-3 ] -+OFFLINE: [ virt-4 ] -+ -+ fencing (stonith:fence_scsi): Started virt-1 -+ Clone Set: dlm-clone [dlm] -+ Started: [ virt-1 virt-2 virt-3 ] -+ Stopped: [ virt-4 ] -+ Clone Set: clvmd-clone [clvmd] -+ Started: [ virt-1 virt-2 virt-3 ] -+ Stopped: [ virt-4 ] -+ diff --git a/SOURCES/bz1078078-pcmk-pe_ensure_unfencing_only_happens_once_even_if_the_transition_is_interrupted.patch b/SOURCES/bz1078078-pcmk-pe_ensure_unfencing_only_happens_once_even_if_the_transition_is_interrupted.patch deleted file mode 100644 index 0cbf2b6..0000000 --- a/SOURCES/bz1078078-pcmk-pe_ensure_unfencing_only_happens_once_even_if_the_transition_is_interrupted.patch +++ /dev/null @@ -1,57 +0,0 @@ -commit 6f2e3fc12f64f317280f9cb3d65cc08489516e39 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Apr 10 14:25:32 2014 +1000 - - Fix: PE: Ensure unfencing only happens once, even if the transition is interrupted - - (cherry picked from commit 76a3fe06ae8fdfa579b2ae6ba730945ef79b0ebc) - -diff --git a/pengine/native.c b/pengine/native.c -index 5c723c2..6294092 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -2498,6 +2498,7 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, - */ - if(is_set(rsc->flags, pe_rsc_fence_device) && is_set(data_set->flags, pe_flag_enable_unfencing)) { - trigger_unfencing(NULL, node, "node discovery", probe, data_set); -+ probe->priority = INFINITY; /* Ensure this runs if unfencing succeeds */ - - } else if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { - action_t *unfence = pe_fence_op(node, "on", TRUE, data_set); -diff --git a/pengine/test10/unfence-definition.exp b/pengine/test10/unfence-definition.exp -index 0f779da..f023a0b 100644 ---- a/pengine/test10/unfence-definition.exp -+++ b/pengine/test10/unfence-definition.exp -@@ -24,7 +24,7 @@ - </trigger> - </inputs> - </synapse> -- <synapse id="1"> -+ <synapse id="1" priority="1000000"> - <action_set> - <rsc_op id="13" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -diff --git a/pengine/test10/unfence-parameters.exp b/pengine/test10/unfence-parameters.exp -index d3480f3..8ff3016 100644 ---- a/pengine/test10/unfence-parameters.exp -+++ b/pengine/test10/unfence-parameters.exp -@@ -12,7 +12,7 @@ - </trigger> - </inputs> - </synapse> -- <synapse id="1"> -+ <synapse id="1" priority="1000000"> - <action_set> - <rsc_op id="12" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -diff --git a/pengine/test10/unfence-startup.exp b/pengine/test10/unfence-startup.exp -index 7c55d2c..a0661e7 100644 ---- a/pengine/test10/unfence-startup.exp -+++ b/pengine/test10/unfence-startup.exp -@@ -1,5 +1,5 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -- <synapse id="0"> -+ <synapse id="0" priority="1000000"> - <action_set> - <rsc_op id="11" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> diff --git a/SOURCES/bz1078078-pcmk-pe_fencing_devices_default_to_only_requiring_quorum_in_order_to_start.patch b/SOURCES/bz1078078-pcmk-pe_fencing_devices_default_to_only_requiring_quorum_in_order_to_start.patch deleted file mode 100644 index d4831fd..0000000 --- a/SOURCES/bz1078078-pcmk-pe_fencing_devices_default_to_only_requiring_quorum_in_order_to_start.patch +++ /dev/null @@ -1,753 +0,0 @@ -commit fabf4840a335d199ec921b37692af02344e87565 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Apr 4 10:14:05 2014 +1100 - - Fix: PE: Fencing devices default to only requiring quorum in order to start - - (cherry picked from commit c19b872efb9ad1007f5bf574abf1928689af9dcc) - - Conflicts: - pengine/test10/bug-5186-partial-migrate.dot - -diff --git a/lib/pengine/complex.c b/lib/pengine/complex.c -index 8b774c0..0f20481 100644 ---- a/lib/pengine/complex.c -+++ b/lib/pengine/complex.c -@@ -586,7 +586,10 @@ common_unpack(xmlNode * xml_obj, resource_t ** rsc, - } - - isdefault = TRUE; -- if (is_set(data_set->flags, pe_flag_enable_unfencing)) { -+ if(is_set((*rsc)->flags, pe_rsc_fence_device)) { -+ value = "quorum"; -+ -+ } else if (is_set(data_set->flags, pe_flag_enable_unfencing)) { - value = "unfencing"; - - } else if (is_set(data_set->flags, pe_flag_stonith_enabled)) { -diff --git a/pengine/test10/bug-5186-partial-migrate.exp b/pengine/test10/bug-5186-partial-migrate.exp -index 7e10e3a..216d962 100644 ---- a/pengine/test10/bug-5186-partial-migrate.exp -+++ b/pengine/test10/bug-5186-partial-migrate.exp -@@ -167,9 +167,6 @@ - <trigger> - <pseudo_event id="43" operation="start" operation_key="grpStonith8_start_0"/> - </trigger> -- <trigger> -- <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"/> -- </trigger> - </inputs> - </synapse> - <synapse id="12"> -@@ -220,9 +217,6 @@ - <trigger> - <pseudo_event id="43" operation="start" operation_key="grpStonith8_start_0"/> - </trigger> -- <trigger> -- <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"/> -- </trigger> - </inputs> - </synapse> - <synapse id="15"> -diff --git a/pengine/test10/bug-lf-2508.dot b/pengine/test10/bug-lf-2508.dot -index 6bef312..6e88af5 100644 ---- a/pengine/test10/bug-lf-2508.dot -+++ b/pengine/test10/bug-lf-2508.dot -@@ -24,6 +24,7 @@ digraph "g" { - "Group02_stop_0" [ style=bold color="green" fontcolor="orange" ] - "Group02_stopped_0" -> "Group02_start_0" [ style = bold] - "Group02_stopped_0" [ style=bold color="green" fontcolor="orange" ] -+"all_stopped" -> "prmStonith3-3:1_start_0 srv01" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "clnStonith1_stop_0" -> "clnStonith1_stopped_0" [ style = bold] - "clnStonith1_stop_0" -> "grpStonith1:1_stop_0" [ style = bold] -@@ -107,6 +108,5 @@ digraph "g" { - "stonith_complete" -> "Dummy01_start_0 srv01" [ style = bold] - "stonith_complete" -> "Dummy02_start_0 srv04" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] --"stonith_complete" -> "prmStonith3-3:1_start_0 srv01" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/bug-lf-2508.exp b/pengine/test10/bug-lf-2508.exp -index d56002e..0d84e9e 100644 ---- a/pengine/test10/bug-lf-2508.exp -+++ b/pengine/test10/bug-lf-2508.exp -@@ -363,10 +363,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="115" operation="start" operation_key="grpStonith3:1_start_0"/> -+ <pseudo_event id="18" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="165" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="115" operation="start" operation_key="grpStonith3:1_start_0"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-lf-2551.dot b/pengine/test10/bug-lf-2551.dot -index 3225e00..ed80e15 100644 ---- a/pengine/test10/bug-lf-2551.dot -+++ b/pengine/test10/bug-lf-2551.dot -@@ -80,7 +80,6 @@ digraph "g" { - "stonith 'reboot' hex-9" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "dummy1_start_0 hex-0" [ style = bold] --"stonith_complete" -> "fencing-sbd_start_0 hex-0" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - "vg1:3_stop_0 hex-9" -> "all_stopped" [ style = bold] - "vg1:3_stop_0 hex-9" -> "base-group:3_stopped_0" [ style = bold] -diff --git a/pengine/test10/bug-lf-2551.exp b/pengine/test10/bug-lf-2551.exp -index 7790199..1912812 100644 ---- a/pengine/test10/bug-lf-2551.exp -+++ b/pengine/test10/bug-lf-2551.exp -@@ -10,9 +10,6 @@ - <trigger> - <pseudo_event id="162" operation="stop" operation_key="fencing-sbd_stop_0"/> - </trigger> -- <trigger> -- <pseudo_event id="248" operation="stonith_complete" operation_key="stonith_complete"/> -- </trigger> - </inputs> - </synapse> - <synapse id="1"> -diff --git a/pengine/test10/rec-node-11.dot b/pengine/test10/rec-node-11.dot -index 2865f41..bc76888 100644 ---- a/pengine/test10/rec-node-11.dot -+++ b/pengine/test10/rec-node-11.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 node2" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "group1_running_0" [ style=bold color="green" fontcolor="orange" ] - "group1_start_0" -> "group1_running_0" [ style = bold] -@@ -56,6 +57,5 @@ digraph "g" { - "stonith_complete" -> "rsc1_start_0 node2" [ style = bold] - "stonith_complete" -> "rsc2_start_0 node2" [ style = bold] - "stonith_complete" -> "rsc3_start_0 node2" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-11.exp b/pengine/test10/rec-node-11.exp -index f441ce8..b6f4c47 100644 ---- a/pengine/test10/rec-node-11.exp -+++ b/pengine/test10/rec-node-11.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="18" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-11.summary b/pengine/test10/rec-node-11.summary -index d2ad78a..5a37fb8 100644 ---- a/pengine/test10/rec-node-11.summary -+++ b/pengine/test10/rec-node-11.summary -@@ -22,13 +22,13 @@ Executing cluster transition: - * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete -- * Resource action: stonith-1 start on node2 - * Pseudo action: group1_stop_0 - * Pseudo action: rsc2_stop_0 - * Pseudo action: rsc1_stop_0 - * Pseudo action: group1_stopped_0 - * Resource action: rsc3 stop on node2 - * Pseudo action: all_stopped -+ * Resource action: stonith-1 start on node2 - * Resource action: rsc3 start on node2 - * Pseudo action: group1_start_0 - * Resource action: rsc1 start on node2 -diff --git a/pengine/test10/rec-node-15.dot b/pengine/test10/rec-node-15.dot -index 31d0929..71062bf 100644 ---- a/pengine/test10/rec-node-15.dot -+++ b/pengine/test10/rec-node-15.dot -@@ -42,6 +42,7 @@ digraph "g" { - "LVM_22_start_0 sapcl01" -> "LVM_22_monitor_120000 sapcl01" [ style = bold] - "LVM_22_start_0 sapcl01" -> "oracle_running_0" [ style = bold] - "LVM_22_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] -+"all_stopped" -> "stonith-1_start_0 sapcl01" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "app02_running_0" [ style=bold color="green" fontcolor="orange" ] - "app02_start_0" -> "Filesystem_13_start_0 sapcl01" [ style = bold] -@@ -98,6 +99,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "oracle_24_start_0 sapcl01" [ style = bold] - "stonith_complete" -> "oralsnr_25_start_0 sapcl01" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 sapcl01" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-15.exp b/pengine/test10/rec-node-15.exp -index e1330a6..9654d34 100644 ---- a/pengine/test10/rec-node-15.exp -+++ b/pengine/test10/rec-node-15.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="7" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="51" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-15.summary b/pengine/test10/rec-node-15.summary -index 85bfed5..b44a364 100644 ---- a/pengine/test10/rec-node-15.summary -+++ b/pengine/test10/rec-node-15.summary -@@ -39,7 +39,6 @@ Executing cluster transition: - * Fencing sapcl03 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete -- * Resource action: stonith-1 start on sapcl01 - * Resource action: Filesystem_13 stop on sapcl02 - * Resource action: IPaddr_192_168_1_104 start on sapcl01 - * Resource action: LVM_22 start on sapcl01 -@@ -55,6 +54,7 @@ Executing cluster transition: - * Resource action: oralsnr_25 monitor=120000 on sapcl01 - * Resource action: IPaddr_192_168_1_102 stop on sapcl02 - * Pseudo action: all_stopped -+ * Resource action: stonith-1 start on sapcl01 - * Pseudo action: app02_stopped_0 - * Pseudo action: app02_start_0 - * Resource action: IPaddr_192_168_1_102 start on sapcl01 -diff --git a/pengine/test10/rec-node-2.dot b/pengine/test10/rec-node-2.dot -index f8ba887..d889080 100644 ---- a/pengine/test10/rec-node-2.dot -+++ b/pengine/test10/rec-node-2.dot -@@ -1,6 +1,7 @@ - digraph "g" { - "all_stopped" -> "rsc1_start_0 node2" [ style = bold] - "all_stopped" -> "rsc3_start_0 node2" [ style = bold] -+"all_stopped" -> "stonith-1_start_0 node2" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "group1_running_0" [ style=bold color="green" fontcolor="orange" ] - "group1_start_0" -> "group1_running_0" [ style = bold] -@@ -56,6 +57,5 @@ digraph "g" { - "stonith_complete" -> "rsc4_start_0 node2" [ style = bold] - "stonith_complete" -> "rsc5_start_0 node2" [ style = bold] - "stonith_complete" -> "rsc6_start_0 node2" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-2.exp b/pengine/test10/rec-node-2.exp -index fd04c37..ea68e3e 100644 ---- a/pengine/test10/rec-node-2.exp -+++ b/pengine/test10/rec-node-2.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="26" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-4.dot b/pengine/test10/rec-node-4.dot -index e5b31ef..221cefe 100644 ---- a/pengine/test10/rec-node-4.dot -+++ b/pengine/test10/rec-node-4.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 node2" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "probe_complete node2" -> "probe_complete" [ style = bold] - "probe_complete node2" [ style=bold color="green" fontcolor="black" ] -@@ -30,6 +31,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc1_start_0 node2" [ style = bold] - "stonith_complete" -> "rsc2_start_0 node2" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-4.exp b/pengine/test10/rec-node-4.exp -index 2cbfecb..4932b98 100644 ---- a/pengine/test10/rec-node-4.exp -+++ b/pengine/test10/rec-node-4.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-4.summary b/pengine/test10/rec-node-4.summary -index 295da1d..60f70fc 100644 ---- a/pengine/test10/rec-node-4.summary -+++ b/pengine/test10/rec-node-4.summary -@@ -19,10 +19,10 @@ Executing cluster transition: - * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete -- * Resource action: stonith-1 start on node2 - * Pseudo action: rsc1_stop_0 - * Pseudo action: rsc2_stop_0 - * Pseudo action: all_stopped -+ * Resource action: stonith-1 start on node2 - * Resource action: rsc1 start on node2 - * Resource action: rsc2 start on node2 - -diff --git a/pengine/test10/rec-node-6.dot b/pengine/test10/rec-node-6.dot -index e5b31ef..221cefe 100644 ---- a/pengine/test10/rec-node-6.dot -+++ b/pengine/test10/rec-node-6.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 node2" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "probe_complete node2" -> "probe_complete" [ style = bold] - "probe_complete node2" [ style=bold color="green" fontcolor="black" ] -@@ -30,6 +31,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc1_start_0 node2" [ style = bold] - "stonith_complete" -> "rsc2_start_0 node2" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-6.exp b/pengine/test10/rec-node-6.exp -index 2cbfecb..4932b98 100644 ---- a/pengine/test10/rec-node-6.exp -+++ b/pengine/test10/rec-node-6.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-6.summary b/pengine/test10/rec-node-6.summary -index 300d61b..7ae96e5 100644 ---- a/pengine/test10/rec-node-6.summary -+++ b/pengine/test10/rec-node-6.summary -@@ -19,10 +19,10 @@ Executing cluster transition: - * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete -- * Resource action: stonith-1 start on node2 - * Pseudo action: rsc1_stop_0 - * Pseudo action: rsc2_stop_0 - * Pseudo action: all_stopped -+ * Resource action: stonith-1 start on node2 - * Resource action: rsc1 start on node2 - * Resource action: rsc2 start on node2 - -diff --git a/pengine/test10/rec-node-7.dot b/pengine/test10/rec-node-7.dot -index e5b31ef..221cefe 100644 ---- a/pengine/test10/rec-node-7.dot -+++ b/pengine/test10/rec-node-7.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 node2" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "probe_complete node2" -> "probe_complete" [ style = bold] - "probe_complete node2" [ style=bold color="green" fontcolor="black" ] -@@ -30,6 +31,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc1_start_0 node2" [ style = bold] - "stonith_complete" -> "rsc2_start_0 node2" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-7.exp b/pengine/test10/rec-node-7.exp -index 2cbfecb..4932b98 100644 ---- a/pengine/test10/rec-node-7.exp -+++ b/pengine/test10/rec-node-7.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-7.summary b/pengine/test10/rec-node-7.summary -index 295da1d..60f70fc 100644 ---- a/pengine/test10/rec-node-7.summary -+++ b/pengine/test10/rec-node-7.summary -@@ -19,10 +19,10 @@ Executing cluster transition: - * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete -- * Resource action: stonith-1 start on node2 - * Pseudo action: rsc1_stop_0 - * Pseudo action: rsc2_stop_0 - * Pseudo action: all_stopped -+ * Resource action: stonith-1 start on node2 - * Resource action: rsc1 start on node2 - * Resource action: rsc2 start on node2 - -diff --git a/pengine/test10/rec-rsc-5.dot b/pengine/test10/rec-rsc-5.dot -index 53b9521..3ca51f8 100644 ---- a/pengine/test10/rec-rsc-5.dot -+++ b/pengine/test10/rec-rsc-5.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 node1" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "probe_complete node1" -> "probe_complete" [ style = bold] - "probe_complete node1" [ style=bold color="green" fontcolor="black" ] -@@ -30,6 +31,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc1_start_0 node1" [ style = bold] - "stonith_complete" -> "rsc2_start_0 node1" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 node1" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-rsc-5.exp b/pengine/test10/rec-rsc-5.exp -index 95a3558..a99555f 100644 ---- a/pengine/test10/rec-rsc-5.exp -+++ b/pengine/test10/rec-rsc-5.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-5.summary b/pengine/test10/rec-rsc-5.summary -index 549abe6..cdb9011 100644 ---- a/pengine/test10/rec-rsc-5.summary -+++ b/pengine/test10/rec-rsc-5.summary -@@ -19,10 +19,10 @@ Executing cluster transition: - * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete -- * Resource action: stonith-1 start on node1 - * Pseudo action: rsc1_stop_0 - * Pseudo action: rsc2_stop_0 - * Pseudo action: all_stopped -+ * Resource action: stonith-1 start on node1 - * Resource action: rsc1 start on node1 - * Resource action: rsc2 start on node1 - -diff --git a/pengine/test10/stonith-3.dot b/pengine/test10/stonith-3.dot -index df5f607..86c3bd3 100644 ---- a/pengine/test10/stonith-3.dot -+++ b/pengine/test10/stonith-3.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "prmStonith:0_start_0 rh5node2" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "clnStonith_running_0" [ style=bold color="green" fontcolor="orange" ] - "clnStonith_start_0" -> "clnStonith_running_0" [ style = bold] -@@ -27,6 +28,5 @@ digraph "g" { - "stonith 'reboot' rh5node1" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "prmIpPostgreSQLDB_start_0 rh5node2" [ style = bold] --"stonith_complete" -> "prmStonith:0_start_0 rh5node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/stonith-3.exp b/pengine/test10/stonith-3.exp -index c4c1e32..4ada6ad 100644 ---- a/pengine/test10/stonith-3.exp -+++ b/pengine/test10/stonith-3.exp -@@ -73,13 +73,13 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="9" operation="start" operation_key="grpStonith:0_start_0"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <pseudo_event id="21" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="9" operation="start" operation_key="grpStonith:0_start_0"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stonith-4.dot b/pengine/test10/stonith-4.dot -index 24243d8..1a7771a 100644 ---- a/pengine/test10/stonith-4.dot -+++ b/pengine/test10/stonith-4.dot -@@ -6,6 +6,7 @@ digraph "g" { - "Fencing_monitor_0 pcmk-3" -> "probe_complete pcmk-3" [ style = dashed] - "Fencing_monitor_0 pcmk-3" [ style=dashed color="red" fontcolor="black"] - "Fencing_start_0 pcmk-1" [ style=bold color="green" fontcolor="black"] -+"all_stopped" -> "Fencing_start_0 pcmk-1" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange"] - "probe_complete pcmk-11" -> "probe_complete" [ style = bold] - "probe_complete pcmk-11" [ style=dashed color="red" fontcolor="black"] -@@ -23,7 +24,6 @@ digraph "g" { - "stonith 'reboot' pcmk-7" [ style=bold color="green" fontcolor="black"] - "stonith 'reboot' pcmk-8" -> "stonith_complete" [ style = bold] - "stonith 'reboot' pcmk-8" [ style=bold color="green" fontcolor="black"] --"stonith_complete" -> "Fencing_start_0 pcmk-1" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/stonith-4.exp b/pengine/test10/stonith-4.exp -index 2be0a96..aa61f4d 100644 ---- a/pengine/test10/stonith-4.exp -+++ b/pengine/test10/stonith-4.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="11" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealth2.dot b/pengine/test10/systemhealth2.dot -index dcf49eb..1e029a6 100644 ---- a/pengine/test10/systemhealth2.dot -+++ b/pengine/test10/systemhealth2.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 hs21c" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "apache_1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "apache_1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] -@@ -24,6 +25,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "apache_1_start_0 hs21c" [ style = bold] - "stonith_complete" -> "nfs_1_start_0 hs21c" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealth2.exp b/pengine/test10/systemhealth2.exp -index 95d8847..43ae4e3 100644 ---- a/pengine/test10/systemhealth2.exp -+++ b/pengine/test10/systemhealth2.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealth3.dot b/pengine/test10/systemhealth3.dot -index dcf49eb..1e029a6 100644 ---- a/pengine/test10/systemhealth3.dot -+++ b/pengine/test10/systemhealth3.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 hs21c" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "apache_1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "apache_1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] -@@ -24,6 +25,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "apache_1_start_0 hs21c" [ style = bold] - "stonith_complete" -> "nfs_1_start_0 hs21c" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealth3.exp b/pengine/test10/systemhealth3.exp -index 95d8847..43ae4e3 100644 ---- a/pengine/test10/systemhealth3.exp -+++ b/pengine/test10/systemhealth3.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthm2.dot b/pengine/test10/systemhealthm2.dot -index dcf49eb..1e029a6 100644 ---- a/pengine/test10/systemhealthm2.dot -+++ b/pengine/test10/systemhealthm2.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 hs21c" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "apache_1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "apache_1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] -@@ -24,6 +25,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "apache_1_start_0 hs21c" [ style = bold] - "stonith_complete" -> "nfs_1_start_0 hs21c" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealthm2.exp b/pengine/test10/systemhealthm2.exp -index 95d8847..43ae4e3 100644 ---- a/pengine/test10/systemhealthm2.exp -+++ b/pengine/test10/systemhealthm2.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthn2.dot b/pengine/test10/systemhealthn2.dot -index dcf49eb..1e029a6 100644 ---- a/pengine/test10/systemhealthn2.dot -+++ b/pengine/test10/systemhealthn2.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 hs21c" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "apache_1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "apache_1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] -@@ -24,6 +25,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "apache_1_start_0 hs21c" [ style = bold] - "stonith_complete" -> "nfs_1_start_0 hs21c" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealthn2.exp b/pengine/test10/systemhealthn2.exp -index 95d8847..43ae4e3 100644 ---- a/pengine/test10/systemhealthn2.exp -+++ b/pengine/test10/systemhealthn2.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthn3.dot b/pengine/test10/systemhealthn3.dot -index dcf49eb..1e029a6 100644 ---- a/pengine/test10/systemhealthn3.dot -+++ b/pengine/test10/systemhealthn3.dot -@@ -1,4 +1,5 @@ - digraph "g" { -+"all_stopped" -> "stonith-1_start_0 hs21c" [ style = bold] - "all_stopped" [ style=bold color="green" fontcolor="orange" ] - "apache_1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "apache_1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] -@@ -24,6 +25,5 @@ digraph "g" { - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "apache_1_start_0 hs21c" [ style = bold] - "stonith_complete" -> "nfs_1_start_0 hs21c" [ style = bold] --"stonith_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealthn3.exp b/pengine/test10/systemhealthn3.exp -index 95d8847..43ae4e3 100644 ---- a/pengine/test10/systemhealthn3.exp -+++ b/pengine/test10/systemhealthn3.exp -@@ -8,10 +8,10 @@ - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> -- <pseudo_event id="12" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-master-21.dot b/pengine/test10/ticket-master-21.dot -index e1abd95..60386a8 100644 ---- a/pengine/test10/ticket-master-21.dot -+++ b/pengine/test10/ticket-master-21.dot -@@ -27,6 +27,5 @@ digraph "g" { - "stonith 'reboot' node1" -> "stonith_complete" [ style = bold] - "stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] --"stonith_complete" -> "rsc_stonith_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/ticket-master-21.exp b/pengine/test10/ticket-master-21.exp -index 5b21e47..e9482c4 100644 ---- a/pengine/test10/ticket-master-21.exp -+++ b/pengine/test10/ticket-master-21.exp -@@ -10,9 +10,6 @@ - <trigger> - <pseudo_event id="6" operation="stop" operation_key="rsc_stonith_stop_0"/> - </trigger> -- <trigger> -- <pseudo_event id="20" operation="stonith_complete" operation_key="stonith_complete"/> -- </trigger> - </inputs> - </synapse> - <synapse id="1"> -diff --git a/pengine/test10/ticket-master-9.dot b/pengine/test10/ticket-master-9.dot -index 40c2e7f..3a29836 100644 ---- a/pengine/test10/ticket-master-9.dot -+++ b/pengine/test10/ticket-master-9.dot -@@ -27,6 +27,5 @@ digraph "g" { - "stonith 'reboot' node1" -> "stonith_complete" [ style = bold] - "stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] --"stonith_complete" -> "rsc_stonith_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/ticket-master-9.exp b/pengine/test10/ticket-master-9.exp -index 5b21e47..e9482c4 100644 ---- a/pengine/test10/ticket-master-9.exp -+++ b/pengine/test10/ticket-master-9.exp -@@ -10,9 +10,6 @@ - <trigger> - <pseudo_event id="6" operation="stop" operation_key="rsc_stonith_stop_0"/> - </trigger> -- <trigger> -- <pseudo_event id="20" operation="stonith_complete" operation_key="stonith_complete"/> -- </trigger> - </inputs> - </synapse> - <synapse id="1"> diff --git a/SOURCES/bz1078078-pcmk-pe_fix_comments_and_formatting_for_pe_ordering_enum.patch b/SOURCES/bz1078078-pcmk-pe_fix_comments_and_formatting_for_pe_ordering_enum.patch deleted file mode 100644 index f9b3516..0000000 --- a/SOURCES/bz1078078-pcmk-pe_fix_comments_and_formatting_for_pe_ordering_enum.patch +++ /dev/null @@ -1,55 +0,0 @@ -commit 75a1451ef00947f7689d42d59efa92503485b8a3 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Apr 1 19:31:28 2014 +1100 - - Refactor: PE: Fix comments and formatting for pe_ordering enum - - (cherry picked from commit 43596dcacadbdd1199e1238052105914311b151c) - - Conflicts: - include/crm/pengine/status.h - -diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h -index 158a562..c81566a 100644 ---- a/include/crm/pengine/status.h -+++ b/include/crm/pengine/status.h -@@ -319,28 +319,28 @@ enum pe_link_state { - - /* *INDENT-OFF* */ - enum pe_ordering { -- pe_order_none = 0x0, /* deleted */ -- pe_order_optional = 0x1, /* pure ordering, nothing implied */ -+ pe_order_none = 0x0, /* deleted */ -+ pe_order_optional = 0x1, /* pure ordering, nothing implied */ - -- pe_order_implies_first = 0x10, /* If 'first' is required, ensure 'then' is too */ -- pe_order_implies_then = 0x20, /* If 'then' is required, ensure 'first' is too */ -+ pe_order_implies_first = 0x10, /* If 'then' is required, ensure 'first' is too */ -+ pe_order_implies_then = 0x20, /* If 'first' is required, ensure 'then' is too */ - pe_order_implies_first_master = 0x40, /* Imply 'first' is required when 'then' is required and then's rsc holds Master role. */ - - pe_order_runnable_left = 0x100, /* 'then' requires 'first' to be runnable */ - - pe_order_restart = 0x1000, /* 'then' is runnable if 'first' is optional or runnable */ -- pe_order_stonith_stop = 0x2000, /* only applies if the action is non-pseudo */ -- pe_order_serialize_only = 0x4000, /* serialize */ -+ pe_order_stonith_stop = 0x2000, /* only applies if the action is non-pseudo */ -+ pe_order_serialize_only = 0x4000, /* serialize */ - - pe_order_implies_first_printed = 0x10000, /* Like ..implies_first but only ensures 'first' is printed, not manditory */ -- pe_order_implies_then_printed = 0x20000, /* Like ..implies_then but only ensures 'then' is printed, not manditory */ -+ pe_order_implies_then_printed = 0x20000, /* Like ..implies_then but only ensures 'then' is printed, not manditory */ - -- pe_order_asymmetrical = 0x100000, /* Indicates asymmetrical one way ordering constraint. */ -- pe_order_load = 0x200000, /* Only relevant if... */ -- pe_order_one_or_more = 0x400000, /* 'then' is only runnable if one or more of it's dependancies are too */ -+ pe_order_asymmetrical = 0x100000, /* Indicates asymmetrical one way ordering constraint. */ -+ pe_order_load = 0x200000, /* Only relevant if... */ -+ pe_order_one_or_more = 0x400000, /* 'then' is only runnable if one or more of it's dependancies are too */ - pe_order_anti_colocation = 0x800000, - -- pe_order_trace = 0x4000000 /* test marker */ -+ pe_order_trace = 0x4000000, /* test marker */ - }; - /* *INDENT-ON* */ - diff --git a/SOURCES/bz1078078-pcmk-pe_include_stonith_operation_in_dot_graph_regression_test_results.patch b/SOURCES/bz1078078-pcmk-pe_include_stonith_operation_in_dot_graph_regression_test_results.patch deleted file mode 100644 index fbc2956..0000000 --- a/SOURCES/bz1078078-pcmk-pe_include_stonith_operation_in_dot_graph_regression_test_results.patch +++ /dev/null @@ -1,1092 +0,0 @@ -commit dfcfb5f354e6df601878ce6fbcc4ef7baaf8a969 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 2 15:30:45 2014 +1100 - - Test: PE: Include stonith operation in .dot graph regression test results - - (cherry picked from commit c1fb74e4a3fd39ee94182bfd6f26634cc7bdcdca) - - Conflicts: - pengine/test10/bug-5186-partial-migrate.dot - pengine/test10/remote-fence-unclean.dot - -diff --git a/pengine/test10/594.dot b/pengine/test10/594.dot -index 0e7a507..9e38bc6 100644 ---- a/pengine/test10/594.dot -+++ b/pengine/test10/594.dot -@@ -45,8 +45,8 @@ digraph "g" { - "rsc_hadev2_stop_0 hadev2" [ style=bold color="green" fontcolor="black" ] - "rsc_hadev3_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] - "rsc_hadev3_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] --"stonith hadev3" -> "stonith_complete" [ style = bold] --"stonith hadev3" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hadev3" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hadev3" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "DcIPaddr_start_0 hadev1" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc_hadev2_start_0 hadev1" [ style = bold] -diff --git a/pengine/test10/829.dot b/pengine/test10/829.dot -index cb41eda..85873cf 100644 ---- a/pengine/test10/829.dot -+++ b/pengine/test10/829.dot -@@ -57,11 +57,11 @@ digraph "g" { - "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] - "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] - "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] --"stonith c001n02" -> "DoFencing_stop_0" [ style = bold] --"stonith c001n02" -> "child_DoFencing:0_stop_0 c001n02" [ style = bold] --"stonith c001n02" -> "rsc_c001n02_stop_0 c001n02" [ style = bold] --"stonith c001n02" -> "stonith_complete" [ style = bold] --"stonith c001n02" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' c001n02" -> "DoFencing_stop_0" [ style = bold] -+"stonith 'reboot' c001n02" -> "child_DoFencing:0_stop_0 c001n02" [ style = bold] -+"stonith 'reboot' c001n02" -> "rsc_c001n02_stop_0 c001n02" [ style = bold] -+"stonith 'reboot' c001n02" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' c001n02" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc_c001n02_start_0 c001n01" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] -diff --git a/pengine/test10/bug-lf-2508.dot b/pengine/test10/bug-lf-2508.dot -index 918e4fa..6bef312 100644 ---- a/pengine/test10/bug-lf-2508.dot -+++ b/pengine/test10/bug-lf-2508.dot -@@ -91,19 +91,19 @@ digraph "g" { - "prmStonith4-3:1_stop_0 srv02" -> "grpStonith4:1_stopped_0" [ style = bold] - "prmStonith4-3:1_stop_0 srv02" -> "prmStonith4-1:1_stop_0 srv02" [ style = bold] - "prmStonith4-3:1_stop_0 srv02" [ style=bold color="green" fontcolor="orange"] --"stonith srv02" -> "Dummy02_stop_0 srv02" [ style = bold] --"stonith srv02" -> "Group02_stop_0" [ style = bold] --"stonith srv02" -> "clnStonith1_stop_0" [ style = bold] --"stonith srv02" -> "clnStonith3_stop_0" [ style = bold] --"stonith srv02" -> "clnStonith4_stop_0" [ style = bold] --"stonith srv02" -> "prmStonith1-1:1_stop_0 srv02" [ style = bold] --"stonith srv02" -> "prmStonith1-3:1_stop_0 srv02" [ style = bold] --"stonith srv02" -> "prmStonith3-1:1_stop_0 srv02" [ style = bold] --"stonith srv02" -> "prmStonith3-3:1_stop_0 srv02" [ style = bold] --"stonith srv02" -> "prmStonith4-1:1_stop_0 srv02" [ style = bold] --"stonith srv02" -> "prmStonith4-3:1_stop_0 srv02" [ style = bold] --"stonith srv02" -> "stonith_complete" [ style = bold] --"stonith srv02" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' srv02" -> "Dummy02_stop_0 srv02" [ style = bold] -+"stonith 'reboot' srv02" -> "Group02_stop_0" [ style = bold] -+"stonith 'reboot' srv02" -> "clnStonith1_stop_0" [ style = bold] -+"stonith 'reboot' srv02" -> "clnStonith3_stop_0" [ style = bold] -+"stonith 'reboot' srv02" -> "clnStonith4_stop_0" [ style = bold] -+"stonith 'reboot' srv02" -> "prmStonith1-1:1_stop_0 srv02" [ style = bold] -+"stonith 'reboot' srv02" -> "prmStonith1-3:1_stop_0 srv02" [ style = bold] -+"stonith 'reboot' srv02" -> "prmStonith3-1:1_stop_0 srv02" [ style = bold] -+"stonith 'reboot' srv02" -> "prmStonith3-3:1_stop_0 srv02" [ style = bold] -+"stonith 'reboot' srv02" -> "prmStonith4-1:1_stop_0 srv02" [ style = bold] -+"stonith 'reboot' srv02" -> "prmStonith4-3:1_stop_0 srv02" [ style = bold] -+"stonith 'reboot' srv02" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' srv02" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "Dummy01_start_0 srv01" [ style = bold] - "stonith_complete" -> "Dummy02_start_0 srv04" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] -diff --git a/pengine/test10/bug-lf-2551.dot b/pengine/test10/bug-lf-2551.dot -index b4a69db..3225e00 100644 ---- a/pengine/test10/bug-lf-2551.dot -+++ b/pengine/test10/bug-lf-2551.dot -@@ -51,33 +51,33 @@ digraph "g" { - "ocfs2-1:3_stop_0 hex-9" -> "base-group:3_stopped_0" [ style = bold] - "ocfs2-1:3_stop_0 hex-9" -> "vg1:3_stop_0 hex-9" [ style = bold] - "ocfs2-1:3_stop_0 hex-9" [ style=bold color="green" fontcolor="orange" ] --"stonith hex-9" -> "base-clone_stop_0" [ style = bold] --"stonith hex-9" -> "clvm:3_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "cmirrord:3_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "dlm:3_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "dummy1_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "fencing-sbd_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "o2cb:3_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "ocfs2-1:3_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "stonith_complete" [ style = bold] --"stonith hex-9" -> "vg1:3_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-03_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-06_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-09_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-13_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-17_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-21_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-25_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-29_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-33_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-37_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-41_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-45_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-49_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-53_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-57_stop_0 hex-9" [ style = bold] --"stonith hex-9" -> "vm-61_stop_0 hex-9" [ style = bold] --"stonith hex-9" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hex-9" -> "base-clone_stop_0" [ style = bold] -+"stonith 'reboot' hex-9" -> "clvm:3_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "cmirrord:3_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "dlm:3_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "dummy1_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "fencing-sbd_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "o2cb:3_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "ocfs2-1:3_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hex-9" -> "vg1:3_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-03_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-06_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-09_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-13_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-17_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-21_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-25_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-29_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-33_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-37_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-41_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-45_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-49_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-53_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-57_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" -> "vm-61_stop_0 hex-9" [ style = bold] -+"stonith 'reboot' hex-9" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "dummy1_start_0 hex-0" [ style = bold] - "stonith_complete" -> "fencing-sbd_start_0 hex-0" [ style = bold] -diff --git a/pengine/test10/bug-lf-2606.dot b/pengine/test10/bug-lf-2606.dot -index 403dc1e..612bd02 100644 ---- a/pengine/test10/bug-lf-2606.dot -+++ b/pengine/test10/bug-lf-2606.dot -@@ -24,13 +24,13 @@ digraph "g" { - "rsc3:1_stop_0 node2" -> "all_stopped" [ style = bold] - "rsc3:1_stop_0 node2" -> "ms3_stopped_0" [ style = bold] - "rsc3:1_stop_0 node2" [ style=bold color="green" fontcolor="orange"] --"stonith node2" -> "ms3_stop_0" [ style = bold] --"stonith node2" -> "rsc1_stop_0 node2" [ style = bold] --"stonith node2" -> "rsc2_stop_0 node2" [ style = bold] --"stonith node2" -> "rsc3:1_demote_0 node2" [ style = bold] --"stonith node2" -> "rsc3:1_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node2" -> "ms3_stop_0" [ style = bold] -+"stonith 'reboot' node2" -> "rsc1_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "rsc2_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "rsc3:1_demote_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "rsc3:1_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc2_start_0 node1" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] -diff --git a/pengine/test10/interleave-pseudo-stop.dot b/pengine/test10/interleave-pseudo-stop.dot -index 8c3ddd3..5b3d272 100644 ---- a/pengine/test10/interleave-pseudo-stop.dot -+++ b/pengine/test10/interleave-pseudo-stop.dot -@@ -91,19 +91,19 @@ digraph "g" { - "imagestorecloneset_stop_0" [ style=bold color="green" fontcolor="orange" ] - "imagestorecloneset_stopped_0" -> "imagestorecloneset_post_notify_stopped_0" [ style = bold] - "imagestorecloneset_stopped_0" [ style=bold color="green" fontcolor="orange" ] --"stonith node1" -> "configstoreclone:0_post_notify_stonith_0" [ style = bold] --"stonith node1" -> "configstoreclone:0_stop_0 node1" [ style = bold] --"stonith node1" -> "configstorecloneset_stop_0" [ style = bold] --"stonith node1" -> "evmsclone:0_post_notify_stonith_0" [ style = bold] --"stonith node1" -> "evmsclone:0_stop_0 node1" [ style = bold] --"stonith node1" -> "evmscloneset_stop_0" [ style = bold] --"stonith node1" -> "imagestoreclone:0_post_notify_stonith_0" [ style = bold] --"stonith node1" -> "imagestoreclone:0_stop_0 node1" [ style = bold] --"stonith node1" -> "imagestorecloneset_stop_0" [ style = bold] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" -> "stonithclone:0_stop_0 node1" [ style = bold] --"stonith node1" -> "stonithcloneset_stop_0" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "configstoreclone:0_post_notify_stonith_0" [ style = bold] -+"stonith 'reboot' node1" -> "configstoreclone:0_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "configstorecloneset_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "evmsclone:0_post_notify_stonith_0" [ style = bold] -+"stonith 'reboot' node1" -> "evmsclone:0_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "evmscloneset_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "imagestoreclone:0_post_notify_stonith_0" [ style = bold] -+"stonith 'reboot' node1" -> "imagestoreclone:0_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "imagestorecloneset_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" -> "stonithclone:0_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonithcloneset_stop_0" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - "stonithclone:0_stop_0 node1" -> "all_stopped" [ style = bold] -diff --git a/pengine/test10/master-7.dot b/pengine/test10/master-7.dot -index ae5e08e..61b0f1c 100644 ---- a/pengine/test10/master-7.dot -+++ b/pengine/test10/master-7.dot -@@ -127,16 +127,16 @@ digraph "g" { - "rsc_c001n01_stop_0 c001n01" -> "all_stopped" [ style = bold] - "rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n03" [ style = bold] - "rsc_c001n01_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] --"stonith c001n01" -> "DcIPaddr_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "DoFencing_stop_0" [ style = bold] --"stonith c001n01" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "master_rsc_1_stop_0" [ style = bold] --"stonith c001n01" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] --"stonith c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "ocf_msdummy:4_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "rsc_c001n01_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "stonith_complete" [ style = bold] --"stonith c001n01" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' c001n01" -> "DcIPaddr_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "DoFencing_stop_0" [ style = bold] -+"stonith 'reboot' c001n01" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "master_rsc_1_stop_0" [ style = bold] -+"stonith 'reboot' c001n01" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "ocf_msdummy:4_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "rsc_c001n01_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' c001n01" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "DcIPaddr_start_0 c001n03" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = bold] -diff --git a/pengine/test10/master-8.dot b/pengine/test10/master-8.dot -index a6ed1f6..70be8f1 100644 ---- a/pengine/test10/master-8.dot -+++ b/pengine/test10/master-8.dot -@@ -137,15 +137,15 @@ digraph "g" { - "rsc_c001n01_stop_0 c001n01" -> "all_stopped" [ style = bold] - "rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n03" [ style = bold] - "rsc_c001n01_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] --"stonith c001n01" -> "DcIPaddr_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "DoFencing_stop_0" [ style = bold] --"stonith c001n01" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "master_rsc_1_stop_0" [ style = bold] --"stonith c001n01" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] --"stonith c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "rsc_c001n01_stop_0 c001n01" [ style = bold] --"stonith c001n01" -> "stonith_complete" [ style = bold] --"stonith c001n01" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' c001n01" -> "DcIPaddr_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "DoFencing_stop_0" [ style = bold] -+"stonith 'reboot' c001n01" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "master_rsc_1_stop_0" [ style = bold] -+"stonith 'reboot' c001n01" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "rsc_c001n01_stop_0 c001n01" [ style = bold] -+"stonith 'reboot' c001n01" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' c001n01" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "DcIPaddr_start_0 c001n03" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = bold] -diff --git a/pengine/test10/migrate-fencing.dot b/pengine/test10/migrate-fencing.dot -index 8dd3e3a..1aa8d3c 100644 ---- a/pengine/test10/migrate-fencing.dot -+++ b/pengine/test10/migrate-fencing.dot -@@ -107,21 +107,21 @@ digraph "g" { - "stateful-1:1_promote_0 pcmk-1" [ style=bold color="green" fontcolor="black" ] - "stateful-1:2_monitor_15000 pcmk-2" [ style=bold color="green" fontcolor="black" ] - "stateful-1:3_monitor_15000 pcmk-3" [ style=bold color="green" fontcolor="black" ] --"stonith pcmk-4" -> "Connectivity_stop_0" [ style = bold] --"stonith pcmk-4" -> "FencingChild:0_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "Fencing_stop_0" [ style = bold] --"stonith pcmk-4" -> "group-1_stop_0" [ style = bold] --"stonith pcmk-4" -> "lsb-dummy_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "master-1_stop_0" [ style = bold] --"stonith pcmk-4" -> "ping-1:0_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "r192.168.101.181_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "r192.168.101.182_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "r192.168.101.183_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "rsc_pcmk-4_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "stateful-1:0_demote_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "stateful-1:0_stop_0 pcmk-4" [ style = bold] --"stonith pcmk-4" -> "stonith_complete" [ style = bold] --"stonith pcmk-4" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' pcmk-4" -> "Connectivity_stop_0" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "FencingChild:0_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "Fencing_stop_0" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "group-1_stop_0" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "lsb-dummy_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "master-1_stop_0" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "ping-1:0_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "r192.168.101.181_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "r192.168.101.182_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "r192.168.101.183_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "rsc_pcmk-4_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "stateful-1:0_demote_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "stateful-1:0_stop_0 pcmk-4" [ style = bold] -+"stonith 'reboot' pcmk-4" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' pcmk-4" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "lsb-dummy_start_0 pcmk-1" [ style = bold] - "stonith_complete" -> "migrator_migrate_to_0 pcmk-1" [ style = bold] -diff --git a/pengine/test10/rec-node-11.dot b/pengine/test10/rec-node-11.dot -index d78cf6b..2865f41 100644 ---- a/pengine/test10/rec-node-11.dot -+++ b/pengine/test10/rec-node-11.dot -@@ -44,11 +44,11 @@ digraph "g" { - "rsc3_stop_0 node2" -> "all_stopped" [ style = bold] - "rsc3_stop_0 node2" -> "rsc3_start_0 node2" [ style = bold] - "rsc3_stop_0 node2" [ style=bold color="green" fontcolor="black" ] --"stonith node1" -> "group1_stop_0" [ style = bold] --"stonith node1" -> "rsc1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc2_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "group1_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "rsc1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc2_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 node2" -> "probe_complete node2" [ style = bold] - "stonith-1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 node2" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/rec-node-12.dot b/pengine/test10/rec-node-12.dot -index 5f79a9a..8275a2e 100644 ---- a/pengine/test10/rec-node-12.dot -+++ b/pengine/test10/rec-node-12.dot -@@ -105,8 +105,8 @@ digraph "g" { - "rsc_c001n08_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] - "rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = bold] - "rsc_c001n08_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] --"stonith c001n02" -> "stonith_complete" [ style = bold] --"stonith c001n02" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' c001n02" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' c001n02" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "DcIPaddr_start_0 c001n08" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc_c001n01_start_0 c001n01" [ style = bold] -diff --git a/pengine/test10/rec-node-13.dot b/pengine/test10/rec-node-13.dot -index 9a55e66..094c241 100644 ---- a/pengine/test10/rec-node-13.dot -+++ b/pengine/test10/rec-node-13.dot -@@ -7,10 +7,10 @@ - "ocf_msdummy:6_stop_0 c001n04" -> "all_stopped" [ style = bold] - "ocf_msdummy:6_stop_0 c001n04" -> "master_rsc_1_stopped_0" [ style = bold] - "ocf_msdummy:6_stop_0 c001n04" [ style=bold color="green" fontcolor="orange" ] --"stonith c001n04" -> "master_rsc_1_stop_0" [ style = bold] --"stonith c001n04" -> "ocf_msdummy:6_stop_0 c001n04" [ style = bold] --"stonith c001n04" -> "stonith_complete" [ style = bold] --"stonith c001n04" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' c001n04" -> "master_rsc_1_stop_0" [ style = bold] -+"stonith 'reboot' c001n04" -> "ocf_msdummy:6_stop_0 c001n04" [ style = bold] -+"stonith 'reboot' c001n04" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' c001n04" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-14.dot b/pengine/test10/rec-node-14.dot -index 6f5956c..395fa89 100644 ---- a/pengine/test10/rec-node-14.dot -+++ b/pengine/test10/rec-node-14.dot -@@ -1,11 +1,11 @@ - digraph "g" { - "all_stopped" [ style=bold color="green" fontcolor="orange" ] --"stonith node1" -> "stonith node3" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] --"stonith node2" [ style=bold color="green" fontcolor="black" ] --"stonith node3" -> "stonith node2" [ style = bold] --"stonith node3" -> "stonith_complete" [ style = bold] --"stonith node3" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "stonith 'reboot' node3" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node3" -> "stonith 'reboot' node2" [ style = bold] -+"stonith 'reboot' node3" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node3" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/rec-node-15.dot b/pengine/test10/rec-node-15.dot -index a01ffd2..31d0929 100644 ---- a/pengine/test10/rec-node-15.dot -+++ b/pengine/test10/rec-node-15.dot -@@ -82,8 +82,8 @@ digraph "g" { - "probe_complete" -> "LVM_12_stop_0 sapcl02" [ style = bold] - "probe_complete" -> "stonith-1_start_0 sapcl01" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith sapcl03" -> "stonith_complete" [ style = bold] --"stonith sapcl03" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' sapcl03" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' sapcl03" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 sapcl01" -> "probe_complete sapcl01" [ style = bold] - "stonith-1_monitor_0 sapcl01" [ style=bold color="green" fontcolor="black" ] - "stonith-1_monitor_0 sapcl02" -> "probe_complete sapcl02" [ style = bold] -diff --git a/pengine/test10/rec-node-2.dot b/pengine/test10/rec-node-2.dot -index 23b3f2f..f8ba887 100644 ---- a/pengine/test10/rec-node-2.dot -+++ b/pengine/test10/rec-node-2.dot -@@ -46,8 +46,8 @@ digraph "g" { - "rsc6_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] - "rsc6_start_0 node2" -> "group2_running_0" [ style = bold] - "rsc6_start_0 node2" [ style=bold color="green" fontcolor="black" ] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 node2" -> "probe_complete node2" [ style = bold] - "stonith-1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 node2" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/rec-node-4.dot b/pengine/test10/rec-node-4.dot -index be10460..e5b31ef 100644 ---- a/pengine/test10/rec-node-4.dot -+++ b/pengine/test10/rec-node-4.dot -@@ -20,10 +20,10 @@ digraph "g" { - "rsc2_stop_0 node1" -> "all_stopped" [ style = bold] - "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] - "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="orange" ] --"stonith node1" -> "rsc1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc2_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "rsc1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc2_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 node2" -> "probe_complete node2" [ style = bold] - "stonith-1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 node2" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/rec-node-6.dot b/pengine/test10/rec-node-6.dot -index be10460..e5b31ef 100644 ---- a/pengine/test10/rec-node-6.dot -+++ b/pengine/test10/rec-node-6.dot -@@ -20,10 +20,10 @@ digraph "g" { - "rsc2_stop_0 node1" -> "all_stopped" [ style = bold] - "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] - "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="orange" ] --"stonith node1" -> "rsc1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc2_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "rsc1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc2_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 node2" -> "probe_complete node2" [ style = bold] - "stonith-1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 node2" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/rec-node-7.dot b/pengine/test10/rec-node-7.dot -index be10460..e5b31ef 100644 ---- a/pengine/test10/rec-node-7.dot -+++ b/pengine/test10/rec-node-7.dot -@@ -20,10 +20,10 @@ digraph "g" { - "rsc2_stop_0 node1" -> "all_stopped" [ style = bold] - "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] - "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="orange" ] --"stonith node1" -> "rsc1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc2_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "rsc1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc2_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 node2" -> "probe_complete node2" [ style = bold] - "stonith-1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 node2" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/rec-rsc-5.dot b/pengine/test10/rec-rsc-5.dot -index 48bad88..53b9521 100644 ---- a/pengine/test10/rec-rsc-5.dot -+++ b/pengine/test10/rec-rsc-5.dot -@@ -20,10 +20,10 @@ digraph "g" { - "rsc2_stop_0 node2" -> "all_stopped" [ style = bold] - "rsc2_stop_0 node2" -> "rsc2_start_0 node1" [ style = bold] - "rsc2_stop_0 node2" [ style=bold color="green" fontcolor="orange" ] --"stonith node2" -> "rsc1_stop_0 node2" [ style = bold] --"stonith node2" -> "rsc2_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node2" -> "rsc1_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "rsc2_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 node1" -> "probe_complete node1" [ style = bold] - "stonith-1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 node1" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/stonith-0.dot b/pengine/test10/stonith-0.dot -index db60eb9..29cdd59 100644 ---- a/pengine/test10/stonith-0.dot -+++ b/pengine/test10/stonith-0.dot -@@ -66,19 +66,19 @@ digraph "g" { - "rsc_c001n07_stop_0 c001n03" -> "all_stopped" [ style = bold] - "rsc_c001n07_stop_0 c001n03" -> "rsc_c001n07_start_0 c001n07" [ style = bold] - "rsc_c001n07_stop_0 c001n03" [ style=bold color="green" fontcolor="orange" ] --"stonith c001n03" -> "group-1_stop_0" [ style = bold] --"stonith c001n03" -> "heartbeat_192.168.100.182_stop_0 c001n03" [ style = bold] --"stonith c001n03" -> "ocf_192.168.100.181_stop_0 c001n03" [ style = bold] --"stonith c001n03" -> "ocf_192.168.100.183_stop_0 c001n03" [ style = bold] --"stonith c001n03" -> "rsc_c001n07_stop_0 c001n03" [ style = bold] --"stonith c001n03" [ style=bold color="green" fontcolor="black" ] --"stonith c001n05" -> "group-1_stop_0" [ style = bold] --"stonith c001n05" -> "ocf_192.168.100.181_stop_0 c001n05" [ style = bold] --"stonith c001n05" -> "ocf_192.168.100.183_stop_0 c001n05" [ style = bold] --"stonith c001n05" -> "rsc_c001n05_stop_0 c001n05" [ style = bold] --"stonith c001n05" -> "stonith c001n03" [ style = bold] --"stonith c001n05" -> "stonith_complete" [ style = bold] --"stonith c001n05" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' c001n03" -> "group-1_stop_0" [ style = bold] -+"stonith 'reboot' c001n03" -> "heartbeat_192.168.100.182_stop_0 c001n03" [ style = bold] -+"stonith 'reboot' c001n03" -> "ocf_192.168.100.181_stop_0 c001n03" [ style = bold] -+"stonith 'reboot' c001n03" -> "ocf_192.168.100.183_stop_0 c001n03" [ style = bold] -+"stonith 'reboot' c001n03" -> "rsc_c001n07_stop_0 c001n03" [ style = bold] -+"stonith 'reboot' c001n03" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' c001n05" -> "group-1_stop_0" [ style = bold] -+"stonith 'reboot' c001n05" -> "ocf_192.168.100.181_stop_0 c001n05" [ style = bold] -+"stonith 'reboot' c001n05" -> "ocf_192.168.100.183_stop_0 c001n05" [ style = bold] -+"stonith 'reboot' c001n05" -> "rsc_c001n05_stop_0 c001n05" [ style = bold] -+"stonith 'reboot' c001n05" -> "stonith 'reboot' c001n03" [ style = bold] -+"stonith 'reboot' c001n05" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' c001n05" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = bold] - "stonith_complete" -> "ocf_192.168.100.181_start_0 c001n02" [ style = bold] -diff --git a/pengine/test10/stonith-1.dot b/pengine/test10/stonith-1.dot -index 5ee6c1b..d64edcf 100644 ---- a/pengine/test10/stonith-1.dot -+++ b/pengine/test10/stonith-1.dot -@@ -88,15 +88,15 @@ digraph "g" { - "rsc_sles-3_stop_0 sles-3" -> "rsc_sles-3_start_0 sles-4" [ style = bold] - "rsc_sles-3_stop_0 sles-3" [ style=bold color="green" fontcolor="orange" ] - "rsc_sles-4_monitor_5000 sles-4" [ style=bold color="green" fontcolor="black" ] --"stonith sles-3" -> "DoFencing_stop_0" [ style = bold] --"stonith sles-3" -> "child_DoFencing:2_stop_0 sles-3" [ style = bold] --"stonith sles-3" -> "master_rsc_1_stop_0" [ style = bold] --"stonith sles-3" -> "migrator_stop_0 sles-3" [ style = bold] --"stonith sles-3" -> "ocf_msdummy:2_stop_0 sles-3" [ style = bold] --"stonith sles-3" -> "ocf_msdummy:5_stop_0 sles-3" [ style = bold] --"stonith sles-3" -> "rsc_sles-3_stop_0 sles-3" [ style = bold] --"stonith sles-3" -> "stonith_complete" [ style = bold] --"stonith sles-3" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' sles-3" -> "DoFencing_stop_0" [ style = bold] -+"stonith 'reboot' sles-3" -> "child_DoFencing:2_stop_0 sles-3" [ style = bold] -+"stonith 'reboot' sles-3" -> "master_rsc_1_stop_0" [ style = bold] -+"stonith 'reboot' sles-3" -> "migrator_stop_0 sles-3" [ style = bold] -+"stonith 'reboot' sles-3" -> "ocf_msdummy:2_stop_0 sles-3" [ style = bold] -+"stonith 'reboot' sles-3" -> "ocf_msdummy:5_stop_0 sles-3" [ style = bold] -+"stonith 'reboot' sles-3" -> "rsc_sles-3_stop_0 sles-3" [ style = bold] -+"stonith 'reboot' sles-3" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' sles-3" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "migrator_start_0 sles-4" [ style = bold] - "stonith_complete" -> "ocf_msdummy:0_start_0 sles-4" [ style = bold] -diff --git a/pengine/test10/stonith-2.dot b/pengine/test10/stonith-2.dot -index c5626c7..2e9420b 100644 ---- a/pengine/test10/stonith-2.dot -+++ b/pengine/test10/stonith-2.dot -@@ -3,8 +3,8 @@ digraph "g" { - "rsc_sles-5_monitor_5000 sles-6" [ style=bold color="green" fontcolor="black" ] - "rsc_sles-5_start_0 sles-6" -> "rsc_sles-5_monitor_5000 sles-6" [ style = bold] - "rsc_sles-5_start_0 sles-6" [ style=bold color="green" fontcolor="black" ] --"stonith sles-5" -> "stonith_complete" [ style = bold] --"stonith sles-5" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' sles-5" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' sles-5" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc_sles-5_start_0 sles-6" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] -diff --git a/pengine/test10/stonith-3.dot b/pengine/test10/stonith-3.dot -index f93ef79..df5f607 100644 ---- a/pengine/test10/stonith-3.dot -+++ b/pengine/test10/stonith-3.dot -@@ -23,8 +23,8 @@ digraph "g" { - "probe_complete" -> "prmIpPostgreSQLDB_start_0 rh5node2" [ style = bold] - "probe_complete" -> "prmStonith:0_start_0 rh5node2" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith rh5node1" -> "stonith_complete" [ style = bold] --"stonith rh5node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' rh5node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' rh5node1" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "prmIpPostgreSQLDB_start_0 rh5node2" [ style = bold] - "stonith_complete" -> "prmStonith:0_start_0 rh5node2" [ style = bold] -diff --git a/pengine/test10/stonith-4.dot b/pengine/test10/stonith-4.dot -index 1508fc8..24243d8 100644 ---- a/pengine/test10/stonith-4.dot -+++ b/pengine/test10/stonith-4.dot -@@ -15,14 +15,14 @@ digraph "g" { - "probe_complete pcmk-3" [ style=dashed color="red" fontcolor="black"] - "probe_complete" -> "Fencing_start_0 pcmk-1" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange"] --"stonith pcmk-10" -> "stonith pcmk-5" [ style = bold] --"stonith pcmk-10" [ style=bold color="green" fontcolor="black"] --"stonith pcmk-5" -> "stonith pcmk-7" [ style = bold] --"stonith pcmk-5" [ style=bold color="green" fontcolor="black"] --"stonith pcmk-7" -> "stonith pcmk-8" [ style = bold] --"stonith pcmk-7" [ style=bold color="green" fontcolor="black"] --"stonith pcmk-8" -> "stonith_complete" [ style = bold] --"stonith pcmk-8" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' pcmk-10" -> "stonith 'reboot' pcmk-5" [ style = bold] -+"stonith 'reboot' pcmk-10" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' pcmk-5" -> "stonith 'reboot' pcmk-7" [ style = bold] -+"stonith 'reboot' pcmk-5" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' pcmk-7" -> "stonith 'reboot' pcmk-8" [ style = bold] -+"stonith 'reboot' pcmk-7" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' pcmk-8" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' pcmk-8" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "Fencing_start_0 pcmk-1" [ style = bold] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] -diff --git a/pengine/test10/stop-failure-no-quorum.dot b/pengine/test10/stop-failure-no-quorum.dot -index 55faa45..e00258d 100644 ---- a/pengine/test10/stop-failure-no-quorum.dot -+++ b/pengine/test10/stop-failure-no-quorum.dot -@@ -10,10 +10,10 @@ digraph "g" { - "clvm_stop_0 pcmk-2" -> "clvm-clone_stopped_0" [ style = bold] - "clvm_stop_0 pcmk-2" [ style=bold color="green" fontcolor="orange"] - "dlm_monitor_60000 pcmk-1" [ style=dashed color="red" fontcolor="black"] --"stonith pcmk-2" -> "clvm-clone_stop_0" [ style = bold] --"stonith pcmk-2" -> "clvm_stop_0 pcmk-2" [ style = bold] --"stonith pcmk-2" -> "stonith_complete" [ style = bold] --"stonith pcmk-2" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' pcmk-2" -> "clvm-clone_stop_0" [ style = bold] -+"stonith 'reboot' pcmk-2" -> "clvm_stop_0 pcmk-2" [ style = bold] -+"stonith 'reboot' pcmk-2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' pcmk-2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/stop-failure-with-fencing.dot b/pengine/test10/stop-failure-with-fencing.dot -index a4dd5f8..cd5c089 100644 ---- a/pengine/test10/stop-failure-with-fencing.dot -+++ b/pengine/test10/stop-failure-with-fencing.dot -@@ -15,10 +15,10 @@ digraph "g" { - "probe_complete pcmk-1" -> "probe_complete" [ style = bold] - "probe_complete pcmk-1" [ style=bold color="green" fontcolor="black"] - "probe_complete" [ style=bold color="green" fontcolor="orange"] --"stonith pcmk-2" -> "clvm-clone_stop_0" [ style = bold] --"stonith pcmk-2" -> "clvm_stop_0 pcmk-2" [ style = bold] --"stonith pcmk-2" -> "stonith_complete" [ style = bold] --"stonith pcmk-2" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' pcmk-2" -> "clvm-clone_stop_0" [ style = bold] -+"stonith 'reboot' pcmk-2" -> "clvm_stop_0 pcmk-2" [ style = bold] -+"stonith 'reboot' pcmk-2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' pcmk-2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/systemhealth1.dot b/pengine/test10/systemhealth1.dot -index c47ce24..28841b7 100644 ---- a/pengine/test10/systemhealth1.dot -+++ b/pengine/test10/systemhealth1.dot -@@ -1,9 +1,9 @@ - digraph "g" { - "all_stopped" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21c" [ style=bold color="green" fontcolor="black" ] --"stonith hs21d" -> "stonith hs21c" [ style = bold] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21c" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' hs21d" -> "stonith 'reboot' hs21c" [ style = bold] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealth2.dot b/pengine/test10/systemhealth2.dot -index a3d05c0..dcf49eb 100644 ---- a/pengine/test10/systemhealth2.dot -+++ b/pengine/test10/systemhealth2.dot -@@ -16,8 +16,8 @@ digraph "g" { - "probe_complete" -> "nfs_1_start_0 hs21c" [ style = bold] - "probe_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 hs21c" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/systemhealth3.dot b/pengine/test10/systemhealth3.dot -index a3d05c0..dcf49eb 100644 ---- a/pengine/test10/systemhealth3.dot -+++ b/pengine/test10/systemhealth3.dot -@@ -16,8 +16,8 @@ digraph "g" { - "probe_complete" -> "nfs_1_start_0 hs21c" [ style = bold] - "probe_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 hs21c" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/systemhealthm1.dot b/pengine/test10/systemhealthm1.dot -index c47ce24..28841b7 100644 ---- a/pengine/test10/systemhealthm1.dot -+++ b/pengine/test10/systemhealthm1.dot -@@ -1,9 +1,9 @@ - digraph "g" { - "all_stopped" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21c" [ style=bold color="green" fontcolor="black" ] --"stonith hs21d" -> "stonith hs21c" [ style = bold] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21c" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' hs21d" -> "stonith 'reboot' hs21c" [ style = bold] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealthm2.dot b/pengine/test10/systemhealthm2.dot -index a3d05c0..dcf49eb 100644 ---- a/pengine/test10/systemhealthm2.dot -+++ b/pengine/test10/systemhealthm2.dot -@@ -16,8 +16,8 @@ digraph "g" { - "probe_complete" -> "nfs_1_start_0 hs21c" [ style = bold] - "probe_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 hs21c" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/systemhealthm3.dot b/pengine/test10/systemhealthm3.dot -index 987de92..2980e3f 100644 ---- a/pengine/test10/systemhealthm3.dot -+++ b/pengine/test10/systemhealthm3.dot -@@ -7,8 +7,8 @@ digraph "g" { - "probe_complete hs21c" -> "probe_complete" [ style = bold] - "probe_complete hs21c" [ style=bold color="green" fontcolor="black" ] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith_complete" -> "all_stopped" [ style = bold] -diff --git a/pengine/test10/systemhealthn1.dot b/pengine/test10/systemhealthn1.dot -index c47ce24..28841b7 100644 ---- a/pengine/test10/systemhealthn1.dot -+++ b/pengine/test10/systemhealthn1.dot -@@ -1,9 +1,9 @@ - digraph "g" { - "all_stopped" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21c" [ style=bold color="green" fontcolor="black" ] --"stonith hs21d" -> "stonith hs21c" [ style = bold] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21c" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' hs21d" -> "stonith 'reboot' hs21c" [ style = bold] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealthn2.dot b/pengine/test10/systemhealthn2.dot -index a3d05c0..dcf49eb 100644 ---- a/pengine/test10/systemhealthn2.dot -+++ b/pengine/test10/systemhealthn2.dot -@@ -16,8 +16,8 @@ digraph "g" { - "probe_complete" -> "nfs_1_start_0 hs21c" [ style = bold] - "probe_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 hs21c" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/systemhealthn3.dot b/pengine/test10/systemhealthn3.dot -index a3d05c0..dcf49eb 100644 ---- a/pengine/test10/systemhealthn3.dot -+++ b/pengine/test10/systemhealthn3.dot -@@ -16,8 +16,8 @@ digraph "g" { - "probe_complete" -> "nfs_1_start_0 hs21c" [ style = bold] - "probe_complete" -> "stonith-1_start_0 hs21c" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith-1_start_0 hs21c" [ style=bold color="green" fontcolor="black" ] -diff --git a/pengine/test10/systemhealtho1.dot b/pengine/test10/systemhealtho1.dot -index c47ce24..28841b7 100644 ---- a/pengine/test10/systemhealtho1.dot -+++ b/pengine/test10/systemhealtho1.dot -@@ -1,9 +1,9 @@ - digraph "g" { - "all_stopped" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21c" [ style=bold color="green" fontcolor="black" ] --"stonith hs21d" -> "stonith hs21c" [ style = bold] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21c" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' hs21d" -> "stonith 'reboot' hs21c" [ style = bold] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealtho2.dot b/pengine/test10/systemhealtho2.dot -index 987de92..2980e3f 100644 ---- a/pengine/test10/systemhealtho2.dot -+++ b/pengine/test10/systemhealtho2.dot -@@ -7,8 +7,8 @@ digraph "g" { - "probe_complete hs21c" -> "probe_complete" [ style = bold] - "probe_complete hs21c" [ style=bold color="green" fontcolor="black" ] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith_complete" -> "all_stopped" [ style = bold] -diff --git a/pengine/test10/systemhealtho3.dot b/pengine/test10/systemhealtho3.dot -index 987de92..2980e3f 100644 ---- a/pengine/test10/systemhealtho3.dot -+++ b/pengine/test10/systemhealtho3.dot -@@ -7,8 +7,8 @@ digraph "g" { - "probe_complete hs21c" -> "probe_complete" [ style = bold] - "probe_complete hs21c" [ style=bold color="green" fontcolor="black" ] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith_complete" -> "all_stopped" [ style = bold] -diff --git a/pengine/test10/systemhealthp1.dot b/pengine/test10/systemhealthp1.dot -index c47ce24..28841b7 100644 ---- a/pengine/test10/systemhealthp1.dot -+++ b/pengine/test10/systemhealthp1.dot -@@ -1,9 +1,9 @@ - digraph "g" { - "all_stopped" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21c" [ style=bold color="green" fontcolor="black" ] --"stonith hs21d" -> "stonith hs21c" [ style = bold] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21c" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' hs21d" -> "stonith 'reboot' hs21c" [ style = bold] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/systemhealthp2.dot b/pengine/test10/systemhealthp2.dot -index 8100587..bb9d914 100644 ---- a/pengine/test10/systemhealthp2.dot -+++ b/pengine/test10/systemhealthp2.dot -@@ -15,8 +15,8 @@ digraph "g" { - "probe_complete" -> "apache_1_start_0 hs21c" [ style = bold] - "probe_complete" -> "nfs_1_start_0 hs21c" [ style = bold] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith_complete" -> "all_stopped" [ style = bold] -diff --git a/pengine/test10/systemhealthp3.dot b/pengine/test10/systemhealthp3.dot -index 987de92..2980e3f 100644 ---- a/pengine/test10/systemhealthp3.dot -+++ b/pengine/test10/systemhealthp3.dot -@@ -7,8 +7,8 @@ digraph "g" { - "probe_complete hs21c" -> "probe_complete" [ style = bold] - "probe_complete hs21c" [ style=bold color="green" fontcolor="black" ] - "probe_complete" [ style=bold color="green" fontcolor="orange" ] --"stonith hs21d" -> "stonith_complete" [ style = bold] --"stonith hs21d" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' hs21d" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' hs21d" [ style=bold color="green" fontcolor="black"] - "stonith-1_monitor_0 hs21c" -> "probe_complete hs21c" [ style = bold] - "stonith-1_monitor_0 hs21c" [ style=bold color="green" fontcolor="black" ] - "stonith_complete" -> "all_stopped" [ style = bold] -diff --git a/pengine/test10/ticket-clone-21.dot b/pengine/test10/ticket-clone-21.dot -index 44a702e..c26817e 100644 ---- a/pengine/test10/ticket-clone-21.dot -+++ b/pengine/test10/ticket-clone-21.dot -@@ -13,15 +13,15 @@ digraph "g" { - "rsc1:1_stop_0 node1" [ style=bold color="green" fontcolor="orange"] - "rsc_stonith_stop_0 node1" -> "all_stopped" [ style = bold] - "rsc_stonith_stop_0 node1" [ style=bold color="green" fontcolor="orange"] --"stonith node1" -> "clone1_stop_0" [ style = bold] --"stonith node1" -> "rsc1:1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc_stonith_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith node2" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black"] --"stonith node2" -> "clone1_stop_0" [ style = bold] --"stonith node2" -> "rsc1:0_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node1" -> "clone1_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "rsc1:1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc_stonith_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith 'reboot' node2" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node2" -> "clone1_stop_0" [ style = bold] -+"stonith 'reboot' node2" -> "rsc1:0_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/ticket-clone-9.dot b/pengine/test10/ticket-clone-9.dot -index 20066c8..8abddd4 100644 ---- a/pengine/test10/ticket-clone-9.dot -+++ b/pengine/test10/ticket-clone-9.dot -@@ -13,15 +13,15 @@ digraph "g" { - "rsc1:1_stop_0 node1" [ style=bold color="green" fontcolor="orange" ] - "rsc_stonith_stop_0 node1" -> "all_stopped" [ style = bold] - "rsc_stonith_stop_0 node1" [ style=bold color="green" fontcolor="orange"] --"stonith node1" -> "clone1_stop_0" [ style = bold] --"stonith node1" -> "rsc1:1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc_stonith_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith node2" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] --"stonith node2" -> "clone1_stop_0" [ style = bold] --"stonith node2" -> "rsc1:0_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "clone1_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "rsc1:1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc_stonith_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith 'reboot' node2" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node2" -> "clone1_stop_0" [ style = bold] -+"stonith 'reboot' node2" -> "rsc1:0_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/ticket-group-21.dot b/pengine/test10/ticket-group-21.dot -index aeebada..cac1fc7 100644 ---- a/pengine/test10/ticket-group-21.dot -+++ b/pengine/test10/ticket-group-21.dot -@@ -13,11 +13,11 @@ digraph "g" { - "rsc2_stop_0 node2" -> "group1_stopped_0" [ style = bold] - "rsc2_stop_0 node2" -> "rsc1_stop_0 node2" [ style = bold] - "rsc2_stop_0 node2" [ style=bold color="green" fontcolor="orange"] --"stonith node2" -> "group1_stop_0" [ style = bold] --"stonith node2" -> "rsc1_stop_0 node2" [ style = bold] --"stonith node2" -> "rsc2_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node2" -> "group1_stop_0" [ style = bold] -+"stonith 'reboot' node2" -> "rsc1_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "rsc2_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/ticket-group-9.dot b/pengine/test10/ticket-group-9.dot -index 9991946..1649e62 100644 ---- a/pengine/test10/ticket-group-9.dot -+++ b/pengine/test10/ticket-group-9.dot -@@ -13,11 +13,11 @@ digraph "g" { - "rsc2_stop_0 node2" -> "group1_stopped_0" [ style = bold] - "rsc2_stop_0 node2" -> "rsc1_stop_0 node2" [ style = bold] - "rsc2_stop_0 node2" [ style=bold color="green" fontcolor="orange" ] --"stonith node2" -> "group1_stop_0" [ style = bold] --"stonith node2" -> "rsc1_stop_0 node2" [ style = bold] --"stonith node2" -> "rsc2_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node2" -> "group1_stop_0" [ style = bold] -+"stonith 'reboot' node2" -> "rsc1_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "rsc2_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/pengine/test10/ticket-master-21.dot b/pengine/test10/ticket-master-21.dot -index 9f04de9..e1abd95 100644 ---- a/pengine/test10/ticket-master-21.dot -+++ b/pengine/test10/ticket-master-21.dot -@@ -20,12 +20,12 @@ digraph "g" { - "rsc_stonith_stop_0 node1" -> "all_stopped" [ style = bold] - "rsc_stonith_stop_0 node1" -> "rsc_stonith_start_0 node2" [ style = bold] - "rsc_stonith_stop_0 node1" [ style=bold color="green" fontcolor="orange"] --"stonith node1" -> "ms1_stop_0" [ style = bold] --"stonith node1" -> "rsc1:1_demote_0 node1" [ style = bold] --"stonith node1" -> "rsc1:1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc_stonith_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node1" -> "ms1_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "rsc1:1_demote_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc1:1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc_stonith_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc_stonith_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] -diff --git a/pengine/test10/ticket-master-9.dot b/pengine/test10/ticket-master-9.dot -index 91a833a..40c2e7f 100644 ---- a/pengine/test10/ticket-master-9.dot -+++ b/pengine/test10/ticket-master-9.dot -@@ -20,12 +20,12 @@ digraph "g" { - "rsc_stonith_stop_0 node1" -> "all_stopped" [ style = bold] - "rsc_stonith_stop_0 node1" -> "rsc_stonith_start_0 node2" [ style = bold] - "rsc_stonith_stop_0 node1" [ style=bold color="green" fontcolor="orange"] --"stonith node1" -> "ms1_stop_0" [ style = bold] --"stonith node1" -> "rsc1:1_demote_0 node1" [ style = bold] --"stonith node1" -> "rsc1:1_stop_0 node1" [ style = bold] --"stonith node1" -> "rsc_stonith_stop_0 node1" [ style = bold] --"stonith node1" -> "stonith_complete" [ style = bold] --"stonith node1" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node1" -> "ms1_stop_0" [ style = bold] -+"stonith 'reboot' node1" -> "rsc1:1_demote_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc1:1_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "rsc_stonith_stop_0 node1" [ style = bold] -+"stonith 'reboot' node1" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node1" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" -> "rsc_stonith_start_0 node2" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] -diff --git a/pengine/test10/ticket-primitive-21.dot b/pengine/test10/ticket-primitive-21.dot -index f54e0f0..ba07df3 100644 ---- a/pengine/test10/ticket-primitive-21.dot -+++ b/pengine/test10/ticket-primitive-21.dot -@@ -3,9 +3,9 @@ digraph "g" { - "probe_complete node1" [ style=bold color="green" fontcolor="black"] - "rsc1_stop_0 node2" -> "all_stopped" [ style = bold] - "rsc1_stop_0 node2" [ style=bold color="green" fontcolor="orange"] --"stonith node2" -> "rsc1_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black"] -+"stonith 'reboot' node2" -> "rsc1_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/ticket-primitive-9.dot b/pengine/test10/ticket-primitive-9.dot -index 40a69d7..0036a23 100644 ---- a/pengine/test10/ticket-primitive-9.dot -+++ b/pengine/test10/ticket-primitive-9.dot -@@ -3,9 +3,9 @@ digraph "g" { - "probe_complete node1" [ style=bold color="green" fontcolor="black" ] - "rsc1_stop_0 node2" -> "all_stopped" [ style = bold] - "rsc1_stop_0 node2" [ style=bold color="green" fontcolor="orange" ] --"stonith node2" -> "rsc1_stop_0 node2" [ style = bold] --"stonith node2" -> "stonith_complete" [ style = bold] --"stonith node2" [ style=bold color="green" fontcolor="black" ] -+"stonith 'reboot' node2" -> "rsc1_stop_0 node2" [ style = bold] -+"stonith 'reboot' node2" -> "stonith_complete" [ style = bold] -+"stonith 'reboot' node2" [ style=bold color="green" fontcolor="black"] - "stonith_complete" -> "all_stopped" [ style = bold] - "stonith_complete" [ style=bold color="green" fontcolor="orange" ] - } -diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c -index 2eb68f1..9d20cdd 100644 ---- a/tools/crm_simulate.c -+++ b/tools/crm_simulate.c -@@ -758,7 +758,9 @@ create_action_name(action_t * action) - free(key); - - } else if (safe_str_eq(action->task, CRM_OP_FENCE)) { -- action_name = g_strdup_printf("%s%s %s", prefix ? prefix : "", action->task, action_host); -+ const char *op = g_hash_table_lookup(action->meta, "stonith_action"); -+ -+ action_name = g_strdup_printf("%s%s '%s' %s", prefix ? prefix : "", action->task, op, action_host); - - } else if (action->rsc && action_host) { - action_name = g_strdup_printf("%s%s %s", prefix ? prefix : "", action->uuid, action_host); diff --git a/SOURCES/bz1078078-pcmk-pe_include_stonith_operation_in_the_summary_results_and_handle_unfencing.patch b/SOURCES/bz1078078-pcmk-pe_include_stonith_operation_in_the_summary_results_and_handle_unfencing.patch deleted file mode 100644 index a964e70..0000000 --- a/SOURCES/bz1078078-pcmk-pe_include_stonith_operation_in_the_summary_results_and_handle_unfencing.patch +++ /dev/null @@ -1,734 +0,0 @@ -commit 54c57b981935172a28eea3c1e070c408642846b1 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 2 15:34:26 2014 +1100 - - Test: PE: Include stonith operation in the summary results and handle unfencing - - (cherry picked from commit 8d8de0a3ec77738e5d508b7e746c1d493c9617e1) - - Conflicts: - pengine/test10/bug-5186-partial-migrate.summary - pengine/test10/remote-fence-unclean.summary - -diff --git a/pengine/test10/594.summary b/pengine/test10/594.summary -index 865b386..08de5cc 100644 ---- a/pengine/test10/594.summary -+++ b/pengine/test10/594.summary -@@ -27,7 +27,7 @@ Executing cluster transition: - * Resource action: child_DoFencing:0 monitor on hadev1 - * Resource action: child_DoFencing:2 monitor on hadev2 - * Pseudo action: DoFencing_stop_0 -- * Fencing hadev3 -+ * Fencing hadev3 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Resource action: DcIPaddr start on hadev1 -diff --git a/pengine/test10/829.summary b/pengine/test10/829.summary -index f08a30a..cf23cf0 100644 ---- a/pengine/test10/829.summary -+++ b/pengine/test10/829.summary -@@ -36,7 +36,7 @@ Executing cluster transition: - * Resource action: child_DoFencing:2 monitor on c001n03 - * Resource action: child_DoFencing:3 monitor on c001n03 - * Resource action: child_DoFencing:3 monitor on c001n01 -- * Fencing c001n02 -+ * Fencing c001n02 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: rsc_c001n02_stop_0 -diff --git a/pengine/test10/bug-lf-2508.summary b/pengine/test10/bug-lf-2508.summary -index 4435ced..7f5aed1 100644 ---- a/pengine/test10/bug-lf-2508.summary -+++ b/pengine/test10/bug-lf-2508.summary -@@ -39,7 +39,7 @@ Transition Summary: - Executing cluster transition: - * Pseudo action: Group01_start_0 - * Resource action: prmStonith3-1:1 monitor=3600000 on srv01 -- * Fencing srv02 -+ * Fencing srv02 (reboot) - * Pseudo action: stonith_complete - * Resource action: Dummy01 start on srv01 - * Pseudo action: Group02_stop_0 -diff --git a/pengine/test10/bug-lf-2551.summary b/pengine/test10/bug-lf-2551.summary -index d299ee9..d362a23 100644 ---- a/pengine/test10/bug-lf-2551.summary -+++ b/pengine/test10/bug-lf-2551.summary -@@ -102,7 +102,7 @@ Transition Summary: - Executing cluster transition: - * Resource action: dummy1 monitor=300000 on hex-8 - * Resource action: dummy1 monitor=300000 on hex-7 -- * Fencing hex-9 -+ * Fencing hex-9 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: load_stopped_hex-8 - * Pseudo action: load_stopped_hex-7 -diff --git a/pengine/test10/bug-lf-2606.summary b/pengine/test10/bug-lf-2606.summary -index c03ed6a..baa0f3b 100644 ---- a/pengine/test10/bug-lf-2606.summary -+++ b/pengine/test10/bug-lf-2606.summary -@@ -17,7 +17,7 @@ Transition Summary: - - Executing cluster transition: - * Pseudo action: ms3_demote_0 -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: rsc1_stop_0 - * Pseudo action: rsc2_stop_0 -diff --git a/pengine/test10/interleave-pseudo-stop.summary b/pengine/test10/interleave-pseudo-stop.summary -index 7ac882d..ea86c4f 100644 ---- a/pengine/test10/interleave-pseudo-stop.summary -+++ b/pengine/test10/interleave-pseudo-stop.summary -@@ -22,7 +22,7 @@ Executing cluster transition: - * Pseudo action: evmscloneset_pre_notify_stop_0 - * Pseudo action: imagestorecloneset_pre_notify_stop_0 - * Pseudo action: configstorecloneset_pre_notify_stop_0 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: stonithcloneset_stop_0 - * Resource action: evmsclone:1 notify on node2 -diff --git a/pengine/test10/master-7.summary b/pengine/test10/master-7.summary -index 5102290..81aeed7 100644 ---- a/pengine/test10/master-7.summary -+++ b/pengine/test10/master-7.summary -@@ -55,7 +55,7 @@ Executing cluster transition: - * Resource action: ocf_msdummy:7 monitor on c001n03 - * Resource action: ocf_msdummy:7 monitor on c001n02 - * Pseudo action: master_rsc_1_demote_0 -- * Fencing c001n01 -+ * Fencing c001n01 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: DcIPaddr_stop_0 -diff --git a/pengine/test10/master-8.summary b/pengine/test10/master-8.summary -index 8828bfe..e12f791 100644 ---- a/pengine/test10/master-8.summary -+++ b/pengine/test10/master-8.summary -@@ -56,7 +56,7 @@ Executing cluster transition: - * Resource action: ocf_msdummy:7 monitor on c001n03 - * Resource action: ocf_msdummy:7 monitor on c001n02 - * Pseudo action: master_rsc_1_demote_0 -- * Fencing c001n01 -+ * Fencing c001n01 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: DcIPaddr_stop_0 -diff --git a/pengine/test10/migrate-fencing.summary b/pengine/test10/migrate-fencing.summary -index 920e754..e8bcd45 100644 ---- a/pengine/test10/migrate-fencing.summary -+++ b/pengine/test10/migrate-fencing.summary -@@ -36,7 +36,7 @@ Transition Summary: - Executing cluster transition: - * Resource action: stateful-1:3 monitor=15000 on pcmk-3 - * Resource action: stateful-1:2 monitor=15000 on pcmk-2 -- * Fencing pcmk-4 -+ * Fencing pcmk-4 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: Fencing_stop_0 - * Pseudo action: rsc_pcmk-4_stop_0 -diff --git a/pengine/test10/rec-node-11.summary b/pengine/test10/rec-node-11.summary -index 5ba0c0d..d2ad78a 100644 ---- a/pengine/test10/rec-node-11.summary -+++ b/pengine/test10/rec-node-11.summary -@@ -19,7 +19,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on node2 - * Resource action: rsc1 monitor on node2 - * Resource action: rsc2 monitor on node2 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Resource action: stonith-1 start on node2 -diff --git a/pengine/test10/rec-node-12.summary b/pengine/test10/rec-node-12.summary -index eeccb53..4fd63b4 100644 ---- a/pengine/test10/rec-node-12.summary -+++ b/pengine/test10/rec-node-12.summary -@@ -53,7 +53,7 @@ Executing cluster transition: - * Resource action: child_DoFencing:3 monitor on c001n03 - * Resource action: child_DoFencing:3 monitor on c001n01 - * Pseudo action: DoFencing_start_0 -- * Fencing c001n02 -+ * Fencing c001n02 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/rec-node-13.summary b/pengine/test10/rec-node-13.summary -index 356b67d..82f210a 100644 ---- a/pengine/test10/rec-node-13.summary -+++ b/pengine/test10/rec-node-13.summary -@@ -37,7 +37,7 @@ Transition Summary: - * Stop ocf_msdummy:6 (c001n04) - - Executing cluster transition: -- * Fencing c001n04 -+ * Fencing c001n04 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: master_rsc_1_stop_0 - * Pseudo action: ocf_msdummy:6_stop_0 -diff --git a/pengine/test10/rec-node-14.summary b/pengine/test10/rec-node-14.summary -index 231decd..d97d943 100644 ---- a/pengine/test10/rec-node-14.summary -+++ b/pengine/test10/rec-node-14.summary -@@ -10,9 +10,9 @@ Node node3 (uuid3): UNCLEAN (offline) - Transition Summary: - - Executing cluster transition: -- * Fencing node1 -- * Fencing node3 -- * Fencing node2 -+ * Fencing node1 (reboot) -+ * Fencing node3 (reboot) -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - -diff --git a/pengine/test10/rec-node-15.summary b/pengine/test10/rec-node-15.summary -index 570433c..85bfed5 100644 ---- a/pengine/test10/rec-node-15.summary -+++ b/pengine/test10/rec-node-15.summary -@@ -36,7 +36,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on sapcl01 - * Pseudo action: app02_stop_0 - * Pseudo action: oracle_start_0 -- * Fencing sapcl03 -+ * Fencing sapcl03 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Resource action: stonith-1 start on sapcl01 -diff --git a/pengine/test10/rec-node-2.summary b/pengine/test10/rec-node-2.summary -index 645ef46..daa2879 100644 ---- a/pengine/test10/rec-node-2.summary -+++ b/pengine/test10/rec-node-2.summary -@@ -32,7 +32,7 @@ Executing cluster transition: - * Pseudo action: group2_start_0 - * Resource action: rsc5 monitor on node2 - * Resource action: rsc6 monitor on node2 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/rec-node-4.summary b/pengine/test10/rec-node-4.summary -index 782c377..295da1d 100644 ---- a/pengine/test10/rec-node-4.summary -+++ b/pengine/test10/rec-node-4.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on node2 - * Resource action: rsc1 monitor on node2 - * Resource action: rsc2 monitor on node2 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Resource action: stonith-1 start on node2 -diff --git a/pengine/test10/rec-node-6.summary b/pengine/test10/rec-node-6.summary -index 2bd563b..300d61b 100644 ---- a/pengine/test10/rec-node-6.summary -+++ b/pengine/test10/rec-node-6.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on node2 - * Resource action: rsc1 monitor on node2 - * Resource action: rsc2 monitor on node2 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Resource action: stonith-1 start on node2 -diff --git a/pengine/test10/rec-node-7.summary b/pengine/test10/rec-node-7.summary -index 782c377..295da1d 100644 ---- a/pengine/test10/rec-node-7.summary -+++ b/pengine/test10/rec-node-7.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on node2 - * Resource action: rsc1 monitor on node2 - * Resource action: rsc2 monitor on node2 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Resource action: stonith-1 start on node2 -diff --git a/pengine/test10/rec-rsc-5.summary b/pengine/test10/rec-rsc-5.summary -index 9c9239b..549abe6 100644 ---- a/pengine/test10/rec-rsc-5.summary -+++ b/pengine/test10/rec-rsc-5.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on node1 - * Resource action: rsc1 monitor on node1 - * Resource action: rsc2 monitor on node1 -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Resource action: stonith-1 start on node1 -diff --git a/pengine/test10/stonith-0.summary b/pengine/test10/stonith-0.summary -index 9330291..4ec1ff7 100644 ---- a/pengine/test10/stonith-0.summary -+++ b/pengine/test10/stonith-0.summary -@@ -45,8 +45,8 @@ Transition Summary: - - Executing cluster transition: - * Resource action: child_DoFencing:4 monitor=20000 on c001n08 -- * Fencing c001n05 -- * Fencing c001n03 -+ * Fencing c001n05 (reboot) -+ * Fencing c001n03 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: group-1_stop_0 - * Pseudo action: ocf_192.168.100.183_stop_0 -diff --git a/pengine/test10/stonith-1.summary b/pengine/test10/stonith-1.summary -index d3e81db..ed83ad7 100644 ---- a/pengine/test10/stonith-1.summary -+++ b/pengine/test10/stonith-1.summary -@@ -44,7 +44,7 @@ Executing cluster transition: - * Resource action: lsb_dummy monitor=5000 on sles-2 - * Resource action: rsc_sles-2 monitor=5000 on sles-2 - * Resource action: rsc_sles-4 monitor=5000 on sles-4 -- * Fencing sles-3 -+ * Fencing sles-3 (reboot) - * Pseudo action: stonith_complete - * Resource action: r192.168.100.183 start on sles-1 - * Pseudo action: migrator_stop_0 -diff --git a/pengine/test10/stonith-2.summary b/pengine/test10/stonith-2.summary -index f02dd74..169f44f 100644 ---- a/pengine/test10/stonith-2.summary -+++ b/pengine/test10/stonith-2.summary -@@ -36,7 +36,7 @@ Transition Summary: - * Start rsc_sles-5 (sles-6) - - Executing cluster transition: -- * Fencing sles-5 -+ * Fencing sles-5 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - * Resource action: rsc_sles-5 start on sles-6 -diff --git a/pengine/test10/stonith-3.summary b/pengine/test10/stonith-3.summary -index b5b6d8a..095ce73 100644 ---- a/pengine/test10/stonith-3.summary -+++ b/pengine/test10/stonith-3.summary -@@ -15,7 +15,7 @@ Executing cluster transition: - * Resource action: prmIpPostgreSQLDB monitor on rh5node2 - * Resource action: prmStonith:0 monitor on rh5node2 - * Pseudo action: clnStonith_start_0 -- * Fencing rh5node1 -+ * Fencing rh5node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/stonith-4.summary b/pengine/test10/stonith-4.summary -index 1f87015..2e12deb 100644 ---- a/pengine/test10/stonith-4.summary -+++ b/pengine/test10/stonith-4.summary -@@ -17,10 +17,10 @@ Transition Summary: - * Start Fencing (pcmk-1) - - Executing cluster transition: -- * Fencing pcmk-10 -- * Fencing pcmk-5 -- * Fencing pcmk-7 -- * Fencing pcmk-8 -+ * Fencing pcmk-10 (reboot) -+ * Fencing pcmk-5 (reboot) -+ * Fencing pcmk-7 (reboot) -+ * Fencing pcmk-8 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - Transition failed: terminated -diff --git a/pengine/test10/stop-failure-no-quorum.summary b/pengine/test10/stop-failure-no-quorum.summary -index 49a0f54..d57bdc6 100644 ---- a/pengine/test10/stop-failure-no-quorum.summary -+++ b/pengine/test10/stop-failure-no-quorum.summary -@@ -22,7 +22,7 @@ Transition Summary: - * Start Fencing (pcmk-1 - blocked) - - Executing cluster transition: -- * Fencing pcmk-2 -+ * Fencing pcmk-2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: clvm-clone_stop_0 - * Pseudo action: clvm_stop_0 -diff --git a/pengine/test10/stop-failure-with-fencing.summary b/pengine/test10/stop-failure-with-fencing.summary -index 0473b80..de74dbc 100644 ---- a/pengine/test10/stop-failure-with-fencing.summary -+++ b/pengine/test10/stop-failure-with-fencing.summary -@@ -22,7 +22,7 @@ Transition Summary: - - Executing cluster transition: - * Resource action: Fencing monitor on pcmk-1 -- * Fencing pcmk-2 -+ * Fencing pcmk-2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: clvm-clone_stop_0 -diff --git a/pengine/test10/systemhealth1.summary b/pengine/test10/systemhealth1.summary -index 49c6579..bbdbcaf 100644 ---- a/pengine/test10/systemhealth1.summary -+++ b/pengine/test10/systemhealth1.summary -@@ -10,8 +10,8 @@ Node hs21d (737318c6-0f92-4592-9754-45967d45aff7): UNCLEAN (offline) - Transition Summary: - - Executing cluster transition: -- * Fencing hs21d -- * Fencing hs21c -+ * Fencing hs21d (reboot) -+ * Fencing hs21c (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - -diff --git a/pengine/test10/systemhealth2.summary b/pengine/test10/systemhealth2.summary -index dfdfa02..0ca09d0 100644 ---- a/pengine/test10/systemhealth2.summary -+++ b/pengine/test10/systemhealth2.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealth3.summary b/pengine/test10/systemhealth3.summary -index dfdfa02..0ca09d0 100644 ---- a/pengine/test10/systemhealth3.summary -+++ b/pengine/test10/systemhealth3.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealthm1.summary b/pengine/test10/systemhealthm1.summary -index 49c6579..bbdbcaf 100644 ---- a/pengine/test10/systemhealthm1.summary -+++ b/pengine/test10/systemhealthm1.summary -@@ -10,8 +10,8 @@ Node hs21d (737318c6-0f92-4592-9754-45967d45aff7): UNCLEAN (offline) - Transition Summary: - - Executing cluster transition: -- * Fencing hs21d -- * Fencing hs21c -+ * Fencing hs21d (reboot) -+ * Fencing hs21c (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - -diff --git a/pengine/test10/systemhealthm2.summary b/pengine/test10/systemhealthm2.summary -index dfdfa02..0ca09d0 100644 ---- a/pengine/test10/systemhealthm2.summary -+++ b/pengine/test10/systemhealthm2.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealthm3.summary b/pengine/test10/systemhealthm3.summary -index 6964943..7fcab05 100644 ---- a/pengine/test10/systemhealthm3.summary -+++ b/pengine/test10/systemhealthm3.summary -@@ -13,7 +13,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealthn1.summary b/pengine/test10/systemhealthn1.summary -index 49c6579..bbdbcaf 100644 ---- a/pengine/test10/systemhealthn1.summary -+++ b/pengine/test10/systemhealthn1.summary -@@ -10,8 +10,8 @@ Node hs21d (737318c6-0f92-4592-9754-45967d45aff7): UNCLEAN (offline) - Transition Summary: - - Executing cluster transition: -- * Fencing hs21d -- * Fencing hs21c -+ * Fencing hs21d (reboot) -+ * Fencing hs21c (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - -diff --git a/pengine/test10/systemhealthn2.summary b/pengine/test10/systemhealthn2.summary -index dfdfa02..0ca09d0 100644 ---- a/pengine/test10/systemhealthn2.summary -+++ b/pengine/test10/systemhealthn2.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealthn3.summary b/pengine/test10/systemhealthn3.summary -index dfdfa02..0ca09d0 100644 ---- a/pengine/test10/systemhealthn3.summary -+++ b/pengine/test10/systemhealthn3.summary -@@ -16,7 +16,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealtho1.summary b/pengine/test10/systemhealtho1.summary -index 49c6579..bbdbcaf 100644 ---- a/pengine/test10/systemhealtho1.summary -+++ b/pengine/test10/systemhealtho1.summary -@@ -10,8 +10,8 @@ Node hs21d (737318c6-0f92-4592-9754-45967d45aff7): UNCLEAN (offline) - Transition Summary: - - Executing cluster transition: -- * Fencing hs21d -- * Fencing hs21c -+ * Fencing hs21d (reboot) -+ * Fencing hs21c (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - -diff --git a/pengine/test10/systemhealtho2.summary b/pengine/test10/systemhealtho2.summary -index 6964943..7fcab05 100644 ---- a/pengine/test10/systemhealtho2.summary -+++ b/pengine/test10/systemhealtho2.summary -@@ -13,7 +13,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealtho3.summary b/pengine/test10/systemhealtho3.summary -index 6964943..7fcab05 100644 ---- a/pengine/test10/systemhealtho3.summary -+++ b/pengine/test10/systemhealtho3.summary -@@ -13,7 +13,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealthp1.summary b/pengine/test10/systemhealthp1.summary -index 49c6579..bbdbcaf 100644 ---- a/pengine/test10/systemhealthp1.summary -+++ b/pengine/test10/systemhealthp1.summary -@@ -10,8 +10,8 @@ Node hs21d (737318c6-0f92-4592-9754-45967d45aff7): UNCLEAN (offline) - Transition Summary: - - Executing cluster transition: -- * Fencing hs21d -- * Fencing hs21c -+ * Fencing hs21d (reboot) -+ * Fencing hs21c (reboot) - * Pseudo action: stonith_complete - * Pseudo action: all_stopped - -diff --git a/pengine/test10/systemhealthp2.summary b/pengine/test10/systemhealthp2.summary -index f01150f..12a888c 100644 ---- a/pengine/test10/systemhealthp2.summary -+++ b/pengine/test10/systemhealthp2.summary -@@ -15,7 +15,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/systemhealthp3.summary b/pengine/test10/systemhealthp3.summary -index 6964943..7fcab05 100644 ---- a/pengine/test10/systemhealthp3.summary -+++ b/pengine/test10/systemhealthp3.summary -@@ -13,7 +13,7 @@ Executing cluster transition: - * Resource action: stonith-1 monitor on hs21c - * Resource action: apache_1 monitor on hs21c - * Resource action: nfs_1 monitor on hs21c -- * Fencing hs21d -+ * Fencing hs21d (reboot) - * Pseudo action: stonith_complete - * Pseudo action: probe_complete - * Pseudo action: all_stopped -diff --git a/pengine/test10/ticket-clone-21.summary b/pengine/test10/ticket-clone-21.summary -index 7973159..5ae23ec 100644 ---- a/pengine/test10/ticket-clone-21.summary -+++ b/pengine/test10/ticket-clone-21.summary -@@ -12,9 +12,9 @@ Transition Summary: - * Stop rsc1:1 (node2) - - Executing cluster transition: -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: rsc_stonith_stop_0 -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: clone1_stop_0 - * Pseudo action: rsc1:1_stop_0 -diff --git a/pengine/test10/ticket-clone-9.summary b/pengine/test10/ticket-clone-9.summary -index 7973159..5ae23ec 100644 ---- a/pengine/test10/ticket-clone-9.summary -+++ b/pengine/test10/ticket-clone-9.summary -@@ -12,9 +12,9 @@ Transition Summary: - * Stop rsc1:1 (node2) - - Executing cluster transition: -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: rsc_stonith_stop_0 -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: clone1_stop_0 - * Pseudo action: rsc1:1_stop_0 -diff --git a/pengine/test10/ticket-group-21.summary b/pengine/test10/ticket-group-21.summary -index c0783e0..9027d2c 100644 ---- a/pengine/test10/ticket-group-21.summary -+++ b/pengine/test10/ticket-group-21.summary -@@ -12,7 +12,7 @@ Transition Summary: - * Stop rsc2 (node2) - - Executing cluster transition: -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: group1_stop_0 - * Pseudo action: rsc2_stop_0 -diff --git a/pengine/test10/ticket-group-9.summary b/pengine/test10/ticket-group-9.summary -index c0783e0..9027d2c 100644 ---- a/pengine/test10/ticket-group-9.summary -+++ b/pengine/test10/ticket-group-9.summary -@@ -12,7 +12,7 @@ Transition Summary: - * Stop rsc2 (node2) - - Executing cluster transition: -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: group1_stop_0 - * Pseudo action: rsc2_stop_0 -diff --git a/pengine/test10/ticket-master-21.summary b/pengine/test10/ticket-master-21.summary -index ca5bf84..64a9cbe 100644 ---- a/pengine/test10/ticket-master-21.summary -+++ b/pengine/test10/ticket-master-21.summary -@@ -13,7 +13,7 @@ Transition Summary: - - Executing cluster transition: - * Pseudo action: ms1_demote_0 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: rsc_stonith_stop_0 - * Pseudo action: rsc1:1_demote_0 -diff --git a/pengine/test10/ticket-master-9.summary b/pengine/test10/ticket-master-9.summary -index ca5bf84..64a9cbe 100644 ---- a/pengine/test10/ticket-master-9.summary -+++ b/pengine/test10/ticket-master-9.summary -@@ -13,7 +13,7 @@ Transition Summary: - - Executing cluster transition: - * Pseudo action: ms1_demote_0 -- * Fencing node1 -+ * Fencing node1 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: rsc_stonith_stop_0 - * Pseudo action: rsc1:1_demote_0 -diff --git a/pengine/test10/ticket-primitive-21.summary b/pengine/test10/ticket-primitive-21.summary -index 3afd279..6c523fe 100644 ---- a/pengine/test10/ticket-primitive-21.summary -+++ b/pengine/test10/ticket-primitive-21.summary -@@ -9,7 +9,7 @@ Transition Summary: - * Stop rsc1 (node2) - - Executing cluster transition: -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: rsc1_stop_0 - * Pseudo action: all_stopped -diff --git a/pengine/test10/ticket-primitive-9.summary b/pengine/test10/ticket-primitive-9.summary -index 3afd279..6c523fe 100644 ---- a/pengine/test10/ticket-primitive-9.summary -+++ b/pengine/test10/ticket-primitive-9.summary -@@ -9,7 +9,7 @@ Transition Summary: - * Stop rsc1 (node2) - - Executing cluster transition: -- * Fencing node2 -+ * Fencing node2 (reboot) - * Pseudo action: stonith_complete - * Pseudo action: rsc1_stop_0 - * Pseudo action: all_stopped -diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c -index 9d20cdd..e81d4ee 100644 ---- a/tools/crm_simulate.c -+++ b/tools/crm_simulate.c -@@ -497,31 +497,36 @@ exec_crmd_action(crm_graph_t * graph, crm_action_t * action) - static gboolean - exec_stonith_action(crm_graph_t * graph, crm_action_t * action) - { -- int rc = 0; -- char xpath[STATUS_PATH_MAX]; -+ const char *op = crm_meta_value(action->params, "stonith_action"); - char *target = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); -- xmlNode *cib_node = modify_node(global_cib, target, FALSE); - -- crm_xml_add(cib_node, XML_ATTR_ORIGIN, __FUNCTION__); -- CRM_ASSERT(cib_node != NULL); -+ quiet_log(" * Fencing %s (%s)\n", target, op); -+ if(safe_str_neq(op, "on")) { -+ int rc = 0; -+ char xpath[STATUS_PATH_MAX]; -+ xmlNode *cib_node = modify_node(global_cib, target, FALSE); - -- quiet_log(" * Fencing %s\n", target); -- rc = global_cib->cmds->replace(global_cib, XML_CIB_TAG_STATUS, cib_node, -+ crm_xml_add(cib_node, XML_ATTR_ORIGIN, __FUNCTION__); -+ CRM_ASSERT(cib_node != NULL); -+ -+ rc = global_cib->cmds->replace(global_cib, XML_CIB_TAG_STATUS, cib_node, - cib_sync_call | cib_scope_local); -- CRM_ASSERT(rc == pcmk_ok); -+ CRM_ASSERT(rc == pcmk_ok); - -- snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, XML_CIB_TAG_LRM); -- rc = global_cib->cmds->delete(global_cib, xpath, NULL, -- cib_xpath | cib_sync_call | cib_scope_local); -+ snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, XML_CIB_TAG_LRM); -+ rc = global_cib->cmds->delete(global_cib, xpath, NULL, -+ cib_xpath | cib_sync_call | cib_scope_local); - -- snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, -- XML_TAG_TRANSIENT_NODEATTRS); -- rc = global_cib->cmds->delete(global_cib, xpath, NULL, -- cib_xpath | cib_sync_call | cib_scope_local); -+ snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, -+ XML_TAG_TRANSIENT_NODEATTRS); -+ rc = global_cib->cmds->delete(global_cib, xpath, NULL, -+ cib_xpath | cib_sync_call | cib_scope_local); -+ -+ free_xml(cib_node); -+ } - - action->confirmed = TRUE; - update_graph(graph, action); -- free_xml(cib_node); - free(target); - return TRUE; - } diff --git a/SOURCES/bz1078078-pcmk-pe_indicate_the_type_of_fencing_in_the_fencing_operation_key.patch b/SOURCES/bz1078078-pcmk-pe_indicate_the_type_of_fencing_in_the_fencing_operation_key.patch deleted file mode 100644 index af405dc..0000000 --- a/SOURCES/bz1078078-pcmk-pe_indicate_the_type_of_fencing_in_the_fencing_operation_key.patch +++ /dev/null @@ -1,3230 +0,0 @@ -commit cce2536efbed5b3bed24e6ad13532dc4db55d4ae -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Apr 1 15:13:21 2014 +1100 - - Refactor: PE: Indicate the type of fencing in the fencing operation key - - (cherry picked from commit 22dbe7cdda718563d02f65b0009b1984497a0947) - - Conflicts: - pengine/test10/594.exp - pengine/test10/829.exp - pengine/test10/bug-5186-partial-migrate.exp - pengine/test10/bug-lf-2508.exp - pengine/test10/bug-lf-2551.exp - pengine/test10/bug-lf-2606.exp - pengine/test10/interleave-pseudo-stop.exp - pengine/test10/master-7.exp - pengine/test10/master-8.exp - pengine/test10/migrate-fencing.exp - pengine/test10/rec-node-11.exp - pengine/test10/rec-node-12.exp - pengine/test10/rec-node-13.exp - pengine/test10/rec-node-14.exp - pengine/test10/rec-node-15.exp - pengine/test10/rec-node-2.exp - pengine/test10/rec-node-4.exp - pengine/test10/rec-node-6.exp - pengine/test10/rec-node-7.exp - pengine/test10/rec-rsc-5.exp - pengine/test10/remote-fence-unclean.exp - pengine/test10/stonith-0.exp - pengine/test10/stonith-1.exp - pengine/test10/stonith-2.exp - pengine/test10/stonith-3.exp - pengine/test10/stonith-4.exp - pengine/test10/stop-failure-no-quorum.exp - pengine/test10/stop-failure-with-fencing.exp - pengine/test10/systemhealth1.exp - pengine/test10/systemhealth2.exp - pengine/test10/systemhealth3.exp - pengine/test10/systemhealthm1.exp - pengine/test10/systemhealthm2.exp - pengine/test10/systemhealthm3.exp - pengine/test10/systemhealthn1.exp - pengine/test10/systemhealthn2.exp - pengine/test10/systemhealthn3.exp - pengine/test10/systemhealtho1.exp - pengine/test10/systemhealtho2.exp - pengine/test10/systemhealtho3.exp - pengine/test10/systemhealthp1.exp - pengine/test10/systemhealthp2.exp - pengine/test10/systemhealthp3.exp - pengine/test10/ticket-clone-21.exp - pengine/test10/ticket-clone-9.exp - pengine/test10/ticket-group-21.exp - pengine/test10/ticket-group-9.exp - pengine/test10/ticket-master-21.exp - pengine/test10/ticket-master-9.exp - pengine/test10/ticket-primitive-21.exp - pengine/test10/ticket-primitive-9.exp - -diff --git a/pengine/allocate.c b/pengine/allocate.c -index e535b84..a8e5412 100644 ---- a/pengine/allocate.c -+++ b/pengine/allocate.c -@@ -1265,15 +1265,21 @@ any_managed_resources(pe_working_set_t * data_set) - action_t * - pe_fence_op(node_t * node, const char *op, pe_working_set_t * data_set) - { -- action_t *stonith_op = -- custom_action(NULL, g_strdup_printf("%s-%s", CRM_OP_FENCE, node->details->uname), -- CRM_OP_FENCE, node, FALSE, TRUE, data_set); -+ action_t *stonith_op = NULL; -+ -+ if(op == NULL) { -+ op = data_set->stonith_action; -+ } -+ -+ stonith_op = custom_action( -+ NULL, g_strdup_printf("%s-%s-%s", CRM_OP_FENCE, node->details->uname, op), -+ CRM_OP_FENCE, node, FALSE, TRUE, data_set); - - add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET, node->details->uname); - - add_hash_param(stonith_op->meta, XML_LRM_ATTR_TARGET_UUID, node->details->id); - -- add_hash_param(stonith_op->meta, "stonith_action", op ? op : data_set->stonith_action); -+ add_hash_param(stonith_op->meta, "stonith_action", op); - - return stonith_op; - } -diff --git a/pengine/test10/594.exp b/pengine/test10/594.exp -index 5cb6931..f1e77f8 100644 ---- a/pengine/test10/594.exp -+++ b/pengine/test10/594.exp -@@ -183,7 +183,7 @@ - </synapse> - <synapse id="15"> - <action_set> -- <crm_event id="37" operation="stonith" operation_key="stonith-hadev3" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"> -+ <crm_event id="37" operation="stonith" operation_key="stonith-hadev3-reboot" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"> - <attributes CRM_meta_on_node="hadev3" CRM_meta_on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -215,7 +215,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="37" operation="stonith" operation_key="stonith-hadev3" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"/> -+ <crm_event id="37" operation="stonith" operation_key="stonith-hadev3-reboot" on_node="hadev3" on_node_uuid="879e65f8-4b38-4c56-9552-4752ad436669"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/829.exp b/pengine/test10/829.exp -index 4562aed..749014f 100644 ---- a/pengine/test10/829.exp -+++ b/pengine/test10/829.exp -@@ -78,7 +78,7 @@ - <pseudo_event id="9" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="53" operation="stonith" operation_key="stonith-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <crm_event id="53" operation="stonith" operation_key="stonith-c001n02-reboot" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - </inputs> - </synapse> -@@ -159,7 +159,7 @@ - <pseudo_event id="50" operation="stop" operation_key="DoFencing_stop_0"/> - </trigger> - <trigger> -- <crm_event id="53" operation="stonith" operation_key="stonith-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <crm_event id="53" operation="stonith" operation_key="stonith-c001n02-reboot" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - </inputs> - </synapse> -@@ -240,13 +240,13 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="53" operation="stonith" operation_key="stonith-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <crm_event id="53" operation="stonith" operation_key="stonith-c001n02-reboot" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - </inputs> - </synapse> - <synapse id="23"> - <action_set> -- <crm_event id="53" operation="stonith" operation_key="stonith-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <crm_event id="53" operation="stonith" operation_key="stonith-c001n02-reboot" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_on_node="c001n02" CRM_meta_on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -260,7 +260,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="53" operation="stonith" operation_key="stonith-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <crm_event id="53" operation="stonith" operation_key="stonith-c001n02-reboot" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-5186-partial-migrate.exp b/pengine/test10/bug-5186-partial-migrate.exp -new file mode 100644 -index 0000000..7e10e3a ---- /dev/null -+++ b/pengine/test10/bug-5186-partial-migrate.exp -@@ -0,0 +1,425 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="17" operation="start" operation_key="prmDummy_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"> -+ <primitive id="prmDummy" class="ocf" provider="pacemaker" type="Dummy"/> -+ <attributes CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="16" operation="stop" operation_key="prmDummy_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <pseudo_event id="16" operation="stop" operation_key="prmDummy_stop_0"> -+ <attributes CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="20" operation="monitor" operation_key="prmVM2_monitor_10000" on_node="bl460g1n8" on_node_uuid="3232261594"> -+ <primitive id="prmVM2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_on_fail="restart" CRM_meta_record_pending="true" CRM_meta_timeout="30000" config="/migrate_test/config/vm2.xml" hypervisor="qemu:///system" migration_transport="ssh"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="prmVM2_start_0" on_node="bl460g1n8" on_node_uuid="3232261594"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="prmVM2_start_0" on_node="bl460g1n8" on_node_uuid="3232261594"> -+ <primitive id="prmVM2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_name="start" CRM_meta_on_fail="restart" CRM_meta_record_pending="true" CRM_meta_timeout="120000" config="/migrate_test/config/vm2.xml" hypervisor="qemu:///system" migration_transport="ssh"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="1" operation="stop" operation_key="prmVM2_stop_0" on_node="bl460g1n6" on_node_uuid="3232261592"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="18" operation="stop" operation_key="prmVM2_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <pseudo_event id="18" operation="stop" operation_key="prmVM2_stop_0"> -+ <attributes CRM_meta_name="stop" CRM_meta_on_fail="fence" CRM_meta_record_pending="true" CRM_meta_timeout="120000" config="/migrate_test/config/vm2.xml" hypervisor="qemu:///system" migration_transport="ssh"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="1" operation="stop" operation_key="prmVM2_stop_0" on_node="bl460g1n6" on_node_uuid="3232261592"> -+ <primitive id="prmVM2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_name="stop" CRM_meta_on_fail="fence" CRM_meta_record_pending="true" CRM_meta_timeout="120000" config="/migrate_test/config/vm2.xml" hypervisor="qemu:///system" migration_transport="ssh"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <pseudo_event id="46" operation="stopped" operation_key="grpStonith8_stopped_0"> -+ <attributes CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="37" operation="stop" operation_key="prmStonith8-1_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="40" operation="stop" operation_key="prmStonith8-2_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="45" operation="stop" operation_key="grpStonith8_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <pseudo_event id="45" operation="stop" operation_key="grpStonith8_stop_0"> -+ <attributes CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <pseudo_event id="44" operation="running" operation_key="grpStonith8_running_0"> -+ <attributes CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="38" operation="start" operation_key="prmStonith8-1_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="41" operation="start" operation_key="prmStonith8-2_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="43" operation="start" operation_key="grpStonith8_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <pseudo_event id="43" operation="start" operation_key="grpStonith8_start_0"> -+ <attributes CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="46" operation="stopped" operation_key="grpStonith8_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="39" operation="monitor" operation_key="prmStonith8-1_monitor_10000" on_node="bl460g1n6" on_node_uuid="3232261592"> -+ <primitive id="prmStonith8-1" class="stonith" type="external/stonith-helper"/> -+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_on_fail="restart" CRM_meta_record_pending="true" CRM_meta_timeout="60000" dead_check_target="192.168.133.218 192.168.101.218 192.168.102.218 192.168.201.218 192.168.133.238" hostlist="bl460g1n8" pcmk_reboot_retries="1" pcmk_reboot_timeout="40s" run_standby_wait="no"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="38" operation="start" operation_key="prmStonith8-1_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="38" operation="start" operation_key="prmStonith8-1_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"> -+ <primitive id="prmStonith8-1" class="stonith" type="external/stonith-helper"/> -+ <attributes CRM_meta_name="start" CRM_meta_on_fail="restart" CRM_meta_record_pending="true" CRM_meta_timeout="60000" dead_check_target="192.168.133.218 192.168.101.218 192.168.102.218 192.168.201.218 192.168.133.238" hostlist="bl460g1n8" pcmk_reboot_retries="1" pcmk_reboot_timeout="40s" run_standby_wait="no"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="37" operation="stop" operation_key="prmStonith8-1_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="43" operation="start" operation_key="grpStonith8_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <pseudo_event id="37" operation="stop" operation_key="prmStonith8-1_stop_0"> -+ <attributes CRM_meta_name="stop" CRM_meta_on_fail="ignore" CRM_meta_record_pending="true" CRM_meta_timeout="60000" dead_check_target="192.168.133.218 192.168.101.218 192.168.102.218 192.168.201.218 192.168.133.238" hostlist="bl460g1n8" pcmk_reboot_retries="1" pcmk_reboot_timeout="40s" run_standby_wait="no"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="40" operation="stop" operation_key="prmStonith8-2_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="45" operation="stop" operation_key="grpStonith8_stop_0"/> -+ </trigger> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <rsc_op id="42" operation="monitor" operation_key="prmStonith8-2_monitor_3600000" on_node="bl460g1n6" on_node_uuid="3232261592"> -+ <primitive id="prmStonith8-2" class="stonith" type="external/ipmi"/> -+ <attributes CRM_meta_interval="3600000" CRM_meta_name="monitor" CRM_meta_on_fail="restart" CRM_meta_record_pending="true" CRM_meta_timeout="60000" hostname="bl460g1n8" interface="lanplus" ipaddr="192.168.133.238" passwd="PASSW0RD" pcmk_reboot_retries="1" pcmk_reboot_timeout="60s" userid="USERID"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="41" operation="start" operation_key="prmStonith8-2_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <rsc_op id="41" operation="start" operation_key="prmStonith8-2_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"> -+ <primitive id="prmStonith8-2" class="stonith" type="external/ipmi"/> -+ <attributes CRM_meta_name="start" CRM_meta_on_fail="restart" CRM_meta_record_pending="true" CRM_meta_timeout="60000" hostname="bl460g1n8" interface="lanplus" ipaddr="192.168.133.238" passwd="PASSW0RD" pcmk_reboot_retries="1" pcmk_reboot_timeout="60s" userid="USERID"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="38" operation="start" operation_key="prmStonith8-1_start_0" on_node="bl460g1n6" on_node_uuid="3232261592"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="40" operation="stop" operation_key="prmStonith8-2_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="43" operation="start" operation_key="grpStonith8_start_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="15"> -+ <action_set> -+ <pseudo_event id="40" operation="stop" operation_key="prmStonith8-2_stop_0"> -+ <attributes CRM_meta_name="stop" CRM_meta_on_fail="ignore" CRM_meta_record_pending="true" CRM_meta_timeout="60000" hostname="bl460g1n8" interface="lanplus" ipaddr="192.168.133.238" passwd="PASSW0RD" pcmk_reboot_retries="1" pcmk_reboot_timeout="60s" userid="USERID"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="45" operation="stop" operation_key="grpStonith8_stop_0"/> -+ </trigger> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <pseudo_event id="47" operation="stop" operation_key="prmDiskd1_stop_0" internal_operation_key="prmDiskd1:0_stop_0"> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_on_fail="ignore" CRM_meta_record_pending="true" CRM_meta_timeout="60000" device="/dev/mapper/lun1" interval="10" name="diskcheck_status" options="-e"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="54" operation="stop" operation_key="clnDiskd1_stop_0"/> -+ </trigger> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="17" priority="1000000"> -+ <action_set> -+ <pseudo_event id="55" operation="stopped" operation_key="clnDiskd1_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="47" operation="stop" operation_key="prmDiskd1_stop_0" internal_operation_key="prmDiskd1:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="54" operation="stop" operation_key="clnDiskd1_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="18"> -+ <action_set> -+ <pseudo_event id="54" operation="stop" operation_key="clnDiskd1_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="19"> -+ <action_set> -+ <pseudo_event id="56" operation="stop" operation_key="prmDiskd2_stop_0" internal_operation_key="prmDiskd2:0_stop_0"> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_on_fail="ignore" CRM_meta_record_pending="true" CRM_meta_timeout="60000" interval="10" name="diskcheck_status_internal" write_dir="/tmp/tmp2"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="63" operation="stop" operation_key="clnDiskd2_stop_0"/> -+ </trigger> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="20" priority="1000000"> -+ <action_set> -+ <pseudo_event id="64" operation="stopped" operation_key="clnDiskd2_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="56" operation="stop" operation_key="prmDiskd2_stop_0" internal_operation_key="prmDiskd2:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="63" operation="stop" operation_key="clnDiskd2_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="21"> -+ <action_set> -+ <pseudo_event id="63" operation="stop" operation_key="clnDiskd2_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="22"> -+ <action_set> -+ <pseudo_event id="65" operation="stop" operation_key="prmPing_stop_0" internal_operation_key="prmPing:0_stop_0"> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_on_fail="ignore" CRM_meta_record_pending="true" CRM_meta_timeout="60000" attempts="2" host_list="192.168.201.254" multiplier="100" name="default_ping_set" timeout="2"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="72" operation="stop" operation_key="clnPing_stop_0"/> -+ </trigger> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="23" priority="1000000"> -+ <action_set> -+ <pseudo_event id="73" operation="stopped" operation_key="clnPing_stopped_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="65" operation="stop" operation_key="prmPing_stop_0" internal_operation_key="prmPing:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="72" operation="stop" operation_key="clnPing_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="24"> -+ <action_set> -+ <pseudo_event id="72" operation="stop" operation_key="clnPing_stop_0"> -+ <attributes CRM_meta_clone_max="3" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="25"> -+ <action_set> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"> -+ <attributes CRM_meta_default_ping_set="100" CRM_meta_diskcheck_status="normal" CRM_meta_diskcheck_status_internal="normal" CRM_meta_on_node="bl460g1n7" CRM_meta_on_node_uuid="3232261593" CRM_meta_probe_complete="true" CRM_meta_ringnumber_0="192.168.101.217 is UP" CRM_meta_ringnumber_1="192.168.102.217 is UP" CRM_meta_shutdown="0" CRM_meta_stonith_action="reboot" /> -+ </crm_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="26"> -+ <action_set> -+ <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="75" operation="stonith" operation_key="stonith-bl460g1n7-reboot" on_node="bl460g1n7" on_node_uuid="3232261593"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="27"> -+ <action_set> -+ <pseudo_event id="12" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="1" operation="stop" operation_key="prmVM2_stop_0" on_node="bl460g1n6" on_node_uuid="3232261592"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="16" operation="stop" operation_key="prmDummy_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="18" operation="stop" operation_key="prmVM2_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="37" operation="stop" operation_key="prmStonith8-1_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="40" operation="stop" operation_key="prmStonith8-2_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="47" operation="stop" operation_key="prmDiskd1_stop_0" internal_operation_key="prmDiskd1:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="56" operation="stop" operation_key="prmDiskd2_stop_0" internal_operation_key="prmDiskd2:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="65" operation="stop" operation_key="prmPing_stop_0" internal_operation_key="prmPing:0_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="74" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/bug-lf-2508.exp b/pengine/test10/bug-lf-2508.exp -index 3e54b30..d56002e 100644 ---- a/pengine/test10/bug-lf-2508.exp -+++ b/pengine/test10/bug-lf-2508.exp -@@ -74,7 +74,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -148,7 +148,7 @@ - <pseudo_event id="34" operation="stop" operation_key="Group02_stop_0"/> - </trigger> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -196,7 +196,7 @@ - <pseudo_event id="54" operation="stop" operation_key="grpStonith1:1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -211,7 +211,7 @@ - <pseudo_event id="54" operation="stop" operation_key="grpStonith1:1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -238,7 +238,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -286,7 +286,7 @@ - <pseudo_event id="108" operation="stop" operation_key="grpStonith3:0_stop_0"/> - </trigger> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -301,7 +301,7 @@ - <pseudo_event id="108" operation="stop" operation_key="grpStonith3:0_stop_0"/> - </trigger> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -393,7 +393,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -468,7 +468,7 @@ - <pseudo_event id="147" operation="stop" operation_key="grpStonith4:1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -483,7 +483,7 @@ - <pseudo_event id="147" operation="stop" operation_key="grpStonith4:1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -@@ -510,13 +510,13 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> - <synapse id="36"> - <action_set> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"> - <attributes CRM_meta_on_node="srv02" CRM_meta_on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -530,7 +530,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="166" operation="stonith" operation_key="stonith-srv02" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> -+ <crm_event id="166" operation="stonith" operation_key="stonith-srv02-reboot" on_node="srv02" on_node_uuid="71085d5e-1c63-49e0-8c8c-400d610b4182"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-lf-2551.exp b/pengine/test10/bug-lf-2551.exp -index 5c2fd65..7790199 100644 ---- a/pengine/test10/bug-lf-2551.exp -+++ b/pengine/test10/bug-lf-2551.exp -@@ -23,7 +23,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -82,7 +82,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -142,7 +142,7 @@ - <pseudo_event id="226" operation="stop" operation_key="base-group:3_stop_0"/> - </trigger> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -160,7 +160,7 @@ - <pseudo_event id="226" operation="stop" operation_key="base-group:3_stop_0"/> - </trigger> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -178,7 +178,7 @@ - <pseudo_event id="226" operation="stop" operation_key="base-group:3_stop_0"/> - </trigger> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -196,7 +196,7 @@ - <pseudo_event id="226" operation="stop" operation_key="base-group:3_stop_0"/> - </trigger> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -214,7 +214,7 @@ - <pseudo_event id="226" operation="stop" operation_key="base-group:3_stop_0"/> - </trigger> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -229,7 +229,7 @@ - <pseudo_event id="226" operation="stop" operation_key="base-group:3_stop_0"/> - </trigger> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -304,7 +304,7 @@ - <pseudo_event id="247" operation="stop" operation_key="vm-61_stop_0"/> - </trigger> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -316,7 +316,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -328,7 +328,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -340,7 +340,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -352,7 +352,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -364,7 +364,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -376,7 +376,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -388,7 +388,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -400,7 +400,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -412,7 +412,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -424,7 +424,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -436,7 +436,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -448,7 +448,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -460,7 +460,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -472,7 +472,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -484,7 +484,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -@@ -496,13 +496,13 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> - <synapse id="33"> - <action_set> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"> - <attributes CRM_meta_on_node="hex-9" CRM_meta_on_node_uuid="hex-9" CRM_meta_probe_complete="true" CRM_meta_standby="off" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -516,7 +516,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="249" operation="stonith" operation_key="stonith-hex-9" on_node="hex-9" on_node_uuid="hex-9"/> -+ <crm_event id="249" operation="stonith" operation_key="stonith-hex-9-reboot" on_node="hex-9" on_node_uuid="hex-9"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-lf-2606.exp b/pengine/test10/bug-lf-2606.exp -index ae490e6..270131a 100644 ---- a/pengine/test10/bug-lf-2606.exp -+++ b/pengine/test10/bug-lf-2606.exp -@@ -7,7 +7,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="24" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="24" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -48,7 +48,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="24" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="24" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -66,7 +66,7 @@ - <pseudo_event id="17" operation="stop" operation_key="ms3_stop_0"/> - </trigger> - <trigger> -- <crm_event id="24" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="24" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -81,7 +81,7 @@ - <pseudo_event id="21" operation="demote" operation_key="ms3_demote_0"/> - </trigger> - <trigger> -- <crm_event id="24" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="24" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -134,13 +134,13 @@ - <pseudo_event id="22" operation="demoted" operation_key="ms3_demoted_0"/> - </trigger> - <trigger> -- <crm_event id="24" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="24" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> - <synapse id="10"> - <action_set> -- <crm_event id="24" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"> -+ <crm_event id="24" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="node2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -154,7 +154,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="24" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="24" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/interleave-pseudo-stop.exp b/pengine/test10/interleave-pseudo-stop.exp -index ae5c9a6..a5e8880 100644 ---- a/pengine/test10/interleave-pseudo-stop.exp -+++ b/pengine/test10/interleave-pseudo-stop.exp -@@ -10,7 +10,7 @@ - <pseudo_event id="12" operation="stop" operation_key="stonithcloneset_stop_0"/> - </trigger> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -37,7 +37,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -93,7 +93,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -114,7 +114,7 @@ - <pseudo_event id="46" operation="stop" operation_key="configstoreclone:0_stop_0" internal_operation_key="configstoreclone:1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -203,7 +203,7 @@ - <pseudo_event id="58" operation="notified" operation_key="configstorecloneset_confirmed-post_notify_stopped_0"/> - </trigger> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -259,7 +259,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -274,7 +274,7 @@ - <pseudo_event id="38" operation="stop" operation_key="imagestorecloneset_stop_0"/> - </trigger> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -357,7 +357,7 @@ - <pseudo_event id="41" operation="notified" operation_key="imagestorecloneset_confirmed-pre_notify_stop_0"/> - </trigger> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -413,7 +413,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -428,7 +428,7 @@ - <pseudo_event id="53" operation="stop" operation_key="configstorecloneset_stop_0"/> - </trigger> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -@@ -511,13 +511,13 @@ - <pseudo_event id="56" operation="notified" operation_key="configstorecloneset_confirmed-pre_notify_stop_0"/> - </trigger> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> - <synapse id="36"> - <action_set> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -531,7 +531,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="60" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> -+ <crm_event id="60" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="f6d93040-a9ad-4745-a647-57ed32444ca8"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-7.exp b/pengine/test10/master-7.exp -index b9b246c..4fba172 100644 ---- a/pengine/test10/master-7.exp -+++ b/pengine/test10/master-7.exp -@@ -39,7 +39,7 @@ - <pseudo_event id="18" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -349,7 +349,7 @@ - <pseudo_event id="18" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -367,7 +367,7 @@ - <pseudo_event id="72" operation="stop" operation_key="DoFencing_stop_0"/> - </trigger> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -430,7 +430,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -451,7 +451,7 @@ - <pseudo_event id="91" operation="stop" operation_key="master_rsc_1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -466,7 +466,7 @@ - <pseudo_event id="95" operation="demote" operation_key="master_rsc_1_demote_0"/> - </trigger> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -484,7 +484,7 @@ - <pseudo_event id="91" operation="stop" operation_key="master_rsc_1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -621,13 +621,13 @@ - <pseudo_event id="96" operation="demoted" operation_key="master_rsc_1_demoted_0"/> - </trigger> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> - <synapse id="45"> - <action_set> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_on_node="c001n01" CRM_meta_on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -641,7 +641,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="98" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="98" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/master-8.exp b/pengine/test10/master-8.exp -index e6c73a0..c0cd853 100644 ---- a/pengine/test10/master-8.exp -+++ b/pengine/test10/master-8.exp -@@ -39,7 +39,7 @@ - <pseudo_event id="17" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -349,7 +349,7 @@ - <pseudo_event id="17" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -367,7 +367,7 @@ - <pseudo_event id="72" operation="stop" operation_key="DoFencing_stop_0"/> - </trigger> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -430,7 +430,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -489,7 +489,7 @@ - <pseudo_event id="90" operation="stop" operation_key="master_rsc_1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -504,7 +504,7 @@ - <pseudo_event id="94" operation="demote" operation_key="master_rsc_1_demote_0"/> - </trigger> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -647,7 +647,7 @@ - <pseudo_event id="95" operation="demoted" operation_key="master_rsc_1_demoted_0"/> - </trigger> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -@@ -683,7 +683,7 @@ - </synapse> - <synapse id="49"> - <action_set> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"> - <attributes CRM_meta_on_node="c001n01" CRM_meta_on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -697,7 +697,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="97" operation="stonith" operation_key="stonith-c001n01" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> -+ <crm_event id="97" operation="stonith" operation_key="stonith-c001n01-reboot" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/migrate-fencing.exp b/pengine/test10/migrate-fencing.exp -index 0fba419..02b70c8 100644 ---- a/pengine/test10/migrate-fencing.exp -+++ b/pengine/test10/migrate-fencing.exp -@@ -10,7 +10,7 @@ - <pseudo_event id="33" operation="stop" operation_key="Fencing_stop_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -37,7 +37,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -73,7 +73,7 @@ - <pseudo_event id="57" operation="stop" operation_key="lsb-dummy_stop_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -159,7 +159,7 @@ - <pseudo_event id="46" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -212,7 +212,7 @@ - <pseudo_event id="46" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -262,7 +262,7 @@ - <pseudo_event id="46" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -303,7 +303,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -347,7 +347,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -429,7 +429,7 @@ - <pseudo_event id="72" operation="stop" operation_key="Connectivity_stop_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -456,7 +456,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -474,7 +474,7 @@ - <pseudo_event id="88" operation="stop" operation_key="master-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -489,7 +489,7 @@ - <pseudo_event id="92" operation="demote" operation_key="master-1_demote_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -@@ -620,13 +620,13 @@ - <pseudo_event id="93" operation="demoted" operation_key="master-1_demoted_0"/> - </trigger> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> - <synapse id="42"> - <action_set> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"> - <attributes CRM_meta_connected="1" CRM_meta_on_node="pcmk-4" CRM_meta_on_node_uuid="pcmk-4" CRM_meta_op_no_wait="true" CRM_meta_probe_complete="true" CRM_meta_standby="off" CRM_meta_stonith_action="reboot" CRM_meta_terminate="1" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -640,7 +640,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4" on_node="pcmk-4" on_node_uuid="pcmk-4"/> -+ <crm_event id="95" operation="stonith" operation_key="stonith-pcmk-4-reboot" on_node="pcmk-4" on_node_uuid="pcmk-4"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-11.exp b/pengine/test10/rec-node-11.exp -index 09aaddf..173df21 100644 ---- a/pengine/test10/rec-node-11.exp -+++ b/pengine/test10/rec-node-11.exp -@@ -50,7 +50,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="19" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="19" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -126,7 +126,7 @@ - <pseudo_event id="14" operation="stop" operation_key="group1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="19" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="19" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -178,7 +178,7 @@ - <pseudo_event id="14" operation="stop" operation_key="group1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="19" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="19" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -225,7 +225,7 @@ - </synapse> - <synapse id="14"> - <action_set> -- <crm_event id="19" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"> -+ <crm_event id="19" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="uuid1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -239,7 +239,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="19" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="19" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-12.exp b/pengine/test10/rec-node-12.exp -index 07c0027..9732907 100644 ---- a/pengine/test10/rec-node-12.exp -+++ b/pengine/test10/rec-node-12.exp -@@ -514,7 +514,7 @@ - </synapse> - <synapse id="45"> - <action_set> -- <crm_event id="54" operation="stonith" operation_key="stonith-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> -+ <crm_event id="54" operation="stonith" operation_key="stonith-c001n02-reboot" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"> - <attributes CRM_meta_on_node="c001n02" CRM_meta_on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -528,7 +528,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="54" operation="stonith" operation_key="stonith-c001n02" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> -+ <crm_event id="54" operation="stonith" operation_key="stonith-c001n02-reboot" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-13.exp b/pengine/test10/rec-node-13.exp -index 63abd08..ae23ea5 100644 ---- a/pengine/test10/rec-node-13.exp -+++ b/pengine/test10/rec-node-13.exp -@@ -10,7 +10,7 @@ - <pseudo_event id="77" operation="stop" operation_key="master_rsc_1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="84" operation="stonith" operation_key="stonith-c001n04" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> -+ <crm_event id="84" operation="stonith" operation_key="stonith-c001n04-reboot" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> - </trigger> - </inputs> - </synapse> -@@ -37,13 +37,13 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="84" operation="stonith" operation_key="stonith-c001n04" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> -+ <crm_event id="84" operation="stonith" operation_key="stonith-c001n04-reboot" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> - </trigger> - </inputs> - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="84" operation="stonith" operation_key="stonith-c001n04" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"> -+ <crm_event id="84" operation="stonith" operation_key="stonith-c001n04-reboot" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"> - <attributes CRM_meta_on_node="c001n04" CRM_meta_on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d" CRM_meta_op_no_wait="true" CRM_meta_probe_complete="true" CRM_meta_shutdown="1234" CRM_meta_standby="off" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -57,7 +57,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="84" operation="stonith" operation_key="stonith-c001n04" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> -+ <crm_event id="84" operation="stonith" operation_key="stonith-c001n04-reboot" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-14.exp b/pengine/test10/rec-node-14.exp -index 2ca969a..e473479 100644 ---- a/pengine/test10/rec-node-14.exp -+++ b/pengine/test10/rec-node-14.exp -@@ -1,31 +1,31 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="5" operation="stonith" operation_key="stonith-node3" on_node="node3" on_node_uuid="uuid3"> -+ <crm_event id="5" operation="stonith" operation_key="stonith-node3-reboot" on_node="node3" on_node_uuid="uuid3"> - <attributes CRM_meta_on_node="node3" CRM_meta_on_node_uuid="uuid3" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="3" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="3" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="4" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="uuid2"> -+ <crm_event id="4" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="uuid2" CRM_meta_op_no_wait="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="5" operation="stonith" operation_key="stonith-node3" on_node="node3" on_node_uuid="uuid3"/> -+ <crm_event id="5" operation="stonith" operation_key="stonith-node3-reboot" on_node="node3" on_node_uuid="uuid3"/> - </trigger> - </inputs> - </synapse> - <synapse id="2"> - <action_set> -- <crm_event id="3" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"> -+ <crm_event id="3" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="uuid1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -39,7 +39,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="5" operation="stonith" operation_key="stonith-node3" on_node="node3" on_node_uuid="uuid3"/> -+ <crm_event id="5" operation="stonith" operation_key="stonith-node3-reboot" on_node="node3" on_node_uuid="uuid3"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-15.exp b/pengine/test10/rec-node-15.exp -index a48d8c5..3c79d65 100644 ---- a/pengine/test10/rec-node-15.exp -+++ b/pengine/test10/rec-node-15.exp -@@ -445,7 +445,7 @@ - </synapse> - <synapse id="28"> - <action_set> -- <crm_event id="52" operation="stonith" operation_key="stonith-sapcl03" on_node="sapcl03" on_node_uuid="0bfb78a2-fcd2-4f52-8a06-2d17437a6750"> -+ <crm_event id="52" operation="stonith" operation_key="stonith-sapcl03-reboot" on_node="sapcl03" on_node_uuid="0bfb78a2-fcd2-4f52-8a06-2d17437a6750"> - <attributes CRM_meta_on_node="sapcl03" CRM_meta_on_node_uuid="0bfb78a2-fcd2-4f52-8a06-2d17437a6750" CRM_meta_op_no_wait="true" CRM_meta_standby="off" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -459,7 +459,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="52" operation="stonith" operation_key="stonith-sapcl03" on_node="sapcl03" on_node_uuid="0bfb78a2-fcd2-4f52-8a06-2d17437a6750"/> -+ <crm_event id="52" operation="stonith" operation_key="stonith-sapcl03-reboot" on_node="sapcl03" on_node_uuid="0bfb78a2-fcd2-4f52-8a06-2d17437a6750"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-2.exp b/pengine/test10/rec-node-2.exp -index 2785c57..901eded 100644 ---- a/pengine/test10/rec-node-2.exp -+++ b/pengine/test10/rec-node-2.exp -@@ -246,7 +246,7 @@ - </synapse> - <synapse id="18"> - <action_set> -- <crm_event id="27" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"> -+ <crm_event id="27" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="uuid1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -260,7 +260,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="27" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="27" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-4.exp b/pengine/test10/rec-node-4.exp -index bdaaa38..1e98f4d 100644 ---- a/pengine/test10/rec-node-4.exp -+++ b/pengine/test10/rec-node-4.exp -@@ -54,7 +54,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -97,7 +97,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="uuid1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -126,7 +126,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-6.exp b/pengine/test10/rec-node-6.exp -index bdaaa38..1e98f4d 100644 ---- a/pengine/test10/rec-node-6.exp -+++ b/pengine/test10/rec-node-6.exp -@@ -54,7 +54,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -97,7 +97,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="uuid1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -126,7 +126,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-node-7.exp b/pengine/test10/rec-node-7.exp -index bdaaa38..1e98f4d 100644 ---- a/pengine/test10/rec-node-7.exp -+++ b/pengine/test10/rec-node-7.exp -@@ -54,7 +54,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -97,7 +97,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="uuid1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -126,7 +126,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="uuid1"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="uuid1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/rec-rsc-5.exp b/pengine/test10/rec-rsc-5.exp -index 897d5f6..69a85d1 100644 ---- a/pengine/test10/rec-rsc-5.exp -+++ b/pengine/test10/rec-rsc-5.exp -@@ -54,7 +54,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="uuid2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -@@ -97,7 +97,7 @@ - <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="uuid2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -@@ -112,7 +112,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="uuid2"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="uuid2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="uuid2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -126,7 +126,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="uuid2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="uuid2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/remote-fence-unclean.exp b/pengine/test10/remote-fence-unclean.exp -new file mode 100644 -index 0000000..9b1e327 ---- /dev/null -+++ b/pengine/test10/remote-fence-unclean.exp -@@ -0,0 +1,201 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="15" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="5" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="4" operation="monitor" operation_key="remote1_monitor_60000" on_node="18node1" on_node_uuid="1"> -+ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="15" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="20" operation="monitor" operation_key="FAKE2_monitor_60000" on_node="18builder" on_node_uuid="5"> -+ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="FAKE2_start_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="FAKE2_start_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="18" operation="stop" operation_key="FAKE2_stop_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <pseudo_event id="18" operation="stop" operation_key="FAKE2_stop_0"> -+ <attributes CRM_meta_timeout="20000" /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="28" operation="stonith" operation_key="stonith-remote1-reboot" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="23" operation="monitor" operation_key="FAKE3_monitor_60000" on_node="18node1" on_node_uuid="1"> -+ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="22" operation="start" operation_key="FAKE3_start_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="22" operation="start" operation_key="FAKE3_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="21" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"> -+ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="26" operation="monitor" operation_key="FAKE4_monitor_60000" on_node="18node2" on_node_uuid="2"> -+ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="25" operation="start" operation_key="FAKE4_start_0" on_node="18node2" on_node_uuid="2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="25" operation="start" operation_key="FAKE4_start_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="24" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> -+ <attributes CRM_meta_timeout="20000" /> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <crm_event id="28" operation="stonith" operation_key="stonith-remote1-reboot" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> -+ <attributes CRM_meta_on_node="remote1" CRM_meta_on_node_uuid="remote1" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" /> -+ </crm_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <pseudo_event id="27" operation="stonith_complete" operation_key="stonith_complete"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <crm_event id="28" operation="stonith" operation_key="stonith-remote1-reboot" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <pseudo_event id="7" operation="all_stopped" operation_key="all_stopped"> -+ <attributes /> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="5" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="18" operation="stop" operation_key="FAKE2_stop_0"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="stonith_complete" operation_key="stonith_complete"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/stonith-0.exp b/pengine/test10/stonith-0.exp -index f4aed36..d664a12 100644 ---- a/pengine/test10/stonith-0.exp -+++ b/pengine/test10/stonith-0.exp -@@ -34,10 +34,10 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="110" operation="stonith" operation_key="stonith-c001n03" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> -+ <crm_event id="110" operation="stonith" operation_key="stonith-c001n03-reboot" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> - </trigger> - <trigger> -- <crm_event id="111" operation="stonith" operation_key="stonith-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <crm_event id="111" operation="stonith" operation_key="stonith-c001n05-reboot" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - </inputs> - </synapse> -@@ -123,7 +123,7 @@ - <pseudo_event id="44" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="111" operation="stonith" operation_key="stonith-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <crm_event id="111" operation="stonith" operation_key="stonith-c001n05-reboot" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - </inputs> - </synapse> -@@ -141,7 +141,7 @@ - <pseudo_event id="44" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="110" operation="stonith" operation_key="stonith-c001n03" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> -+ <crm_event id="110" operation="stonith" operation_key="stonith-c001n03-reboot" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> - </trigger> - </inputs> - </synapse> -@@ -203,7 +203,7 @@ - <pseudo_event id="44" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="110" operation="stonith" operation_key="stonith-c001n03" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> -+ <crm_event id="110" operation="stonith" operation_key="stonith-c001n03-reboot" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> - </trigger> - </inputs> - </synapse> -@@ -256,7 +256,7 @@ - <pseudo_event id="44" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="111" operation="stonith" operation_key="stonith-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <crm_event id="111" operation="stonith" operation_key="stonith-c001n05-reboot" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - </inputs> - </synapse> -@@ -271,7 +271,7 @@ - <pseudo_event id="44" operation="stop" operation_key="group-1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="110" operation="stonith" operation_key="stonith-c001n03" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> -+ <crm_event id="110" operation="stonith" operation_key="stonith-c001n03-reboot" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> - </trigger> - </inputs> - </synapse> -@@ -312,7 +312,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="111" operation="stonith" operation_key="stonith-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <crm_event id="111" operation="stonith" operation_key="stonith-c001n05-reboot" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - </inputs> - </synapse> -@@ -353,7 +353,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="110" operation="stonith" operation_key="stonith-c001n03" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> -+ <crm_event id="110" operation="stonith" operation_key="stonith-c001n03-reboot" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"/> - </trigger> - </inputs> - </synapse> -@@ -368,7 +368,7 @@ - </synapse> - <synapse id="22"> - <action_set> -- <crm_event id="111" operation="stonith" operation_key="stonith-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"> -+ <crm_event id="111" operation="stonith" operation_key="stonith-c001n05-reboot" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"> - <attributes CRM_meta_on_node="c001n05" CRM_meta_on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -376,13 +376,13 @@ - </synapse> - <synapse id="23"> - <action_set> -- <crm_event id="110" operation="stonith" operation_key="stonith-c001n03" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"> -+ <crm_event id="110" operation="stonith" operation_key="stonith-c001n03-reboot" on_node="c001n03" on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee"> - <attributes CRM_meta_on_node="c001n03" CRM_meta_on_node_uuid="f5e1d2de-73da-432a-9d5c-37472253c2ee" CRM_meta_op_no_wait="true" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="111" operation="stonith" operation_key="stonith-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <crm_event id="111" operation="stonith" operation_key="stonith-c001n05-reboot" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - </inputs> - </synapse> -@@ -394,7 +394,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="111" operation="stonith" operation_key="stonith-c001n05" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> -+ <crm_event id="111" operation="stonith" operation_key="stonith-c001n05-reboot" on_node="c001n05" on_node_uuid="52a5ea5e-86ee-442c-b251-0bc9825c517e"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stonith-1.exp b/pengine/test10/stonith-1.exp -index 12a2839..b9798e3 100644 ---- a/pengine/test10/stonith-1.exp -+++ b/pengine/test10/stonith-1.exp -@@ -108,7 +108,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -@@ -158,7 +158,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -@@ -211,7 +211,7 @@ - <pseudo_event id="47" operation="stop" operation_key="DoFencing_stop_0"/> - </trigger> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -@@ -238,7 +238,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -@@ -370,7 +370,7 @@ - <pseudo_event id="65" operation="stop" operation_key="master_rsc_1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -@@ -475,7 +475,7 @@ - <pseudo_event id="65" operation="stop" operation_key="master_rsc_1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -@@ -505,7 +505,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -@@ -553,7 +553,7 @@ - </synapse> - <synapse id="39"> - <action_set> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"> - <attributes CRM_meta_on_node="sles-3" CRM_meta_on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -567,7 +567,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="72" operation="stonith" operation_key="stonith-sles-3" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> -+ <crm_event id="72" operation="stonith" operation_key="stonith-sles-3-reboot" on_node="sles-3" on_node_uuid="2298606a-6a8c-499a-9d25-76242f7006ec"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stonith-2.exp b/pengine/test10/stonith-2.exp -index dfab333..84a7fb8 100644 ---- a/pengine/test10/stonith-2.exp -+++ b/pengine/test10/stonith-2.exp -@@ -27,7 +27,7 @@ - </synapse> - <synapse id="2"> - <action_set> -- <crm_event id="102" operation="stonith" operation_key="stonith-sles-5" on_node="sles-5" on_node_uuid="434915c6-7b40-4d30-95ff-dc0ff3dc005a"> -+ <crm_event id="102" operation="stonith" operation_key="stonith-sles-5-reboot" on_node="sles-5" on_node_uuid="434915c6-7b40-4d30-95ff-dc0ff3dc005a"> - <attributes CRM_meta_on_node="sles-5" CRM_meta_on_node_uuid="434915c6-7b40-4d30-95ff-dc0ff3dc005a" CRM_meta_standby="off" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -41,7 +41,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="102" operation="stonith" operation_key="stonith-sles-5" on_node="sles-5" on_node_uuid="434915c6-7b40-4d30-95ff-dc0ff3dc005a"/> -+ <crm_event id="102" operation="stonith" operation_key="stonith-sles-5-reboot" on_node="sles-5" on_node_uuid="434915c6-7b40-4d30-95ff-dc0ff3dc005a"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stonith-3.exp b/pengine/test10/stonith-3.exp -index bb15555..49e6e81 100644 ---- a/pengine/test10/stonith-3.exp -+++ b/pengine/test10/stonith-3.exp -@@ -117,7 +117,7 @@ - </synapse> - <synapse id="9"> - <action_set> -- <crm_event id="22" operation="stonith" operation_key="stonith-rh5node1" on_node="rh5node1" on_node_uuid="286f4fcb-519e-4a23-b39f-9ab0017d0442"> -+ <crm_event id="22" operation="stonith" operation_key="stonith-rh5node1-reboot" on_node="rh5node1" on_node_uuid="286f4fcb-519e-4a23-b39f-9ab0017d0442"> - <attributes CRM_meta_on_node="rh5node1" CRM_meta_on_node_uuid="286f4fcb-519e-4a23-b39f-9ab0017d0442" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -131,7 +131,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="22" operation="stonith" operation_key="stonith-rh5node1" on_node="rh5node1" on_node_uuid="286f4fcb-519e-4a23-b39f-9ab0017d0442"/> -+ <crm_event id="22" operation="stonith" operation_key="stonith-rh5node1-reboot" on_node="rh5node1" on_node_uuid="286f4fcb-519e-4a23-b39f-9ab0017d0442"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stonith-4.exp b/pengine/test10/stonith-4.exp -index 8e5ee2c..2cfffc0 100644 ---- a/pengine/test10/stonith-4.exp -+++ b/pengine/test10/stonith-4.exp -@@ -17,43 +17,43 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="15" operation="stonith" operation_key="stonith-pcmk-8" on_node="pcmk-8" on_node_uuid="108"> -+ <crm_event id="15" operation="stonith" operation_key="stonith-pcmk-8-reboot" on_node="pcmk-8" on_node_uuid="108"> - <attributes CRM_meta_on_node="pcmk-8" CRM_meta_on_node_uuid="108" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="14" operation="stonith" operation_key="stonith-pcmk-7" on_node="pcmk-7" on_node_uuid="107"/> -+ <crm_event id="14" operation="stonith" operation_key="stonith-pcmk-7-reboot" on_node="pcmk-7" on_node_uuid="107"/> - </trigger> - </inputs> - </synapse> - <synapse id="2"> - <action_set> -- <crm_event id="14" operation="stonith" operation_key="stonith-pcmk-7" on_node="pcmk-7" on_node_uuid="107"> -+ <crm_event id="14" operation="stonith" operation_key="stonith-pcmk-7-reboot" on_node="pcmk-7" on_node_uuid="107"> - <attributes CRM_meta_on_node="pcmk-7" CRM_meta_on_node_uuid="107" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-pcmk-5" on_node="pcmk-5" on_node_uuid="105"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-pcmk-5-reboot" on_node="pcmk-5" on_node_uuid="105"/> - </trigger> - </inputs> - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-pcmk-5" on_node="pcmk-5" on_node_uuid="105"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-pcmk-5-reboot" on_node="pcmk-5" on_node_uuid="105"> - <attributes CRM_meta_on_node="pcmk-5" CRM_meta_on_node_uuid="105" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-pcmk-10" on_node="pcmk-10" on_node_uuid="110"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-pcmk-10-reboot" on_node="pcmk-10" on_node_uuid="110"/> - </trigger> - </inputs> - </synapse> - <synapse id="4"> - <action_set> -- <crm_event id="12" operation="stonith" operation_key="stonith-pcmk-10" on_node="pcmk-10" on_node_uuid="110"> -+ <crm_event id="12" operation="stonith" operation_key="stonith-pcmk-10-reboot" on_node="pcmk-10" on_node_uuid="110"> - <attributes CRM_meta_on_node="pcmk-10" CRM_meta_on_node_uuid="110" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -67,7 +67,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-pcmk-8" on_node="pcmk-8" on_node_uuid="108"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-pcmk-8-reboot" on_node="pcmk-8" on_node_uuid="108"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stop-failure-no-quorum.exp b/pengine/test10/stop-failure-no-quorum.exp -index b2260c7..895d43c 100644 ---- a/pengine/test10/stop-failure-no-quorum.exp -+++ b/pengine/test10/stop-failure-no-quorum.exp -@@ -10,7 +10,7 @@ - <pseudo_event id="16" operation="stop" operation_key="clvm-clone_stop_0"/> - </trigger> - <trigger> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - </inputs> - </synapse> -@@ -37,13 +37,13 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - </inputs> - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"> - <attributes CRM_meta_fail_count_clvm="INFINITY" CRM_meta_last_failure_clvm="1371014555" CRM_meta_on_node="pcmk-2" CRM_meta_on_node_uuid="102" CRM_meta_probe_complete="true" CRM_meta_shutdown="1371014551" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -57,7 +57,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/stop-failure-with-fencing.exp b/pengine/test10/stop-failure-with-fencing.exp -index 1c22e38..335ac37 100644 ---- a/pengine/test10/stop-failure-with-fencing.exp -+++ b/pengine/test10/stop-failure-with-fencing.exp -@@ -10,7 +10,7 @@ - <pseudo_event id="16" operation="stop" operation_key="clvm-clone_stop_0"/> - </trigger> - <trigger> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - </inputs> - </synapse> -@@ -37,7 +37,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - </inputs> - </synapse> -@@ -52,7 +52,7 @@ - </synapse> - <synapse id="4"> - <action_set> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"> - <attributes CRM_meta_fail_count_clvm="INFINITY" CRM_meta_last_failure_clvm="1371014555" CRM_meta_on_node="pcmk-2" CRM_meta_on_node_uuid="102" CRM_meta_probe_complete="true" CRM_meta_shutdown="1371014551" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -66,7 +66,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2" on_node="pcmk-2" on_node_uuid="102"/> -+ <crm_event id="22" operation="stonith" operation_key="stonith-pcmk-2-reboot" on_node="pcmk-2" on_node_uuid="102"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealth1.exp b/pengine/test10/systemhealth1.exp -index f8c698e..b090f6b 100644 ---- a/pengine/test10/systemhealth1.exp -+++ b/pengine/test10/systemhealth1.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -9,13 +9,13 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="3" operation="stonith" operation_key="stonith-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <crm_event id="3" operation="stonith" operation_key="stonith-hs21c-reboot" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_on_node="hs21c" CRM_meta_on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549" CRM_meta_op_no_wait="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -@@ -27,7 +27,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealth2.exp b/pengine/test10/systemhealth2.exp -index 9232b32..68b5078 100644 ---- a/pengine/test10/systemhealth2.exp -+++ b/pengine/test10/systemhealth2.exp -@@ -102,7 +102,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -116,7 +116,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealth3.exp b/pengine/test10/systemhealth3.exp -index 9232b32..68b5078 100644 ---- a/pengine/test10/systemhealth3.exp -+++ b/pengine/test10/systemhealth3.exp -@@ -102,7 +102,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -116,7 +116,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthm1.exp b/pengine/test10/systemhealthm1.exp -index f8c698e..b090f6b 100644 ---- a/pengine/test10/systemhealthm1.exp -+++ b/pengine/test10/systemhealthm1.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -9,13 +9,13 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="3" operation="stonith" operation_key="stonith-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <crm_event id="3" operation="stonith" operation_key="stonith-hs21c-reboot" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_on_node="hs21c" CRM_meta_on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549" CRM_meta_op_no_wait="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -@@ -27,7 +27,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthm2.exp b/pengine/test10/systemhealthm2.exp -index 9232b32..68b5078 100644 ---- a/pengine/test10/systemhealthm2.exp -+++ b/pengine/test10/systemhealthm2.exp -@@ -102,7 +102,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -116,7 +116,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthm3.exp b/pengine/test10/systemhealthm3.exp -index 15b37be..7246b5b 100644 ---- a/pengine/test10/systemhealthm3.exp -+++ b/pengine/test10/systemhealthm3.exp -@@ -28,7 +28,7 @@ - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -42,7 +42,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthn1.exp b/pengine/test10/systemhealthn1.exp -index f8c698e..b090f6b 100644 ---- a/pengine/test10/systemhealthn1.exp -+++ b/pengine/test10/systemhealthn1.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -9,13 +9,13 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="3" operation="stonith" operation_key="stonith-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <crm_event id="3" operation="stonith" operation_key="stonith-hs21c-reboot" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_on_node="hs21c" CRM_meta_on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549" CRM_meta_op_no_wait="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -@@ -27,7 +27,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthn2.exp b/pengine/test10/systemhealthn2.exp -index 9232b32..68b5078 100644 ---- a/pengine/test10/systemhealthn2.exp -+++ b/pengine/test10/systemhealthn2.exp -@@ -102,7 +102,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -116,7 +116,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthn3.exp b/pengine/test10/systemhealthn3.exp -index 9232b32..68b5078 100644 ---- a/pengine/test10/systemhealthn3.exp -+++ b/pengine/test10/systemhealthn3.exp -@@ -102,7 +102,7 @@ - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -116,7 +116,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealtho1.exp b/pengine/test10/systemhealtho1.exp -index f8c698e..b090f6b 100644 ---- a/pengine/test10/systemhealtho1.exp -+++ b/pengine/test10/systemhealtho1.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -9,13 +9,13 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="3" operation="stonith" operation_key="stonith-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <crm_event id="3" operation="stonith" operation_key="stonith-hs21c-reboot" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_on_node="hs21c" CRM_meta_on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549" CRM_meta_op_no_wait="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -@@ -27,7 +27,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealtho2.exp b/pengine/test10/systemhealtho2.exp -index 15b37be..7246b5b 100644 ---- a/pengine/test10/systemhealtho2.exp -+++ b/pengine/test10/systemhealtho2.exp -@@ -28,7 +28,7 @@ - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -42,7 +42,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealtho3.exp b/pengine/test10/systemhealtho3.exp -index 15b37be..7246b5b 100644 ---- a/pengine/test10/systemhealtho3.exp -+++ b/pengine/test10/systemhealtho3.exp -@@ -28,7 +28,7 @@ - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -42,7 +42,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthp1.exp b/pengine/test10/systemhealthp1.exp -index f8c698e..b090f6b 100644 ---- a/pengine/test10/systemhealthp1.exp -+++ b/pengine/test10/systemhealthp1.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -9,13 +9,13 @@ - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="3" operation="stonith" operation_key="stonith-hs21c" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> -+ <crm_event id="3" operation="stonith" operation_key="stonith-hs21c-reboot" on_node="hs21c" on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549"> - <attributes CRM_meta_on_node="hs21c" CRM_meta_on_node_uuid="c97a3ee5-02d8-4fad-a9fb-a79ae2b35549" CRM_meta_op_no_wait="true" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -@@ -27,7 +27,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="4" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="4" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthp2.exp b/pengine/test10/systemhealthp2.exp -index f333166..e3ba25d 100644 ---- a/pengine/test10/systemhealthp2.exp -+++ b/pengine/test10/systemhealthp2.exp -@@ -86,7 +86,7 @@ - </synapse> - <synapse id="7"> - <action_set> -- <crm_event id="12" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="12" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -100,7 +100,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/systemhealthp3.exp b/pengine/test10/systemhealthp3.exp -index 15b37be..7246b5b 100644 ---- a/pengine/test10/systemhealthp3.exp -+++ b/pengine/test10/systemhealthp3.exp -@@ -28,7 +28,7 @@ - </synapse> - <synapse id="3"> - <action_set> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"> - <attributes CRM_meta_on_node="hs21d" CRM_meta_on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -42,7 +42,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="8" operation="stonith" operation_key="stonith-hs21d" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> -+ <crm_event id="8" operation="stonith" operation_key="stonith-hs21d-reboot" on_node="hs21d" on_node_uuid="737318c6-0f92-4592-9754-45967d45aff7"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-clone-21.exp b/pengine/test10/ticket-clone-21.exp -index ee3a383..00f136d 100644 ---- a/pengine/test10/ticket-clone-21.exp -+++ b/pengine/test10/ticket-clone-21.exp -@@ -7,7 +7,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -22,7 +22,7 @@ - <pseudo_event id="9" operation="stop" operation_key="clone1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -37,7 +37,7 @@ - <pseudo_event id="9" operation="stop" operation_key="clone1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -67,28 +67,28 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> - <synapse id="5"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="node2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> - <synapse id="6"> - <action_set> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="node1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -102,7 +102,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-clone-9.exp b/pengine/test10/ticket-clone-9.exp -index ee3a383..00f136d 100644 ---- a/pengine/test10/ticket-clone-9.exp -+++ b/pengine/test10/ticket-clone-9.exp -@@ -7,7 +7,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -22,7 +22,7 @@ - <pseudo_event id="9" operation="stop" operation_key="clone1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -37,7 +37,7 @@ - <pseudo_event id="9" operation="stop" operation_key="clone1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -67,28 +67,28 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> - <synapse id="5"> - <action_set> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="node2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> - <synapse id="6"> - <action_set> -- <crm_event id="12" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"> -+ <crm_event id="12" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="node1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -102,7 +102,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="13" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="13" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-group-21.exp b/pengine/test10/ticket-group-21.exp -index 53e30f0..d85b683 100644 ---- a/pengine/test10/ticket-group-21.exp -+++ b/pengine/test10/ticket-group-21.exp -@@ -25,7 +25,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -43,7 +43,7 @@ - <pseudo_event id="12" operation="stop" operation_key="group1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -58,13 +58,13 @@ - <pseudo_event id="12" operation="stop" operation_key="group1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> - <synapse id="4"> - <action_set> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="node2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -78,7 +78,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-group-9.exp b/pengine/test10/ticket-group-9.exp -index 53e30f0..d85b683 100644 ---- a/pengine/test10/ticket-group-9.exp -+++ b/pengine/test10/ticket-group-9.exp -@@ -25,7 +25,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -43,7 +43,7 @@ - <pseudo_event id="12" operation="stop" operation_key="group1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -@@ -58,13 +58,13 @@ - <pseudo_event id="12" operation="stop" operation_key="group1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> - <synapse id="4"> - <action_set> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="node2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -78,7 +78,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="15" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="15" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-master-21.exp b/pengine/test10/ticket-master-21.exp -index 47f4257..1ed731c 100644 ---- a/pengine/test10/ticket-master-21.exp -+++ b/pengine/test10/ticket-master-21.exp -@@ -23,7 +23,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -41,7 +41,7 @@ - <pseudo_event id="14" operation="stop" operation_key="ms1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -56,7 +56,7 @@ - <pseudo_event id="18" operation="demote" operation_key="ms1_demote_0"/> - </trigger> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -109,13 +109,13 @@ - <pseudo_event id="19" operation="demoted" operation_key="ms1_demoted_0"/> - </trigger> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="node1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -129,7 +129,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-master-9.exp b/pengine/test10/ticket-master-9.exp -index 47f4257..1ed731c 100644 ---- a/pengine/test10/ticket-master-9.exp -+++ b/pengine/test10/ticket-master-9.exp -@@ -23,7 +23,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -41,7 +41,7 @@ - <pseudo_event id="14" operation="stop" operation_key="ms1_stop_0"/> - </trigger> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -56,7 +56,7 @@ - <pseudo_event id="18" operation="demote" operation_key="ms1_demote_0"/> - </trigger> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -@@ -109,13 +109,13 @@ - <pseudo_event id="19" operation="demoted" operation_key="ms1_demoted_0"/> - </trigger> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> - <synapse id="8"> - <action_set> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"> - <attributes CRM_meta_on_node="node1" CRM_meta_on_node_uuid="node1" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -129,7 +129,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="21" operation="stonith" operation_key="stonith-node1" on_node="node1" on_node_uuid="node1"/> -+ <crm_event id="21" operation="stonith" operation_key="stonith-node1-reboot" on_node="node1" on_node_uuid="node1"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-primitive-21.exp b/pengine/test10/ticket-primitive-21.exp -index 8e8b128..c88cf38 100644 ---- a/pengine/test10/ticket-primitive-21.exp -+++ b/pengine/test10/ticket-primitive-21.exp -@@ -7,13 +7,13 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="9" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="9" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="9" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"> -+ <crm_event id="9" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="node2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -27,7 +27,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="9" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="9" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/ticket-primitive-9.exp b/pengine/test10/ticket-primitive-9.exp -index 8e8b128..c88cf38 100644 ---- a/pengine/test10/ticket-primitive-9.exp -+++ b/pengine/test10/ticket-primitive-9.exp -@@ -7,13 +7,13 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="9" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="9" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> - <synapse id="1"> - <action_set> -- <crm_event id="9" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"> -+ <crm_event id="9" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"> - <attributes CRM_meta_on_node="node2" CRM_meta_on_node_uuid="node2" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> -@@ -27,7 +27,7 @@ - </action_set> - <inputs> - <trigger> -- <crm_event id="9" operation="stonith" operation_key="stonith-node2" on_node="node2" on_node_uuid="node2"/> -+ <crm_event id="9" operation="stonith" operation_key="stonith-node2-reboot" on_node="node2" on_node_uuid="node2"/> - </trigger> - </inputs> - </synapse> diff --git a/SOURCES/bz1078078-pcmk-pe_potential_memory_leak.patch b/SOURCES/bz1078078-pcmk-pe_potential_memory_leak.patch deleted file mode 100644 index 3848308..0000000 --- a/SOURCES/bz1078078-pcmk-pe_potential_memory_leak.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 566a6901e5badb712809473527f42678267460a8 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Apr 1 16:00:40 2014 +1100 - - Fix: PE: Potential memory leak - - (cherry picked from commit b1474d8feb1d975f7a87b4008aabc6ff338d2349) - -diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c -index 1e827e0..410acfc 100644 ---- a/lib/pengine/utils.c -+++ b/lib/pengine/utils.c -@@ -358,7 +358,7 @@ custom_action(resource_t * rsc, char *key, const char *task, - GListPtr possible_matches = NULL; - - CRM_CHECK(key != NULL, return NULL); -- CRM_CHECK(task != NULL, return NULL); -+ CRM_CHECK(task != NULL, free(key); return NULL); - - if (save_action && rsc != NULL) { - possible_matches = find_actions(rsc->actions, key, on_node); diff --git a/SOURCES/bz1078078-pcmk-pe_repair_regression_tests.patch b/SOURCES/bz1078078-pcmk-pe_repair_regression_tests.patch deleted file mode 100644 index fae99f7..0000000 --- a/SOURCES/bz1078078-pcmk-pe_repair_regression_tests.patch +++ /dev/null @@ -1,1309 +0,0 @@ -commit fe3e8bf6ece8eeb90c8c1c738b7961e6413762fc -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Apr 11 08:16:33 2014 +1000 - - PE: Repair regression tests - -diff --git a/pengine/test10/unfence-definition.exp b/pengine/test10/unfence-definition.exp -index f023a0b..392c286 100644 ---- a/pengine/test10/unfence-definition.exp -+++ b/pengine/test10/unfence-definition.exp -@@ -1,14 +1,14 @@ --<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> - <rsc_op id="16" operation="start" operation_key="fencing_start_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> - <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> -@@ -28,7 +28,7 @@ - <action_set> - <rsc_op id="13" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -41,7 +41,7 @@ - <action_set> - <rsc_op id="7" operation="delete" operation_key="fencing_delete_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -54,7 +54,7 @@ - <action_set> - <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -67,7 +67,7 @@ - <action_set> - <rsc_op id="18" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -89,7 +89,7 @@ - <action_set> - <rsc_op id="17" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -108,7 +108,7 @@ - <action_set> - <rsc_op id="21" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -127,7 +127,7 @@ - <action_set> - <rsc_op id="14" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -135,7 +135,7 @@ - <synapse id="8" priority="1000000"> - <action_set> - <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -150,7 +150,7 @@ - <synapse id="9"> - <action_set> - <pseudo_event id="24" operation="stop" operation_key="dlm-clone_stop_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -162,7 +162,7 @@ - <synapse id="10" priority="1000000"> - <action_set> - <pseudo_event id="23" operation="running" operation_key="dlm-clone_running_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -180,12 +180,12 @@ - <synapse id="11"> - <action_set> - <pseudo_event id="22" operation="start" operation_key="dlm-clone_start_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ <crm_event id="2" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> - </trigger> - <trigger> - <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -@@ -199,7 +199,7 @@ - <action_set> - <rsc_op id="27" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -224,7 +224,7 @@ - <action_set> - <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -240,7 +240,7 @@ - <action_set> - <rsc_op id="28" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -262,7 +262,7 @@ - <action_set> - <rsc_op id="11" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -271,7 +271,7 @@ - <action_set> - <rsc_op id="29" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -296,7 +296,7 @@ - <action_set> - <rsc_op id="15" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -304,7 +304,7 @@ - <synapse id="18" priority="1000000"> - <action_set> - <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -319,7 +319,7 @@ - <synapse id="19"> - <action_set> - <pseudo_event id="32" operation="stop" operation_key="clvmd-clone_stop_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs/> -@@ -327,7 +327,7 @@ - <synapse id="20" priority="1000000"> - <action_set> - <pseudo_event id="31" operation="running" operation_key="clvmd-clone_running_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -348,12 +348,12 @@ - <synapse id="21"> - <action_set> - <pseudo_event id="30" operation="start" operation_key="clvmd-clone_start_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ <crm_event id="2" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> - </trigger> - <trigger> - <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"/> -@@ -369,7 +369,7 @@ - <synapse id="22"> - <action_set> - <crm_event id="35" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"> -- <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" /> -+ <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs/> -@@ -377,7 +377,7 @@ - <synapse id="23"> - <action_set> - <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"> -- <attributes /> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -389,7 +389,7 @@ - <synapse id="24" priority="1000000"> - <action_set> - <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -404,7 +404,7 @@ - <synapse id="25" priority="1000000"> - <action_set> - <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -416,7 +416,7 @@ - <synapse id="26" priority="1000000"> - <action_set> - <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -424,7 +424,7 @@ - <synapse id="27"> - <action_set> - <pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"> -- <attributes /> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -442,7 +442,7 @@ - <synapse id="28"> - <action_set> - <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"> -- <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" /> -+ <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> -@@ -462,37 +462,37 @@ - </synapse> - <synapse id="29"> - <action_set> -- <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"> -- <attributes /> -- </pseudo_event> -+ <crm_event id="2" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"> -+ <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" crm_feature_set="3.0.7"/> -+ </crm_event> - </action_set> - <inputs> - <trigger> -- <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> -- </trigger> -- <trigger> -- <rsc_op id="17" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -- </trigger> -- <trigger> -- <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"/> - </trigger> - <trigger> -- <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> -+ <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"/> - </trigger> - </inputs> - </synapse> - <synapse id="30"> - <action_set> -- <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"> -- <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" /> -- </crm_event> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -+ <attributes crm_feature_set="3.0.7"/> -+ </pseudo_event> - </action_set> - <inputs> - <trigger> -- <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ <rsc_op id="6" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"/> - </trigger> - <trigger> -- <pseudo_event id="33" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ <rsc_op id="17" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="34" operation="stonith_complete" operation_key="stonith_complete"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/unfence-definition.scores b/pengine/test10/unfence-definition.scores -new file mode 100644 -index 0000000..a4b5fb1 ---- /dev/null -+++ b/pengine/test10/unfence-definition.scores -@@ -0,0 +1,77 @@ -+Allocation scores: -+clone_color: clvmd-clone allocation score on virt-1: 0 -+clone_color: clvmd-clone allocation score on virt-2: 0 -+clone_color: clvmd-clone allocation score on virt-3: 0 -+clone_color: clvmd-clone allocation score on virt-4: 0 -+clone_color: clvmd:0 allocation score on virt-1: 1 -+clone_color: clvmd:0 allocation score on virt-2: 0 -+clone_color: clvmd:0 allocation score on virt-3: 0 -+clone_color: clvmd:0 allocation score on virt-4: 0 -+clone_color: clvmd:1 allocation score on virt-1: 0 -+clone_color: clvmd:1 allocation score on virt-2: 0 -+clone_color: clvmd:1 allocation score on virt-3: 0 -+clone_color: clvmd:1 allocation score on virt-4: 0 -+clone_color: clvmd:2 allocation score on virt-1: 0 -+clone_color: clvmd:2 allocation score on virt-2: 0 -+clone_color: clvmd:2 allocation score on virt-3: 0 -+clone_color: clvmd:2 allocation score on virt-4: 0 -+clone_color: clvmd:3 allocation score on virt-1: 0 -+clone_color: clvmd:3 allocation score on virt-2: 0 -+clone_color: clvmd:3 allocation score on virt-3: 0 -+clone_color: clvmd:3 allocation score on virt-4: 0 -+clone_color: dlm-clone allocation score on virt-1: 0 -+clone_color: dlm-clone allocation score on virt-2: 0 -+clone_color: dlm-clone allocation score on virt-3: 0 -+clone_color: dlm-clone allocation score on virt-4: 0 -+clone_color: dlm:0 allocation score on virt-1: 1 -+clone_color: dlm:0 allocation score on virt-2: 0 -+clone_color: dlm:0 allocation score on virt-3: 0 -+clone_color: dlm:0 allocation score on virt-4: 0 -+clone_color: dlm:1 allocation score on virt-1: 0 -+clone_color: dlm:1 allocation score on virt-2: 1 -+clone_color: dlm:1 allocation score on virt-3: 0 -+clone_color: dlm:1 allocation score on virt-4: 0 -+clone_color: dlm:2 allocation score on virt-1: 0 -+clone_color: dlm:2 allocation score on virt-2: 0 -+clone_color: dlm:2 allocation score on virt-3: 0 -+clone_color: dlm:2 allocation score on virt-4: 0 -+clone_color: dlm:3 allocation score on virt-1: 0 -+clone_color: dlm:3 allocation score on virt-2: 0 -+clone_color: dlm:3 allocation score on virt-3: 0 -+clone_color: dlm:3 allocation score on virt-4: 0 -+native_color: clvmd:0 allocation score on virt-1: 1 -+native_color: clvmd:0 allocation score on virt-2: -INFINITY -+native_color: clvmd:0 allocation score on virt-3: -INFINITY -+native_color: clvmd:0 allocation score on virt-4: -INFINITY -+native_color: clvmd:1 allocation score on virt-1: -INFINITY -+native_color: clvmd:1 allocation score on virt-2: 0 -+native_color: clvmd:1 allocation score on virt-3: -INFINITY -+native_color: clvmd:1 allocation score on virt-4: -INFINITY -+native_color: clvmd:2 allocation score on virt-1: -INFINITY -+native_color: clvmd:2 allocation score on virt-2: -INFINITY -+native_color: clvmd:2 allocation score on virt-3: 0 -+native_color: clvmd:2 allocation score on virt-4: -INFINITY -+native_color: clvmd:3 allocation score on virt-1: -INFINITY -+native_color: clvmd:3 allocation score on virt-2: -INFINITY -+native_color: clvmd:3 allocation score on virt-3: -INFINITY -+native_color: clvmd:3 allocation score on virt-4: -INFINITY -+native_color: dlm:0 allocation score on virt-1: 1 -+native_color: dlm:0 allocation score on virt-2: -INFINITY -+native_color: dlm:0 allocation score on virt-3: 0 -+native_color: dlm:0 allocation score on virt-4: -INFINITY -+native_color: dlm:1 allocation score on virt-1: 0 -+native_color: dlm:1 allocation score on virt-2: 1 -+native_color: dlm:1 allocation score on virt-3: 0 -+native_color: dlm:1 allocation score on virt-4: -INFINITY -+native_color: dlm:2 allocation score on virt-1: -INFINITY -+native_color: dlm:2 allocation score on virt-2: -INFINITY -+native_color: dlm:2 allocation score on virt-3: 0 -+native_color: dlm:2 allocation score on virt-4: -INFINITY -+native_color: dlm:3 allocation score on virt-1: -INFINITY -+native_color: dlm:3 allocation score on virt-2: -INFINITY -+native_color: dlm:3 allocation score on virt-3: -INFINITY -+native_color: dlm:3 allocation score on virt-4: -INFINITY -+native_color: fencing allocation score on virt-1: 0 -+native_color: fencing allocation score on virt-2: 0 -+native_color: fencing allocation score on virt-3: 0 -+native_color: fencing allocation score on virt-4: 0 -diff --git a/pengine/test10/unfence-definition.summary b/pengine/test10/unfence-definition.summary -index 3e4b66b..3d65029 100644 ---- a/pengine/test10/unfence-definition.summary -+++ b/pengine/test10/unfence-definition.summary -@@ -35,8 +35,8 @@ Executing cluster transition: - * Resource action: dlm stop on virt-1 - * Pseudo action: dlm-clone_stopped_0 - * Fencing virt-3 (on) -- * Pseudo action: all_stopped - * Fencing virt-1 (on) -+ * Pseudo action: all_stopped - * Resource action: fencing monitor on virt-3 - * Pseudo action: dlm-clone_start_0 - * Resource action: fencing start on virt-1 -diff --git a/pengine/test10/unfence-definition.xml b/pengine/test10/unfence-definition.xml -new file mode 100644 -index 0000000..5d77931 ---- /dev/null -+++ b/pengine/test10/unfence-definition.xml -@@ -0,0 +1,73 @@ -+<cib epoch="17" num_updates="25" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Wed Mar 19 19:51:25 2014" update-origin="virt-009.cluster-qe.lab.eng.brq.redhat.com" update-client="crm_resource" crm_feature_set="3.0.7" have-quorum="1" dc-uuid="8"> -+ <configuration> -+ <crm_config> -+ <cluster_property_set id="cib-bootstrap-options"> -+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.10-27.el7-368c726"/> -+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> -+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="freeze"/> -+ </cluster_property_set> -+ </crm_config> -+ <nodes> -+ <node id="1" uname="virt-1"/> -+ <node id="2" uname="virt-2"/> -+ <node id="3" uname="virt-3"/> -+ <node id="4" uname="virt-4"/> -+ </nodes> -+ <resources> -+ <primitive class="stonith" id="fencing" type="fence_scsi"> -+ <meta_attributes id="stonith-meta"> -+ <nvpair id="stonith-unfence" name="provides" value="unfencing"/> -+ </meta_attributes> -+ </primitive> -+ <clone id="dlm-clone"> -+ <primitive class="ocf" id="dlm" provider="pacemaker" type="controld"/> -+ <meta_attributes id="dlm-clone-meta"> -+ <nvpair id="dlm-interleave" name="interleave" value="true"/> -+ <nvpair id="dlm-ordered" name="ordered" value="true"/> -+ </meta_attributes> -+ </clone> -+ <clone id="clvmd-clone"> -+ <primitive class="ocf" id="clvmd" provider="heartbeat" type="clvm"/> -+ <meta_attributes id="clvmd-clone-meta"> -+ <nvpair id="clvmd-interleave" name="interleave" value="true"/> -+ <nvpair id="clvmd-ordered" name="ordered" value="true"/> -+ </meta_attributes> -+ </clone> -+ </resources> -+ <constraints> -+ <rsc_order first="dlm-clone" first-action="start" id="order-dlm-clone-clvmd-clone-mandatory" then="clvmd-clone" then-action="start"/> -+ <rsc_colocation id="colocation-clvmd-clone-dlm-clone-INFINITY" rsc="clvmd-clone" score="INFINITY" with-rsc="dlm-clone"/> -+ </constraints> -+ </configuration> -+ <status> -+ <node_state id="1" uname="virt-1" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> -+ <lrm id="1"> -+ <lrm_resources> -+ <lrm_resource id="fencing" type="fence_virt" class="stonith"> -+ <lrm_rsc_op id="fencing_last_0" operation_key="fencing_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="26" rc-code="0" op-status="0" interval="0" last-run="1395255112" last-rc-change="1395255112" exec-time="1047" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="24" rc-code="0" op-status="0" interval="0" last-run="1395255085" last-rc-change="1395255085" exec-time="1102" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="clvmd" type="clvm" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="clvmd_last_0" operation_key="clvmd_start_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:2:7:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;9:2:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="15" rc-code="0" op-status="0" interval="0" last-run="1395254324" last-rc-change="1395254324" exec-time="214" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="2" uname="virt-2" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> -+ <lrm id="2"> -+ <lrm_resources> -+ <lrm_resource id="fencing" type="fence_scsi" class="stonith"> -+ <lrm_rsc_op id="fencing_last_0" operation_key="fencing_status_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:8:7:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1395255112" last-rc-change="1395255112" exec-time="1047" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="24" rc-code="0" op-status="0" interval="0" last-run="1395255085" last-rc-change="1395255085" exec-time="1102" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="3" uname="virt-3" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"/> -+ </status> -+</cib> -+ -diff --git a/pengine/test10/unfence-parameters.exp b/pengine/test10/unfence-parameters.exp -index 8ff3016..31b0371 100644 ---- a/pengine/test10/unfence-parameters.exp -+++ b/pengine/test10/unfence-parameters.exp -@@ -1,9 +1,9 @@ --<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> - <rsc_op id="15" operation="stop" operation_key="fencing_stop_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -16,7 +16,7 @@ - <action_set> - <rsc_op id="12" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -29,12 +29,12 @@ - <action_set> - <rsc_op id="6" operation="start" operation_key="fencing_start_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> - <trigger> -- <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"/> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"/> - </trigger> - <trigger> - <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"/> -@@ -51,7 +51,7 @@ - <action_set> - <rsc_op id="17" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:0_start_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -73,7 +73,7 @@ - <action_set> - <rsc_op id="16" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="dlm" long-id="dlm:0" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -95,7 +95,7 @@ - <action_set> - <rsc_op id="19" operation="start" operation_key="dlm_start_0" internal_operation_key="dlm:1_start_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="dlm" long-id="dlm:1" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -120,7 +120,7 @@ - <action_set> - <rsc_op id="18" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:1_stop_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="dlm" long-id="dlm:1" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -136,7 +136,7 @@ - <action_set> - <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -158,7 +158,7 @@ - <action_set> - <rsc_op id="13" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -166,7 +166,7 @@ - <synapse id="9" priority="1000000"> - <action_set> - <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -184,7 +184,7 @@ - <synapse id="10"> - <action_set> - <pseudo_event id="23" operation="stop" operation_key="dlm-clone_stop_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -196,7 +196,7 @@ - <synapse id="11" priority="1000000"> - <action_set> - <pseudo_event id="22" operation="running" operation_key="dlm-clone_running_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -217,12 +217,12 @@ - <synapse id="12"> - <action_set> - <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ <crm_event id="2" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> - </trigger> - <trigger> - <crm_event id="3" operation="stonith" operation_key="stonith-virt-2-on" on_node="virt-2" on_node_uuid="2"/> -@@ -239,7 +239,7 @@ - <action_set> - <rsc_op id="26" operation="start" operation_key="clvmd_start_0" internal_operation_key="clvmd:0_start_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -264,7 +264,7 @@ - <action_set> - <rsc_op id="25" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0" on_node="virt-1" on_node_uuid="1"> - <primitive id="clvmd" long-id="clvmd:0" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -280,7 +280,7 @@ - <action_set> - <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -305,7 +305,7 @@ - <action_set> - <rsc_op id="10" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -314,7 +314,7 @@ - <action_set> - <rsc_op id="28" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -339,7 +339,7 @@ - <action_set> - <rsc_op id="14" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -347,7 +347,7 @@ - <synapse id="19" priority="1000000"> - <action_set> - <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -362,7 +362,7 @@ - <synapse id="20"> - <action_set> - <pseudo_event id="31" operation="stop" operation_key="clvmd-clone_stop_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs/> -@@ -370,7 +370,7 @@ - <synapse id="21" priority="1000000"> - <action_set> - <pseudo_event id="30" operation="running" operation_key="clvmd-clone_running_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -391,12 +391,12 @@ - <synapse id="22"> - <action_set> - <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> - <trigger> -- <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> -+ <crm_event id="2" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"/> - </trigger> - <trigger> - <crm_event id="3" operation="stonith" operation_key="stonith-virt-2-on" on_node="virt-2" on_node_uuid="2"/> -@@ -415,7 +415,7 @@ - <synapse id="23"> - <action_set> - <crm_event id="34" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"> -- <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" /> -+ <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs/> -@@ -423,7 +423,7 @@ - <synapse id="24"> - <action_set> - <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"> -- <attributes /> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -435,7 +435,7 @@ - <synapse id="25" priority="1000000"> - <action_set> - <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -450,7 +450,7 @@ - <synapse id="26" priority="1000000"> - <action_set> - <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -462,7 +462,7 @@ - <synapse id="27" priority="1000000"> - <action_set> - <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -470,7 +470,7 @@ - <synapse id="28"> - <action_set> - <pseudo_event id="7" operation="probe_complete" operation_key="probe_complete"> -- <attributes /> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -488,7 +488,7 @@ - <synapse id="29"> - <action_set> - <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"> -- <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" /> -+ <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> -@@ -509,7 +509,7 @@ - <synapse id="30"> - <action_set> - <crm_event id="3" operation="stonith" operation_key="stonith-virt-2-on" on_node="virt-2" on_node_uuid="2"> -- <attributes CRM_meta_on_node="virt-2" CRM_meta_on_node_uuid="2" CRM_meta_stonith_action="on" /> -+ <attributes CRM_meta_on_node="virt-2" CRM_meta_on_node_uuid="2" CRM_meta_stonith_action="on" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> -@@ -526,8 +526,23 @@ - </synapse> - <synapse id="31"> - <action_set> -- <pseudo_event id="2" operation="all_stopped" operation_key="all_stopped"> -- <attributes /> -+ <crm_event id="2" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"> -+ <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" crm_feature_set="3.0.7"/> -+ </crm_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="32"> -+ <action_set> -+ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -548,19 +563,4 @@ - </trigger> - </inputs> - </synapse> -- <synapse id="32"> -- <action_set> -- <crm_event id="1" operation="stonith" operation_key="stonith-virt-1-on" on_node="virt-1" on_node_uuid="1"> -- <attributes CRM_meta_on_node="virt-1" CRM_meta_on_node_uuid="1" CRM_meta_stonith_action="on" /> -- </crm_event> -- </action_set> -- <inputs> -- <trigger> -- <pseudo_event id="24" operation="stopped" operation_key="dlm-clone_stopped_0"/> -- </trigger> -- <trigger> -- <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> -- </trigger> -- </inputs> -- </synapse> - </transition_graph> -diff --git a/pengine/test10/unfence-parameters.scores b/pengine/test10/unfence-parameters.scores -new file mode 100644 -index 0000000..a4b5fb1 ---- /dev/null -+++ b/pengine/test10/unfence-parameters.scores -@@ -0,0 +1,77 @@ -+Allocation scores: -+clone_color: clvmd-clone allocation score on virt-1: 0 -+clone_color: clvmd-clone allocation score on virt-2: 0 -+clone_color: clvmd-clone allocation score on virt-3: 0 -+clone_color: clvmd-clone allocation score on virt-4: 0 -+clone_color: clvmd:0 allocation score on virt-1: 1 -+clone_color: clvmd:0 allocation score on virt-2: 0 -+clone_color: clvmd:0 allocation score on virt-3: 0 -+clone_color: clvmd:0 allocation score on virt-4: 0 -+clone_color: clvmd:1 allocation score on virt-1: 0 -+clone_color: clvmd:1 allocation score on virt-2: 0 -+clone_color: clvmd:1 allocation score on virt-3: 0 -+clone_color: clvmd:1 allocation score on virt-4: 0 -+clone_color: clvmd:2 allocation score on virt-1: 0 -+clone_color: clvmd:2 allocation score on virt-2: 0 -+clone_color: clvmd:2 allocation score on virt-3: 0 -+clone_color: clvmd:2 allocation score on virt-4: 0 -+clone_color: clvmd:3 allocation score on virt-1: 0 -+clone_color: clvmd:3 allocation score on virt-2: 0 -+clone_color: clvmd:3 allocation score on virt-3: 0 -+clone_color: clvmd:3 allocation score on virt-4: 0 -+clone_color: dlm-clone allocation score on virt-1: 0 -+clone_color: dlm-clone allocation score on virt-2: 0 -+clone_color: dlm-clone allocation score on virt-3: 0 -+clone_color: dlm-clone allocation score on virt-4: 0 -+clone_color: dlm:0 allocation score on virt-1: 1 -+clone_color: dlm:0 allocation score on virt-2: 0 -+clone_color: dlm:0 allocation score on virt-3: 0 -+clone_color: dlm:0 allocation score on virt-4: 0 -+clone_color: dlm:1 allocation score on virt-1: 0 -+clone_color: dlm:1 allocation score on virt-2: 1 -+clone_color: dlm:1 allocation score on virt-3: 0 -+clone_color: dlm:1 allocation score on virt-4: 0 -+clone_color: dlm:2 allocation score on virt-1: 0 -+clone_color: dlm:2 allocation score on virt-2: 0 -+clone_color: dlm:2 allocation score on virt-3: 0 -+clone_color: dlm:2 allocation score on virt-4: 0 -+clone_color: dlm:3 allocation score on virt-1: 0 -+clone_color: dlm:3 allocation score on virt-2: 0 -+clone_color: dlm:3 allocation score on virt-3: 0 -+clone_color: dlm:3 allocation score on virt-4: 0 -+native_color: clvmd:0 allocation score on virt-1: 1 -+native_color: clvmd:0 allocation score on virt-2: -INFINITY -+native_color: clvmd:0 allocation score on virt-3: -INFINITY -+native_color: clvmd:0 allocation score on virt-4: -INFINITY -+native_color: clvmd:1 allocation score on virt-1: -INFINITY -+native_color: clvmd:1 allocation score on virt-2: 0 -+native_color: clvmd:1 allocation score on virt-3: -INFINITY -+native_color: clvmd:1 allocation score on virt-4: -INFINITY -+native_color: clvmd:2 allocation score on virt-1: -INFINITY -+native_color: clvmd:2 allocation score on virt-2: -INFINITY -+native_color: clvmd:2 allocation score on virt-3: 0 -+native_color: clvmd:2 allocation score on virt-4: -INFINITY -+native_color: clvmd:3 allocation score on virt-1: -INFINITY -+native_color: clvmd:3 allocation score on virt-2: -INFINITY -+native_color: clvmd:3 allocation score on virt-3: -INFINITY -+native_color: clvmd:3 allocation score on virt-4: -INFINITY -+native_color: dlm:0 allocation score on virt-1: 1 -+native_color: dlm:0 allocation score on virt-2: -INFINITY -+native_color: dlm:0 allocation score on virt-3: 0 -+native_color: dlm:0 allocation score on virt-4: -INFINITY -+native_color: dlm:1 allocation score on virt-1: 0 -+native_color: dlm:1 allocation score on virt-2: 1 -+native_color: dlm:1 allocation score on virt-3: 0 -+native_color: dlm:1 allocation score on virt-4: -INFINITY -+native_color: dlm:2 allocation score on virt-1: -INFINITY -+native_color: dlm:2 allocation score on virt-2: -INFINITY -+native_color: dlm:2 allocation score on virt-3: 0 -+native_color: dlm:2 allocation score on virt-4: -INFINITY -+native_color: dlm:3 allocation score on virt-1: -INFINITY -+native_color: dlm:3 allocation score on virt-2: -INFINITY -+native_color: dlm:3 allocation score on virt-3: -INFINITY -+native_color: dlm:3 allocation score on virt-4: -INFINITY -+native_color: fencing allocation score on virt-1: 0 -+native_color: fencing allocation score on virt-2: 0 -+native_color: fencing allocation score on virt-3: 0 -+native_color: fencing allocation score on virt-4: 0 -diff --git a/pengine/test10/unfence-parameters.summary b/pengine/test10/unfence-parameters.summary -index 5276cba..2bd499c 100644 ---- a/pengine/test10/unfence-parameters.summary -+++ b/pengine/test10/unfence-parameters.summary -@@ -37,8 +37,8 @@ Executing cluster transition: - * Pseudo action: dlm-clone_stopped_0 - * Fencing virt-3 (on) - * Fencing virt-2 (on) -- * Pseudo action: all_stopped - * Fencing virt-1 (on) -+ * Pseudo action: all_stopped - * Resource action: fencing monitor on virt-3 - * Resource action: fencing start on virt-1 - * Pseudo action: dlm-clone_start_0 -diff --git a/pengine/test10/unfence-parameters.xml b/pengine/test10/unfence-parameters.xml -new file mode 100644 -index 0000000..f660100 ---- /dev/null -+++ b/pengine/test10/unfence-parameters.xml -@@ -0,0 +1,73 @@ -+<cib epoch="17" num_updates="25" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Wed Mar 19 19:51:25 2014" update-origin="virt-009.cluster-qe.lab.eng.brq.redhat.com" update-client="crm_resource" crm_feature_set="3.0.7" have-quorum="1" dc-uuid="8"> -+ <configuration> -+ <crm_config> -+ <cluster_property_set id="cib-bootstrap-options"> -+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.10-27.el7-368c726"/> -+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> -+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="freeze"/> -+ </cluster_property_set> -+ </crm_config> -+ <nodes> -+ <node id="1" uname="virt-1"/> -+ <node id="2" uname="virt-2"/> -+ <node id="3" uname="virt-3"/> -+ <node id="4" uname="virt-4"/> -+ </nodes> -+ <resources> -+ <primitive class="stonith" id="fencing" type="fence_scsi"> -+ <meta_attributes id="stonith-meta"> -+ <nvpair id="stonith-unfence" name="provides" value="unfencing"/> -+ </meta_attributes> -+ </primitive> -+ <clone id="dlm-clone"> -+ <primitive class="ocf" id="dlm" provider="pacemaker" type="controld"/> -+ <meta_attributes id="dlm-clone-meta"> -+ <nvpair id="dlm-interleave" name="interleave" value="true"/> -+ <nvpair id="dlm-ordered" name="ordered" value="true"/> -+ </meta_attributes> -+ </clone> -+ <clone id="clvmd-clone"> -+ <primitive class="ocf" id="clvmd" provider="heartbeat" type="clvm"/> -+ <meta_attributes id="clvmd-clone-meta"> -+ <nvpair id="clvmd-interleave" name="interleave" value="true"/> -+ <nvpair id="clvmd-ordered" name="ordered" value="true"/> -+ </meta_attributes> -+ </clone> -+ </resources> -+ <constraints> -+ <rsc_order first="dlm-clone" first-action="start" id="order-dlm-clone-clvmd-clone-mandatory" then="clvmd-clone" then-action="start"/> -+ <rsc_colocation id="colocation-clvmd-clone-dlm-clone-INFINITY" rsc="clvmd-clone" score="INFINITY" with-rsc="dlm-clone"/> -+ </constraints> -+ </configuration> -+ <status> -+ <node_state id="1" uname="virt-1" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> -+ <lrm id="1"> -+ <lrm_resources> -+ <lrm_resource id="fencing" type="fence_scsi" class="stonith"> -+ <lrm_rsc_op id="fencing_last_0" operation_key="fencing_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="26" rc-code="0" op-status="0" interval="0" last-run="1395255112" last-rc-change="1395255112" exec-time="1047" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf9"/> -+ </lrm_resource> -+ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="24" rc-code="0" op-status="0" interval="0" last-run="1395255085" last-rc-change="1395255085" exec-time="1102" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="clvmd" type="clvm" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="clvmd_last_0" operation_key="clvmd_start_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:2:7:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;9:2:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="15" rc-code="0" op-status="0" interval="0" last-run="1395254324" last-rc-change="1395254324" exec-time="214" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="2" uname="virt-2" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> -+ <lrm id="2"> -+ <lrm_resources> -+ <lrm_resource id="fencing" type="fence_scsi" class="stonith"> -+ <lrm_rsc_op id="fencing_last_0" operation_key="fencing_status_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:8:7:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;23:8:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1395255112" last-rc-change="1395255112" exec-time="1047" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf9"/> -+ </lrm_resource> -+ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" transition-magic="0:0;22:7:0:d45f7bbd-8249-4af5-8120-a9199830d27a" call-id="24" rc-code="0" op-status="0" interval="0" last-run="1395255085" last-rc-change="1395255085" exec-time="1102" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="3" uname="virt-3" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"/> -+ </status> -+</cib> -+ -diff --git a/pengine/test10/unfence-startup.exp b/pengine/test10/unfence-startup.exp -index a0661e7..6319b13 100644 ---- a/pengine/test10/unfence-startup.exp -+++ b/pengine/test10/unfence-startup.exp -@@ -1,9 +1,9 @@ --<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0" priority="1000000"> - <action_set> - <rsc_op id="11" operation="monitor" operation_key="fencing_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="fencing" class="stonith" type="fence_scsi"/> -- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -16,7 +16,7 @@ - <action_set> - <rsc_op id="20" operation="start" operation_key="dlm:2_start_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -35,7 +35,7 @@ - <action_set> - <rsc_op id="12" operation="monitor" operation_key="dlm:2_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="dlm" long-id="dlm:2" class="ocf" provider="pacemaker" type="controld"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -43,7 +43,7 @@ - <synapse id="3" priority="1000000"> - <action_set> - <pseudo_event id="22" operation="running" operation_key="dlm-clone_running_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -58,7 +58,7 @@ - <synapse id="4"> - <action_set> - <pseudo_event id="21" operation="start" operation_key="dlm-clone_start_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -71,7 +71,7 @@ - <action_set> - <rsc_op id="27" operation="start" operation_key="clvmd:1_start_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -90,7 +90,7 @@ - <action_set> - <rsc_op id="9" operation="monitor" operation_key="clvmd:1_monitor_0" on_node="virt-2" on_node_uuid="2"> - <primitive id="clvmd" long-id="clvmd:1" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -99,7 +99,7 @@ - <action_set> - <rsc_op id="28" operation="start" operation_key="clvmd:2_start_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -124,7 +124,7 @@ - <action_set> - <rsc_op id="13" operation="monitor" operation_key="clvmd:2_monitor_0" on_node="virt-3" on_node_uuid="3"> - <primitive id="clvmd" long-id="clvmd:2" class="ocf" provider="heartbeat" type="clvm"/> -- <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -132,7 +132,7 @@ - <synapse id="9" priority="1000000"> - <action_set> - <pseudo_event id="30" operation="running" operation_key="clvmd-clone_running_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -150,7 +150,7 @@ - <synapse id="10"> - <action_set> - <pseudo_event id="29" operation="start" operation_key="clvmd-clone_start_0"> -- <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> -+ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -165,7 +165,7 @@ - <synapse id="11"> - <action_set> - <crm_event id="34" operation="stonith" operation_key="stonith-virt-4-reboot" on_node="virt-4" on_node_uuid="4"> -- <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" /> -+ <attributes CRM_meta_on_node="virt-4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs/> -@@ -173,7 +173,7 @@ - <synapse id="12"> - <action_set> - <pseudo_event id="33" operation="stonith_complete" operation_key="stonith_complete"> -- <attributes /> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -185,7 +185,7 @@ - <synapse id="13" priority="1000000"> - <action_set> - <rsc_op id="10" operation="probe_complete" operation_key="probe_complete-virt-3" on_node="virt-3" on_node_uuid="3"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -200,7 +200,7 @@ - <synapse id="14" priority="1000000"> - <action_set> - <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-virt-2" on_node="virt-2" on_node_uuid="2"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -212,7 +212,7 @@ - <synapse id="15" priority="1000000"> - <action_set> - <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-virt-1" on_node="virt-1" on_node_uuid="1"> -- <attributes CRM_meta_op_no_wait="true" /> -+ <attributes CRM_meta_op_no_wait="true" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -220,7 +220,7 @@ - <synapse id="16"> - <action_set> - <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"> -- <attributes /> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -@@ -238,7 +238,7 @@ - <synapse id="17"> - <action_set> - <crm_event id="4" operation="stonith" operation_key="stonith-virt-3-on" on_node="virt-3" on_node_uuid="3"> -- <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" /> -+ <attributes CRM_meta_on_node="virt-3" CRM_meta_on_node_uuid="3" CRM_meta_stonith_action="on" crm_feature_set="3.0.7"/> - </crm_event> - </action_set> - <inputs> -@@ -253,7 +253,7 @@ - <synapse id="18"> - <action_set> - <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> -- <attributes /> -+ <attributes crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> - <inputs> -diff --git a/pengine/test10/unfence-startup.scores b/pengine/test10/unfence-startup.scores -new file mode 100644 -index 0000000..a4b5fb1 ---- /dev/null -+++ b/pengine/test10/unfence-startup.scores -@@ -0,0 +1,77 @@ -+Allocation scores: -+clone_color: clvmd-clone allocation score on virt-1: 0 -+clone_color: clvmd-clone allocation score on virt-2: 0 -+clone_color: clvmd-clone allocation score on virt-3: 0 -+clone_color: clvmd-clone allocation score on virt-4: 0 -+clone_color: clvmd:0 allocation score on virt-1: 1 -+clone_color: clvmd:0 allocation score on virt-2: 0 -+clone_color: clvmd:0 allocation score on virt-3: 0 -+clone_color: clvmd:0 allocation score on virt-4: 0 -+clone_color: clvmd:1 allocation score on virt-1: 0 -+clone_color: clvmd:1 allocation score on virt-2: 0 -+clone_color: clvmd:1 allocation score on virt-3: 0 -+clone_color: clvmd:1 allocation score on virt-4: 0 -+clone_color: clvmd:2 allocation score on virt-1: 0 -+clone_color: clvmd:2 allocation score on virt-2: 0 -+clone_color: clvmd:2 allocation score on virt-3: 0 -+clone_color: clvmd:2 allocation score on virt-4: 0 -+clone_color: clvmd:3 allocation score on virt-1: 0 -+clone_color: clvmd:3 allocation score on virt-2: 0 -+clone_color: clvmd:3 allocation score on virt-3: 0 -+clone_color: clvmd:3 allocation score on virt-4: 0 -+clone_color: dlm-clone allocation score on virt-1: 0 -+clone_color: dlm-clone allocation score on virt-2: 0 -+clone_color: dlm-clone allocation score on virt-3: 0 -+clone_color: dlm-clone allocation score on virt-4: 0 -+clone_color: dlm:0 allocation score on virt-1: 1 -+clone_color: dlm:0 allocation score on virt-2: 0 -+clone_color: dlm:0 allocation score on virt-3: 0 -+clone_color: dlm:0 allocation score on virt-4: 0 -+clone_color: dlm:1 allocation score on virt-1: 0 -+clone_color: dlm:1 allocation score on virt-2: 1 -+clone_color: dlm:1 allocation score on virt-3: 0 -+clone_color: dlm:1 allocation score on virt-4: 0 -+clone_color: dlm:2 allocation score on virt-1: 0 -+clone_color: dlm:2 allocation score on virt-2: 0 -+clone_color: dlm:2 allocation score on virt-3: 0 -+clone_color: dlm:2 allocation score on virt-4: 0 -+clone_color: dlm:3 allocation score on virt-1: 0 -+clone_color: dlm:3 allocation score on virt-2: 0 -+clone_color: dlm:3 allocation score on virt-3: 0 -+clone_color: dlm:3 allocation score on virt-4: 0 -+native_color: clvmd:0 allocation score on virt-1: 1 -+native_color: clvmd:0 allocation score on virt-2: -INFINITY -+native_color: clvmd:0 allocation score on virt-3: -INFINITY -+native_color: clvmd:0 allocation score on virt-4: -INFINITY -+native_color: clvmd:1 allocation score on virt-1: -INFINITY -+native_color: clvmd:1 allocation score on virt-2: 0 -+native_color: clvmd:1 allocation score on virt-3: -INFINITY -+native_color: clvmd:1 allocation score on virt-4: -INFINITY -+native_color: clvmd:2 allocation score on virt-1: -INFINITY -+native_color: clvmd:2 allocation score on virt-2: -INFINITY -+native_color: clvmd:2 allocation score on virt-3: 0 -+native_color: clvmd:2 allocation score on virt-4: -INFINITY -+native_color: clvmd:3 allocation score on virt-1: -INFINITY -+native_color: clvmd:3 allocation score on virt-2: -INFINITY -+native_color: clvmd:3 allocation score on virt-3: -INFINITY -+native_color: clvmd:3 allocation score on virt-4: -INFINITY -+native_color: dlm:0 allocation score on virt-1: 1 -+native_color: dlm:0 allocation score on virt-2: -INFINITY -+native_color: dlm:0 allocation score on virt-3: 0 -+native_color: dlm:0 allocation score on virt-4: -INFINITY -+native_color: dlm:1 allocation score on virt-1: 0 -+native_color: dlm:1 allocation score on virt-2: 1 -+native_color: dlm:1 allocation score on virt-3: 0 -+native_color: dlm:1 allocation score on virt-4: -INFINITY -+native_color: dlm:2 allocation score on virt-1: -INFINITY -+native_color: dlm:2 allocation score on virt-2: -INFINITY -+native_color: dlm:2 allocation score on virt-3: 0 -+native_color: dlm:2 allocation score on virt-4: -INFINITY -+native_color: dlm:3 allocation score on virt-1: -INFINITY -+native_color: dlm:3 allocation score on virt-2: -INFINITY -+native_color: dlm:3 allocation score on virt-3: -INFINITY -+native_color: dlm:3 allocation score on virt-4: -INFINITY -+native_color: fencing allocation score on virt-1: 0 -+native_color: fencing allocation score on virt-2: 0 -+native_color: fencing allocation score on virt-3: 0 -+native_color: fencing allocation score on virt-4: 0 diff --git a/SOURCES/bz1078078-pcmk-pe_store_non_resource_actions_in_a_hashtable_where_we_can_easily_and_cheaply_find_them_again.patch b/SOURCES/bz1078078-pcmk-pe_store_non_resource_actions_in_a_hashtable_where_we_can_easily_and_cheaply_find_them_again.patch deleted file mode 100644 index c9c10a6..0000000 --- a/SOURCES/bz1078078-pcmk-pe_store_non_resource_actions_in_a_hashtable_where_we_can_easily_and_cheaply_find_them_again.patch +++ /dev/null @@ -1,118 +0,0 @@ -commit 3544fb711731cb6ebcd48c2af808e4ec25e5eaed -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Apr 2 15:44:31 2014 +1100 - - Refactor: PE: Store non-resource actions in a hashtable where we can easily (and cheaply) find them again - - (cherry picked from commit a65979cbbec616f978154e95b49e8f7bcd064a14) - -diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h -index c81566a..b74bf83 100644 ---- a/include/crm/pengine/status.h -+++ b/include/crm/pengine/status.h -@@ -93,6 +93,7 @@ typedef struct pe_working_set_s { - GHashTable *config_hash; - GHashTable *domains; - GHashTable *tickets; -+ GHashTable *singletons; /* Actions for which there can be only one - ie. fence nodeX */ - - GListPtr nodes; - GListPtr resources; -diff --git a/lib/pengine/status.c b/lib/pengine/status.c -index bb9dfcb..8695dae 100644 ---- a/lib/pengine/status.c -+++ b/lib/pengine/status.c -@@ -191,6 +191,10 @@ cleanup_calculations(pe_working_set_t * data_set) - g_hash_table_destroy(data_set->config_hash); - } - -+ if (data_set->singletons != NULL) { -+ g_hash_table_destroy(data_set->singletons); -+ } -+ - if (data_set->tickets) { - g_hash_table_destroy(data_set->tickets); - } -diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c -index 410acfc..2520eeb 100644 ---- a/lib/pengine/utils.c -+++ b/lib/pengine/utils.c -@@ -362,6 +362,17 @@ custom_action(resource_t * rsc, char *key, const char *task, - - if (save_action && rsc != NULL) { - possible_matches = find_actions(rsc->actions, key, on_node); -+ } else if(save_action) { -+#if 0 -+ action = g_hash_table_lookup(data_set->singletons, key); -+#else -+ /* More expensive but takes 'node' into account */ -+ possible_matches = find_actions(data_set->actions, key, on_node); -+#endif -+ } -+ -+ if(data_set->singletons == NULL) { -+ data_set->singletons = g_hash_table_new_full(crm_str_hash, g_str_equal, NULL, NULL); - } - - if (possible_matches != NULL) { -@@ -424,6 +435,9 @@ custom_action(resource_t * rsc, char *key, const char *task, - - if (save_action) { - data_set->actions = g_list_prepend(data_set->actions, action); -+ if(rsc == NULL) { -+ g_hash_table_insert(data_set->singletons, action->uuid, action); -+ } - } - - if (rsc != NULL) { -@@ -1588,6 +1602,9 @@ order_actions(action_t * lh_action, action_t * rh_action, enum pe_ordering order - - crm_trace("Ordering Action %s before %s", lh_action->uuid, rh_action->uuid); - -+ /* Ensure we never create a dependancy on ourselves... its happened */ -+ CRM_ASSERT(lh_action != rh_action); -+ - /* Filter dups, otherwise update_action_states() has too much work to do */ - gIter = lh_action->actions_after; - for (; gIter != NULL; gIter = gIter->next) { -@@ -1624,20 +1641,12 @@ action_t * - get_pseudo_op(const char *name, pe_working_set_t * data_set) - { - action_t *op = NULL; -- const char *op_s = name; -- GListPtr possible_matches = NULL; - -- possible_matches = find_actions(data_set->actions, name, NULL); -- if (possible_matches != NULL) { -- if (g_list_length(possible_matches) > 1) { -- pe_warn("Action %s exists %d times", name, g_list_length(possible_matches)); -- } -- -- op = g_list_nth_data(possible_matches, 0); -- g_list_free(possible_matches); -- -- } else { -- op = custom_action(NULL, strdup(op_s), op_s, NULL, TRUE, TRUE, data_set); -+ if(data_set->singletons) { -+ op = g_hash_table_lookup(data_set->singletons, name); -+ } -+ if (op == NULL) { -+ op = custom_action(NULL, strdup(name), name, NULL, TRUE, TRUE, data_set); - set_bit(op->flags, pe_action_pseudo); - set_bit(op->flags, pe_action_runnable); - } -diff --git a/pengine/allocate.c b/pengine/allocate.c -index a07fdad..b9ce069 100644 ---- a/pengine/allocate.c -+++ b/pengine/allocate.c -@@ -1274,6 +1274,10 @@ pe_fence_op(node_t * node, const char *op, pe_working_set_t * data_set) - - key = g_strdup_printf("%s-%s-%s", CRM_OP_FENCE, node->details->uname, op); - -+ if(data_set->singletons) { -+ stonith_op = g_hash_table_lookup(data_set->singletons, key); -+ } -+ - if(stonith_op == NULL) { - stonith_op = custom_action(NULL, key, CRM_OP_FENCE, node, FALSE, TRUE, data_set); - diff --git a/SOURCES/bz1078078-pcmk-unfencing_is_based_on_device_probes_there_is_no_need_to_unfence_when_normal_resources_are_found_active.patch b/SOURCES/bz1078078-pcmk-unfencing_is_based_on_device_probes_there_is_no_need_to_unfence_when_normal_resources_are_found_active.patch deleted file mode 100644 index c3e1164..0000000 --- a/SOURCES/bz1078078-pcmk-unfencing_is_based_on_device_probes_there_is_no_need_to_unfence_when_normal_resources_are_found_active.patch +++ /dev/null @@ -1,32 +0,0 @@ -commit a5bc09d20ea41afe42bbda037d5e8ecb74f2bb15 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Apr 11 07:39:59 2014 +1000 - - Fix: PE: Unfencing is based on device probes, there is no need to unfence when normal resources are found active - - (cherry picked from commit 7aad7cb9a5a1778dbc13ed56f976086e0393a7e3) - -diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c -index eb10bd8..363e2bc 100644 ---- a/lib/pengine/unpack.c -+++ b/lib/pengine/unpack.c -@@ -2329,17 +2329,8 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - if (is_probe && target_rc == 7) { - task_status_i = PCMK_LRM_OP_DONE; - set_bit(rsc->flags, pe_rsc_unexpectedly_running); -- -- if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { -- /* _Require_ unfencing after probing resources that need unfencing and was found active */ -- crm_warn("Operation %s found resource %s active on %s: triggering unfencing", -- task, rsc->id, node->details->uname); -- trigger_unfencing(NULL, node, "Unexpected state", NULL, data_set); -- -- } else { -- pe_rsc_info(rsc, "Operation %s found resource %s active on %s", -- task, rsc->id, node->details->uname); -- } -+ pe_rsc_info(rsc, "Operation %s found resource %s active on %s", -+ task, rsc->id, node->details->uname); - - /* legacy code for pre-0.6.5 operations */ - } else if (target_rc < 0 && interval > 0 && rsc->role == RSC_ROLE_MASTER) { diff --git a/SOURCES/bz1078078-pcmk-warn_about_fencing_when_fencing_is_disabled.patch b/SOURCES/bz1078078-pcmk-warn_about_fencing_when_fencing_is_disabled.patch deleted file mode 100644 index 22440d2..0000000 --- a/SOURCES/bz1078078-pcmk-warn_about_fencing_when_fencing_is_disabled.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 583197a0748aaef3dca09fe45cdac30f75304947 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Apr 10 19:55:26 2014 +1000 - - Correctly warn about fencing when fencing is disabled - -diff --git a/lib/pengine/complex.c b/lib/pengine/complex.c -index a3133e7..225b269 100644 ---- a/lib/pengine/complex.c -+++ b/lib/pengine/complex.c -@@ -574,7 +574,7 @@ common_unpack(xmlNode * xml_obj, resource_t ** rsc, - - } else if (safe_str_eq(value, "fencing")) { - set_bit((*rsc)->flags, pe_rsc_needs_fencing); -- if (is_set(data_set->flags, pe_flag_stonith_enabled)) { -+ if (is_not_set(data_set->flags, pe_flag_stonith_enabled)) { - crm_config_warn("%s requires fencing but fencing is disabled", (*rsc)->id); - } - diff --git a/SOURCES/bz1078504-pcmk-pengine_fixes_invalid_transition_caused_by_clones_with_more_than_10_instances.patch b/SOURCES/bz1078504-pcmk-pengine_fixes_invalid_transition_caused_by_clones_with_more_than_10_instances.patch deleted file mode 100644 index 3a22f2d..0000000 --- a/SOURCES/bz1078504-pcmk-pengine_fixes_invalid_transition_caused_by_clones_with_more_than_10_instances.patch +++ /dev/null @@ -1,93 +0,0 @@ -commit ce507c2a598086b16bfbc1d937c656de4e73ffa6 -Author: David Vossel <dvossel@redhat.com> -Date: Wed Mar 19 21:43:43 2014 -0400 - - Fix: pengine: fixes invalid transition caused by clones with more than 10 instances - - (cherry picked from commit 9e0b496b269ce0e792370e9c2b22446dfaf3e64a) - -diff --git a/pengine/clone.c b/pengine/clone.c -index 9113e9d..52a84df 100644 ---- a/pengine/clone.c -+++ b/pengine/clone.c -@@ -28,6 +28,18 @@ - gint sort_clone_instance(gconstpointer a, gconstpointer b, gpointer data_set); - static void append_parent_colocation(resource_t * rsc, resource_t * child, gboolean all); - -+static gint -+sort_rsc_id(gconstpointer a, gconstpointer b) -+{ -+ const resource_t *resource1 = (const resource_t *)a; -+ const resource_t *resource2 = (const resource_t *)b; -+ -+ CRM_ASSERT(resource1 != NULL); -+ CRM_ASSERT(resource2 != NULL); -+ -+ return strcmp(resource1->id, resource2->id); -+} -+ - static node_t * - parent_node_instance(const resource_t * rsc, node_t * node) - { -@@ -749,7 +761,7 @@ child_ordering_constraints(resource_t * rsc, pe_working_set_t * data_set) - action_t *start = NULL; - action_t *last_stop = NULL; - action_t *last_start = NULL; -- GListPtr gIter = rsc->children; -+ GListPtr gIter = NULL; - gboolean active_only = TRUE; /* change to false to get the old behavior */ - clone_variant_data_t *clone_data = NULL; - -@@ -758,8 +770,10 @@ child_ordering_constraints(resource_t * rsc, pe_working_set_t * data_set) - if (clone_data->ordered == FALSE) { - return; - } -+ /* we have to maintain a consistent sorted child list when building order constraints */ -+ rsc->children = g_list_sort(rsc->children, sort_rsc_id); - -- for (; gIter != NULL; gIter = gIter->next) { -+ for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { - resource_t *child = (resource_t *) gIter->data; - - key = stop_key(child); -@@ -857,7 +871,7 @@ void - clone_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) - { - resource_t *last_rsc = NULL; -- GListPtr gIter = rsc->children; -+ GListPtr gIter; - clone_variant_data_t *clone_data = NULL; - - get_clone_variant_data(clone_data, rsc); -@@ -872,7 +886,11 @@ clone_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) - new_rsc_order(rsc, RSC_STARTED, rsc, RSC_PROMOTE, pe_order_runnable_left, data_set); - } - -- for (; gIter != NULL; gIter = gIter->next) { -+ if (clone_data->ordered) { -+ /* we have to maintain a consistent sorted child list when building order constraints */ -+ rsc->children = g_list_sort(rsc->children, sort_rsc_id); -+ } -+ for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { - resource_t *child_rsc = (resource_t *) gIter->data; - - child_rsc->cmds->internal_constraints(child_rsc, data_set); -@@ -1400,18 +1418,6 @@ clone_expand(resource_t * rsc, pe_working_set_t * data_set) - clone_data->promote_notify = NULL; - } - --static gint --sort_rsc_id(gconstpointer a, gconstpointer b) --{ -- const resource_t *resource1 = (const resource_t *)a; -- const resource_t *resource2 = (const resource_t *)b; -- -- CRM_ASSERT(resource1 != NULL); -- CRM_ASSERT(resource2 != NULL); -- -- return strcmp(resource1->id, resource2->id); --} -- - node_t * - rsc_known_on(resource_t * rsc, GListPtr * list) - { diff --git a/SOURCES/bz1115024-pcmk-handle_systemd_reporting_done_before_a_resource_is_actually_stopped.patch b/SOURCES/bz1115024-pcmk-handle_systemd_reporting_done_before_a_resource_is_actually_stopped.patch deleted file mode 100644 index cfeaf2b..0000000 --- a/SOURCES/bz1115024-pcmk-handle_systemd_reporting_done_before_a_resource_is_actually_stopped.patch +++ /dev/null @@ -1,156 +0,0 @@ -commit 0ea59c13caf51db459bfc6448ce8b7661778405d -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Jun 27 13:26:57 2014 +1000 - - Fix: lrmd: Handle systemd reporting 'done' before a resource is actually stopped - - (cherry picked from commit 3bd6c30adbb46891ee962cd2c1f2e191da88b808) - -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index a28ae14..f9d6d29 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -422,6 +422,8 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - - if (g_strcmp0(state, "active") == 0) { - op->rc = PCMK_OCF_OK; -+ } else if (g_strcmp0(state, "activating") == 0) { -+ op->rc = PCMK_OCF_PENDING; - } else { - op->rc = PCMK_OCF_NOT_RUNNING; - } -diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c -index 517e98f..5443fa4 100644 ---- a/lrmd/lrmd.c -+++ b/lrmd/lrmd.c -@@ -58,6 +58,7 @@ typedef struct lrmd_cmd_s { - char *origin; - char *rsc_id; - char *action; -+ char *real_action; - char *output; - char *userdata_str; - -@@ -359,7 +360,11 @@ send_cmd_complete_notify(lrmd_cmd_t * cmd) - - crm_xml_add(notify, F_LRMD_OPERATION, LRMD_OP_RSC_EXEC); - crm_xml_add(notify, F_LRMD_RSC_ID, cmd->rsc_id); -- crm_xml_add(notify, F_LRMD_RSC_ACTION, cmd->action); -+ if(cmd->real_action) { -+ crm_xml_add(notify, F_LRMD_RSC_ACTION, cmd->real_action); -+ } else { -+ crm_xml_add(notify, F_LRMD_RSC_ACTION, cmd->action); -+ } - crm_xml_add(notify, F_LRMD_RSC_USERDATA_STR, cmd->userdata_str); - crm_xml_add(notify, F_LRMD_RSC_OUTPUT, cmd->output); - -@@ -584,6 +589,8 @@ action_complete(svc_action_t * action) - lrmd_rsc_t *rsc; - lrmd_cmd_t *cmd = action->cb_data; - -+ bool goagain = false; -+ - if (!cmd) { - crm_err("LRMD action (%s) completed does not match any known operations.", action->id); - return; -@@ -604,6 +611,30 @@ action_complete(svc_action_t * action) - } else if (action->stdout_data) { - cmd->output = strdup(action->stdout_data); - } -+ -+ if (rsc && safe_str_eq(rsc->class, "systemd")) { -+ if(safe_str_eq(cmd->action, "start")) { -+ /* systemd I curse thee! -+ * -+ * systemd returns from start actions after the start _begins_ -+ * not after it completes. -+ * -+ * So we have to jump through a few hoops so that we don't -+ * report 'complete' to the rest of pacemaker until, you know, -+ * its actually done. -+ */ -+ goagain = true; -+ cmd->real_action = cmd->action; -+ cmd->action = strdup("monitor"); -+ -+ } else if(cmd->real_action) { -+ /* Ok, so this is the follow up monitor action to check if start actually completed */ -+ if(cmd->lrmd_op_status == PCMK_LRM_OP_DONE && cmd->exec_rc == PCMK_OCF_PENDING) { -+ goagain = true; -+ } -+ } -+ } -+ - #if SUPPORT_NAGIOS - if (rsc && safe_str_eq(rsc->class, "nagios")) { - if (safe_str_eq(cmd->action, "monitor") && -@@ -612,41 +643,46 @@ action_complete(svc_action_t * action) - cmd->exec_rc = PCMK_OCF_NOT_RUNNING; - - } else if (safe_str_eq(cmd->action, "start") && cmd->exec_rc != PCMK_OCF_OK) { -- int time_sum = 0; -- int timeout_left = 0; -- int delay = cmd->timeout_orig / 10; -+ goagain = true; -+ } -+ } -+#endif -+ -+ if(goagain) { -+ int time_sum = 0; -+ int timeout_left = 0; -+ int delay = cmd->timeout_orig / 10; - - # ifdef HAVE_SYS_TIMEB_H -- struct timeb now = { 0, }; -+ struct timeb now = { 0, }; - -- ftime(&now); -- time_sum = time_diff_ms(&now, &cmd->t_first_run); -- timeout_left = cmd->timeout_orig - time_sum; -- if (delay < timeout_left) { -- cmd->start_delay = delay; -- cmd->timeout = timeout_left; -+ ftime(&now); -+ time_sum = time_diff_ms(&now, &cmd->t_first_run); -+ timeout_left = cmd->timeout_orig - time_sum; -+ if (delay < timeout_left) { -+ cmd->start_delay = delay; -+ cmd->timeout = timeout_left; - -+ if(cmd->exec_rc != PCMK_OCF_OK) { - crm_notice - ("%s %s failed (rc=%d): re-scheduling (time_sum=%dms, start_delay=%dms, timeout=%dms)", - cmd->rsc_id, cmd->action, cmd->exec_rc, time_sum, cmd->start_delay, - cmd->timeout); -+ } - -- cmd->lrmd_op_status = 0; -- cmd->last_pid = 0; -- memset(&cmd->t_run, 0, sizeof(cmd->t_run)); -- memset(&cmd->t_queue, 0, sizeof(cmd->t_queue)); -- free(cmd->output); -- cmd->output = NULL; -+ cmd->lrmd_op_status = 0; -+ cmd->last_pid = 0; -+ memset(&cmd->t_run, 0, sizeof(cmd->t_run)); -+ memset(&cmd->t_queue, 0, sizeof(cmd->t_queue)); -+ free(cmd->output); -+ cmd->output = NULL; - -- rsc->active = NULL; -- schedule_lrmd_cmd(rsc, cmd); -- return; -- } --# endif -+ rsc->active = NULL; -+ schedule_lrmd_cmd(rsc, cmd); -+ return; - } -+# endif - } --#endif -- - cmd_finalize(cmd, rsc); - } - diff --git a/SOURCES/bz1117341-remote-imply-stop-on-fence.patch b/SOURCES/bz1117341-remote-imply-stop-on-fence.patch new file mode 100644 index 0000000..9b3676a --- /dev/null +++ b/SOURCES/bz1117341-remote-imply-stop-on-fence.patch @@ -0,0 +1,1399 @@ +diff --git a/pengine/native.c b/pengine/native.c +index 62639d0..3f1807e 100644 +--- a/pengine/native.c ++++ b/pengine/native.c +@@ -2913,6 +2913,39 @@ native_start_constraints(resource_t * rsc, action_t * stonith_op, gboolean is_st + } + } + ++static GListPtr ++find_fence_target_node_actions(GListPtr search_list, const char *key, node_t *fence_target, pe_working_set_t *data_set) ++{ ++ GListPtr gIter = NULL; ++ GListPtr result_list = find_actions(search_list, key, fence_target); ++ ++ /* find stop actions for this rsc on any container nodes running on ++ * the fencing target node */ ++ for (gIter = fence_target->details->running_rsc; gIter != NULL; gIter = gIter->next) { ++ GListPtr iter = NULL; ++ GListPtr tmp_list = NULL; ++ resource_t *tmp_rsc = (resource_t *) gIter->data; ++ node_t *container_node = NULL; ++ ++ /* found a container node that lives on the host node ++ * that is getting fenced. Find stop for our rsc that live on ++ * the container node as well. These stop operations are also ++ * implied by fencing of the host cluster node. */ ++ if (tmp_rsc->is_remote_node && tmp_rsc->container != NULL) { ++ container_node = pe_find_node(data_set->nodes, tmp_rsc->id); ++ } ++ if (container_node) { ++ tmp_list = find_actions(search_list, key, container_node); ++ } ++ for (iter = tmp_list; iter != NULL; iter = iter->next) { ++ result_list = g_list_prepend(result_list, (action_t *) iter->data); ++ } ++ g_list_free(tmp_list); ++ } ++ ++ return result_list; ++} ++ + static void + native_stop_constraints(resource_t * rsc, action_t * stonith_op, gboolean is_stonith, + pe_working_set_t * data_set) +@@ -2923,7 +2956,7 @@ native_stop_constraints(resource_t * rsc, action_t * stonith_op, gboolean is_sto + resource_t *top = uber_parent(rsc); + + key = stop_key(rsc); +- action_list = find_actions(rsc->actions, key, stonith_op->node); ++ action_list = find_fence_target_node_actions(rsc->actions, key, stonith_op->node, data_set); + free(key); + + /* add the stonith OP as a stop pre-req and the mark the stop +@@ -3032,7 +3065,7 @@ native_stop_constraints(resource_t * rsc, action_t * stonith_op, gboolean is_sto + g_list_free(action_list); + + key = demote_key(rsc); +- action_list = find_actions(rsc->actions, key, stonith_op->node); ++ action_list = find_fence_target_node_actions(rsc->actions, key, stonith_op->node, data_set); + free(key); + + for (gIter = action_list; gIter != NULL; gIter = gIter->next) { +diff --git a/pengine/regression.sh b/pengine/regression.sh +index c2bc7fb..9172acb 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -768,6 +768,7 @@ do_test whitebox-orphaned "Properly shutdown orphaned whitebox container" + do_test whitebox-orphan-ms "Properly tear down orphan ms resources on remote-nodes" + do_test whitebox-unexpectedly-running "Recover container nodes the cluster did not start." + do_test whitebox-migrate1 "Migrate both container and connection resource" ++do_test whitebox-imply-stop-on-fence "imply stop action on container node rsc when host node is fenced" + + echo "" + do_test remote-startup-probes "Baremetal remote-node startup probes" +diff --git a/pengine/test10/whitebox-imply-stop-on-fence.dot b/pengine/test10/whitebox-imply-stop-on-fence.dot +new file mode 100644 +index 0000000..66700b8 +--- /dev/null ++++ b/pengine/test10/whitebox-imply-stop-on-fence.dot +@@ -0,0 +1,93 @@ ++ digraph "g" { ++"R-lxc-01_kiff-01_monitor_10000 kiff-02" [ style=bold color="green" fontcolor="black"] ++"R-lxc-01_kiff-01_start_0 kiff-02" -> "R-lxc-01_kiff-01_monitor_10000 kiff-02" [ style = bold] ++"R-lxc-01_kiff-01_start_0 kiff-02" -> "lxc-01_kiff-01_start_0 kiff-02" [ style = bold] ++"R-lxc-01_kiff-01_start_0 kiff-02" [ style=bold color="green" fontcolor="black"] ++"R-lxc-01_kiff-01_stop_0 kiff-01" -> "R-lxc-01_kiff-01_start_0 kiff-02" [ style = bold] ++"R-lxc-01_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"R-lxc-01_kiff-01_stop_0 kiff-01" -> "shared0-clone_stop_0" [ style = bold] ++"R-lxc-01_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"R-lxc-02_kiff-01_monitor_10000 kiff-02" [ style=bold color="green" fontcolor="black"] ++"R-lxc-02_kiff-01_start_0 kiff-02" -> "R-lxc-02_kiff-01_monitor_10000 kiff-02" [ style = bold] ++"R-lxc-02_kiff-01_start_0 kiff-02" -> "lxc-02_kiff-01_start_0 kiff-02" [ style = bold] ++"R-lxc-02_kiff-01_start_0 kiff-02" [ style=bold color="green" fontcolor="black"] ++"R-lxc-02_kiff-01_stop_0 kiff-01" -> "R-lxc-02_kiff-01_start_0 kiff-02" [ style = bold] ++"R-lxc-02_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"R-lxc-02_kiff-01_stop_0 kiff-01" -> "shared0-clone_stop_0" [ style = bold] ++"R-lxc-02_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"clvmd-clone_stop_0" -> "clvmd-clone_stopped_0" [ style = bold] ++"clvmd-clone_stop_0" -> "clvmd_stop_0 kiff-01" [ style = bold] ++"clvmd-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"clvmd-clone_stopped_0" -> "dlm-clone_stop_0" [ style = bold] ++"clvmd-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"clvmd_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"clvmd_stop_0 kiff-01" -> "clvmd-clone_stopped_0" [ style = bold] ++"clvmd_stop_0 kiff-01" -> "dlm_stop_0 kiff-01" [ style = bold] ++"clvmd_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"dlm-clone_stop_0" -> "dlm-clone_stopped_0" [ style = bold] ++"dlm-clone_stop_0" -> "dlm_stop_0 kiff-01" [ style = bold] ++"dlm-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"dlm-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"dlm_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"dlm_stop_0 kiff-01" -> "dlm-clone_stopped_0" [ style = bold] ++"dlm_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"fence-kiff-02_monitor_60000 kiff-02" [ style=bold color="green" fontcolor="black"] ++"fence-kiff-02_start_0 kiff-02" -> "fence-kiff-02_monitor_60000 kiff-02" [ style = bold] ++"fence-kiff-02_start_0 kiff-02" [ style=bold color="green" fontcolor="black"] ++"fence-kiff-02_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"fence-kiff-02_stop_0 kiff-01" -> "fence-kiff-02_start_0 kiff-02" [ style = bold] ++"fence-kiff-02_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"lxc-01_kiff-01_monitor_30000 kiff-02" [ style=bold color="green" fontcolor="black"] ++"lxc-01_kiff-01_start_0 kiff-02" -> "lxc-01_kiff-01_monitor_30000 kiff-02" [ style = bold] ++"lxc-01_kiff-01_start_0 kiff-02" -> "vm-fs_monitor_20000 lxc-01_kiff-01" [ style = bold] ++"lxc-01_kiff-01_start_0 kiff-02" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] ++"lxc-01_kiff-01_start_0 kiff-02" [ style=bold color="green" fontcolor="black"] ++"lxc-01_kiff-01_stop_0 kiff-01" -> "R-lxc-01_kiff-01_stop_0 kiff-01" [ style = bold] ++"lxc-01_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"lxc-01_kiff-01_stop_0 kiff-01" -> "lxc-01_kiff-01_start_0 kiff-02" [ style = bold] ++"lxc-01_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"lxc-02_kiff-01_monitor_30000 kiff-02" [ style=bold color="green" fontcolor="black"] ++"lxc-02_kiff-01_start_0 kiff-02" -> "lxc-02_kiff-01_monitor_30000 kiff-02" [ style = bold] ++"lxc-02_kiff-01_start_0 kiff-02" [ style=bold color="green" fontcolor="black"] ++"lxc-02_kiff-01_stop_0 kiff-01" -> "R-lxc-02_kiff-01_stop_0 kiff-01" [ style = bold] ++"lxc-02_kiff-01_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"lxc-02_kiff-01_stop_0 kiff-01" -> "lxc-02_kiff-01_start_0 kiff-02" [ style = bold] ++"lxc-02_kiff-01_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"shared0-clone_stop_0" -> "shared0-clone_stopped_0" [ style = bold] ++"shared0-clone_stop_0" -> "shared0_stop_0 kiff-01" [ style = bold] ++"shared0-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"shared0-clone_stopped_0" -> "clvmd-clone_stop_0" [ style = bold] ++"shared0-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"shared0_stop_0 kiff-01" -> "all_stopped" [ style = bold] ++"shared0_stop_0 kiff-01" -> "clvmd_stop_0 kiff-01" [ style = bold] ++"shared0_stop_0 kiff-01" -> "shared0-clone_stopped_0" [ style = bold] ++"shared0_stop_0 kiff-01" [ style=bold color="green" fontcolor="orange"] ++"stonith 'reboot' kiff-01" -> "R-lxc-01_kiff-01_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "R-lxc-02_kiff-01_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "clvmd-clone_stop_0" [ style = bold] ++"stonith 'reboot' kiff-01" -> "clvmd_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "dlm-clone_stop_0" [ style = bold] ++"stonith 'reboot' kiff-01" -> "dlm_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "fence-kiff-02_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "lxc-01_kiff-01_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "lxc-02_kiff-01_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "shared0-clone_stop_0" [ style = bold] ++"stonith 'reboot' kiff-01" -> "shared0_stop_0 kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" -> "stonith_complete" [ style = bold] ++"stonith 'reboot' kiff-01" -> "vm-fs_stop_0 lxc-01_kiff-01" [ style = bold] ++"stonith 'reboot' kiff-01" [ style=bold color="green" fontcolor="black"] ++"stonith_complete" -> "R-lxc-01_kiff-01_start_0 kiff-02" [ style = bold] ++"stonith_complete" -> "R-lxc-02_kiff-01_start_0 kiff-02" [ style = bold] ++"stonith_complete" -> "all_stopped" [ style = bold] ++"stonith_complete" -> "lxc-01_kiff-01_start_0 kiff-02" [ style = bold] ++"stonith_complete" -> "lxc-02_kiff-01_start_0 kiff-02" [ style = bold] ++"stonith_complete" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] ++"stonith_complete" [ style=bold color="green" fontcolor="orange"] ++"vm-fs_monitor_20000 lxc-01_kiff-01" [ style=bold color="green" fontcolor="black"] ++"vm-fs_start_0 lxc-01_kiff-01" -> "vm-fs_monitor_20000 lxc-01_kiff-01" [ style = bold] ++"vm-fs_start_0 lxc-01_kiff-01" [ style=bold color="green" fontcolor="black"] ++"vm-fs_stop_0 lxc-01_kiff-01" -> "all_stopped" [ style = bold] ++"vm-fs_stop_0 lxc-01_kiff-01" -> "vm-fs_start_0 lxc-01_kiff-01" [ style = bold] ++"vm-fs_stop_0 lxc-01_kiff-01" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/whitebox-imply-stop-on-fence.exp b/pengine/test10/whitebox-imply-stop-on-fence.exp +new file mode 100644 +index 0000000..d13c25f +--- /dev/null ++++ b/pengine/test10/whitebox-imply-stop-on-fence.exp +@@ -0,0 +1,466 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="18" operation="monitor" operation_key="fence-kiff-02_monitor_60000" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="fence-kiff-02" class="stonith" type="fence_ipmilan"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" action="reboot" ipaddr="kiff-02-ilo" login="admin" passwd="admin" pcmk_host_check="static-list" pcmk_host_list="kiff-02"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="fence-kiff-02_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="17" operation="start" operation_key="fence-kiff-02_start_0" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="fence-kiff-02" class="stonith" type="fence_ipmilan"/> ++ <attributes CRM_meta_timeout="20000" action="reboot" ipaddr="kiff-02-ilo" login="admin" passwd="admin" pcmk_host_check="static-list" pcmk_host_list="kiff-02"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="16" operation="stop" operation_key="fence-kiff-02_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <pseudo_event id="16" operation="stop" operation_key="fence-kiff-02_stop_0"> ++ <attributes CRM_meta_timeout="20000" action="reboot" ipaddr="kiff-02-ilo" login="admin" passwd="admin" pcmk_host_check="static-list" pcmk_host_list="kiff-02"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <pseudo_event id="19" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0"> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="100000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="24" operation="stop" operation_key="dlm-clone_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4" priority="1000000"> ++ <action_set> ++ <pseudo_event id="25" operation="stopped" operation_key="dlm-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="19" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="24" operation="stop" operation_key="dlm-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <pseudo_event id="24" operation="stop" operation_key="dlm-clone_stop_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <pseudo_event id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0"> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="90000" with_cmirrord="1"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="31" operation="stop" operation_key="clvmd-clone_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="33" operation="stop" operation_key="shared0_stop_0" internal_operation_key="shared0:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7" priority="1000000"> ++ <action_set> ++ <pseudo_event id="32" operation="stopped" operation_key="clvmd-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="31" operation="stop" operation_key="clvmd-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <pseudo_event id="31" operation="stop" operation_key="clvmd-clone_stop_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="39" operation="stopped" operation_key="shared0-clone_stopped_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <pseudo_event id="33" operation="stop" operation_key="shared0_stop_0" internal_operation_key="shared0:0_stop_0"> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="60000" device="/dev/shared/shared0" directory="/mnt/shared0" fstype="gfs2" options="errors=panic"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="38" operation="stop" operation_key="shared0-clone_stop_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10" priority="1000000"> ++ <action_set> ++ <pseudo_event id="39" operation="stopped" operation_key="shared0-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="33" operation="stop" operation_key="shared0_stop_0" internal_operation_key="shared0:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="38" operation="stop" operation_key="shared0-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <pseudo_event id="38" operation="stop" operation_key="shared0-clone_stop_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="40" operation="stop" operation_key="R-lxc-01_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="43" operation="stop" operation_key="R-lxc-02_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="42" operation="monitor" operation_key="R-lxc-01_kiff-01_monitor_10000" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="R-lxc-01_kiff-01" class="ocf" provider="heartbeat" type="VirtualDomain"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_remote_node="lxc-01_kiff-01" CRM_meta_timeout="30000" config="/mnt/shared0/test-virtual-domain/lxc/lxc-01_kiff-01.xml" force_stop="true" hypervisor="lxc:///"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="41" operation="start" operation_key="R-lxc-01_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="41" operation="start" operation_key="R-lxc-01_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="R-lxc-01_kiff-01" class="ocf" provider="heartbeat" type="VirtualDomain"/> ++ <attributes CRM_meta_name="start" CRM_meta_remote_node="lxc-01_kiff-01" CRM_meta_timeout="90000" config="/mnt/shared0/test-virtual-domain/lxc/lxc-01_kiff-01.xml" force_stop="true" hypervisor="lxc:///"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="40" operation="stop" operation_key="R-lxc-01_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="62" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14"> ++ <action_set> ++ <pseudo_event id="40" operation="stop" operation_key="R-lxc-01_kiff-01_stop_0"> ++ <attributes CRM_meta_name="stop" CRM_meta_remote_node="lxc-01_kiff-01" CRM_meta_timeout="90000" config="/mnt/shared0/test-virtual-domain/lxc/lxc-01_kiff-01.xml" force_stop="true" hypervisor="lxc:///"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="52" operation="stop" operation_key="lxc-01_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <rsc_op id="45" operation="monitor" operation_key="R-lxc-02_kiff-01_monitor_10000" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="R-lxc-02_kiff-01" class="ocf" provider="heartbeat" type="VirtualDomain"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_remote_node="lxc-02_kiff-01" CRM_meta_timeout="30000" config="/mnt/shared0/test-virtual-domain/lxc/lxc-02_kiff-01.xml" force_stop="true" hypervisor="lxc:///"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="44" operation="start" operation_key="R-lxc-02_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <rsc_op id="44" operation="start" operation_key="R-lxc-02_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="R-lxc-02_kiff-01" class="ocf" provider="heartbeat" type="VirtualDomain"/> ++ <attributes CRM_meta_name="start" CRM_meta_remote_node="lxc-02_kiff-01" CRM_meta_timeout="90000" config="/mnt/shared0/test-virtual-domain/lxc/lxc-02_kiff-01.xml" force_stop="true" hypervisor="lxc:///"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="43" operation="stop" operation_key="R-lxc-02_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="62" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="17"> ++ <action_set> ++ <pseudo_event id="43" operation="stop" operation_key="R-lxc-02_kiff-01_stop_0"> ++ <attributes CRM_meta_name="stop" CRM_meta_remote_node="lxc-02_kiff-01" CRM_meta_timeout="90000" config="/mnt/shared0/test-virtual-domain/lxc/lxc-02_kiff-01.xml" force_stop="true" hypervisor="lxc:///"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="55" operation="stop" operation_key="lxc-02_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="18"> ++ <action_set> ++ <rsc_op id="51" operation="start" operation_key="vm-fs_start_0" on_node="lxc-01_kiff-01" on_node_uuid="lxc-01_kiff-01" router_node="kiff-02"> ++ <primitive id="vm-fs" class="ocf" provider="heartbeat" type="Filesystem"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="60000" device="/root" directory="/mnt/vm-fs" fstype="none" options="bind"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="50" operation="stop" operation_key="vm-fs_stop_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="53" operation="start" operation_key="lxc-01_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="62" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="19"> ++ <action_set> ++ <pseudo_event id="50" operation="stop" operation_key="vm-fs_stop_0"> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="60000" device="/root" directory="/mnt/vm-fs" fstype="none" options="bind"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="20"> ++ <action_set> ++ <rsc_op id="9" operation="monitor" operation_key="vm-fs_monitor_20000" on_node="lxc-01_kiff-01" on_node_uuid="lxc-01_kiff-01" router_node="kiff-02"> ++ <primitive id="vm-fs" class="ocf" provider="heartbeat" type="Filesystem"/> ++ <attributes CRM_meta_interval="20000" CRM_meta_name="monitor" CRM_meta_timeout="40000" device="/root" directory="/mnt/vm-fs" fstype="none" options="bind"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="51" operation="start" operation_key="vm-fs_start_0" on_node="lxc-01_kiff-01" on_node_uuid="lxc-01_kiff-01" router_node="kiff-02"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="53" operation="start" operation_key="lxc-01_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="21"> ++ <action_set> ++ <rsc_op id="54" operation="monitor" operation_key="lxc-01_kiff-01_monitor_30000" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="lxc-01_kiff-01" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_container="R-lxc-01_kiff-01" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="53" operation="start" operation_key="lxc-01_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="22"> ++ <action_set> ++ <rsc_op id="53" operation="start" operation_key="lxc-01_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="lxc-01_kiff-01" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_container="R-lxc-01_kiff-01" CRM_meta_name="start" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="41" operation="start" operation_key="R-lxc-01_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="52" operation="stop" operation_key="lxc-01_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="62" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="23"> ++ <action_set> ++ <pseudo_event id="52" operation="stop" operation_key="lxc-01_kiff-01_stop_0"> ++ <attributes CRM_meta_container="R-lxc-01_kiff-01" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="24"> ++ <action_set> ++ <rsc_op id="57" operation="monitor" operation_key="lxc-02_kiff-01_monitor_30000" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="lxc-02_kiff-01" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_container="R-lxc-02_kiff-01" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="56" operation="start" operation_key="lxc-02_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="25"> ++ <action_set> ++ <rsc_op id="56" operation="start" operation_key="lxc-02_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"> ++ <primitive id="lxc-02_kiff-01" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_container="R-lxc-02_kiff-01" CRM_meta_name="start" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="44" operation="start" operation_key="R-lxc-02_kiff-01_start_0" on_node="kiff-02" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="55" operation="stop" operation_key="lxc-02_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="62" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="26"> ++ <action_set> ++ <pseudo_event id="55" operation="stop" operation_key="lxc-02_kiff-01_stop_0"> ++ <attributes CRM_meta_container="R-lxc-02_kiff-01" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="27"> ++ <action_set> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"> ++ <attributes CRM_meta_on_node="kiff-01" CRM_meta_on_node_uuid="1" CRM_meta_probe_complete="true" CRM_meta_shutdown="0" CRM_meta_stonith_action="reboot" /> ++ </crm_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="28"> ++ <action_set> ++ <pseudo_event id="62" operation="stonith_complete" operation_key="stonith_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="63" operation="stonith" operation_key="stonith-kiff-01-reboot" on_node="kiff-01" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="29"> ++ <action_set> ++ <pseudo_event id="10" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="16" operation="stop" operation_key="fence-kiff-02_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="stop" operation_key="dlm_stop_0" internal_operation_key="dlm:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="26" operation="stop" operation_key="clvmd_stop_0" internal_operation_key="clvmd:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="33" operation="stop" operation_key="shared0_stop_0" internal_operation_key="shared0:0_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="40" operation="stop" operation_key="R-lxc-01_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="43" operation="stop" operation_key="R-lxc-02_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="50" operation="stop" operation_key="vm-fs_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="52" operation="stop" operation_key="lxc-01_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="55" operation="stop" operation_key="lxc-02_kiff-01_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="62" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/whitebox-imply-stop-on-fence.scores b/pengine/test10/whitebox-imply-stop-on-fence.scores +new file mode 100644 +index 0000000..e50f077 +--- /dev/null ++++ b/pengine/test10/whitebox-imply-stop-on-fence.scores +@@ -0,0 +1,301 @@ ++Allocation scores: ++clone_color: clvmd-clone allocation score on kiff-01: 0 ++clone_color: clvmd-clone allocation score on kiff-02: 0 ++clone_color: clvmd-clone allocation score on lxc-01_kiff-01: 0 ++clone_color: clvmd-clone allocation score on lxc-01_kiff-02: 0 ++clone_color: clvmd-clone allocation score on lxc-02_kiff-01: 0 ++clone_color: clvmd-clone allocation score on lxc-02_kiff-02: 0 ++clone_color: clvmd:0 allocation score on kiff-01: 1 ++clone_color: clvmd:0 allocation score on kiff-02: 0 ++clone_color: clvmd:0 allocation score on lxc-01_kiff-01: 0 ++clone_color: clvmd:0 allocation score on lxc-01_kiff-02: 0 ++clone_color: clvmd:0 allocation score on lxc-02_kiff-01: 0 ++clone_color: clvmd:0 allocation score on lxc-02_kiff-02: 0 ++clone_color: clvmd:1 allocation score on kiff-01: 0 ++clone_color: clvmd:1 allocation score on kiff-02: 1 ++clone_color: clvmd:1 allocation score on lxc-01_kiff-01: 0 ++clone_color: clvmd:1 allocation score on lxc-01_kiff-02: 0 ++clone_color: clvmd:1 allocation score on lxc-02_kiff-01: 0 ++clone_color: clvmd:1 allocation score on lxc-02_kiff-02: 0 ++clone_color: clvmd:2 allocation score on kiff-01: 0 ++clone_color: clvmd:2 allocation score on kiff-02: 0 ++clone_color: clvmd:2 allocation score on lxc-01_kiff-01: 0 ++clone_color: clvmd:2 allocation score on lxc-01_kiff-02: 0 ++clone_color: clvmd:2 allocation score on lxc-02_kiff-01: 0 ++clone_color: clvmd:2 allocation score on lxc-02_kiff-02: 0 ++clone_color: clvmd:3 allocation score on kiff-01: 0 ++clone_color: clvmd:3 allocation score on kiff-02: 0 ++clone_color: clvmd:3 allocation score on lxc-01_kiff-01: 0 ++clone_color: clvmd:3 allocation score on lxc-01_kiff-02: 0 ++clone_color: clvmd:3 allocation score on lxc-02_kiff-01: 0 ++clone_color: clvmd:3 allocation score on lxc-02_kiff-02: 0 ++clone_color: clvmd:4 allocation score on kiff-01: 0 ++clone_color: clvmd:4 allocation score on kiff-02: 0 ++clone_color: clvmd:4 allocation score on lxc-01_kiff-01: 0 ++clone_color: clvmd:4 allocation score on lxc-01_kiff-02: 0 ++clone_color: clvmd:4 allocation score on lxc-02_kiff-01: 0 ++clone_color: clvmd:4 allocation score on lxc-02_kiff-02: 0 ++clone_color: clvmd:5 allocation score on kiff-01: 0 ++clone_color: clvmd:5 allocation score on kiff-02: 0 ++clone_color: clvmd:5 allocation score on lxc-01_kiff-01: 0 ++clone_color: clvmd:5 allocation score on lxc-01_kiff-02: 0 ++clone_color: clvmd:5 allocation score on lxc-02_kiff-01: 0 ++clone_color: clvmd:5 allocation score on lxc-02_kiff-02: 0 ++clone_color: dlm-clone allocation score on kiff-01: 0 ++clone_color: dlm-clone allocation score on kiff-02: 0 ++clone_color: dlm-clone allocation score on lxc-01_kiff-01: -INFINITY ++clone_color: dlm-clone allocation score on lxc-01_kiff-02: -INFINITY ++clone_color: dlm-clone allocation score on lxc-02_kiff-01: -INFINITY ++clone_color: dlm-clone allocation score on lxc-02_kiff-02: -INFINITY ++clone_color: dlm:0 allocation score on kiff-01: 1 ++clone_color: dlm:0 allocation score on kiff-02: 0 ++clone_color: dlm:0 allocation score on lxc-01_kiff-01: -INFINITY ++clone_color: dlm:0 allocation score on lxc-01_kiff-02: -INFINITY ++clone_color: dlm:0 allocation score on lxc-02_kiff-01: -INFINITY ++clone_color: dlm:0 allocation score on lxc-02_kiff-02: -INFINITY ++clone_color: dlm:1 allocation score on kiff-01: 0 ++clone_color: dlm:1 allocation score on kiff-02: 1 ++clone_color: dlm:1 allocation score on lxc-01_kiff-01: -INFINITY ++clone_color: dlm:1 allocation score on lxc-01_kiff-02: -INFINITY ++clone_color: dlm:1 allocation score on lxc-02_kiff-01: -INFINITY ++clone_color: dlm:1 allocation score on lxc-02_kiff-02: -INFINITY ++clone_color: dlm:2 allocation score on kiff-01: 0 ++clone_color: dlm:2 allocation score on kiff-02: 0 ++clone_color: dlm:2 allocation score on lxc-01_kiff-01: -INFINITY ++clone_color: dlm:2 allocation score on lxc-01_kiff-02: -INFINITY ++clone_color: dlm:2 allocation score on lxc-02_kiff-01: -INFINITY ++clone_color: dlm:2 allocation score on lxc-02_kiff-02: -INFINITY ++clone_color: dlm:3 allocation score on kiff-01: 0 ++clone_color: dlm:3 allocation score on kiff-02: 0 ++clone_color: dlm:3 allocation score on lxc-01_kiff-01: -INFINITY ++clone_color: dlm:3 allocation score on lxc-01_kiff-02: -INFINITY ++clone_color: dlm:3 allocation score on lxc-02_kiff-01: -INFINITY ++clone_color: dlm:3 allocation score on lxc-02_kiff-02: -INFINITY ++clone_color: dlm:4 allocation score on kiff-01: 0 ++clone_color: dlm:4 allocation score on kiff-02: 0 ++clone_color: dlm:4 allocation score on lxc-01_kiff-01: -INFINITY ++clone_color: dlm:4 allocation score on lxc-01_kiff-02: -INFINITY ++clone_color: dlm:4 allocation score on lxc-02_kiff-01: -INFINITY ++clone_color: dlm:4 allocation score on lxc-02_kiff-02: -INFINITY ++clone_color: dlm:5 allocation score on kiff-01: 0 ++clone_color: dlm:5 allocation score on kiff-02: 0 ++clone_color: dlm:5 allocation score on lxc-01_kiff-01: -INFINITY ++clone_color: dlm:5 allocation score on lxc-01_kiff-02: -INFINITY ++clone_color: dlm:5 allocation score on lxc-02_kiff-01: -INFINITY ++clone_color: dlm:5 allocation score on lxc-02_kiff-02: -INFINITY ++clone_color: shared0-clone allocation score on kiff-01: 0 ++clone_color: shared0-clone allocation score on kiff-02: 0 ++clone_color: shared0-clone allocation score on lxc-01_kiff-01: 0 ++clone_color: shared0-clone allocation score on lxc-01_kiff-02: 0 ++clone_color: shared0-clone allocation score on lxc-02_kiff-01: 0 ++clone_color: shared0-clone allocation score on lxc-02_kiff-02: 0 ++clone_color: shared0:0 allocation score on kiff-01: 1 ++clone_color: shared0:0 allocation score on kiff-02: 0 ++clone_color: shared0:0 allocation score on lxc-01_kiff-01: 0 ++clone_color: shared0:0 allocation score on lxc-01_kiff-02: 0 ++clone_color: shared0:0 allocation score on lxc-02_kiff-01: 0 ++clone_color: shared0:0 allocation score on lxc-02_kiff-02: 0 ++clone_color: shared0:1 allocation score on kiff-01: 0 ++clone_color: shared0:1 allocation score on kiff-02: 1 ++clone_color: shared0:1 allocation score on lxc-01_kiff-01: 0 ++clone_color: shared0:1 allocation score on lxc-01_kiff-02: 0 ++clone_color: shared0:1 allocation score on lxc-02_kiff-01: 0 ++clone_color: shared0:1 allocation score on lxc-02_kiff-02: 0 ++clone_color: shared0:2 allocation score on kiff-01: 0 ++clone_color: shared0:2 allocation score on kiff-02: 0 ++clone_color: shared0:2 allocation score on lxc-01_kiff-01: 0 ++clone_color: shared0:2 allocation score on lxc-01_kiff-02: 0 ++clone_color: shared0:2 allocation score on lxc-02_kiff-01: 0 ++clone_color: shared0:2 allocation score on lxc-02_kiff-02: 0 ++clone_color: shared0:3 allocation score on kiff-01: 0 ++clone_color: shared0:3 allocation score on kiff-02: 0 ++clone_color: shared0:3 allocation score on lxc-01_kiff-01: 0 ++clone_color: shared0:3 allocation score on lxc-01_kiff-02: 0 ++clone_color: shared0:3 allocation score on lxc-02_kiff-01: 0 ++clone_color: shared0:3 allocation score on lxc-02_kiff-02: 0 ++clone_color: shared0:4 allocation score on kiff-01: 0 ++clone_color: shared0:4 allocation score on kiff-02: 0 ++clone_color: shared0:4 allocation score on lxc-01_kiff-01: 0 ++clone_color: shared0:4 allocation score on lxc-01_kiff-02: 0 ++clone_color: shared0:4 allocation score on lxc-02_kiff-01: 0 ++clone_color: shared0:4 allocation score on lxc-02_kiff-02: 0 ++clone_color: shared0:5 allocation score on kiff-01: 0 ++clone_color: shared0:5 allocation score on kiff-02: 0 ++clone_color: shared0:5 allocation score on lxc-01_kiff-01: 0 ++clone_color: shared0:5 allocation score on lxc-01_kiff-02: 0 ++clone_color: shared0:5 allocation score on lxc-02_kiff-01: 0 ++clone_color: shared0:5 allocation score on lxc-02_kiff-02: 0 ++native_color: R-lxc-01_kiff-01 allocation score on kiff-01: -INFINITY ++native_color: R-lxc-01_kiff-01 allocation score on kiff-02: 0 ++native_color: R-lxc-01_kiff-01 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: R-lxc-01_kiff-01 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: R-lxc-01_kiff-01 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: R-lxc-01_kiff-01 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: R-lxc-01_kiff-02 allocation score on kiff-01: -INFINITY ++native_color: R-lxc-01_kiff-02 allocation score on kiff-02: 100 ++native_color: R-lxc-01_kiff-02 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: R-lxc-01_kiff-02 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: R-lxc-01_kiff-02 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: R-lxc-01_kiff-02 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: R-lxc-02_kiff-01 allocation score on kiff-01: -INFINITY ++native_color: R-lxc-02_kiff-01 allocation score on kiff-02: 0 ++native_color: R-lxc-02_kiff-01 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: R-lxc-02_kiff-01 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: R-lxc-02_kiff-01 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: R-lxc-02_kiff-01 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: R-lxc-02_kiff-02 allocation score on kiff-01: -INFINITY ++native_color: R-lxc-02_kiff-02 allocation score on kiff-02: 100 ++native_color: R-lxc-02_kiff-02 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: R-lxc-02_kiff-02 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: R-lxc-02_kiff-02 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: R-lxc-02_kiff-02 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: clvmd:0 allocation score on kiff-01: -INFINITY ++native_color: clvmd:0 allocation score on kiff-02: -INFINITY ++native_color: clvmd:0 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: clvmd:0 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: clvmd:0 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: clvmd:0 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: clvmd:1 allocation score on kiff-01: -INFINITY ++native_color: clvmd:1 allocation score on kiff-02: 1 ++native_color: clvmd:1 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: clvmd:1 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: clvmd:1 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: clvmd:1 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: clvmd:2 allocation score on kiff-01: -INFINITY ++native_color: clvmd:2 allocation score on kiff-02: -INFINITY ++native_color: clvmd:2 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: clvmd:2 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: clvmd:2 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: clvmd:2 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: clvmd:3 allocation score on kiff-01: -INFINITY ++native_color: clvmd:3 allocation score on kiff-02: -INFINITY ++native_color: clvmd:3 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: clvmd:3 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: clvmd:3 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: clvmd:3 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: clvmd:4 allocation score on kiff-01: -INFINITY ++native_color: clvmd:4 allocation score on kiff-02: -INFINITY ++native_color: clvmd:4 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: clvmd:4 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: clvmd:4 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: clvmd:4 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: clvmd:5 allocation score on kiff-01: -INFINITY ++native_color: clvmd:5 allocation score on kiff-02: -INFINITY ++native_color: clvmd:5 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: clvmd:5 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: clvmd:5 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: clvmd:5 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: dlm:0 allocation score on kiff-01: -INFINITY ++native_color: dlm:0 allocation score on kiff-02: -INFINITY ++native_color: dlm:0 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: dlm:0 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: dlm:0 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: dlm:0 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: dlm:1 allocation score on kiff-01: -INFINITY ++native_color: dlm:1 allocation score on kiff-02: 1 ++native_color: dlm:1 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: dlm:1 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: dlm:1 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: dlm:1 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: dlm:2 allocation score on kiff-01: -INFINITY ++native_color: dlm:2 allocation score on kiff-02: -INFINITY ++native_color: dlm:2 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: dlm:2 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: dlm:2 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: dlm:2 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: dlm:3 allocation score on kiff-01: -INFINITY ++native_color: dlm:3 allocation score on kiff-02: -INFINITY ++native_color: dlm:3 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: dlm:3 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: dlm:3 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: dlm:3 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: dlm:4 allocation score on kiff-01: -INFINITY ++native_color: dlm:4 allocation score on kiff-02: -INFINITY ++native_color: dlm:4 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: dlm:4 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: dlm:4 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: dlm:4 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: dlm:5 allocation score on kiff-01: -INFINITY ++native_color: dlm:5 allocation score on kiff-02: -INFINITY ++native_color: dlm:5 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: dlm:5 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: dlm:5 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: dlm:5 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: fence-kiff-01 allocation score on kiff-01: 0 ++native_color: fence-kiff-01 allocation score on kiff-02: 0 ++native_color: fence-kiff-01 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: fence-kiff-01 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: fence-kiff-01 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: fence-kiff-01 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: fence-kiff-02 allocation score on kiff-01: 0 ++native_color: fence-kiff-02 allocation score on kiff-02: 0 ++native_color: fence-kiff-02 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: fence-kiff-02 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: fence-kiff-02 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: fence-kiff-02 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: lxc-01_kiff-01 allocation score on kiff-01: -INFINITY ++native_color: lxc-01_kiff-01 allocation score on kiff-02: 0 ++native_color: lxc-01_kiff-01 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: lxc-01_kiff-01 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: lxc-01_kiff-01 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: lxc-01_kiff-01 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: lxc-01_kiff-02 allocation score on kiff-01: -INFINITY ++native_color: lxc-01_kiff-02 allocation score on kiff-02: 0 ++native_color: lxc-01_kiff-02 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: lxc-01_kiff-02 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: lxc-01_kiff-02 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: lxc-01_kiff-02 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: lxc-02_kiff-01 allocation score on kiff-01: -INFINITY ++native_color: lxc-02_kiff-01 allocation score on kiff-02: 0 ++native_color: lxc-02_kiff-01 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: lxc-02_kiff-01 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: lxc-02_kiff-01 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: lxc-02_kiff-01 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: lxc-02_kiff-02 allocation score on kiff-01: -INFINITY ++native_color: lxc-02_kiff-02 allocation score on kiff-02: 0 ++native_color: lxc-02_kiff-02 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: lxc-02_kiff-02 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: lxc-02_kiff-02 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: lxc-02_kiff-02 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: shared0:0 allocation score on kiff-01: -INFINITY ++native_color: shared0:0 allocation score on kiff-02: -INFINITY ++native_color: shared0:0 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: shared0:0 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: shared0:0 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: shared0:0 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: shared0:1 allocation score on kiff-01: -INFINITY ++native_color: shared0:1 allocation score on kiff-02: 1 ++native_color: shared0:1 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: shared0:1 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: shared0:1 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: shared0:1 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: shared0:2 allocation score on kiff-01: -INFINITY ++native_color: shared0:2 allocation score on kiff-02: -INFINITY ++native_color: shared0:2 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: shared0:2 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: shared0:2 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: shared0:2 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: shared0:3 allocation score on kiff-01: -INFINITY ++native_color: shared0:3 allocation score on kiff-02: -INFINITY ++native_color: shared0:3 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: shared0:3 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: shared0:3 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: shared0:3 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: shared0:4 allocation score on kiff-01: -INFINITY ++native_color: shared0:4 allocation score on kiff-02: -INFINITY ++native_color: shared0:4 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: shared0:4 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: shared0:4 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: shared0:4 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: shared0:5 allocation score on kiff-01: -INFINITY ++native_color: shared0:5 allocation score on kiff-02: -INFINITY ++native_color: shared0:5 allocation score on lxc-01_kiff-01: -INFINITY ++native_color: shared0:5 allocation score on lxc-01_kiff-02: -INFINITY ++native_color: shared0:5 allocation score on lxc-02_kiff-01: -INFINITY ++native_color: shared0:5 allocation score on lxc-02_kiff-02: -INFINITY ++native_color: vm-fs allocation score on kiff-01: 0 ++native_color: vm-fs allocation score on kiff-02: 0 ++native_color: vm-fs allocation score on lxc-01_kiff-01: 0 ++native_color: vm-fs allocation score on lxc-01_kiff-02: 0 ++native_color: vm-fs allocation score on lxc-02_kiff-01: 0 ++native_color: vm-fs allocation score on lxc-02_kiff-02: 0 +diff --git a/pengine/test10/whitebox-imply-stop-on-fence.summary b/pengine/test10/whitebox-imply-stop-on-fence.summary +new file mode 100644 +index 0000000..79e77de +--- /dev/null ++++ b/pengine/test10/whitebox-imply-stop-on-fence.summary +@@ -0,0 +1,88 @@ ++ ++Current cluster status: ++Node kiff-01 (1): UNCLEAN (offline) ++Online: [ kiff-02 ] ++Containers: [ lxc-01_kiff-01:R-lxc-01_kiff-01 lxc-01_kiff-02:R-lxc-01_kiff-02 lxc-02_kiff-01:R-lxc-02_kiff-01 lxc-02_kiff-02:R-lxc-02_kiff-02 ] ++ ++ fence-kiff-01 (stonith:fence_ipmilan): Started kiff-02 ++ fence-kiff-02 (stonith:fence_ipmilan): Started kiff-01 ++ Clone Set: dlm-clone [dlm] ++ Started: [ kiff-01 kiff-02 ] ++ Stopped: [ lxc-01_kiff-01 lxc-01_kiff-02 lxc-02_kiff-01 lxc-02_kiff-02 ] ++ Clone Set: clvmd-clone [clvmd] ++ Started: [ kiff-01 kiff-02 ] ++ Stopped: [ lxc-01_kiff-01 lxc-01_kiff-02 lxc-02_kiff-01 lxc-02_kiff-02 ] ++ Clone Set: shared0-clone [shared0] ++ Started: [ kiff-01 kiff-02 ] ++ Stopped: [ lxc-01_kiff-01 lxc-01_kiff-02 lxc-02_kiff-01 lxc-02_kiff-02 ] ++ R-lxc-01_kiff-01 (ocf::heartbeat:VirtualDomain): Started kiff-01 ++ R-lxc-02_kiff-01 (ocf::heartbeat:VirtualDomain): Started kiff-01 ++ R-lxc-01_kiff-02 (ocf::heartbeat:VirtualDomain): Started kiff-02 ++ R-lxc-02_kiff-02 (ocf::heartbeat:VirtualDomain): Started kiff-02 ++ vm-fs (ocf::heartbeat:Filesystem): Started lxc-01_kiff-01 ++ ++Transition Summary: ++ * Move fence-kiff-02 (Started kiff-01 -> kiff-02) ++ * Stop dlm:0 (kiff-01) ++ * Stop clvmd:0 (kiff-01) ++ * Stop shared0:0 (kiff-01) ++ * Move R-lxc-01_kiff-01 (Started kiff-01 -> kiff-02) ++ * Move R-lxc-02_kiff-01 (Started kiff-01 -> kiff-02) ++ * Restart vm-fs (Started lxc-01_kiff-01) ++ * Move lxc-01_kiff-01 (Started kiff-01 -> kiff-02) ++ * Move lxc-02_kiff-01 (Started kiff-01 -> kiff-02) ++ ++Executing cluster transition: ++ * Fencing kiff-01 (reboot) ++ * Pseudo action: stonith_complete ++ * Pseudo action: fence-kiff-02_stop_0 ++ * Pseudo action: vm-fs_stop_0 ++ * Pseudo action: lxc-01_kiff-01_stop_0 ++ * Pseudo action: lxc-02_kiff-01_stop_0 ++ * Resource action: fence-kiff-02 start on kiff-02 ++ * Pseudo action: R-lxc-01_kiff-01_stop_0 ++ * Pseudo action: R-lxc-02_kiff-01_stop_0 ++ * Resource action: fence-kiff-02 monitor=60000 on kiff-02 ++ * Pseudo action: shared0-clone_stop_0 ++ * Resource action: R-lxc-01_kiff-01 start on kiff-02 ++ * Resource action: R-lxc-02_kiff-01 start on kiff-02 ++ * Resource action: lxc-01_kiff-01 start on kiff-02 ++ * Resource action: lxc-02_kiff-01 start on kiff-02 ++ * Pseudo action: shared0_stop_0 ++ * Pseudo action: shared0-clone_stopped_0 ++ * Resource action: R-lxc-01_kiff-01 monitor=10000 on kiff-02 ++ * Resource action: R-lxc-02_kiff-01 monitor=10000 on kiff-02 ++ * Resource action: vm-fs start on lxc-01_kiff-01 ++ * Resource action: vm-fs monitor=20000 on lxc-01_kiff-01 ++ * Resource action: lxc-01_kiff-01 monitor=30000 on kiff-02 ++ * Resource action: lxc-02_kiff-01 monitor=30000 on kiff-02 ++ * Pseudo action: clvmd-clone_stop_0 ++ * Pseudo action: clvmd_stop_0 ++ * Pseudo action: clvmd-clone_stopped_0 ++ * Pseudo action: dlm-clone_stop_0 ++ * Pseudo action: dlm_stop_0 ++ * Pseudo action: dlm-clone_stopped_0 ++ * Pseudo action: all_stopped ++ ++Revised cluster status: ++Online: [ kiff-02 ] ++OFFLINE: [ kiff-01 ] ++Containers: [ lxc-01_kiff-01:R-lxc-01_kiff-01 lxc-01_kiff-02:R-lxc-01_kiff-02 lxc-02_kiff-01:R-lxc-02_kiff-01 lxc-02_kiff-02:R-lxc-02_kiff-02 ] ++ ++ fence-kiff-01 (stonith:fence_ipmilan): Started kiff-02 ++ fence-kiff-02 (stonith:fence_ipmilan): Started kiff-02 ++ Clone Set: dlm-clone [dlm] ++ Started: [ kiff-02 ] ++ Stopped: [ kiff-01 lxc-01_kiff-01 lxc-01_kiff-02 lxc-02_kiff-01 lxc-02_kiff-02 ] ++ Clone Set: clvmd-clone [clvmd] ++ Started: [ kiff-02 ] ++ Stopped: [ kiff-01 lxc-01_kiff-01 lxc-01_kiff-02 lxc-02_kiff-01 lxc-02_kiff-02 ] ++ Clone Set: shared0-clone [shared0] ++ Started: [ kiff-02 ] ++ Stopped: [ kiff-01 lxc-01_kiff-01 lxc-01_kiff-02 lxc-02_kiff-01 lxc-02_kiff-02 ] ++ R-lxc-01_kiff-01 (ocf::heartbeat:VirtualDomain): Started kiff-02 ++ R-lxc-02_kiff-01 (ocf::heartbeat:VirtualDomain): Started kiff-02 ++ R-lxc-01_kiff-02 (ocf::heartbeat:VirtualDomain): Started kiff-02 ++ R-lxc-02_kiff-02 (ocf::heartbeat:VirtualDomain): Started kiff-02 ++ vm-fs (ocf::heartbeat:Filesystem): Started lxc-01_kiff-01 ++ +diff --git a/pengine/test10/whitebox-imply-stop-on-fence.xml b/pengine/test10/whitebox-imply-stop-on-fence.xml +new file mode 100644 +index 0000000..609b281 +--- /dev/null ++++ b/pengine/test10/whitebox-imply-stop-on-fence.xml +@@ -0,0 +1,347 @@ ++<cib admin_epoch="0" cib-last-written="Fri Dec 19 18:49:12 2014" crm_feature_set="3.0.9" dc-uuid="2" epoch="51" have-quorum="1" num_updates="78" validate-with="pacemaker-2.2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="STSRHTS29816"/> ++ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="freeze"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="kiff-01"/> ++ <node id="2" uname="kiff-02"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="fence-kiff-01" type="fence_ipmilan"> ++ <instance_attributes id="fence-kiff-01-instance_attributes"> ++ <nvpair id="fence-kiff-01-instance_attributes-action" name="action" value="reboot"/> ++ <nvpair id="fence-kiff-01-instance_attributes-ipaddr" name="ipaddr" value="kiff-01-ilo"/> ++ <nvpair id="fence-kiff-01-instance_attributes-login" name="login" value="admin"/> ++ <nvpair id="fence-kiff-01-instance_attributes-passwd" name="passwd" value="admin"/> ++ <nvpair id="fence-kiff-01-instance_attributes-pcmk_host_check" name="pcmk_host_check" value="static-list"/> ++ <nvpair id="fence-kiff-01-instance_attributes-pcmk_host_list" name="pcmk_host_list" value="kiff-01"/> ++ </instance_attributes> ++ <operations> ++ <op id="fence-kiff-01-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="stonith" id="fence-kiff-02" type="fence_ipmilan"> ++ <instance_attributes id="fence-kiff-02-instance_attributes"> ++ <nvpair id="fence-kiff-02-instance_attributes-action" name="action" value="reboot"/> ++ <nvpair id="fence-kiff-02-instance_attributes-ipaddr" name="ipaddr" value="kiff-02-ilo"/> ++ <nvpair id="fence-kiff-02-instance_attributes-login" name="login" value="admin"/> ++ <nvpair id="fence-kiff-02-instance_attributes-passwd" name="passwd" value="admin"/> ++ <nvpair id="fence-kiff-02-instance_attributes-pcmk_host_check" name="pcmk_host_check" value="static-list"/> ++ <nvpair id="fence-kiff-02-instance_attributes-pcmk_host_list" name="pcmk_host_list" value="kiff-02"/> ++ </instance_attributes> ++ <operations> ++ <op id="fence-kiff-02-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="dlm-clone"> ++ <primitive class="ocf" id="dlm" provider="pacemaker" type="controld"> ++ <instance_attributes id="dlm-instance_attributes"/> ++ <operations> ++ <op id="dlm-start-timeout-90" interval="0s" name="start" timeout="90"/> ++ <op id="dlm-stop-timeout-100" interval="0s" name="stop" timeout="100"/> ++ <op id="dlm-monitor-interval-30s" interval="30s" name="monitor" on-fail="fence"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="dlm-clone-meta"> ++ <nvpair id="dlm-interleave" name="interleave" value="true"/> ++ <nvpair id="dlm-ordered" name="ordered" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="clvmd-clone"> ++ <primitive class="ocf" id="clvmd" provider="heartbeat" type="clvm"> ++ <instance_attributes id="clvmd-instance_attributes"> ++ <nvpair id="clvmd-instance_attributes-with_cmirrord" name="with_cmirrord" value="1"/> ++ </instance_attributes> ++ <operations> ++ <op id="clvmd-start-timeout-90" interval="0s" name="start" timeout="90"/> ++ <op id="clvmd-stop-timeout-90" interval="0s" name="stop" timeout="90"/> ++ <op id="clvmd-monitor-interval-30s" interval="30s" name="monitor" on-fail="fence"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="clvmd-clone-meta"> ++ <nvpair id="clvmd-interleave" name="interleave" value="true"/> ++ <nvpair id="clvmd-ordered" name="ordered" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="shared0-clone"> ++ <primitive class="ocf" id="shared0" provider="heartbeat" type="Filesystem"> ++ <instance_attributes id="shared0-instance_attributes"> ++ <nvpair id="shared0-instance_attributes-device" name="device" value="/dev/shared/shared0"/> ++ <nvpair id="shared0-instance_attributes-directory" name="directory" value="/mnt/shared0"/> ++ <nvpair id="shared0-instance_attributes-fstype" name="fstype" value="gfs2"/> ++ <nvpair id="shared0-instance_attributes-options" name="options" value="errors=panic"/> ++ </instance_attributes> ++ <operations> ++ <op id="shared0-start-timeout-60" interval="0s" name="start" timeout="60"/> ++ <op id="shared0-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="shared0-monitor-interval-10s" interval="10s" name="monitor" on-fail="fence"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="shared0-clone-meta"> ++ <nvpair id="shared0-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <primitive class="ocf" id="R-lxc-01_kiff-01" provider="heartbeat" type="VirtualDomain"> ++ <instance_attributes id="R-lxc-01_kiff-01-instance_attributes"> ++ <nvpair id="R-lxc-01_kiff-01-instance_attributes-hypervisor" name="hypervisor" value="lxc:///"/> ++ <nvpair id="R-lxc-01_kiff-01-instance_attributes-config" name="config" value="/mnt/shared0/test-virtual-domain/lxc/lxc-01_kiff-01.xml"/> ++ <nvpair id="R-lxc-01_kiff-01-instance_attributes-force_stop" name="force_stop" value="true"/> ++ </instance_attributes> ++ <operations> ++ <op id="R-lxc-01_kiff-01-start-timeout-90" interval="0s" name="start" timeout="90"/> ++ <op id="R-lxc-01_kiff-01-stop-timeout-90" interval="0s" name="stop" timeout="90"/> ++ <op id="R-lxc-01_kiff-01-monitor-interval-10" interval="10" name="monitor" timeout="30"/> ++ </operations> ++ <meta_attributes id="R-lxc-01_kiff-01-meta_attributes"> ++ <nvpair id="R-lxc-01_kiff-01-meta_attributes-remote-node" name="remote-node" value="lxc-01_kiff-01"/> ++ </meta_attributes> ++ <utilization id="R-lxc-01_kiff-01-utilization"> ++ <nvpair id="R-lxc-01_kiff-01-utilization-cpu" name="cpu" value="1"/> ++ <nvpair id="R-lxc-01_kiff-01-utilization-hv_memory" name="hv_memory" value="100"/> ++ </utilization> ++ </primitive> ++ <primitive class="ocf" id="R-lxc-02_kiff-01" provider="heartbeat" type="VirtualDomain"> ++ <instance_attributes id="R-lxc-02_kiff-01-instance_attributes"> ++ <nvpair id="R-lxc-02_kiff-01-instance_attributes-hypervisor" name="hypervisor" value="lxc:///"/> ++ <nvpair id="R-lxc-02_kiff-01-instance_attributes-config" name="config" value="/mnt/shared0/test-virtual-domain/lxc/lxc-02_kiff-01.xml"/> ++ <nvpair id="R-lxc-02_kiff-01-instance_attributes-force_stop" name="force_stop" value="true"/> ++ </instance_attributes> ++ <operations> ++ <op id="R-lxc-02_kiff-01-start-timeout-90" interval="0s" name="start" timeout="90"/> ++ <op id="R-lxc-02_kiff-01-stop-timeout-90" interval="0s" name="stop" timeout="90"/> ++ <op id="R-lxc-02_kiff-01-monitor-interval-10" interval="10" name="monitor" timeout="30"/> ++ </operations> ++ <meta_attributes id="R-lxc-02_kiff-01-meta_attributes"> ++ <nvpair id="R-lxc-02_kiff-01-meta_attributes-remote-node" name="remote-node" value="lxc-02_kiff-01"/> ++ </meta_attributes> ++ <utilization id="R-lxc-02_kiff-01-utilization"> ++ <nvpair id="R-lxc-02_kiff-01-utilization-cpu" name="cpu" value="1"/> ++ <nvpair id="R-lxc-02_kiff-01-utilization-hv_memory" name="hv_memory" value="100"/> ++ </utilization> ++ </primitive> ++ <primitive class="ocf" id="R-lxc-01_kiff-02" provider="heartbeat" type="VirtualDomain"> ++ <instance_attributes id="R-lxc-01_kiff-02-instance_attributes"> ++ <nvpair id="R-lxc-01_kiff-02-instance_attributes-hypervisor" name="hypervisor" value="lxc:///"/> ++ <nvpair id="R-lxc-01_kiff-02-instance_attributes-config" name="config" value="/mnt/shared0/test-virtual-domain/lxc/lxc-01_kiff-02.xml"/> ++ <nvpair id="R-lxc-01_kiff-02-instance_attributes-force_stop" name="force_stop" value="true"/> ++ </instance_attributes> ++ <operations> ++ <op id="R-lxc-01_kiff-02-start-timeout-90" interval="0s" name="start" timeout="90"/> ++ <op id="R-lxc-01_kiff-02-stop-timeout-90" interval="0s" name="stop" timeout="90"/> ++ <op id="R-lxc-01_kiff-02-monitor-interval-10" interval="10" name="monitor" timeout="30"/> ++ </operations> ++ <meta_attributes id="R-lxc-01_kiff-02-meta_attributes"> ++ <nvpair id="R-lxc-01_kiff-02-meta_attributes-remote-node" name="remote-node" value="lxc-01_kiff-02"/> ++ </meta_attributes> ++ <utilization id="R-lxc-01_kiff-02-utilization"> ++ <nvpair id="R-lxc-01_kiff-02-utilization-cpu" name="cpu" value="1"/> ++ <nvpair id="R-lxc-01_kiff-02-utilization-hv_memory" name="hv_memory" value="100"/> ++ </utilization> ++ </primitive> ++ <primitive class="ocf" id="R-lxc-02_kiff-02" provider="heartbeat" type="VirtualDomain"> ++ <instance_attributes id="R-lxc-02_kiff-02-instance_attributes"> ++ <nvpair id="R-lxc-02_kiff-02-instance_attributes-hypervisor" name="hypervisor" value="lxc:///"/> ++ <nvpair id="R-lxc-02_kiff-02-instance_attributes-config" name="config" value="/mnt/shared0/test-virtual-domain/lxc/lxc-02_kiff-02.xml"/> ++ <nvpair id="R-lxc-02_kiff-02-instance_attributes-force_stop" name="force_stop" value="true"/> ++ </instance_attributes> ++ <operations> ++ <op id="R-lxc-02_kiff-02-start-timeout-90" interval="0s" name="start" timeout="90"/> ++ <op id="R-lxc-02_kiff-02-stop-timeout-90" interval="0s" name="stop" timeout="90"/> ++ <op id="R-lxc-02_kiff-02-monitor-interval-10" interval="10" name="monitor" timeout="30"/> ++ </operations> ++ <meta_attributes id="R-lxc-02_kiff-02-meta_attributes"> ++ <nvpair id="R-lxc-02_kiff-02-meta_attributes-remote-node" name="remote-node" value="lxc-02_kiff-02"/> ++ </meta_attributes> ++ <utilization id="R-lxc-02_kiff-02-utilization"> ++ <nvpair id="R-lxc-02_kiff-02-utilization-cpu" name="cpu" value="1"/> ++ <nvpair id="R-lxc-02_kiff-02-utilization-hv_memory" name="hv_memory" value="100"/> ++ </utilization> ++ </primitive> ++ <primitive class="ocf" id="vm-fs" provider="heartbeat" type="Filesystem"> ++ <instance_attributes id="vm-fs-instance_attributes"> ++ <nvpair id="vm-fs-instance_attributes-device" name="device" value="/root"/> ++ <nvpair id="vm-fs-instance_attributes-directory" name="directory" value="/mnt/vm-fs"/> ++ <nvpair id="vm-fs-instance_attributes-fstype" name="fstype" value="none"/> ++ <nvpair id="vm-fs-instance_attributes-options" name="options" value="bind"/> ++ </instance_attributes> ++ <operations> ++ <op id="vm-fs-start-timeout-60" interval="0s" name="start" timeout="60"/> ++ <op id="vm-fs-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="vm-fs-monitor-interval-20" interval="20" name="monitor" timeout="40"/> ++ </operations> ++ </primitive> ++ </resources> ++ <constraints> ++ <rsc_order first="dlm-clone" first-action="start" id="order-dlm-clone-clvmd-clone-mandatory" then="clvmd-clone" then-action="start"/> ++ <rsc_colocation id="colocation-clvmd-clone-dlm-clone-INFINITY" rsc="clvmd-clone" score="INFINITY" with-rsc="dlm-clone"/> ++ <rsc_order first="clvmd-clone" first-action="start" id="order-clvmd-clone-shared0-clone-mandatory" then="shared0-clone" then-action="start"/> ++ <rsc_colocation id="colocation-shared0-clone-clvmd-clone-INFINITY" rsc="shared0-clone" score="INFINITY" with-rsc="clvmd-clone"/> ++ <rsc_location id="location-dlm-clone-lxc-01_kiff-01--INFINITY" node="lxc-01_kiff-01" rsc="dlm-clone" score="-INFINITY"/> ++ <rsc_order first="shared0-clone" first-action="start" id="order-shared0-clone-R-lxc-01_kiff-01-mandatory" then="R-lxc-01_kiff-01" then-action="start"/> ++ <rsc_location id="location-R-lxc-01_kiff-01-kiff-01-100" node="kiff-01" rsc="R-lxc-01_kiff-01" score="100"/> ++ <rsc_location id="location-dlm-clone-lxc-02_kiff-01--INFINITY" node="lxc-02_kiff-01" rsc="dlm-clone" score="-INFINITY"/> ++ <rsc_order first="shared0-clone" first-action="start" id="order-shared0-clone-R-lxc-02_kiff-01-mandatory" then="R-lxc-02_kiff-01" then-action="start"/> ++ <rsc_location id="location-R-lxc-02_kiff-01-kiff-01-100" node="kiff-01" rsc="R-lxc-02_kiff-01" score="100"/> ++ <rsc_location id="location-dlm-clone-lxc-01_kiff-02--INFINITY" node="lxc-01_kiff-02" rsc="dlm-clone" score="-INFINITY"/> ++ <rsc_order first="shared0-clone" first-action="start" id="order-shared0-clone-R-lxc-01_kiff-02-mandatory" then="R-lxc-01_kiff-02" then-action="start"/> ++ <rsc_location id="location-R-lxc-01_kiff-02-kiff-02-100" node="kiff-02" rsc="R-lxc-01_kiff-02" score="100"/> ++ <rsc_location id="location-dlm-clone-lxc-02_kiff-02--INFINITY" node="lxc-02_kiff-02" rsc="dlm-clone" score="-INFINITY"/> ++ <rsc_order first="shared0-clone" first-action="start" id="order-shared0-clone-R-lxc-02_kiff-02-mandatory" then="R-lxc-02_kiff-02" then-action="start"/> ++ <rsc_location id="location-R-lxc-02_kiff-02-kiff-02-100" node="kiff-02" rsc="R-lxc-02_kiff-02" score="100"/> ++ <rsc_location id="location-vm-fs-lxc-01_reno-01-100" node="lxc-01_reno-01" rsc="vm-fs" score="100"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state crm-debug-origin="post_cache_update" crmd="offline" expected="member" id="1" in_ccm="false" join="member" uname="kiff-01"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="fence-kiff-01" type="fence_ipmilan" class="stonith"> ++ <lrm_rsc_op id="fence-kiff-01_last_0" operation_key="fence-kiff-01_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="19:2:7:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:7;19:2:7:ed834806-99be-45de-9c12-c980ee8706a6" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1419011896" last-rc-change="1419011896" exec-time="2" queue-time="0" op-digest="4daeb50c5b907ee60049bf819d52bf47" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="fence-kiff-02" type="fence_ipmilan" class="stonith"> ++ <lrm_rsc_op id="fence-kiff-02_last_0" operation_key="fence-kiff-02_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="33:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;33:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="46" rc-code="0" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="105" queue-time="0" op-digest="721cfc00d183a798aab10fb147ff0518" on_node="kiff-01"/> ++ <lrm_rsc_op id="fence-kiff-02_monitor_60000" operation_key="fence-kiff-02_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="34:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;34:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="47" rc-code="0" op-status="0" interval="60000" last-rc-change="1419011897" exec-time="95" queue-time="0" op-digest="3edb9bb87d2e2ef5d171c831a712b481" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-01_kiff-01" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-01_kiff-01_last_0" operation_key="R-lxc-01_kiff-01_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="44:3:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;44:3:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="53" rc-code="0" op-status="0" interval="0" last-run="1419011901" last-rc-change="1419011901" exec-time="907" queue-time="0" op-digest="1120ab98948626507460f24405da6147" on_node="kiff-01"/> ++ <lrm_rsc_op id="R-lxc-01_kiff-01_monitor_10000" operation_key="R-lxc-01_kiff-01_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="48:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;48:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="55" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011902" exec-time="211" queue-time="0" op-digest="45b6ccfbfd5dd7fe94f80ec3d8d6d78d" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-02_kiff-01" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-02_kiff-01_last_0" operation_key="R-lxc-02_kiff-01_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="46:3:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;46:3:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="54" rc-code="0" op-status="0" interval="0" last-run="1419011901" last-rc-change="1419011901" exec-time="895" queue-time="0" op-digest="6d28982e9d5ab858dea79f0a4bc07ba6" on_node="kiff-01"/> ++ <lrm_rsc_op id="R-lxc-02_kiff-01_monitor_10000" operation_key="R-lxc-02_kiff-01_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;51:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="56" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011902" exec-time="208" queue-time="0" op-digest="5aa25dd0c846987518afaba029b0a0a8" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-01_kiff-02" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-01_kiff-02_last_0" operation_key="R-lxc-01_kiff-02_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="26:2:7:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:7;26:2:7:ed834806-99be-45de-9c12-c980ee8706a6" call-id="36" rc-code="7" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="66" queue-time="0" op-digest="6ac2457c88e8834990f95e871a51d1fc" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-02_kiff-02" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-02_kiff-02_last_0" operation_key="R-lxc-02_kiff-02_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="27:2:7:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:7;27:2:7:ed834806-99be-45de-9c12-c980ee8706a6" call-id="40" rc-code="7" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="65" queue-time="0" op-digest="749edaca3e37d0e4526f44849ed63d4b" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="37:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;37:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="45" rc-code="0" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="1150" queue-time="71" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-01"/> ++ <lrm_rsc_op id="dlm_monitor_30000" operation_key="dlm_monitor_30000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="21:3:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;21:3:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="48" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011898" exec-time="42" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="vm-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vm-fs_last_0" operation_key="vm-fs_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:2:7:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:7;28:2:7:ed834806-99be-45de-9c12-c980ee8706a6" call-id="44" rc-code="7" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="81" queue-time="0" op-digest="4e01fcdd304402f9cf3416cee0dc30d2" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="shared0" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="shared0_last_0" operation_key="shared0_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="38:3:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;38:3:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="51" rc-code="0" op-status="0" interval="0" last-run="1419011900" last-rc-change="1419011900" exec-time="917" queue-time="0" op-digest="1684b65207e6da00ef41166b1d2e7147" on_node="kiff-01"/> ++ <lrm_rsc_op id="shared0_monitor_10000" operation_key="shared0_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="39:3:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;39:3:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="52" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011901" exec-time="63" queue-time="0" op-digest="a976d846b49206dece2f5eecf97fc980" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="clvmd" type="clvm" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="clvmd_last_0" operation_key="clvmd_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="30:3:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;30:3:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="49" rc-code="0" op-status="0" interval="0" last-run="1419011898" last-rc-change="1419011898" exec-time="1787" queue-time="0" op-digest="8c0920550ecae28ee15ea3371898e446" on_node="kiff-01"/> ++ <lrm_rsc_op id="clvmd_monitor_30000" operation_key="clvmd_monitor_30000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="31:3:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;31:3:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="50" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011900" exec-time="40" queue-time="0" op-digest="93512119a9313fd62f16acd7cc587734" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="lxc-01_kiff-01" type="remote" class="ocf" provider="pacemaker" container="R-lxc-01_kiff-01"> ++ <lrm_rsc_op id="lxc-01_kiff-01_last_0" operation_key="lxc-01_kiff-01_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;58:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="1" rc-code="0" op-status="0" interval="0" last-run="1419011902" last-rc-change="1419011902" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-01"/> ++ <lrm_rsc_op id="lxc-01_kiff-01_monitor_30000" operation_key="lxc-01_kiff-01_monitor_30000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;59:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="3" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011907" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="kiff-01"/> ++ </lrm_resource> ++ <lrm_resource id="lxc-02_kiff-01" type="remote" class="ocf" provider="pacemaker" container="R-lxc-02_kiff-01"> ++ <lrm_rsc_op id="lxc-02_kiff-01_last_0" operation_key="lxc-02_kiff-01_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;60:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="2" rc-code="0" op-status="0" interval="0" last-run="1419011902" last-rc-change="1419011902" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-01"/> ++ <lrm_rsc_op id="lxc-02_kiff-01_monitor_30000" operation_key="lxc-02_kiff-01_monitor_30000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;61:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="4" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011907" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="kiff-01"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state crm-debug-origin="post_cache_update" crmd="online" expected="member" id="2" in_ccm="true" join="member" uname="kiff-02"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="fence-kiff-01" type="fence_ipmilan" class="stonith"> ++ <lrm_rsc_op id="fence-kiff-01_last_0" operation_key="fence-kiff-01_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="15:18:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;15:18:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="67" rc-code="0" op-status="0" interval="0" last-run="1419011236" last-rc-change="1419011236" exec-time="102" queue-time="0" op-digest="4daeb50c5b907ee60049bf819d52bf47" on_node="kiff-02"/> ++ <lrm_rsc_op id="fence-kiff-01_monitor_60000" operation_key="fence-kiff-01_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="16:18:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;16:18:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="68" rc-code="0" op-status="0" interval="60000" last-rc-change="1419011236" exec-time="93" queue-time="0" op-digest="5a67a2af25e4748196ea722d1770543a" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="fence-kiff-02" type="fence_ipmilan" class="stonith"> ++ <lrm_rsc_op id="fence-kiff-02_last_0" operation_key="fence-kiff-02_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="32:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;32:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="88" rc-code="0" op-status="0" interval="0" last-run="1419011896" last-rc-change="1419011896" exec-time="0" queue-time="0" op-digest="721cfc00d183a798aab10fb147ff0518" on_node="kiff-02"/> ++ <lrm_rsc_op id="fence-kiff-02_monitor_60000" operation_key="fence-kiff-02_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="16:0:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;16:0:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="82" rc-code="0" op-status="0" interval="60000" last-rc-change="1419011480" exec-time="93" queue-time="0" op-digest="3edb9bb87d2e2ef5d171c831a712b481" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="clvmd" type="clvm" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="clvmd_last_0" operation_key="clvmd_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="25:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;25:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="24" rc-code="0" op-status="0" interval="0" last-run="1419011029" last-rc-change="1419011029" exec-time="1557" queue-time="0" op-digest="8c0920550ecae28ee15ea3371898e446" on_node="kiff-02"/> ++ <lrm_rsc_op id="clvmd_monitor_30000" operation_key="clvmd_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="26:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;26:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="25" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011030" exec-time="39" queue-time="0" op-digest="93512119a9313fd62f16acd7cc587734" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="shared0" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="shared0_last_0" operation_key="shared0_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="35:6:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;35:6:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="31" rc-code="0" op-status="0" interval="0" last-run="1419011061" last-rc-change="1419011061" exec-time="1397" queue-time="0" op-digest="1684b65207e6da00ef41166b1d2e7147" on_node="kiff-02"/> ++ <lrm_rsc_op id="shared0_monitor_10000" operation_key="shared0_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="36:6:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;36:6:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="32" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011062" exec-time="62" queue-time="0" op-digest="a976d846b49206dece2f5eecf97fc980" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="lxc-01_kiff-01" type="remote" class="ocf" provider="pacemaker" container="R-lxc-01_kiff-01"> ++ <lrm_rsc_op id="lxc-01_kiff-01_last_0" operation_key="lxc-01_kiff-01_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;71:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="15" rc-code="0" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-02"/> ++ <lrm_rsc_op id="lxc-01_kiff-01_monitor_30000" operation_key="lxc-01_kiff-01_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="49:1:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;49:1:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="13" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011486" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="dlm" type="controld" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="dlm_last_0" operation_key="dlm_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="17:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;17:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1419011026" last-rc-change="1419011026" exec-time="1100" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-02"/> ++ <lrm_rsc_op id="dlm_monitor_30000" operation_key="dlm_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="18:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;18:5:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="23" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011027" exec-time="39" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-01_kiff-01" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-01_kiff-01_last_0" operation_key="R-lxc-01_kiff-01_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;59:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="90" rc-code="0" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="401" queue-time="0" op-digest="1120ab98948626507460f24405da6147" on_node="kiff-02"/> ++ <lrm_rsc_op id="R-lxc-01_kiff-01_monitor_10000" operation_key="R-lxc-01_kiff-01_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="38:1:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;38:1:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="83" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011481" exec-time="208" queue-time="0" op-digest="45b6ccfbfd5dd7fe94f80ec3d8d6d78d" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-01_kiff-02" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-01_kiff-02_last_0" operation_key="R-lxc-01_kiff-02_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="50:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;50:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="69" rc-code="0" op-status="0" interval="0" last-run="1419011248" last-rc-change="1419011248" exec-time="533" queue-time="0" op-digest="6ac2457c88e8834990f95e871a51d1fc" on_node="kiff-02"/> ++ <lrm_rsc_op id="R-lxc-01_kiff-02_monitor_10000" operation_key="R-lxc-01_kiff-02_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="51:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;51:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="70" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011249" exec-time="200" queue-time="0" op-digest="7d8f2504ce062c9a895982856e699610" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="lxc-01_kiff-02" type="remote" class="ocf" provider="pacemaker" container="R-lxc-01_kiff-02"> ++ <lrm_rsc_op id="lxc-01_kiff-02_last_0" operation_key="lxc-01_kiff-02_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="56:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;56:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="7" rc-code="0" op-status="0" interval="0" last-run="1419011249" last-rc-change="1419011249" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-02"/> ++ <lrm_rsc_op id="lxc-01_kiff-02_monitor_30000" operation_key="lxc-01_kiff-02_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;57:20:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="8" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011254" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="vm-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vm-fs_last_0" operation_key="vm-fs_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="23:22:7:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:7;23:22:7:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="78" rc-code="7" op-status="0" interval="0" last-run="1419011347" last-rc-change="1419011347" exec-time="58" queue-time="0" op-digest="4e01fcdd304402f9cf3416cee0dc30d2" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="lxc-02_kiff-01" type="remote" class="ocf" provider="pacemaker" container="R-lxc-02_kiff-01"> ++ <lrm_rsc_op id="lxc-02_kiff-01_last_0" operation_key="lxc-02_kiff-01_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;74:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="16" rc-code="0" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-02"/> ++ <lrm_rsc_op id="lxc-02_kiff-01_monitor_30000" operation_key="lxc-02_kiff-01_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="51:1:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;51:1:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="14" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011486" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="lxc-02_kiff-02" type="remote" class="ocf" provider="pacemaker" container="R-lxc-02_kiff-02"> ++ <lrm_rsc_op id="lxc-02_kiff-02_last_0" operation_key="lxc-02_kiff-02_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;63:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="9" rc-code="0" op-status="0" interval="0" last-run="1419011256" last-rc-change="1419011256" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="kiff-02"/> ++ <lrm_rsc_op id="lxc-02_kiff-02_monitor_30000" operation_key="lxc-02_kiff-02_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;64:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="10" rc-code="0" op-status="0" interval="30000" last-rc-change="1419011261" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-02_kiff-01" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-02_kiff-01_last_0" operation_key="R-lxc-02_kiff-01_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:2:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;62:2:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="92" rc-code="0" op-status="0" interval="0" last-run="1419011897" last-rc-change="1419011897" exec-time="376" queue-time="0" op-digest="6d28982e9d5ab858dea79f0a4bc07ba6" on_node="kiff-02"/> ++ <lrm_rsc_op id="R-lxc-02_kiff-01_monitor_10000" operation_key="R-lxc-02_kiff-01_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="41:1:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;41:1:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="84" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011481" exec-time="205" queue-time="0" op-digest="5aa25dd0c846987518afaba029b0a0a8" on_node="kiff-02"/> ++ </lrm_resource> ++ <lrm_resource id="R-lxc-02_kiff-02" type="VirtualDomain" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="R-lxc-02_kiff-02_last_0" operation_key="R-lxc-02_kiff-02_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="55:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;55:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="73" rc-code="0" op-status="0" interval="0" last-run="1419011255" last-rc-change="1419011255" exec-time="558" queue-time="0" op-digest="749edaca3e37d0e4526f44849ed63d4b" on_node="kiff-02"/> ++ <lrm_rsc_op id="R-lxc-02_kiff-02_monitor_10000" operation_key="R-lxc-02_kiff-02_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="56:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" transition-magic="0:0;56:21:0:1c60b862-2217-42e1-857f-645cedc2afd9" call-id="74" rc-code="0" op-status="0" interval="10000" last-rc-change="1419011256" exec-time="200" queue-time="0" op-digest="160233456c9f63f111238ddb49d9cc0d" on_node="kiff-02"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="lxc-01_kiff-01" uname="lxc-01_kiff-01" crm-debug-origin="post_cache_update"> ++ <lrm id="lxc-01_kiff-01"> ++ <lrm_resources> ++ <lrm_resource id="vm-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vm-fs_last_0" operation_key="vm-fs_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;56:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="5" rc-code="0" op-status="0" interval="0" last-run="1419011907" last-rc-change="1419011907" exec-time="82" queue-time="0" op-digest="4e01fcdd304402f9cf3416cee0dc30d2" on_node="kiff-01"/> ++ <lrm_rsc_op id="vm-fs_monitor_20000" operation_key="vm-fs_monitor_20000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:4:0:ed834806-99be-45de-9c12-c980ee8706a6" transition-magic="0:0;57:4:0:ed834806-99be-45de-9c12-c980ee8706a6" call-id="7" rc-code="0" op-status="0" interval="20000" last-rc-change="1419011907" exec-time="57" queue-time="0" op-digest="47b8f50d415ca40cdf0d0044c4b63685" on_node="kiff-01"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="lxc-02_kiff-01" uname="lxc-02_kiff-01" crm-debug-origin="post_cache_update"/> ++ <node_state remote_node="true" id="lxc-01_kiff-02" uname="lxc-01_kiff-02" crm-debug-origin="post_cache_update"> ++ <transient_attributes id="lxc-01_kiff-02"> ++ <instance_attributes id="status-lxc-01_kiff-02"/> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="lxc-02_kiff-02" uname="lxc-02_kiff-02" crm-debug-origin="post_cache_update"> ++ <transient_attributes id="lxc-02_kiff-02"> ++ <instance_attributes id="status-lxc-02_kiff-02"/> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> diff --git a/SOURCES/bz1139701-pcmk-unref_reply_to_prevent_systemd_action_timeouts.patch b/SOURCES/bz1139701-pcmk-unref_reply_to_prevent_systemd_action_timeouts.patch deleted file mode 100644 index bf1fc88..0000000 --- a/SOURCES/bz1139701-pcmk-unref_reply_to_prevent_systemd_action_timeouts.patch +++ /dev/null @@ -1,18 +0,0 @@ -commit c6c626c0f4f322b520d2600f8338b6b683ee365a -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Sep 23 09:17:34 2014 +1000 - - Fix: Bug rhbz#1139701 - Unref reply to prevent systemd action timeouts - -diff --git a/lib/services/dbus.c b/lib/services/dbus.c -index b424c0b..fce258f 100644 ---- a/lib/services/dbus.c -+++ b/lib/services/dbus.c -@@ -286,6 +286,7 @@ pcmk_dbus_get_property( - - - crm_trace("Property %s[%s] is '%s'", obj, name, output); -+ dbus_message_unref(reply); - return output; - } - diff --git a/SOURCES/bz1162727-pcmk-membership-cleanup.patch b/SOURCES/bz1162727-pcmk-membership-cleanup.patch new file mode 100644 index 0000000..910b2d7 --- /dev/null +++ b/SOURCES/bz1162727-pcmk-membership-cleanup.patch @@ -0,0 +1,897 @@ +diff --git a/attrd/commands.c b/attrd/commands.c +index 12771ee..c5badc5 100644 +--- a/attrd/commands.c ++++ b/attrd/commands.c +@@ -377,7 +377,17 @@ attrd_peer_message(crm_node_t *peer, xmlNode *xml) + attrd_peer_sync(peer, xml); + + } else if(safe_str_eq(op, "peer-remove")) { +- attrd_peer_remove(0, host, TRUE, peer->uname); ++ int host_id = 0; ++ char *endptr = NULL; ++ ++ host_id = strtol(host, &endptr, 10); ++ if (errno != 0 || endptr == host || *endptr != '\0') { ++ host_id = 0; ++ } else { ++ host = NULL; ++ } ++ attrd_peer_remove(host_id, host, TRUE, peer->uname); ++ + + } else if(safe_str_eq(op, "sync-response") + && safe_str_neq(peer->uname, attrd_cluster->uname)) { +diff --git a/attrd/legacy.c b/attrd/legacy.c +index d4733ec..d7ed53e 100644 +--- a/attrd/legacy.c ++++ b/attrd/legacy.c +@@ -768,6 +768,9 @@ attrd_local_callback(xmlNode * msg) + crm_notice("Sending full refresh (origin=%s)", from); + g_hash_table_foreach(attr_hash, update_for_hash_entry, NULL); + return; ++ } else if(safe_str_eq(op, "peer-remove")) { ++ /* The legacy code didn't understand this command - swallow silently */ ++ return; + } + + if (host != NULL && safe_str_neq(host, attrd_uname)) { +diff --git a/cib/main.c b/cib/main.c +index 00fca9b..69a957c 100644 +--- a/cib/main.c ++++ b/cib/main.c +@@ -439,6 +439,11 @@ cib_peer_update_callback(enum crm_status_type type, crm_node_t * node, const voi + crm_info("No more peers"); + terminate_cib(__FUNCTION__, FALSE); + } ++ ++ if(type == crm_status_nstate && node->id && safe_str_eq(node->state, CRM_NODE_LOST)) { ++ /* Avoid conflicts, keep the membership list to active members */ ++ reap_crm_member(node->id, NULL); ++ } + } + + #if SUPPORT_HEARTBEAT +diff --git a/crmd/messages.c b/crmd/messages.c +index d38f2a3..eea4f7b 100644 +--- a/crmd/messages.c ++++ b/crmd/messages.c +@@ -39,6 +39,7 @@ + GListPtr fsa_message_queue = NULL; + extern void crm_shutdown(int nsig); + ++extern crm_ipc_t *attrd_ipc; + void handle_response(xmlNode * stored_msg); + enum crmd_fsa_input handle_request(xmlNode * stored_msg, enum crmd_fsa_cause cause); + enum crmd_fsa_input handle_shutdown_request(xmlNode * stored_msg); +diff --git a/doc/Clusters_from_Scratch/en-US/Ap-Configuration.txt b/doc/Clusters_from_Scratch/en-US/Ap-Configuration.txt +index 0cbfeec..5852e7e 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ap-Configuration.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ap-Configuration.txt +@@ -19,7 +19,7 @@ ifdef::pcs[] + Started: [ pcmk-1 pcmk-2 ] + Clone Set: WebSite-clone [WebSite] + Started: [ pcmk-1 pcmk-2 ] +-# pcs resource defaults ++# pcs resource rsc defaults + resource-stickiness: 100 + # pcs resource op defaults + timeout: 240s +@@ -303,7 +303,7 @@ ifdef::pcs[] + * resource-stickiness - Specify the aversion to moving resources to other machines + [source,C] + ---- +-# pcs resource defaults ++# pcs resource rsc defaults + resource-stickiness: 100 + ---- + endif::[] +diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Active-Active.txt b/doc/Clusters_from_Scratch/en-US/Ch-Active-Active.txt +index 5943c19..714a0d3 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ch-Active-Active.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ch-Active-Active.txt +@@ -222,7 +222,7 @@ ifdef::pcs[] + WebFS (ocf::heartbeat:Filesystem) Stopped + Clone Set: dlm-clone [dlm] + Stopped: [ dlm:0 dlm:1 ] +-# pcs cluster cib-push dlm_cfg ++# pcs cluster push cib dlm_cfg + CIB updated + # pcs status + +@@ -695,7 +695,7 @@ shell and watching the cluster's response + ifdef::pcs[] + [source,C] + ----- +-# pcs cluster cib-push active_cfg ++# pcs cluster push cib active_cfg + # pcs resource enable WebFS + ----- + +diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Active-Passive.txt b/doc/Clusters_from_Scratch/en-US/Ch-Active-Passive.txt +index c91647b..7da8fca 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ch-Active-Passive.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ch-Active-Passive.txt +@@ -656,8 +656,8 @@ resource, but it is often sufficient to change the default. + ifdef::pcs[] + [source,C] + ---- +-# pcs resource defaults resource-stickiness=100 +-# pcs resource defaults ++# pcs resource rsc defaults resource-stickiness=100 ++# pcs resource rsc defaults + resource-stickiness: 100 + ---- + endif::[] +diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Apache.txt b/doc/Clusters_from_Scratch/en-US/Ch-Apache.txt +index 71777db..236bb77 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ch-Apache.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ch-Apache.txt +@@ -125,7 +125,7 @@ it fails, the resource agent used by Pacemaker assumes the server-status + URL is available. Look for the following in '/etc/httpd/conf/httpd.conf' + and make sure it is not disabled or commented out: + +-[source,Apache Configuration] ++[source,C] + ----- + <Location /server-status> + SetHandler server-status +@@ -601,7 +601,7 @@ WebSite will be forced to move to pcmk-1. + [source,C] + ----- + # pcs constraint location WebSite prefers pcmk-1=INFINITY +-# pcs constraint --full ++# pcs constraint all + Location Constraints: + Resource: WebSite + Enabled on: pcmk-1 (score:INFINITY) (id:location-WebSite-pcmk-1-INFINITY) +@@ -708,7 +708,7 @@ Ordering Constraints: + start ClusterIP then start WebSite (Mandatory) (id:order-ClusterIP-WebSite-mandatory) + Colocation Constraints: + WebSite with ClusterIP (INFINITY) (id:colocation-WebSite-ClusterIP-INFINITY) +-# pcs constraint remove location-WebSite-pcmk-1-INFINITY ++# pcs constraint rm location-WebSite-pcmk-1-INFINITY + # pcs constraint + Location Constraints: + Ordering Constraints: +diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Installation.txt b/doc/Clusters_from_Scratch/en-US/Ch-Installation.txt +index cf47602..aa0b4b9 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ch-Installation.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ch-Installation.txt +@@ -210,11 +210,23 @@ outside world. + ---- + # setenforce 0 + # sed -i.bak "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config ++# systemctl disable firewalld.service ++# systemctl stop firewalld.service ++---- ++ ++or (on older Fedora) ++ ++[source,C] ++---- ++# setenforce 0 ++# sed -i.bak "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config + # systemctl disable iptables.service + # rm '/etc/systemd/system/basic.target.wants/iptables.service' + # systemctl stop iptables.service + ---- + ++ ++ + === Short Node Names === + + During installation, we filled in the machine's fully qualified domain +@@ -538,7 +550,7 @@ Password: + pcmk-1: Authorized + pcmk-2: Authorized + +-# pcs cluster setup --name mycluster pcmk-1 pcmk-2 ++# pcs cluster setup mycluster pcmk-1 pcmk-2 + pcmk-1: Succeeded + pcmk-2: Succeeded + ---- +diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Shared-Storage.txt b/doc/Clusters_from_Scratch/en-US/Ch-Shared-Storage.txt +index cc2cec6..f6b50d9 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ch-Shared-Storage.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ch-Shared-Storage.txt +@@ -334,7 +334,7 @@ cib. + + [source,C] + ---- +-# pcs cluster cib-push drbd_cfg ++# pcs cluster push cib drbd_cfg + CIB updated + + # pcs status +@@ -594,7 +594,7 @@ cluster put it into effect. + ifdef::pcs[] + [source,C] + ---- +-# pcs cluster cib-push fs_cfg ++# pcs cluster push cib fs_cfg + CIB updated + # pcs status + Last updated: Fri Aug 10 12:47:01 2012 +diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt b/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt +index 9518fc2..123bd4b 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ch-Stonith.txt +@@ -81,7 +81,7 @@ ifdef::crmsh[] + endif::[] + + ifdef::pcs[] +-. Commit the new configuration. +pcs cluster cib-push stonith_cfg+ ++. Commit the new configuration. +pcs cluster push cib stonith_cfg+ + endif::[] + + . Once the stonith resource is running, you can test it by executing: +@@ -261,7 +261,7 @@ Now push the configuration into the cluster. + ifdef::pcs[] + [source,C] + ---- +-# pcs cluster cib-push stonith_cfg ++# pcs cluster push cib stonith_cfg + ---- + endif::[] + +diff --git a/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt b/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt +index 530e37b..c62cae4 100644 +--- a/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt ++++ b/doc/Clusters_from_Scratch/en-US/Ch-Verification.txt +@@ -217,6 +217,13 @@ Next, check for any ERRORs during startup - there shouldn't be any. + # grep -i error /var/log/messages + ---- + ++or (on Fedora 20) ++ ++[source,C] ++---- ++# journalctl | grep -i error ++---- ++ + Repeat these checks on the other node. The results should be the same. + + endif::[] +diff --git a/doc/Clusters_from_Scratch/zh-CN/Ch-Active-Passive.po b/doc/Clusters_from_Scratch/zh-CN/Ch-Active-Passive.po +index f9cc723..daefc41 100644 +--- a/doc/Clusters_from_Scratch/zh-CN/Ch-Active-Passive.po ++++ b/doc/Clusters_from_Scratch/zh-CN/Ch-Active-Passive.po +@@ -379,7 +379,7 @@ msgstr "当有半数以上的节点在线时,这个集群就认为自己拥有 + #. Tag: literallayout + #, no-c-format + msgid "total_nodes < 2 * active_nodes" +-msgstr "总节点数 < 2 * 活跃节点数" ++msgstr "" + + #. Tag: para + #, no-c-format +diff --git a/doc/Pacemaker_Explained/en-US/Ch-Constraints.txt b/doc/Pacemaker_Explained/en-US/Ch-Constraints.txt +index 8498ce0..b4eaf49 100644 +--- a/doc/Pacemaker_Explained/en-US/Ch-Constraints.txt ++++ b/doc/Pacemaker_Explained/en-US/Ch-Constraints.txt +@@ -36,28 +36,33 @@ nothing able to run anywhere and selectively enable allowed nodes. + === Options === + + .Options for Simple Location Constraints +-[width="95%",cols="2m,5<",options="header",align="center"] ++[width="95%",cols="2m,1,5<",options="header",align="center"] + |========================================================= + + |Field ++|Default + |Description + + |id ++| + |A unique name for the constraint + indexterm:[id,Location Constraints] + indexterm:[Constraints,Location,id] + + |rsc ++| + |A resource name + indexterm:[rsc,Location Constraints] + indexterm:[Constraints,Location,rsc] + + |node ++| + |A node's name + indexterm:[node,Location Constraints] + indexterm:[Constraints,Location,node] + + |score ++| + |Positive values indicate the resource should run on this + node. Negative values indicate the resource should not run on this + node. +@@ -67,6 +72,30 @@ indexterm:[Constraints,Location,node] + indexterm:[score,Location Constraints] + indexterm:[Constraints,Location,score] + ++|resource-discovery ++|+always+ ++|Indicates whether or not Pacemaker should perform resource discovery ++on this node for the specified resource. Limiting resource discovery to ++a subset of nodes the resource is physically capable of running on ++can significantly boost performance when a large set of nodes are preset. ++When pacemaker_remote is in use to expand the node count into the 100s of ++nodes range, this option should be considered. ++ ++* 'always' - Always perform resource discovery for the specified resource on this node. ++ ++* 'never' - Never perform resource discovery for the specified resource on this node. ++ This option should generally be used with a -INFINITY score. Although that is not strictly ++ required. ++ ++* 'exclusive' - Only perform resource discovery for the specified resource on this node. Multiple ++ location constraints using 'exclusive' discovery for the same resource across different nodes ++ creates a subset of nodes resource-discovery is exclusive to. If a resource is marked ++ for 'exclusive' discovery on one or more nodes, that resource is only allowed to be placed ++ within that subset of nodes. ++ ++indexterm:[Resource Discovery,Location Constraints] ++indexterm:[Constraints,Location,Resource Discovery] ++ + |========================================================= + + === Asymmetrical "Opt-In" Clusters === +diff --git a/fencing/commands.c b/fencing/commands.c +index 577ea95..c193a9d 100644 +--- a/fencing/commands.c ++++ b/fencing/commands.c +@@ -2109,6 +2109,14 @@ handle_request(crm_client_t * client, uint32_t id, uint32_t flags, xmlNode * req + free_async_command(cmd); + free_xml(reply); + ++ } else if(safe_str_eq(op, CRM_OP_RM_NODE_CACHE)) { ++ int id = 0; ++ const char *name = NULL; ++ ++ crm_element_value_int(request, XML_ATTR_ID, &id); ++ name = crm_element_value(request, XML_ATTR_UNAME); ++ reap_crm_member(id, name); ++ + } else { + crm_err("Unknown %s from %s", op, client ? client->name : remote_peer); + crm_log_xml_warn(request, "UnknownOp"); +diff --git a/fencing/main.c b/fencing/main.c +index 2694452..70b5bde 100644 +--- a/fencing/main.c ++++ b/fencing/main.c +@@ -97,6 +97,7 @@ st_ipc_dispatch(qb_ipcs_connection_t * qbc, void *data, size_t size) + int call_options = 0; + xmlNode *request = NULL; + crm_client_t *c = crm_client_get(qbc); ++ const char *op = NULL; + + if (c == NULL) { + crm_info("Invalid client: %p", qbc); +@@ -109,6 +110,20 @@ st_ipc_dispatch(qb_ipcs_connection_t * qbc, void *data, size_t size) + return 0; + } + ++ ++ op = crm_element_value(request, F_CRM_TASK); ++ if(safe_str_eq(op, CRM_OP_RM_NODE_CACHE)) { ++ crm_xml_add(request, F_TYPE, T_STONITH_NG); ++ crm_xml_add(request, F_STONITH_OPERATION, op); ++ crm_xml_add(request, F_STONITH_CLIENTID, c->id); ++ crm_xml_add(request, F_STONITH_CLIENTNAME, crm_client_name(c)); ++ crm_xml_add(request, F_STONITH_CLIENTNODE, stonith_our_uname); ++ ++ send_cluster_message(NULL, crm_msg_stonith_ng, request, FALSE); ++ free_xml(request); ++ return 0; ++ } ++ + if (c->name == NULL) { + const char *value = crm_element_value(request, F_STONITH_CLIENTNAME); + +@@ -1099,6 +1114,7 @@ stonith_cleanup(void) + static struct crm_option long_options[] = { + {"stand-alone", 0, 0, 's'}, + {"stand-alone-w-cpg", 0, 0, 'c'}, ++ {"logfile", 1, 0, 'l'}, + {"verbose", 0, 0, 'V'}, + {"version", 0, 0, '$'}, + {"help", 0, 0, '?'}, +@@ -1200,6 +1216,9 @@ main(int argc, char **argv) + case 'V': + crm_bump_log_level(argc, argv); + break; ++ case 'l': ++ crm_add_logfile(optarg); ++ break; + case 's': + stand_alone = TRUE; + break; +diff --git a/fencing/regression.py.in b/fencing/regression.py.in +index c4cb2d8..fe6d418 100644 +--- a/fencing/regression.py.in ++++ b/fencing/regression.py.in +@@ -82,24 +82,34 @@ class Test: + test.wait() + + if self.verbose: ++ self.stonith_options = self.stonith_options + " -V" + print "Starting stonithd with %s" % self.stonith_options + ++ if os.path.exists("/tmp/stonith-regression.log"): ++ os.remove('/tmp/stonith-regression.log') ++ + self.stonith_process = subprocess.Popen( +- shlex.split("@CRM_DAEMON_DIR@/stonithd %s -V" % self.stonith_options), +- stdout=subprocess.PIPE, +- stderr=subprocess.PIPE) ++ shlex.split("@CRM_DAEMON_DIR@/stonithd %s -l /tmp/stonith-regression.log" % self.stonith_options)) + + time.sleep(1) + + def clean_environment(self): + if self.stonith_process: + self.stonith_process.terminate() ++ self.stonith_process.wait() + +- self.stonith_output = self.stonith_process.communicate()[1] ++ self.stonith_output = "" + self.stonith_process = None + ++ f = open('/tmp/stonith-regression.log', 'r') ++ for line in f.readlines(): ++ self.stonith_output = self.stonith_output + line ++ + if self.verbose: ++ print "Daemon Output Start" + print self.stonith_output ++ print "Daemon Output End" ++ os.remove('/tmp/stonith-regression.log') + + def add_stonith_log_pattern(self, pattern): + self.stonith_patterns.append(pattern) +@@ -953,7 +963,7 @@ if __name__ == "__main__": + self.stop_corosync() + + if self.verbose and os.path.exists('/var/log/corosync.log'): +- print "Daemon output" ++ print "Corosync output" + f = open('/var/log/corosync.log', 'r') + for line in f.readlines(): + print line.strip() +diff --git a/lib/cib/cib_remote.c b/lib/cib/cib_remote.c +index d9dde9b..9b98892 100644 +--- a/lib/cib/cib_remote.c ++++ b/lib/cib/cib_remote.c +@@ -226,6 +226,8 @@ cib_tls_signon(cib_t * cib, crm_remote_t * connection, gboolean event_channel) + return -ENOTCONN; + } + ++ connection->tcp_socket = sock; ++ + if (private->encrypted) { + /* initialize GnuTls lib */ + #ifdef HAVE_GNUTLS_GNUTLS_H +@@ -250,8 +252,6 @@ cib_tls_signon(cib_t * cib, crm_remote_t * connection, gboolean event_channel) + #else + return -EPROTONOSUPPORT; + #endif +- } else { +- connection->tcp_socket = sock; + } + + /* login to server */ +diff --git a/lib/cluster/membership.c b/lib/cluster/membership.c +index 24700e5..70a0321 100644 +--- a/lib/cluster/membership.c ++++ b/lib/cluster/membership.c +@@ -389,9 +389,15 @@ crm_find_peer(unsigned int id, const char *uname) + } + + } else if(uname && by_id->uname) { +- crm_dump_peer_hash(LOG_INFO, __FUNCTION__); +- crm_warn("Node '%s' and '%s' share the same cluster nodeid: %u %s", by_id->uname, by_name->uname, id, uname); +- crm_abort(__FILE__, __FUNCTION__, __LINE__, "member weirdness", TRUE, TRUE); ++ if(safe_str_eq(uname, by_id->uname)) { ++ crm_notice("Node '%s' has changed its ID from %u to %u", by_id->uname, by_name->id, by_id->id); ++ g_hash_table_foreach_remove(crm_peer_cache, crm_hash_find_by_data, by_name); ++ ++ } else { ++ crm_warn("Node '%s' and '%s' share the same cluster nodeid: %u %s", by_id->uname, by_name->uname, id, uname); ++ crm_dump_peer_hash(LOG_INFO, __FUNCTION__); ++ crm_abort(__FILE__, __FUNCTION__, __LINE__, "member weirdness", TRUE, TRUE); ++ } + + } else if(id && by_name->id) { + crm_warn("Node %u and %u share the same name: '%s'", by_id->id, by_name->id, uname); +diff --git a/lib/common/remote.c b/lib/common/remote.c +index e2492b9..f11ebcd 100644 +--- a/lib/common/remote.c ++++ b/lib/common/remote.c +@@ -308,13 +308,16 @@ crm_remote_sendv(crm_remote_t * remote, struct iovec * iov, int iovs) + int rc = -ESOCKTNOSUPPORT; + + for(; lpc < iovs; lpc++) { +- if (remote->tcp_socket) { +- rc = crm_send_plaintext(remote->tcp_socket, iov[lpc].iov_base, iov[lpc].iov_len); +-#ifdef HAVE_GNUTLS_GNUTLS_H + +- } else if (remote->tls_session) { ++#ifdef HAVE_GNUTLS_GNUTLS_H ++ if (remote->tls_session) { + rc = crm_send_tls(remote->tls_session, iov[lpc].iov_base, iov[lpc].iov_len); ++ } else if (remote->tcp_socket) { ++#else ++ if (remote->tcp_socket) { + #endif ++ rc = crm_send_plaintext(remote->tcp_socket, iov[lpc].iov_base, iov[lpc].iov_len); ++ + } else { + crm_err("Unsupported connection type"); + } +@@ -448,14 +451,16 @@ crm_remote_ready(crm_remote_t * remote, int timeout /* ms */ ) + int rc = 0; + time_t start; + +- if (remote->tcp_socket) { +- sock = remote->tcp_socket; + #ifdef HAVE_GNUTLS_GNUTLS_H +- } else if (remote->tls_session) { ++ if (remote->tls_session) { + void *sock_ptr = gnutls_transport_get_ptr(*remote->tls_session); + + sock = GPOINTER_TO_INT(sock_ptr); ++ } else if (remote->tcp_socket) { ++#else ++ if (remote->tcp_socket) { + #endif ++ sock = remote->tcp_socket; + } else { + crm_err("Unsupported connection type"); + } +@@ -519,17 +524,8 @@ crm_remote_recv_once(crm_remote_t * remote) + CRM_ASSERT(remote->buffer != NULL); + } + +- if (remote->tcp_socket) { +- errno = 0; +- rc = read(remote->tcp_socket, +- remote->buffer + remote->buffer_offset, +- remote->buffer_size - remote->buffer_offset); +- if(rc < 0) { +- rc = -errno; +- } +- + #ifdef HAVE_GNUTLS_GNUTLS_H +- } else if (remote->tls_session) { ++ if (remote->tls_session) { + rc = gnutls_record_recv(*(remote->tls_session), + remote->buffer + remote->buffer_offset, + remote->buffer_size - remote->buffer_offset); +@@ -541,7 +537,18 @@ crm_remote_recv_once(crm_remote_t * remote) + crm_debug("TLS receive failed: %s (%d)", gnutls_strerror(rc), rc); + rc = -pcmk_err_generic; + } ++ } else if (remote->tcp_socket) { ++#else ++ if (remote->tcp_socket) { + #endif ++ errno = 0; ++ rc = read(remote->tcp_socket, ++ remote->buffer + remote->buffer_offset, ++ remote->buffer_size - remote->buffer_offset); ++ if(rc < 0) { ++ rc = -errno; ++ } ++ + } else { + crm_err("Unsupported connection type"); + return -ESOCKTNOSUPPORT; +diff --git a/lib/common/xml.c b/lib/common/xml.c +index 58d0a00..e63a582 100644 +--- a/lib/common/xml.c ++++ b/lib/common/xml.c +@@ -1281,7 +1281,10 @@ __xml_build_changes(xmlNode * xml, xmlNode *patchset) + for (pIter = crm_first_attr(xml); pIter != NULL; pIter = pIter->next) { + const char *value = crm_element_value(xml, (const char *)pIter->name); + +- crm_xml_add(result, (const char *)pIter->name, value); ++ p = pIter->_private; ++ if (is_not_set(p->flags, xpf_deleted)) { ++ crm_xml_add(result, (const char *)pIter->name, value); ++ } + } + } + +@@ -5715,7 +5718,7 @@ update_validation(xmlNode ** xml_blob, int *best, int max, gboolean transform, g + } + + } else { +- crm_notice("Upgrading %s-style configuration to %s with %s", ++ crm_debug("Upgrading %s-style configuration to %s with %s", + known_schemas[lpc].name, known_schemas[next].name, + known_schemas[lpc].transform ? known_schemas[lpc].transform : "no-op"); + +@@ -5746,7 +5749,7 @@ update_validation(xmlNode ** xml_blob, int *best, int max, gboolean transform, g + } + + if (*best > match) { +- crm_notice("%s the configuration from %s to %s", ++ crm_info("%s the configuration from %s to %s", + transform?"Transformed":"Upgraded", + value ? value : "<none>", known_schemas[*best].name); + crm_xml_add(xml, XML_ATTR_VALIDATION, known_schemas[*best].name); +diff --git a/lib/services/services.c b/lib/services/services.c +index 582fbe1..c7b6c89 100644 +--- a/lib/services/services.c ++++ b/lib/services/services.c +@@ -305,6 +305,7 @@ services_action_create_generic(const char *exec, const char *args[]) + void + services_action_cleanup(svc_action_t * op) + { ++#if SUPPORT_DBUS + if(op->opaque->timerid != 0) { + crm_trace("Removing timer for call %s to %s", op->action, op->rsc); + g_source_remove(op->opaque->timerid); +@@ -330,6 +331,7 @@ services_action_cleanup(svc_action_t * op) + mainloop_del_fd(op->opaque->stdout_gsource); + op->opaque->stdout_gsource = NULL; + } ++#endif + } + + void +diff --git a/lrmd/regression.py.in b/lrmd/regression.py.in +index 649c984..50e975e 100755 +--- a/lrmd/regression.py.in ++++ b/lrmd/regression.py.in +@@ -435,14 +435,13 @@ if __name__ == "__main__": + os.system("cp %s/extra/resources/%s @OCF_RA_DIR@/pacemaker/%s" % (build_dir, ra, ra)) + os.system("chmod a+x @OCF_RA_DIR@/pacemaker/%s" % (ra)) + +- else: +- # Assume it's installed +- print "Using @datadir@/@PACKAGE@/tests/cts/LSBDummy" +- os.system("cp @datadir@/@PACKAGE@/tests/cts/LSBDummy /etc/init.d/LSBDummy") +- +- os.system("chmod a+x /etc/init.d/LSBDummy") +- os.system("ls -al /etc/init.d/LSBDummy") ++ else: ++ # Assume it's installed ++ print "Using @datadir@/@PACKAGE@/tests/cts/LSBDummy" ++ os.system("cp @datadir@/@PACKAGE@/tests/cts/LSBDummy /etc/init.d/LSBDummy") + ++ os.system("chmod a+x /etc/init.d/LSBDummy") ++ os.system("ls -al /etc/init.d/LSBDummy") + os.system("mkdir -p @CRM_CORE_DIR@/root") + + if os.path.exists("/bin/systemctl"): +diff --git a/pengine/constraints.c b/pengine/constraints.c +index 88e382b..a2ce9c4 100644 +--- a/pengine/constraints.c ++++ b/pengine/constraints.c +@@ -52,6 +52,8 @@ enum pe_order_kind { + enum pe_ordering get_flags(const char *id, enum pe_order_kind kind, + const char *action_first, const char *action_then, gboolean invert); + enum pe_ordering get_asymmetrical_flags(enum pe_order_kind kind); ++static rsc_to_node_t *generate_location_rule(resource_t * rsc, xmlNode * rule_xml, ++ const char *discovery, pe_working_set_t * data_set); + + gboolean + unpack_constraints(xmlNode * xml_constraints, pe_working_set_t * data_set) +@@ -687,7 +689,7 @@ unpack_rsc_location(xmlNode * xml_obj, resource_t * rsc_lh, const char * role, + if (crm_str_eq((const char *)rule_xml->name, XML_TAG_RULE, TRUE)) { + empty = FALSE; + crm_trace("Unpacking %s/%s", id, ID(rule_xml)); +- generate_location_rule(rsc_lh, rule_xml, data_set); ++ generate_location_rule(rsc_lh, rule_xml, discovery, data_set); + } + } + +@@ -917,8 +919,8 @@ get_node_score(const char *rule, const char *score, gboolean raw, node_t * node) + return score_f; + } + +-rsc_to_node_t * +-generate_location_rule(resource_t * rsc, xmlNode * rule_xml, pe_working_set_t * data_set) ++static rsc_to_node_t * ++generate_location_rule(resource_t * rsc, xmlNode * rule_xml, const char *discovery, pe_working_set_t * data_set) + { + const char *rule_id = NULL; + const char *score = NULL; +@@ -960,7 +962,7 @@ generate_location_rule(resource_t * rsc, xmlNode * rule_xml, pe_working_set_t * + do_and = FALSE; + } + +- location_rule = rsc2node_new(rule_id, rsc, 0, NULL, NULL, data_set); ++ location_rule = rsc2node_new(rule_id, rsc, 0, discovery, NULL, data_set); + + if (location_rule == NULL) { + return NULL; +diff --git a/pengine/test10/resource-discovery.xml b/pengine/test10/resource-discovery.xml +index 8b517df..1692cdb 100644 +--- a/pengine/test10/resource-discovery.xml ++++ b/pengine/test10/resource-discovery.xml +@@ -97,7 +97,13 @@ + <rsc_location id="location-FAKE1-remote1" node="remote1" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> + <rsc_location id="location-FAKE1-18node1" node="18node1" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> + <rsc_location id="location-FAKE1-18node2" node="18node2" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> +- <rsc_location id="location-FAKE1-18node3" node="18node3" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> ++ ++ <rsc_location id="location-FAKE1-18node3" resource-discovery="never" rsc="FAKE1" > ++ <rule score="-INFINITY" id="vlan003-on-cluster-nodes-rule"> ++ <expression attribute="#uname" operation="eq" value="18node3" id="vlan003-on-cluster-nodes-rule-expression"/> ++ </rule> ++ </rsc_location> ++ + <rsc_location id="location-FAKE2-18node1" node="18node1" resource-discovery="exclusive" rsc="FAKE2" score="10"/> + <rsc_location id="location-FAKE2-18node2" node="18node2" resource-discovery="exclusive" rsc="FAKE2" score="100"/> + <rsc_location id="location-FAKE3-18node3--INFINITY" node="18node3" resource-discovery="exclusive" rsc="FAKE3" score="INFINITY"/> +diff --git a/pengine/utils.h b/pengine/utils.h +index 5142e68..270d32a 100644 +--- a/pengine/utils.h ++++ b/pengine/utils.h +@@ -39,9 +39,6 @@ extern gboolean rsc_ticket_new(const char *id, resource_t * rsc_lh, ticket_t * t + const char *state_lh, const char *loss_policy, + pe_working_set_t * data_set); + +-extern rsc_to_node_t *generate_location_rule(resource_t * rsc, xmlNode * location_rule, +- pe_working_set_t * data_set); +- + extern gint sort_node_weight(gconstpointer a, gconstpointer b, gpointer data_set); + + extern gboolean can_run_resources(const node_t * node); +diff --git a/tools/crm_node.c b/tools/crm_node.c +index 98847f3..5932f98 100644 +--- a/tools/crm_node.c ++++ b/tools/crm_node.c +@@ -34,6 +34,7 @@ + #include <crm/common/mainloop.h> + #include <crm/msg_xml.h> + #include <crm/cib.h> ++#include <crm/attrd.h> + + int command = 0; + int ccm_fd = 0; +@@ -92,7 +93,7 @@ cib_remove_node(uint32_t id, const char *name) + crm_trace("Removing %s from the CIB", name); + + /* TODO: Use 'id' instead */ +- if(name == NULL) { ++ if(name == NULL && id == 0) { + return -ENOTUNIQ; + } + +@@ -101,17 +102,24 @@ cib_remove_node(uint32_t id, const char *name) + + crm_xml_add(node, XML_ATTR_UNAME, name); + crm_xml_add(node_state, XML_ATTR_UNAME, name); ++ if(id) { ++ char buffer[64]; ++ if(snprintf(buffer, 63, "%u", id) > 0) { ++ crm_xml_add(node, XML_ATTR_ID, buffer); ++ crm_xml_add(node_state, XML_ATTR_ID, buffer); ++ } ++ } + + cib = cib_new(); + cib->cmds->signon(cib, crm_system_name, cib_command); + + rc = cib->cmds->delete(cib, XML_CIB_TAG_NODES, node, cib_sync_call); + if (rc != pcmk_ok) { +- printf("Could not remove %s from " XML_CIB_TAG_NODES ": %s", name, pcmk_strerror(rc)); ++ printf("Could not remove %s/%u from " XML_CIB_TAG_NODES ": %s", name, id, pcmk_strerror(rc)); + } + rc = cib->cmds->delete(cib, XML_CIB_TAG_STATUS, node_state, cib_sync_call); + if (rc != pcmk_ok) { +- printf("Could not remove %s from " XML_CIB_TAG_STATUS ": %s", name, pcmk_strerror(rc)); ++ printf("Could not remove %s/%u from " XML_CIB_TAG_STATUS ": %s", name, id, pcmk_strerror(rc)); + } + + cib->cmds->signoff(cib); +@@ -156,6 +164,7 @@ int tools_remove_node_cache(const char *node, const char *target) + } + } + ++ + errno = 0; + n = strtol(node, &endptr, 10); + if (errno != 0 || endptr == node || *endptr != '\0') { +@@ -166,21 +175,39 @@ int tools_remove_node_cache(const char *node, const char *target) + name = get_node_name(n); + } + +- crm_trace("Removing %s aka. %s from the membership cache", name, node); ++ crm_trace("Removing %s aka. %s (%u) from the membership cache", name, node, n); + +- cmd = create_request(CRM_OP_RM_NODE_CACHE, +- NULL, NULL, target, "crm_node", admin_uuid); ++ if(safe_str_eq(target, T_ATTRD)) { ++ cmd = create_xml_node(NULL, __FUNCTION__); + +- if (n) { +- char buffer[64]; ++ crm_xml_add(cmd, F_TYPE, T_ATTRD); ++ crm_xml_add(cmd, F_ORIG, crm_system_name); + +- if(snprintf(buffer, 63, "%u", n) > 0) { +- crm_xml_add(cmd, XML_ATTR_ID, buffer); ++ crm_xml_add(cmd, F_ATTRD_TASK, "peer-remove"); ++ crm_xml_add(cmd, F_ATTRD_HOST, name); ++ ++ if (n) { ++ char buffer[64]; ++ if(snprintf(buffer, 63, "%u", n) > 0) { ++ crm_xml_add(cmd, F_ATTRD_HOST_ID, buffer); ++ } ++ } ++ ++ } else { ++ cmd = create_request(CRM_OP_RM_NODE_CACHE, ++ NULL, NULL, target, crm_system_name, admin_uuid); ++ if (n) { ++ char buffer[64]; ++ if(snprintf(buffer, 63, "%u", n) > 0) { ++ crm_xml_add(cmd, XML_ATTR_ID, buffer); ++ } + } ++ crm_xml_add(cmd, XML_ATTR_UNAME, name); + } +- crm_xml_add(cmd, XML_ATTR_UNAME, name); + + rc = crm_ipc_send(conn, cmd, 0, 0, NULL); ++ crm_debug("%s peer cache cleanup for %s (%u): %d", target, name, n, rc); ++ + if (rc > 0) { + rc = cib_remove_node(n, name); + } +@@ -189,8 +216,8 @@ int tools_remove_node_cache(const char *node, const char *target) + crm_ipc_close(conn); + crm_ipc_destroy(conn); + } +- free_xml(cmd); + free(admin_uuid); ++ free_xml(cmd); + free(name); + return rc > 0 ? 0 : rc; + } +@@ -649,6 +676,12 @@ try_corosync(int command, enum cluster_type_e stack) + + mainloop_io_t *ipc = NULL; + GMainLoop *amainloop = NULL; ++ const char *daemons[] = { ++ CRM_SYSTEM_CRMD, ++ "stonith-ng", ++ T_ATTRD, ++ CRM_SYSTEM_MCP, ++ }; + + struct ipc_client_callbacks node_callbacks = { + .dispatch = node_mcp_dispatch, +@@ -657,13 +690,11 @@ try_corosync(int command, enum cluster_type_e stack) + + switch (command) { + case 'R': +- if (tools_remove_node_cache(target_uname, CRM_SYSTEM_CRMD)) { +- crm_err("Failed to connect to "CRM_SYSTEM_CRMD" to remove node '%s'", target_uname); +- crm_exit(pcmk_err_generic); +- } +- if (tools_remove_node_cache(target_uname, CRM_SYSTEM_MCP)) { +- crm_err("Failed to connect to "CRM_SYSTEM_MCP" to remove node '%s'", target_uname); +- crm_exit(pcmk_err_generic); ++ for(rc = 0; rc < DIMOF(daemons); rc++) { ++ if (tools_remove_node_cache(target_uname, daemons[rc])) { ++ crm_err("Failed to connect to %s to remove node '%s'", daemons[rc], target_uname); ++ crm_exit(pcmk_err_generic); ++ } + } + crm_exit(pcmk_ok); + break; +@@ -834,8 +865,8 @@ main(int argc, char **argv) + force_flag = TRUE; + break; + case 'R': +- dangerous_cmd = TRUE; + command = flag; ++ dangerous_cmd = TRUE; + target_uname = optarg; + break; + case 'N': diff --git a/SOURCES/bz1165423-pcmk-coverity.patch b/SOURCES/bz1165423-pcmk-coverity.patch new file mode 100644 index 0000000..7207679 --- /dev/null +++ b/SOURCES/bz1165423-pcmk-coverity.patch @@ -0,0 +1,25 @@ +diff --git a/lib/common/xml.c b/lib/common/xml.c +index 0effd47..f7779f5 100644 +--- a/lib/common/xml.c ++++ b/lib/common/xml.c +@@ -2759,7 +2759,7 @@ create_xml_node(xmlNode * parent, const char *name) + xmlNode *node = NULL; + + if (name == NULL || name[0] == 0) { +- CRM_CHECK(name != NULL || name[0] == 0, return NULL); ++ CRM_CHECK(name != NULL && name[0] == 0, return NULL); + return NULL; + } + +diff --git a/tools/crm_resource.c b/tools/crm_resource.c +index 236d43c..968683a 100644 +--- a/tools/crm_resource.c ++++ b/tools/crm_resource.c +@@ -1430,7 +1430,6 @@ update_dataset(cib_t *cib, pe_working_set_t * data_set, bool simulate) + goto cleanup; + } + +- free(pid); + rc = write_xml_file(cib_xml_copy, shadow_file, FALSE); + + if (rc < 0) { diff --git a/SOURCES/bz1165423-pcmk-long-systemd-stop.patch b/SOURCES/bz1165423-pcmk-long-systemd-stop.patch new file mode 100644 index 0000000..0a22ae9 --- /dev/null +++ b/SOURCES/bz1165423-pcmk-long-systemd-stop.patch @@ -0,0 +1,709 @@ +diff --git a/GNUmakefile b/GNUmakefile +index f28dea8..7a4c929 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -325,7 +325,7 @@ clang: + test -e $(CLANG_analyzer) + scan-build $(CLANG_checkers:%=-enable-checker %) make + +-# V3 = scandir unsetenv alphasort ++# V3 = scandir unsetenv alphasort xalloc + # V2 = setenv strerror strchrnul strndup + # http://www.gnu.org/software/gnulib/manual/html_node/Initial-import.html#Initial-import + GNU_MODS = crypto/md5 +diff --git a/crmd/lrm.c b/crmd/lrm.c +index b68f657..8315f6f 100644 +--- a/crmd/lrm.c ++++ b/crmd/lrm.c +@@ -630,7 +630,7 @@ append_restart_list(lrmd_rsc_info_t * rsc, lrmd_event_data_t * op, xmlNode * upd + crm_xml_add(restart, param, value); + } + len += strlen(param) + 2; +- list = realloc(list, len + 1); ++ list = realloc_safe(list, len + 1); + sprintf(list + start, " %s ", param); + } + +diff --git a/cts/CIB.py b/cts/CIB.py +index d26efdb..7922d8b 100644 +--- a/cts/CIB.py ++++ b/cts/CIB.py +@@ -298,7 +298,28 @@ class CIB11(ConfigBase): + # Group Resource + g = Group(self.Factory, "group-1") + g.add_child(self.NewIP()) +- g.add_child(self.NewIP()) ++ ++ if self.CM.Env["have_systemd"]: ++ dummy_service_file = """ ++[Unit] ++Description=Dummy resource that takes a while to start ++ ++[Service] ++Type=notify ++ExecStart=/usr/bin/python -c 'import time; import systemd.daemon;time.sleep(10); systemd.daemon.notify("READY=1"); time.sleep(3600)' ++ExecStop=sleep 10 ++ExecStop=/bin/kill -KILL $MAINPID ++""" ++ ++ os.system("cat <<-END >/tmp/DummySD.service\n%s\nEND" % (dummy_service_file)) ++ ++ self.CM.install_helper("DummySD.service", destdir="/usr/lib/systemd/system/", sourcedir="/tmp") ++ sysd = Resource(self.Factory, "petulant", "DummySD", "service") ++ sysd.add_op("monitor", "P10S") ++ g.add_child(sysd) ++ else: ++ g.add_child(self.NewIP()) ++ + g.add_child(self.NewIP()) + + # Group with the master +diff --git a/cts/environment.py b/cts/environment.py +index d741452..2b2a343 100644 +--- a/cts/environment.py ++++ b/cts/environment.py +@@ -283,9 +283,9 @@ class Environment: + break; + self["cts-master"] = master + +- if self.has_key("have_systemd"): +- self["have_systemd"] = not rsh(discover, "systemctl list-units") +- ++ if not self.has_key("have_systemd"): ++ self["have_systemd"] = not self.rsh(self.target, "systemctl list-units") ++ + self.detect_syslog() + self.detect_at_boot() + self.detect_ip_offset() +diff --git a/fencing/standalone_config.c b/fencing/standalone_config.c +index 01c22b6..4319c4a 100644 +--- a/fencing/standalone_config.c ++++ b/fencing/standalone_config.c +@@ -170,7 +170,7 @@ standalone_cfg_add_node(const char *node, const char *device, const char *ports) + + if (tmp) { + offset = strlen(tmp); +- tmp = realloc(tmp, len + offset + 1); ++ tmp = realloc_safe(tmp, len + offset + 1); + } else { + tmp = malloc(len); + } +diff --git a/include/crm_internal.h b/include/crm_internal.h +index 3eb88de..169d6d3 100644 +--- a/include/crm_internal.h ++++ b/include/crm_internal.h +@@ -341,4 +341,16 @@ void cib_ipc_servers_destroy(qb_ipcs_service_t *ipcs_ro, + qb_ipcs_service_t *ipcs_rw, + qb_ipcs_service_t *ipcs_shm); + ++static inline void *realloc_safe(void *ptr, size_t size) ++{ ++ void *ret = realloc(ptr, size); ++ ++ if(ret == NULL) { ++ abort(); ++ } ++ ++ return ret; ++} ++ ++ + #endif /* CRM_INTERNAL__H */ +diff --git a/lib/ais/plugin.c b/lib/ais/plugin.c +index 3d4f369..ab534fa 100644 +--- a/lib/ais/plugin.c ++++ b/lib/ais/plugin.c +@@ -1214,7 +1214,7 @@ pcmk_generate_membership_data(void) + + g_hash_table_foreach(membership_list, member_loop_fn, &data); + size = strlen(data.string); +- data.string = realloc(data.string, size + 9); /* 9 = </nodes> + nul */ ++ data.string = realloc_safe(data.string, size + 9); /* 9 = </nodes> + nul */ + sprintf(data.string + size, "</nodes>"); + return data.string; + } +diff --git a/lib/ais/utils.c b/lib/ais/utils.c +index e56fb6d..94a2505 100644 +--- a/lib/ais/utils.c ++++ b/lib/ais/utils.c +@@ -409,7 +409,7 @@ append_member(char *data, crm_node_t * node) + if (node->version) { + size += (9 + strlen(node->version)); + } +- data = realloc(data, size); ++ data = realloc_safe(data, size); + + offset += snprintf(data + offset, size - offset, "<node id=\"%u\" ", node->id); + if (node->uname) { +diff --git a/lib/cluster/cpg.c b/lib/cluster/cpg.c +index 6c86e83..cda6326 100644 +--- a/lib/cluster/cpg.c ++++ b/lib/cluster/cpg.c +@@ -584,7 +584,7 @@ send_cluster_text(int class, const char *data, + msg->header.size = sizeof(AIS_Message) + msg->size; + + if (msg->size < CRM_BZ2_THRESHOLD) { +- msg = realloc(msg, msg->header.size); ++ msg = realloc_safe(msg, msg->header.size); + memcpy(msg->data, data, msg->size); + + } else { +@@ -595,14 +595,14 @@ send_cluster_text(int class, const char *data, + if (crm_compress_string(uncompressed, msg->size, 0, &compressed, &new_size)) { + + msg->header.size = sizeof(AIS_Message) + new_size; +- msg = realloc(msg, msg->header.size); ++ msg = realloc_safe(msg, msg->header.size); + memcpy(msg->data, compressed, new_size); + + msg->is_compressed = TRUE; + msg->compressed_size = new_size; + + } else { +- msg = realloc(msg, msg->header.size); ++ msg = realloc_safe(msg, msg->header.size); + memcpy(msg->data, data, msg->size); + } + +diff --git a/lib/cluster/heartbeat.c b/lib/cluster/heartbeat.c +index a801c8e..6f6a388 100644 +--- a/lib/cluster/heartbeat.c ++++ b/lib/cluster/heartbeat.c +@@ -106,7 +106,7 @@ convert_ha_field(xmlNode * parent, void *msg_v, int lpc) + + crm_trace("Trying to decompress %d bytes", (int)orig_len); + retry: +- uncompressed = realloc(uncompressed, size); ++ uncompressed = realloc_safe(uncompressed, size); + memset(uncompressed, 0, size); + used = size - 1; /* always leave room for a trailing '\0' + * BZ2_bzBuffToBuffDecompress wont say anything if +diff --git a/lib/common/logging.c b/lib/common/logging.c +index d64b77a..f211d80 100644 +--- a/lib/common/logging.c ++++ b/lib/common/logging.c +@@ -956,7 +956,7 @@ crm_log_args(int argc, char **argv) + } + + len = 2 + strlen(argv[lpc]); /* +1 space, +1 EOS */ +- arg_string = realloc(arg_string, len + existing_len); ++ arg_string = realloc_safe(arg_string, len + existing_len); + existing_len += sprintf(arg_string + existing_len, "%s ", argv[lpc]); + } + +diff --git a/lib/common/remote.c b/lib/common/remote.c +index f11ebcd..2a5b449 100644 +--- a/lib/common/remote.c ++++ b/lib/common/remote.c +@@ -520,7 +520,7 @@ crm_remote_recv_once(crm_remote_t * remote) + remote->buffer_size = 2 * read_len; + crm_trace("Expanding buffer to %u bytes", remote->buffer_size); + +- remote->buffer = realloc(remote->buffer, remote->buffer_size + 1); ++ remote->buffer = realloc_safe(remote->buffer, remote->buffer_size + 1); + CRM_ASSERT(remote->buffer != NULL); + } + +diff --git a/lib/common/utils.c b/lib/common/utils.c +index eacd8e9..d70778d 100644 +--- a/lib/common/utils.c ++++ b/lib/common/utils.c +@@ -1712,7 +1712,7 @@ crm_create_long_opts(struct crm_option *long_options) + * This dummy entry allows us to differentiate between the two in crm_get_option() + * and exit with the correct error code + */ +- long_opts = realloc(long_opts, (index + 1) * sizeof(struct option)); ++ long_opts = realloc_safe(long_opts, (index + 1) * sizeof(struct option)); + long_opts[index].name = "__dummmy__"; + long_opts[index].has_arg = 0; + long_opts[index].flag = 0; +@@ -1724,7 +1724,7 @@ crm_create_long_opts(struct crm_option *long_options) + continue; + } + +- long_opts = realloc(long_opts, (index + 1) * sizeof(struct option)); ++ long_opts = realloc_safe(long_opts, (index + 1) * sizeof(struct option)); + /*fprintf(stderr, "Creating %d %s = %c\n", index, + * long_options[lpc].name, long_options[lpc].val); */ + long_opts[index].name = long_options[lpc].name; +@@ -1735,7 +1735,7 @@ crm_create_long_opts(struct crm_option *long_options) + } + + /* Now create the list terminator */ +- long_opts = realloc(long_opts, (index + 1) * sizeof(struct option)); ++ long_opts = realloc_safe(long_opts, (index + 1) * sizeof(struct option)); + long_opts[index].name = NULL; + long_opts[index].has_arg = 0; + long_opts[index].flag = 0; +@@ -1759,7 +1759,7 @@ crm_set_options(const char *short_options, const char *app_usage, struct crm_opt + + for (lpc = 0; long_options[lpc].name != NULL; lpc++) { + if (long_options[lpc].val && long_options[lpc].val != '-' && long_options[lpc].val < UCHAR_MAX) { +- local_short_options = realloc(local_short_options, opt_string_len + 4); ++ local_short_options = realloc_safe(local_short_options, opt_string_len + 4); + local_short_options[opt_string_len++] = long_options[lpc].val; + /* getopt(3) says: Two colons mean an option takes an optional arg; */ + if (long_options[lpc].has_arg == optional_argument) { +@@ -2517,7 +2517,7 @@ add_list_element(char *list, const char *value) + } + len = last + 2; /* +1 space, +1 EOS */ + len += strlen(value); +- list = realloc(list, len); ++ list = realloc_safe(list, len); + sprintf(list + last, " %s", value); + return list; + } +diff --git a/lib/common/xml.c b/lib/common/xml.c +index e63a582..0effd47 100644 +--- a/lib/common/xml.c ++++ b/lib/common/xml.c +@@ -206,7 +206,7 @@ static inline bool TRACKING_CHANGES(xmlNode *xml) + } else if(rc >= ((max) - (offset))) { \ + char *tmp = NULL; \ + (max) = QB_MAX(CHUNK_SIZE, (max) * 2); \ +- tmp = realloc((buffer), (max) + 1); \ ++ tmp = realloc_safe((buffer), (max) + 1); \ + CRM_ASSERT(tmp); \ + (buffer) = tmp; \ + } else { \ +@@ -223,7 +223,7 @@ insert_prefix(int options, char **buffer, int *offset, int *max, int depth) + + if ((*buffer) == NULL || spaces >= ((*max) - (*offset))) { + (*max) = QB_MAX(CHUNK_SIZE, (*max) * 2); +- (*buffer) = realloc((*buffer), (*max) + 1); ++ (*buffer) = realloc_safe((*buffer), (*max) + 1); + } + memset((*buffer) + (*offset), ' ', spaces); + (*offset) += spaces; +@@ -305,7 +305,7 @@ static void __xml_schema_add( + int last = xml_schema_max; + + xml_schema_max++; +- known_schemas = realloc(known_schemas, xml_schema_max*sizeof(struct schema_s)); ++ known_schemas = realloc_safe(known_schemas, xml_schema_max*sizeof(struct schema_s)); + CRM_ASSERT(known_schemas != NULL); + memset(known_schemas+last, 0, sizeof(struct schema_s)); + known_schemas[last].type = type; +@@ -2759,6 +2759,7 @@ create_xml_node(xmlNode * parent, const char *name) + xmlNode *node = NULL; + + if (name == NULL || name[0] == 0) { ++ CRM_CHECK(name != NULL || name[0] == 0, return NULL); + return NULL; + } + +@@ -2905,7 +2906,7 @@ crm_xml_err(void *ctx, const char *msg, ...) + buf = NULL; + + } else { +- buffer = realloc(buffer, 1 + buffer_len + len); ++ buffer = realloc_safe(buffer, 1 + buffer_len + len); + memcpy(buffer + buffer_len, buf, len); + buffer_len += len; + buffer[buffer_len] = 0; +@@ -2997,7 +2998,7 @@ stdin2xml(void) + break; + } + +- xml_buffer = realloc(xml_buffer, next); ++ xml_buffer = realloc_safe(xml_buffer, next); + read_chars = fread(xml_buffer + data_length, 1, XML_BUFFER_SIZE, stdin); + data_length += read_chars; + } while (read_chars > 0); +@@ -3043,7 +3044,7 @@ decompress_file(const char *filename) + + rc = BZ_OK; + while (rc == BZ_OK) { +- buffer = realloc(buffer, XML_BUFFER_SIZE + length + 1); ++ buffer = realloc_safe(buffer, XML_BUFFER_SIZE + length + 1); + read_len = BZ2_bzRead(&rc, bz_file, buffer + length, XML_BUFFER_SIZE); + + crm_trace("Read %ld bytes from file: %d", (long)read_len, rc); +@@ -3301,7 +3302,7 @@ crm_xml_escape_shuffle(char *text, int start, int *length, const char *replace) + int offset = strlen(replace) - 1; /* We have space for 1 char already */ + + *length += offset; +- text = realloc(text, *length); ++ text = realloc_safe(text, *length); + + for (lpc = (*length) - 1; lpc > (start + offset); lpc--) { + text[lpc] = text[lpc - offset]; +@@ -5369,7 +5370,7 @@ crm_xml_init(void) + if(init) { + init = FALSE; + /* The default allocator XML_BUFFER_ALLOC_EXACT does far too many +- * realloc()s and it can take upwards of 18 seconds (yes, seconds) ++ * realloc_safe()s and it can take upwards of 18 seconds (yes, seconds) + * to dump a 28kb tree which XML_BUFFER_ALLOC_DOUBLEIT can do in + * less than 1 second. + */ +@@ -5987,7 +5988,7 @@ get_xpath_object_relative(const char *xpath, xmlNode * xml_obj, int error_level) + len += strlen(xpath); + + xpath_full = strdup(xpath_prefix); +- xpath_full = realloc(xpath_full, len + 1); ++ xpath_full = realloc_safe(xpath_full, len + 1); + strncat(xpath_full, xpath, len); + + result = get_xpath_object(xpath_full, xml_obj, error_level); +diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c +index 06b9492..e51d673 100644 +--- a/lib/fencing/st_client.c ++++ b/lib/fencing/st_client.c +@@ -308,7 +308,7 @@ append_arg(gpointer key, gpointer value, gpointer user_data) + last = strlen(*args); + } + +- *args = realloc(*args, last + len); ++ *args = realloc_safe(*args, last + len); + crm_trace("Appending: %s=%s", (char *)key, (char *)value); + sprintf((*args) + last, "%s=%s\n", (char *)key, (char *)value); + } +@@ -627,7 +627,7 @@ read_output(int fd) + * 'more' is always less than our buffer size + */ + crm_trace("Got %d more bytes: %.200s...", more, buffer); +- output = realloc(output, len + more + 1); ++ output = realloc_safe(output, len + more + 1); + snprintf(output + len, more + 1, "%s", buffer); + len += more; + } +diff --git a/lib/services/services_linux.c b/lib/services/services_linux.c +index 8d6f450..de29706 100644 +--- a/lib/services/services_linux.c ++++ b/lib/services/services_linux.c +@@ -94,7 +94,7 @@ svc_read_output(int fd, svc_action_t * op, bool is_stderr) + if (rc > 0) { + crm_trace("Got %d characters starting with %.20s", rc, buf); + buf[rc] = 0; +- data = realloc(data, len + rc + 1); ++ data = realloc_safe(data, len + rc + 1); + len += sprintf(data + len, "%s", buf); + + } else if (errno != EINTR) { +diff --git a/lib/services/systemd.c b/lib/services/systemd.c +index a8bf1b4..c0a1721 100644 +--- a/lib/services/systemd.c ++++ b/lib/services/systemd.c +@@ -462,10 +462,11 @@ systemd_async_dispatch(DBusPendingCall *pending, void *user_data) + if(op) { + crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); + op->opaque->pending = NULL; ++ systemd_exec_result(reply, op); ++ + } else { + crm_trace("Got result: %p for %p", reply, pending); + } +- systemd_exec_result(reply, op); + + if(pending) { + dbus_pending_call_unref(pending); +@@ -491,6 +492,8 @@ systemd_unit_check(const char *name, const char *state, void *userdata) + op->rc = PCMK_OCF_OK; + } else if (g_strcmp0(state, "activating") == 0) { + op->rc = PCMK_OCF_PENDING; ++ } else if (g_strcmp0(state, "deactivating") == 0) { ++ op->rc = PCMK_OCF_PENDING; + } else { + op->rc = PCMK_OCF_NOT_RUNNING; + } +diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c +index d3ede18..0f5f529 100644 +--- a/lrmd/lrmd.c ++++ b/lrmd/lrmd.c +@@ -790,10 +790,30 @@ action_complete(svc_action_t * action) + cmd->real_action = cmd->action; + cmd->action = strdup("monitor"); + ++ } else if(cmd->exec_rc == PCMK_OCF_OK && safe_str_eq(cmd->action, "stop")) { ++ goagain = true; ++ cmd->real_action = cmd->action; ++ cmd->action = strdup("monitor"); ++ + } else if(cmd->real_action) { + /* Ok, so this is the follow up monitor action to check if start actually completed */ + if(cmd->lrmd_op_status == PCMK_LRM_OP_DONE && cmd->exec_rc == PCMK_OCF_PENDING) { + goagain = true; ++ ++ } else { ++ int time_sum = 0; ++ int timeout_left = 0; ++ struct timeb now = { 0, }; ++ ++ ftime(&now); ++ time_sum = time_diff_ms(&now, &cmd->t_first_run); ++ timeout_left = cmd->timeout_orig - time_sum; ++ crm_debug("%s %s is now complete (elapsed=%dms, remaining=%dms): %s (%d)", ++ cmd->rsc_id, cmd->real_action, time_sum, timeout_left, services_ocf_exitcode_str(cmd->exec_rc), cmd->exec_rc); ++ ++ if(cmd->lrmd_op_status == PCMK_LRM_OP_DONE && cmd->exec_rc == PCMK_OCF_NOT_RUNNING && safe_str_eq(cmd->real_action, "stop")) { ++ cmd->exec_rc = PCMK_OCF_OK; ++ } + } + } + } +@@ -827,13 +847,22 @@ action_complete(svc_action_t * action) + delay = timeout_left/2; + } + ++ delay = QB_MIN(2000, delay); + if (delay < timeout_left) { + cmd->start_delay = delay; + cmd->timeout = timeout_left; + +- if(cmd->exec_rc != PCMK_OCF_OK) { +- crm_info("%s %s failed (rc=%d): re-scheduling (elapsed=%dms, remaining=%dms, start_delay=%dms)", +- cmd->rsc_id, cmd->action, cmd->exec_rc, time_sum, timeout_left, delay); ++ if(cmd->exec_rc == PCMK_OCF_OK) { ++ crm_debug("%s %s may still be in progress: re-scheduling (elapsed=%dms, remaining=%dms, start_delay=%dms)", ++ cmd->rsc_id, cmd->real_action, time_sum, timeout_left, delay); ++ ++ } else if(cmd->exec_rc == PCMK_OCF_PENDING) { ++ crm_info("%s %s is still in progress: re-scheduling (elapsed=%dms, remaining=%dms, start_delay=%dms)", ++ cmd->rsc_id, cmd->action, time_sum, timeout_left, delay); ++ ++ } else { ++ crm_notice("%s %s failed '%s' (%d): re-scheduling (elapsed=%dms, remaining=%dms, start_delay=%dms)", ++ cmd->rsc_id, cmd->action, services_ocf_exitcode_str(cmd->exec_rc), cmd->exec_rc, time_sum, timeout_left, delay); + } + + cmd_reset(cmd); +diff --git a/pengine/allocate.c b/pengine/allocate.c +index 45e2212..748ca54 100644 +--- a/pengine/allocate.c ++++ b/pengine/allocate.c +@@ -1913,7 +1913,7 @@ expand_list(GListPtr list, char **rsc_list, char **node_list) + } + + crm_trace("Adding %s (%dc) at offset %d", rsc_id, len - 2, existing_len); +- *rsc_list = realloc(*rsc_list, len + existing_len); ++ *rsc_list = realloc_safe(*rsc_list, len + existing_len); + sprintf(*rsc_list + existing_len, "%s ", rsc_id); + } + +@@ -1930,7 +1930,7 @@ expand_list(GListPtr list, char **rsc_list, char **node_list) + } + + crm_trace("Adding %s (%dc) at offset %d", uname, len - 2, existing_len); +- *node_list = realloc(*node_list, len + existing_len); ++ *node_list = realloc_safe(*node_list, len + existing_len); + sprintf(*node_list + existing_len, "%s ", uname); + } + } +diff --git a/replace/scandir.c b/replace/scandir.c +index 7a8efea..0011630 100644 +--- a/replace/scandir.c ++++ b/replace/scandir.c +@@ -202,7 +202,7 @@ scandir(const char *directory_name, + if (counter + 1 == allocated) { + allocated <<= 1; + array = (struct dirent **) +- realloc((char *)array, allocated * sizeof(struct dirent *)); ++ realloc_safe((char *)array, allocated * sizeof(struct dirent *)); + if (array == NULL) { + closedir(directory); + free(array); +diff --git a/tools/crm_resource.c b/tools/crm_resource.c +index 6e510e1..236d43c 100644 +--- a/tools/crm_resource.c ++++ b/tools/crm_resource.c +@@ -1399,16 +1399,20 @@ static void display_list(GList *items, const char *tag) + static int + update_dataset(cib_t *cib, pe_working_set_t * data_set, bool simulate) + { ++ char *pid = NULL; ++ char *shadow_file = NULL; ++ cib_t *shadow_cib = NULL; + xmlNode *cib_xml_copy = NULL; + int rc = cib->cmds->query(cib, NULL, &cib_xml_copy, cib_scope_local | cib_sync_call); + + if(rc != pcmk_ok) { + fprintf(stdout, "Could not obtain the current CIB: %s (%d)\n", pcmk_strerror(rc), rc); +- return crm_exit(rc); ++ goto cleanup; + + } else if (cli_config_update(&cib_xml_copy, NULL, FALSE) == FALSE) { + fprintf(stderr, "Could not upgrade the current CIB\n"); +- return -ENOKEY; ++ rc = -ENOKEY; ++ goto cleanup; + } + + set_working_set_defaults(data_set); +@@ -1416,70 +1420,103 @@ update_dataset(cib_t *cib, pe_working_set_t * data_set, bool simulate) + data_set->now = crm_time_new(NULL); + + if(simulate) { +- char *pid = crm_itoa(getpid()); +- cib_t *shadow_cib = cib_shadow_new(pid); +- char *shadow_file = get_shadow_file(pid); ++ pid = crm_itoa(getpid()); ++ shadow_cib = cib_shadow_new(pid); ++ shadow_file = get_shadow_file(pid); + + if (shadow_cib == NULL) { + fprintf(stderr, "Could not create shadow cib: '%s'\n", pid); +- crm_exit(-ENXIO); ++ rc = -ENXIO; ++ goto cleanup; + } + ++ free(pid); + rc = write_xml_file(cib_xml_copy, shadow_file, FALSE); + + if (rc < 0) { + fprintf(stderr, "Could not populate shadow cib: %s (%d)\n", pcmk_strerror(rc), rc); +- free_xml(cib_xml_copy); +- return rc; ++ goto cleanup; + } + + rc = shadow_cib->cmds->signon(shadow_cib, crm_system_name, cib_command); + if(rc != pcmk_ok) { + fprintf(stderr, "Could not connect to shadow cib: %s (%d)\n", pcmk_strerror(rc), rc); +- free_xml(cib_xml_copy); +- return rc; ++ goto cleanup; + } + + do_calculations(data_set, cib_xml_copy, NULL); + run_simulation(data_set, shadow_cib, NULL, TRUE); + rc = update_dataset(shadow_cib, data_set, FALSE); + +- cib_delete(shadow_cib); +- /* unlink(shadow_file); */ +- free(shadow_file); +- + } else { + cluster_status(data_set); + } + ++ cleanup: ++ cib_delete(shadow_cib); ++ free_xml(cib_xml_copy); ++ free(pid); ++ ++ if(shadow_file) { ++ unlink(shadow_file); ++ free(shadow_file); ++ } ++ + return rc; + } + + static int +-max_delay_in(pe_working_set_t * data_set, GList *resources) ++max_delay_for_resource(pe_working_set_t * data_set, resource_t *rsc) + { ++ int delay = 0; + int max_delay = 0; +- GList *item = NULL; + +- for (item = resources; item != NULL; item = item->next) { +- resource_t *rsc = pe_find_resource(data_set->resources, (const char *)item->data); ++ if(rsc && rsc->children) { ++ GList *iter = NULL; + +- if(rsc) { +- char *key = g_strdup_printf("%s_%s_0", rsc->id, RSC_STOP); +- action_t *stop = custom_action(rsc, key, RSC_STOP, NULL, TRUE, FALSE, data_set); +- const char *value = g_hash_table_lookup(stop->meta, XML_ATTR_TIMEOUT); +- int delay = crm_int_helper(value, NULL); ++ for(iter = rsc->children; iter; iter = iter->next) { ++ resource_t *child = (resource_t *)iter->data; + ++ delay = max_delay_for_resource(data_set, child); + if(delay > max_delay) { +- crm_trace("Calculated new delay of %s ms due to %s", value, rsc->id); ++ double seconds = delay / 1000; ++ crm_trace("Calculated new delay of %.1fs due to %s", seconds, child->id); + max_delay = delay; + } +- +- pe_free_action(stop); + } ++ ++ } else if(rsc) { ++ char *key = g_strdup_printf("%s_%s_0", rsc->id, RSC_STOP); ++ action_t *stop = custom_action(rsc, key, RSC_STOP, NULL, TRUE, FALSE, data_set); ++ const char *value = g_hash_table_lookup(stop->meta, XML_ATTR_TIMEOUT); ++ ++ max_delay = crm_int_helper(value, NULL); ++ pe_free_action(stop); + } + + ++ return max_delay; ++} ++ ++static int ++max_delay_in(pe_working_set_t * data_set, GList *resources) ++{ ++ int max_delay = 0; ++ GList *item = NULL; ++ ++ for (item = resources; item != NULL; item = item->next) { ++ int delay = 0; ++ resource_t *rsc = pe_find_resource(data_set->resources, (const char *)item->data); ++ ++ delay = max_delay_for_resource(data_set, rsc); ++ ++ if(delay > max_delay) { ++ double seconds = delay / 1000; ++ crm_trace("Calculated new delay of %.1fs due to %s", seconds, rsc->id); ++ max_delay = delay; ++ } ++ } ++ + return 5 + (max_delay / 1000); + } + +@@ -1507,7 +1544,7 @@ resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib + return -ENXIO; + } + +- ++ attr_set_type = XML_TAG_META_SETS; + rsc_id = strdup(rsc->id); + if(rsc->variant > pe_group) { + is_clone = TRUE; +@@ -1536,6 +1573,7 @@ resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib + rc = update_dataset(cib, &data_set, FALSE); + if(rc != pcmk_ok) { + fprintf(stdout, "Could not get new resource list: %s (%d)\n", pcmk_strerror(rc), rc); ++ free(rsc_id); + return rc; + } + +@@ -1553,6 +1591,7 @@ resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib + } + if(rc != pcmk_ok) { + fprintf(stderr, "Could not set target-role for %s: %s (%d)\n", rsc_id, pcmk_strerror(rc), rc); ++ free(rsc_id); + return crm_exit(rc); + } + +@@ -1615,6 +1654,7 @@ resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib + + if(rc != pcmk_ok) { + fprintf(stderr, "Could not unset target-role for %s: %s (%d)\n", rsc_id, pcmk_strerror(rc), rc); ++ free(rsc_id); + return crm_exit(rc); + } + +@@ -1659,6 +1699,7 @@ resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib + + } while(g_list_length(list_delta) > 0); + ++ free(rsc_id); + return pcmk_ok; + + failure: +@@ -1668,6 +1709,7 @@ resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib + } else { + delete_resource_attr(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, cib, &data_set); + } ++ free(rsc_id); + return rc; + } + diff --git a/SOURCES/bz1176210-handle-orphaned-remote-nodes.patch b/SOURCES/bz1176210-handle-orphaned-remote-nodes.patch new file mode 100644 index 0000000..9331bab --- /dev/null +++ b/SOURCES/bz1176210-handle-orphaned-remote-nodes.patch @@ -0,0 +1,816 @@ +diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c +index bdd6450..39756b1 100644 +--- a/lib/pengine/unpack.c ++++ b/lib/pengine/unpack.c +@@ -1828,7 +1828,7 @@ process_rsc_state(resource_t * rsc, node_t * node, + + should_fence = TRUE; + } else if (is_set(data_set->flags, pe_flag_stonith_enabled)) { +- if (is_baremetal_remote_node(node) && is_not_set(node->details->remote_rsc->flags, pe_rsc_failed)) { ++ if (is_baremetal_remote_node(node) && node->details->remote_rsc && is_not_set(node->details->remote_rsc->flags, pe_rsc_failed)) { + /* setting unseen = true means that fencing of the remote node will + * only occur if the connection resource is not going to start somewhere. + * This allows connection resources on a failed cluster-node to move to +diff --git a/pengine/allocate.c b/pengine/allocate.c +index 3241273..7dd70f1 100644 +--- a/pengine/allocate.c ++++ b/pengine/allocate.c +@@ -1636,6 +1636,7 @@ apply_remote_node_ordering(pe_working_set_t *data_set) + + if (action->node == NULL || + is_remote_node(action->node) == FALSE || ++ action->node->details->remote_rsc == NULL || + action->rsc == NULL || + is_set(action->flags, pe_action_pseudo)) { + continue; +diff --git a/pengine/regression.sh b/pengine/regression.sh +index 9172acb..93d4de1 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -778,6 +778,7 @@ do_test remote-fence-unclean2 "Fence baremetal remote-node after cluster node f + do_test remote-move "Move remote-node connection resource" + do_test remote-disable "Disable a baremetal remote-node" + do_test remote-orphaned "Properly shutdown orphaned connection resource" ++do_test remote-orphaned2 "verify we can handle orphaned remote connections with active resources on the remote" + do_test remote-recover "Recover connection resource after cluster-node fails." + do_test remote-stale-node-entry "Make sure we properly handle leftover remote-node entries in the node section" + do_test remote-partial-migrate "Make sure partial migrations are handled before ops on the remote node." +diff --git a/pengine/test10/remote-orphaned2.dot b/pengine/test10/remote-orphaned2.dot +new file mode 100644 +index 0000000..d8f1c9f +--- /dev/null ++++ b/pengine/test10/remote-orphaned2.dot +@@ -0,0 +1,2 @@ ++ digraph "g" { ++} +diff --git a/pengine/test10/remote-orphaned2.exp b/pengine/test10/remote-orphaned2.exp +new file mode 100644 +index 0000000..56e315f +--- /dev/null ++++ b/pengine/test10/remote-orphaned2.exp +@@ -0,0 +1 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"/> +diff --git a/pengine/test10/remote-orphaned2.scores b/pengine/test10/remote-orphaned2.scores +new file mode 100644 +index 0000000..98853b1 +--- /dev/null ++++ b/pengine/test10/remote-orphaned2.scores +@@ -0,0 +1 @@ ++Allocation scores: +diff --git a/pengine/test10/remote-orphaned2.summary b/pengine/test10/remote-orphaned2.summary +new file mode 100644 +index 0000000..f4e5e17 +--- /dev/null ++++ b/pengine/test10/remote-orphaned2.summary +@@ -0,0 +1,27 @@ ++ ++Current cluster status: ++RemoteNode mrg-02: UNCLEAN (offline) ++RemoteNode mrg-03: UNCLEAN (offline) ++RemoteNode mrg-04: UNCLEAN (offline) ++Online: [ host-026 host-027 host-028 ] ++ ++ neutron-openvswitch-agent-compute (ocf::heartbeat:Dummy): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ libvirtd-compute (systemd:libvirtd): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ ceilometer-compute (systemd:openstack-ceilometer-compute): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ nova-compute (systemd:openstack-nova-compute): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ ++Transition Summary: ++ ++Executing cluster transition: ++ ++Revised cluster status: ++RemoteNode mrg-02: UNCLEAN (offline) ++RemoteNode mrg-03: UNCLEAN (offline) ++RemoteNode mrg-04: UNCLEAN (offline) ++Online: [ host-026 host-027 host-028 ] ++ ++ neutron-openvswitch-agent-compute (ocf::heartbeat:Dummy): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ libvirtd-compute (systemd:libvirtd): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ ceilometer-compute (systemd:openstack-ceilometer-compute): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ nova-compute (systemd:openstack-nova-compute): ORPHANED Started [ mrg-03 mrg-02 mrg-04 ] ++ +diff --git a/pengine/test10/remote-orphaned2.xml b/pengine/test10/remote-orphaned2.xml +new file mode 100644 +index 0000000..0bf6d33 +--- /dev/null ++++ b/pengine/test10/remote-orphaned2.xml +@@ -0,0 +1,718 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.2" epoch="483" num_updates="615" admin_epoch="0" cib-last-written="Thu Jan 15 04:46:11 2015" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="STSRHTS26837"/> ++ <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1419001724"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="host-026"> ++ <instance_attributes id="nodes-1"> ++ <nvpair id="nodes-1-osprole" name="osprole" value="controller"/> ++ </instance_attributes> ++ </node> ++ <node id="2" uname="host-027"> ++ <instance_attributes id="nodes-2"> ++ <nvpair id="nodes-2-osprole" name="osprole" value="controller"/> ++ </instance_attributes> ++ </node> ++ <node id="3" uname="host-028"> ++ <instance_attributes id="nodes-3"> ++ <nvpair id="nodes-3-osprole" name="osprole" value="controller"/> ++ </instance_attributes> ++ </node> ++ <node id="mrg-02" type="remote" uname="mrg-02"> ++ <instance_attributes id="nodes-mrg-02"> ++ <nvpair id="nodes-mrg-02-osprole" name="osprole" value="compute"/> ++ </instance_attributes> ++ </node> ++ <node id="mrg-03" type="remote" uname="mrg-03"> ++ <instance_attributes id="nodes-mrg-03"> ++ <nvpair id="nodes-mrg-03-osprole" name="osprole" value="compute"/> ++ </instance_attributes> ++ </node> ++ <node id="mrg-04" type="remote" uname="mrg-04"> ++ <instance_attributes id="nodes-mrg-04"> ++ <nvpair id="nodes-mrg-04-osprole" name="osprole" value="compute"/> ++ </instance_attributes> ++ </node> ++ </nodes> ++ <resources/> ++ <constraints/> ++ </configuration> ++ <status> ++ <node_state id="2" uname="host-027" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> ++ <lrm id="2"> ++ <lrm_resources/> ++ </lrm> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-fail-count-qpidd" name="fail-count-qpidd" value="INFINITY"/> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-fail-count-node1-fence" name="fail-count-node1-fence" value="INFINITY"/> ++ <nvpair id="status-2-fail-count-lb-haproxy" name="fail-count-lb-haproxy" value="INFINITY"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-2-last-failure-lb-haproxy" name="last-failure-lb-haproxy" value="1421318629"/> ++ <nvpair id="status-2-fail-count-node2-fence" name="fail-count-node2-fence" value="INFINITY"/> ++ <nvpair id="status-2-last-failure-node1-fence" name="last-failure-node1-fence" value="1421318696"/> ++ <nvpair id="status-2-fail-count-node3-fence" name="fail-count-node3-fence" value="INFINITY"/> ++ <nvpair id="status-2-fail-count-galera" name="fail-count-galera" value="INFINITY"/> ++ <nvpair id="status-2-last-failure-node3-fence" name="last-failure-node3-fence" value="1421318719"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="3" uname="host-028" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-last-failure-node3-fence" name="last-failure-node3-fence" value="1421318650"/> ++ <nvpair id="status-3-last-failure-rabbitmq-server" name="last-failure-rabbitmq-server" value="1421318676"/> ++ <nvpair id="status-3-last-failure-node1-fence" name="last-failure-node1-fence" value="1421318742"/> ++ <nvpair id="status-3-fail-count-node3-fence" name="fail-count-node3-fence" value="INFINITY"/> ++ <nvpair id="status-3-fail-count-galera" name="fail-count-galera" value="INFINITY"/> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-fail-count-node1-fence" name="fail-count-node1-fence" value="INFINITY"/> ++ <nvpair id="status-3-fail-count-rabbitmq-server" name="fail-count-rabbitmq-server" value="INFINITY"/> ++ <nvpair id="status-3-fail-count-lb-haproxy" name="fail-count-lb-haproxy" value="INFINITY"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-3-last-failure-lb-haproxy" name="last-failure-lb-haproxy" value="1421318698"/> ++ <nvpair id="status-3-fail-count-node2-fence" name="fail-count-node2-fence" value="INFINITY"/> ++ <nvpair id="status-3-last-failure-galera" name="last-failure-galera" value="1421318698"/> ++ <nvpair id="status-3-last-failure-node2-fence" name="last-failure-node2-fence" value="1421318764"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources/> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="host-026" crmd="online" crm-debug-origin="do_state_transition" in_ccm="true" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-last-failure-node3-fence" name="last-failure-node3-fence" value="1421318673"/> ++ <nvpair id="status-1-last-failure-node1-fence" name="last-failure-node1-fence" value="1421318650"/> ++ <nvpair id="status-1-fail-count-node3-fence" name="fail-count-node3-fence" value="INFINITY"/> ++ <nvpair id="status-1-fail-count-galera" name="fail-count-galera" value="INFINITY"/> ++ <nvpair id="status-1-last-failure-memcached" name="last-failure-memcached" value="1421318744"/> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-fail-count-node1-fence" name="fail-count-node1-fence" value="INFINITY"/> ++ <nvpair id="status-1-fail-count-lb-haproxy" name="fail-count-lb-haproxy" value="INFINITY"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-1-last-failure-lb-haproxy" name="last-failure-lb-haproxy" value="1421318629"/> ++ <nvpair id="status-1-fail-count-node2-fence" name="fail-count-node2-fence" value="INFINITY"/> ++ <nvpair id="status-1-fail-count-memcached" name="fail-count-memcached" value="INFINITY"/> ++ <nvpair id="status-1-last-failure-galera" name="last-failure-galera" value="1421318721"/> ++ <nvpair id="status-1-last-failure-node2-fence" name="last-failure-node2-fence" value="1421318696"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources/> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="mrg-03" uname="mrg-03" crm-debug-origin="do_update_resource"> ++ <lrm id="mrg-03"> ++ <lrm_resources> ++ <lrm_resource id="lb-haproxy" type="haproxy" class="systemd"> ++ <lrm_rsc_op id="lb-haproxy_last_0" operation_key="lb-haproxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="154:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;154:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="6" rc-code="7" op-status="0" interval="0" last-run="1419001059" last-rc-change="1419001059" exec-time="3" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-db" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-db_last_0" operation_key="vip-db_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="155:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;155:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="10" rc-code="7" op-status="0" interval="0" last-run="1419001059" last-rc-change="1419001059" exec-time="95" queue-time="0" op-digest="bd83dcd57107f6c3acbb6e2d40e1d756" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-rabbitmq" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-rabbitmq_last_0" operation_key="vip-rabbitmq_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="156:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;156:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1419001060" last-rc-change="1419001060" exec-time="36" queue-time="0" op-digest="7ba719a59a5c688a8b7fd956bf87a1fa" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-qpid" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-qpid_last_0" operation_key="vip-qpid_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="157:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;157:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1419001060" last-rc-change="1419001060" exec-time="36" queue-time="0" op-digest="d62959354aa6b47c3f36285361c2d082" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-keystone" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-keystone_last_0" operation_key="vip-keystone_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="158:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;158:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1419001060" last-rc-change="1419001060" exec-time="36" queue-time="0" op-digest="d69192df0e0d0c91b76e20111eba774e" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-glance" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-glance_last_0" operation_key="vip-glance_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="159:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;159:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1419001061" last-rc-change="1419001061" exec-time="36" queue-time="0" op-digest="2da6630244d6f2d1f8f44c36b67518a3" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-cinder" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-cinder_last_0" operation_key="vip-cinder_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="160:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;160:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1419001061" last-rc-change="1419001061" exec-time="36" queue-time="0" op-digest="23848d72333024af7f572044e074b601" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-swift" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-swift_last_0" operation_key="vip-swift_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="161:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;161:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1419001061" last-rc-change="1419001061" exec-time="36" queue-time="0" op-digest="9ff141249defb61f70df05c7bd9977b3" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-neutron" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-neutron_last_0" operation_key="vip-neutron_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;162:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1419001062" last-rc-change="1419001062" exec-time="36" queue-time="0" op-digest="4b17de0bf3cdba285ef2deb5055bb247" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-nova" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-nova_last_0" operation_key="vip-nova_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="163:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;163:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1419001062" last-rc-change="1419001062" exec-time="36" queue-time="0" op-digest="16dfd9890935251651bd9eae18d4cabb" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-horizon" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-horizon_last_0" operation_key="vip-horizon_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;164:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1419001062" last-rc-change="1419001062" exec-time="36" queue-time="0" op-digest="5f7ba67ff81462367b72255342234aff" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-heat" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-heat_last_0" operation_key="vip-heat_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="165:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;165:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1419001062" last-rc-change="1419001062" exec-time="36" queue-time="0" op-digest="a7e14d3428848000cee2f17c6f6e0d4b" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-ceilometer" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-ceilometer_last_0" operation_key="vip-ceilometer_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="166:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;166:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1419001063" last-rc-change="1419001063" exec-time="36" queue-time="0" op-digest="e0621f478d714995b7c7207aa3b66f14" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="rabbitmq-server" type="rabbitmq-server" class="systemd"> ++ <lrm_rsc_op id="rabbitmq-server_last_0" operation_key="rabbitmq-server_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="168:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;168:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="64" rc-code="7" op-status="0" interval="0" last-run="1419001064" last-rc-change="1419001064" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="qpidd" type="qpidd" class="systemd"> ++ <lrm_rsc_op id="qpidd_last_0" operation_key="qpidd_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="169:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;169:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="69" rc-code="7" op-status="0" interval="0" last-run="1419001064" last-rc-change="1419001064" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="memcached" type="memcached" class="systemd"> ++ <lrm_rsc_op id="memcached_last_0" operation_key="memcached_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="170:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;170:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1419001064" last-rc-change="1419001064" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="mongodb" type="mongod" class="systemd"> ++ <lrm_rsc_op id="mongodb_last_0" operation_key="mongodb_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="171:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;171:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="79" rc-code="7" op-status="0" interval="0" last-run="1419001065" last-rc-change="1419001065" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="keystone" type="openstack-keystone" class="systemd"> ++ <lrm_rsc_op id="keystone_last_0" operation_key="keystone_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="172:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;172:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="84" rc-code="7" op-status="0" interval="0" last-run="1419001065" last-rc-change="1419001065" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="glance-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="glance-fs_last_0" operation_key="glance-fs_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="173:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;173:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="89" rc-code="7" op-status="0" interval="0" last-run="1419001066" last-rc-change="1419001066" exec-time="80" queue-time="0" op-digest="4ff0fcceab38a3d5886d54ffe7acfc44" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="glance-registry" type="openstack-glance-registry" class="systemd"> ++ <lrm_rsc_op id="glance-registry_last_0" operation_key="glance-registry_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="174:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;174:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1419001066" last-rc-change="1419001066" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="glance-api" type="openstack-glance-api" class="systemd"> ++ <lrm_rsc_op id="glance-api_last_0" operation_key="glance-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="175:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;175:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="99" rc-code="7" op-status="0" interval="0" last-run="1419001066" last-rc-change="1419001066" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-api" type="openstack-cinder-api" class="systemd"> ++ <lrm_rsc_op id="cinder-api_last_0" operation_key="cinder-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="176:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;176:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="104" rc-code="7" op-status="0" interval="0" last-run="1419001067" last-rc-change="1419001067" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-scheduler" type="openstack-cinder-scheduler" class="systemd"> ++ <lrm_rsc_op id="cinder-scheduler_last_0" operation_key="cinder-scheduler_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="177:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;177:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="109" rc-code="7" op-status="0" interval="0" last-run="1419001067" last-rc-change="1419001067" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-volume" type="openstack-cinder-volume" class="systemd"> ++ <lrm_rsc_op id="cinder-volume_last_0" operation_key="cinder-volume_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="178:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;178:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1419001068" last-rc-change="1419001068" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="swift-fs_last_0" operation_key="swift-fs_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="179:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;179:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="119" rc-code="7" op-status="0" interval="0" last-run="1419001068" last-rc-change="1419001068" exec-time="36" queue-time="0" op-digest="56a72ba33ffa927a833adeb9c5bba0d8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-account" type="openstack-swift-account" class="systemd"> ++ <lrm_rsc_op id="swift-account_last_0" operation_key="swift-account_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="180:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;180:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="124" rc-code="7" op-status="0" interval="0" last-run="1419001068" last-rc-change="1419001068" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-container" type="openstack-swift-container" class="systemd"> ++ <lrm_rsc_op id="swift-container_last_0" operation_key="swift-container_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="181:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;181:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="129" rc-code="7" op-status="0" interval="0" last-run="1419001069" last-rc-change="1419001069" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-object" type="openstack-swift-object" class="systemd"> ++ <lrm_rsc_op id="swift-object_last_0" operation_key="swift-object_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="182:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;182:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1419001069" last-rc-change="1419001069" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-proxy" type="openstack-swift-proxy" class="systemd"> ++ <lrm_rsc_op id="swift-proxy_last_0" operation_key="swift-proxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="183:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;183:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="139" rc-code="7" op-status="0" interval="0" last-run="1419001070" last-rc-change="1419001070" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-object-expirer" type="openstack-swift-object-expirer" class="systemd"> ++ <lrm_rsc_op id="swift-object-expirer_last_0" operation_key="swift-object-expirer_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="184:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;184:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="143" rc-code="7" op-status="0" interval="0" last-run="1419001070" last-rc-change="1419001070" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-server" type="neutron-server" class="systemd"> ++ <lrm_rsc_op id="neutron-server_last_0" operation_key="neutron-server_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="185:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;185:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="148" rc-code="7" op-status="0" interval="0" last-run="1419001070" last-rc-change="1419001070" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:0" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:0_last_0" operation_key="neutron-scale:0_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="186:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;186:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="152" rc-code="7" op-status="0" interval="0" last-run="1419001071" last-rc-change="1419001071" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:1" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:1_last_0" operation_key="neutron-scale:1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="187:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;187:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="156" rc-code="7" op-status="0" interval="0" last-run="1419001071" last-rc-change="1419001071" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:2" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:2_last_0" operation_key="neutron-scale:2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="188:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;188:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="160" rc-code="7" op-status="0" interval="0" last-run="1419001071" last-rc-change="1419001071" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-ovs-cleanup" type="OVSCleanup" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-ovs-cleanup_last_0" operation_key="neutron-ovs-cleanup_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="189:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;189:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="165" rc-code="7" op-status="0" interval="0" last-run="1419001072" last-rc-change="1419001072" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-netns-cleanup" type="NetnsCleanup" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-netns-cleanup_last_0" operation_key="neutron-netns-cleanup_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="190:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;190:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1419001072" last-rc-change="1419001072" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-openvswitch-agent" type="neutron-openvswitch-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-openvswitch-agent_last_0" operation_key="neutron-openvswitch-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="191:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;191:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="175" rc-code="7" op-status="0" interval="0" last-run="1419001073" last-rc-change="1419001073" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-dhcp-agent" type="neutron-dhcp-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-dhcp-agent_last_0" operation_key="neutron-dhcp-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="192:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;192:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="180" rc-code="7" op-status="0" interval="0" last-run="1419001073" last-rc-change="1419001073" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-l3-agent" type="neutron-l3-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-l3-agent_last_0" operation_key="neutron-l3-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="193:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;193:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="185" rc-code="7" op-status="0" interval="0" last-run="1419001073" last-rc-change="1419001073" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-metadata-agent" type="neutron-metadata-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-metadata-agent_last_0" operation_key="neutron-metadata-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="194:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;194:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1419001074" last-rc-change="1419001074" exec-time="7" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-consoleauth" type="openstack-nova-consoleauth" class="systemd"> ++ <lrm_rsc_op id="nova-consoleauth_last_0" operation_key="nova-consoleauth_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="195:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;195:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="195" rc-code="7" op-status="0" interval="0" last-run="1419001074" last-rc-change="1419001074" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-novncproxy" type="openstack-nova-novncproxy" class="systemd"> ++ <lrm_rsc_op id="nova-novncproxy_last_0" operation_key="nova-novncproxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="196:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;196:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="200" rc-code="7" op-status="0" interval="0" last-run="1419001075" last-rc-change="1419001075" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-api" type="openstack-nova-api" class="systemd"> ++ <lrm_rsc_op id="nova-api_last_0" operation_key="nova-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="197:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;197:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="205" rc-code="7" op-status="0" interval="0" last-run="1419001075" last-rc-change="1419001075" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-scheduler" type="openstack-nova-scheduler" class="systemd"> ++ <lrm_rsc_op id="nova-scheduler_last_0" operation_key="nova-scheduler_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="198:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;198:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="210" rc-code="7" op-status="0" interval="0" last-run="1419001075" last-rc-change="1419001075" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-conductor" type="openstack-nova-conductor" class="systemd"> ++ <lrm_rsc_op id="nova-conductor_last_0" operation_key="nova-conductor_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="199:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;199:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="215" rc-code="7" op-status="0" interval="0" last-run="1419001076" last-rc-change="1419001076" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-central" type="openstack-ceilometer-central" class="systemd"> ++ <lrm_rsc_op id="ceilometer-central_last_0" operation_key="ceilometer-central_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="200:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;200:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="219" rc-code="7" op-status="0" interval="0" last-run="1419001076" last-rc-change="1419001076" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-collector" type="openstack-ceilometer-collector" class="systemd"> ++ <lrm_rsc_op id="ceilometer-collector_last_0" operation_key="ceilometer-collector_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="201:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;201:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="224" rc-code="7" op-status="0" interval="0" last-run="1419001076" last-rc-change="1419001076" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-api" type="openstack-ceilometer-api" class="systemd"> ++ <lrm_rsc_op id="ceilometer-api_last_0" operation_key="ceilometer-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="202:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;202:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="229" rc-code="7" op-status="0" interval="0" last-run="1419001077" last-rc-change="1419001077" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-alarm-evaluator" type="openstack-ceilometer-alarm-evaluator" class="systemd"> ++ <lrm_rsc_op id="ceilometer-alarm-evaluator_last_0" operation_key="ceilometer-alarm-evaluator_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="204:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;204:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="239" rc-code="7" op-status="0" interval="0" last-run="1419001078" last-rc-change="1419001078" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-alarm-notifier" type="openstack-ceilometer-alarm-notifier" class="systemd"> ++ <lrm_rsc_op id="ceilometer-alarm-notifier_last_0" operation_key="ceilometer-alarm-notifier_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="205:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;205:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="244" rc-code="7" op-status="0" interval="0" last-run="1419001078" last-rc-change="1419001078" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-notification" type="openstack-ceilometer-notification" class="systemd"> ++ <lrm_rsc_op id="ceilometer-notification_last_0" operation_key="ceilometer-notification_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="206:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;206:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="249" rc-code="7" op-status="0" interval="0" last-run="1419001078" last-rc-change="1419001078" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api" type="openstack-heat-api" class="systemd"> ++ <lrm_rsc_op id="heat-api_last_0" operation_key="heat-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="207:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;207:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="254" rc-code="7" op-status="0" interval="0" last-run="1419001079" last-rc-change="1419001079" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api-cfn" type="openstack-heat-api-cfn" class="systemd"> ++ <lrm_rsc_op id="heat-api-cfn_last_0" operation_key="heat-api-cfn_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="208:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;208:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="259" rc-code="7" op-status="0" interval="0" last-run="1419001079" last-rc-change="1419001079" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api-cloudwatch" type="openstack-heat-api-cloudwatch" class="systemd"> ++ <lrm_rsc_op id="heat-api-cloudwatch_last_0" operation_key="heat-api-cloudwatch_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="209:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;209:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="264" rc-code="7" op-status="0" interval="0" last-run="1419001080" last-rc-change="1419001080" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-engine" type="openstack-heat-engine" class="systemd"> ++ <lrm_rsc_op id="heat-engine_last_0" operation_key="heat-engine_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="210:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;210:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="268" rc-code="7" op-status="0" interval="0" last-run="1419001080" last-rc-change="1419001080" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="horizon" type="apache" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="horizon_last_0" operation_key="horizon_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="211:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;211:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="273" rc-code="7" op-status="0" interval="0" last-run="1419001080" last-rc-change="1419001080" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-openvswitch-agent-compute" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="neutron-openvswitch-agent-compute_last_0" operation_key="neutron-openvswitch-agent-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="695:30:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;695:30:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="295" rc-code="0" op-status="0" interval="0" last-run="1419001087" last-rc-change="1419001087" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="neutron-openvswitch-agent-compute_monitor_10000" operation_key="neutron-openvswitch-agent-compute_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="620:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;620:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="296" rc-code="0" op-status="0" interval="10000" last-rc-change="1419001090" exec-time="41" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="libvirtd-compute" type="libvirtd" class="systemd"> ++ <lrm_rsc_op id="libvirtd-compute_last_0" operation_key="libvirtd-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="629:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;629:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="297" rc-code="0" op-status="0" interval="0" last-run="1419001092" last-rc-change="1419001092" exec-time="1" queue-time="2001" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ <lrm_rsc_op id="libvirtd-compute_monitor_60000" operation_key="libvirtd-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="630:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;630:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="298" rc-code="0" op-status="0" interval="60000" last-rc-change="1419001092" exec-time="1" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-compute" type="openstack-ceilometer-compute" class="systemd"> ++ <lrm_rsc_op id="ceilometer-compute_last_0" operation_key="ceilometer-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="637:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;637:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="299" rc-code="0" op-status="0" interval="0" last-run="1419001094" last-rc-change="1419001094" exec-time="2" queue-time="2001" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ <lrm_rsc_op id="ceilometer-compute_monitor_60000" operation_key="ceilometer-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="638:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;638:31:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="300" rc-code="0" op-status="0" interval="60000" last-rc-change="1419001094" exec-time="2" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-compute" type="openstack-nova-compute" class="systemd"> ++ <lrm_rsc_op id="nova-compute_last_0" operation_key="nova-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="666:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;666:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="429" rc-code="0" op-status="0" interval="0" last-run="1419007680" last-rc-change="1419007680" exec-time="1" queue-time="2002" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node2"/> ++ <lrm_rsc_op id="nova-compute_monitor_60000" operation_key="nova-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="667:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;667:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="430" rc-code="0" op-status="0" interval="60000" last-rc-change="1419007681" exec-time="2" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node2"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-delay" type="Delay" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="ceilometer-delay_last_0" operation_key="ceilometer-delay_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="203:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;203:30:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="234" rc-code="7" op-status="0" interval="0" last-run="1419001077" last-rc-change="1419001077" exec-time="10023" queue-time="0" op-digest="ad19c7364a8662d5d94488a98ccc4fda" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="galera" type="galera" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="galera_last_0" operation_key="galera_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="114:44:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;114:44:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="327" rc-code="7" op-status="0" interval="0" last-run="1419001727" last-rc-change="1419001727" exec-time="54" queue-time="0" op-digest="a357a4e08e165ea819421e864e21c1cf" on_node="rhos6-node2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="mrg-03"> ++ <instance_attributes id="status-mrg-03"> ++ <nvpair id="status-mrg-03-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="mrg-02" uname="mrg-02" crm-debug-origin="do_update_resource"> ++ <lrm id="mrg-02"> ++ <lrm_resources> ++ <lrm_resource id="lb-haproxy" type="haproxy" class="systemd"> ++ <lrm_rsc_op id="lb-haproxy_last_0" operation_key="lb-haproxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="157:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;157:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="6" rc-code="7" op-status="0" interval="0" last-run="1419001328" last-rc-change="1419001328" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-db" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-db_last_0" operation_key="vip-db_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="158:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;158:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="10" rc-code="7" op-status="0" interval="0" last-run="1419001328" last-rc-change="1419001328" exec-time="91" queue-time="0" op-digest="bd83dcd57107f6c3acbb6e2d40e1d756" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-rabbitmq" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-rabbitmq_last_0" operation_key="vip-rabbitmq_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="159:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;159:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1419001328" last-rc-change="1419001328" exec-time="35" queue-time="0" op-digest="7ba719a59a5c688a8b7fd956bf87a1fa" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-qpid" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-qpid_last_0" operation_key="vip-qpid_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="160:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;160:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1419001329" last-rc-change="1419001329" exec-time="34" queue-time="0" op-digest="d62959354aa6b47c3f36285361c2d082" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-keystone" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-keystone_last_0" operation_key="vip-keystone_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="161:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;161:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1419001329" last-rc-change="1419001329" exec-time="34" queue-time="0" op-digest="d69192df0e0d0c91b76e20111eba774e" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-glance" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-glance_last_0" operation_key="vip-glance_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;162:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1419001329" last-rc-change="1419001329" exec-time="35" queue-time="0" op-digest="2da6630244d6f2d1f8f44c36b67518a3" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-cinder" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-cinder_last_0" operation_key="vip-cinder_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="163:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;163:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1419001329" last-rc-change="1419001329" exec-time="35" queue-time="0" op-digest="23848d72333024af7f572044e074b601" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-swift" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-swift_last_0" operation_key="vip-swift_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;164:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1419001330" last-rc-change="1419001330" exec-time="35" queue-time="0" op-digest="9ff141249defb61f70df05c7bd9977b3" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-neutron" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-neutron_last_0" operation_key="vip-neutron_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="165:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;165:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1419001330" last-rc-change="1419001330" exec-time="35" queue-time="0" op-digest="4b17de0bf3cdba285ef2deb5055bb247" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-nova" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-nova_last_0" operation_key="vip-nova_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="166:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;166:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1419001330" last-rc-change="1419001330" exec-time="35" queue-time="0" op-digest="16dfd9890935251651bd9eae18d4cabb" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-horizon" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-horizon_last_0" operation_key="vip-horizon_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="167:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;167:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1419001331" last-rc-change="1419001331" exec-time="35" queue-time="0" op-digest="5f7ba67ff81462367b72255342234aff" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-heat" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-heat_last_0" operation_key="vip-heat_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="168:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;168:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1419001331" last-rc-change="1419001331" exec-time="35" queue-time="0" op-digest="a7e14d3428848000cee2f17c6f6e0d4b" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="vip-ceilometer" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-ceilometer_last_0" operation_key="vip-ceilometer_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="169:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;169:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1419001331" last-rc-change="1419001331" exec-time="35" queue-time="0" op-digest="e0621f478d714995b7c7207aa3b66f14" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="rabbitmq-server" type="rabbitmq-server" class="systemd"> ++ <lrm_rsc_op id="rabbitmq-server_last_0" operation_key="rabbitmq-server_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="171:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;171:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="64" rc-code="7" op-status="0" interval="0" last-run="1419001332" last-rc-change="1419001332" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="qpidd" type="qpidd" class="systemd"> ++ <lrm_rsc_op id="qpidd_last_0" operation_key="qpidd_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="172:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;172:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="69" rc-code="7" op-status="0" interval="0" last-run="1419001333" last-rc-change="1419001333" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="memcached" type="memcached" class="systemd"> ++ <lrm_rsc_op id="memcached_last_0" operation_key="memcached_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="173:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;173:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1419001333" last-rc-change="1419001333" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="mongodb" type="mongod" class="systemd"> ++ <lrm_rsc_op id="mongodb_last_0" operation_key="mongodb_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="174:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;174:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="79" rc-code="7" op-status="0" interval="0" last-run="1419001333" last-rc-change="1419001333" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="keystone" type="openstack-keystone" class="systemd"> ++ <lrm_rsc_op id="keystone_last_0" operation_key="keystone_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="175:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;175:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="84" rc-code="7" op-status="0" interval="0" last-run="1419001334" last-rc-change="1419001334" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="glance-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="glance-fs_last_0" operation_key="glance-fs_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="176:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;176:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="89" rc-code="7" op-status="0" interval="0" last-run="1419001334" last-rc-change="1419001334" exec-time="81" queue-time="0" op-digest="4ff0fcceab38a3d5886d54ffe7acfc44" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="glance-registry" type="openstack-glance-registry" class="systemd"> ++ <lrm_rsc_op id="glance-registry_last_0" operation_key="glance-registry_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="177:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;177:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1419001335" last-rc-change="1419001335" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="glance-api" type="openstack-glance-api" class="systemd"> ++ <lrm_rsc_op id="glance-api_last_0" operation_key="glance-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="178:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;178:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="99" rc-code="7" op-status="0" interval="0" last-run="1419001335" last-rc-change="1419001335" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-api" type="openstack-cinder-api" class="systemd"> ++ <lrm_rsc_op id="cinder-api_last_0" operation_key="cinder-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="179:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;179:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="104" rc-code="7" op-status="0" interval="0" last-run="1419001335" last-rc-change="1419001335" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-scheduler" type="openstack-cinder-scheduler" class="systemd"> ++ <lrm_rsc_op id="cinder-scheduler_last_0" operation_key="cinder-scheduler_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="180:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;180:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="109" rc-code="7" op-status="0" interval="0" last-run="1419001336" last-rc-change="1419001336" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-volume" type="openstack-cinder-volume" class="systemd"> ++ <lrm_rsc_op id="cinder-volume_last_0" operation_key="cinder-volume_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="181:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;181:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1419001336" last-rc-change="1419001336" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="swift-fs_last_0" operation_key="swift-fs_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="182:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;182:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="119" rc-code="7" op-status="0" interval="0" last-run="1419001337" last-rc-change="1419001337" exec-time="39" queue-time="0" op-digest="56a72ba33ffa927a833adeb9c5bba0d8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-account" type="openstack-swift-account" class="systemd"> ++ <lrm_rsc_op id="swift-account_last_0" operation_key="swift-account_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="183:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;183:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="124" rc-code="7" op-status="0" interval="0" last-run="1419001337" last-rc-change="1419001337" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-container" type="openstack-swift-container" class="systemd"> ++ <lrm_rsc_op id="swift-container_last_0" operation_key="swift-container_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="184:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;184:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="129" rc-code="7" op-status="0" interval="0" last-run="1419001337" last-rc-change="1419001337" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-object" type="openstack-swift-object" class="systemd"> ++ <lrm_rsc_op id="swift-object_last_0" operation_key="swift-object_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="185:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;185:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1419001338" last-rc-change="1419001338" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-proxy" type="openstack-swift-proxy" class="systemd"> ++ <lrm_rsc_op id="swift-proxy_last_0" operation_key="swift-proxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="186:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;186:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="139" rc-code="7" op-status="0" interval="0" last-run="1419001338" last-rc-change="1419001338" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="swift-object-expirer" type="openstack-swift-object-expirer" class="systemd"> ++ <lrm_rsc_op id="swift-object-expirer_last_0" operation_key="swift-object-expirer_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="187:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;187:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="143" rc-code="7" op-status="0" interval="0" last-run="1419001339" last-rc-change="1419001339" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-server" type="neutron-server" class="systemd"> ++ <lrm_rsc_op id="neutron-server_last_0" operation_key="neutron-server_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="188:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;188:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="148" rc-code="7" op-status="0" interval="0" last-run="1419001339" last-rc-change="1419001339" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:0" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:0_last_0" operation_key="neutron-scale:0_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="189:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;189:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="152" rc-code="7" op-status="0" interval="0" last-run="1419001339" last-rc-change="1419001339" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:1" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:1_last_0" operation_key="neutron-scale:1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="190:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;190:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="156" rc-code="7" op-status="0" interval="0" last-run="1419001340" last-rc-change="1419001340" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:2" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:2_last_0" operation_key="neutron-scale:2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="191:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;191:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="160" rc-code="7" op-status="0" interval="0" last-run="1419001340" last-rc-change="1419001340" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-ovs-cleanup" type="OVSCleanup" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-ovs-cleanup_last_0" operation_key="neutron-ovs-cleanup_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="192:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;192:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="165" rc-code="7" op-status="0" interval="0" last-run="1419001340" last-rc-change="1419001340" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-netns-cleanup" type="NetnsCleanup" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-netns-cleanup_last_0" operation_key="neutron-netns-cleanup_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="193:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;193:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1419001341" last-rc-change="1419001341" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-openvswitch-agent" type="neutron-openvswitch-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-openvswitch-agent_last_0" operation_key="neutron-openvswitch-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="194:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;194:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="175" rc-code="7" op-status="0" interval="0" last-run="1419001341" last-rc-change="1419001341" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-dhcp-agent" type="neutron-dhcp-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-dhcp-agent_last_0" operation_key="neutron-dhcp-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="195:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;195:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="180" rc-code="7" op-status="0" interval="0" last-run="1419001342" last-rc-change="1419001342" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-l3-agent" type="neutron-l3-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-l3-agent_last_0" operation_key="neutron-l3-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="196:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;196:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="185" rc-code="7" op-status="0" interval="0" last-run="1419001342" last-rc-change="1419001342" exec-time="7" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-metadata-agent" type="neutron-metadata-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-metadata-agent_last_0" operation_key="neutron-metadata-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="197:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;197:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1419001342" last-rc-change="1419001342" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-consoleauth" type="openstack-nova-consoleauth" class="systemd"> ++ <lrm_rsc_op id="nova-consoleauth_last_0" operation_key="nova-consoleauth_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="198:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;198:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="195" rc-code="7" op-status="0" interval="0" last-run="1419001343" last-rc-change="1419001343" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-novncproxy" type="openstack-nova-novncproxy" class="systemd"> ++ <lrm_rsc_op id="nova-novncproxy_last_0" operation_key="nova-novncproxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="199:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;199:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="200" rc-code="7" op-status="0" interval="0" last-run="1419001343" last-rc-change="1419001343" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-api" type="openstack-nova-api" class="systemd"> ++ <lrm_rsc_op id="nova-api_last_0" operation_key="nova-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="200:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;200:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="205" rc-code="7" op-status="0" interval="0" last-run="1419001344" last-rc-change="1419001344" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-scheduler" type="openstack-nova-scheduler" class="systemd"> ++ <lrm_rsc_op id="nova-scheduler_last_0" operation_key="nova-scheduler_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="201:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;201:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="210" rc-code="7" op-status="0" interval="0" last-run="1419001344" last-rc-change="1419001344" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-conductor" type="openstack-nova-conductor" class="systemd"> ++ <lrm_rsc_op id="nova-conductor_last_0" operation_key="nova-conductor_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="202:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;202:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="215" rc-code="7" op-status="0" interval="0" last-run="1419001344" last-rc-change="1419001344" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-central" type="openstack-ceilometer-central" class="systemd"> ++ <lrm_rsc_op id="ceilometer-central_last_0" operation_key="ceilometer-central_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="203:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;203:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="219" rc-code="7" op-status="0" interval="0" last-run="1419001345" last-rc-change="1419001345" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-collector" type="openstack-ceilometer-collector" class="systemd"> ++ <lrm_rsc_op id="ceilometer-collector_last_0" operation_key="ceilometer-collector_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="204:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;204:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="224" rc-code="7" op-status="0" interval="0" last-run="1419001345" last-rc-change="1419001345" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-api" type="openstack-ceilometer-api" class="systemd"> ++ <lrm_rsc_op id="ceilometer-api_last_0" operation_key="ceilometer-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="205:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;205:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="229" rc-code="7" op-status="0" interval="0" last-run="1419001346" last-rc-change="1419001346" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-alarm-evaluator" type="openstack-ceilometer-alarm-evaluator" class="systemd"> ++ <lrm_rsc_op id="ceilometer-alarm-evaluator_last_0" operation_key="ceilometer-alarm-evaluator_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="207:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;207:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="239" rc-code="7" op-status="0" interval="0" last-run="1419001346" last-rc-change="1419001346" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-alarm-notifier" type="openstack-ceilometer-alarm-notifier" class="systemd"> ++ <lrm_rsc_op id="ceilometer-alarm-notifier_last_0" operation_key="ceilometer-alarm-notifier_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="208:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;208:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="244" rc-code="7" op-status="0" interval="0" last-run="1419001347" last-rc-change="1419001347" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-notification" type="openstack-ceilometer-notification" class="systemd"> ++ <lrm_rsc_op id="ceilometer-notification_last_0" operation_key="ceilometer-notification_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="209:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;209:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="249" rc-code="7" op-status="0" interval="0" last-run="1419001347" last-rc-change="1419001347" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api" type="openstack-heat-api" class="systemd"> ++ <lrm_rsc_op id="heat-api_last_0" operation_key="heat-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="210:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;210:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="254" rc-code="7" op-status="0" interval="0" last-run="1419001348" last-rc-change="1419001348" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api-cfn" type="openstack-heat-api-cfn" class="systemd"> ++ <lrm_rsc_op id="heat-api-cfn_last_0" operation_key="heat-api-cfn_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="211:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;211:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="259" rc-code="7" op-status="0" interval="0" last-run="1419001348" last-rc-change="1419001348" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api-cloudwatch" type="openstack-heat-api-cloudwatch" class="systemd"> ++ <lrm_rsc_op id="heat-api-cloudwatch_last_0" operation_key="heat-api-cloudwatch_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="212:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;212:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="264" rc-code="7" op-status="0" interval="0" last-run="1419001348" last-rc-change="1419001348" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="heat-engine" type="openstack-heat-engine" class="systemd"> ++ <lrm_rsc_op id="heat-engine_last_0" operation_key="heat-engine_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="213:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;213:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="268" rc-code="7" op-status="0" interval="0" last-run="1419001349" last-rc-change="1419001349" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="horizon" type="apache" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="horizon_last_0" operation_key="horizon_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="214:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;214:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="273" rc-code="7" op-status="0" interval="0" last-run="1419001349" last-rc-change="1419001349" exec-time="40" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-openvswitch-agent-compute" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="neutron-openvswitch-agent-compute_last_0" operation_key="neutron-openvswitch-agent-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="699:33:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;699:33:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="295" rc-code="0" op-status="0" interval="0" last-run="1419001356" last-rc-change="1419001356" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="neutron-openvswitch-agent-compute_monitor_10000" operation_key="neutron-openvswitch-agent-compute_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="637:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;637:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="296" rc-code="0" op-status="0" interval="10000" last-rc-change="1419001357" exec-time="42" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="libvirtd-compute" type="libvirtd" class="systemd"> ++ <lrm_rsc_op id="libvirtd-compute_last_0" operation_key="libvirtd-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="648:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;648:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="297" rc-code="0" op-status="0" interval="0" last-run="1419001359" last-rc-change="1419001359" exec-time="2" queue-time="2001" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ <lrm_rsc_op id="libvirtd-compute_monitor_60000" operation_key="libvirtd-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="649:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;649:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="298" rc-code="0" op-status="0" interval="60000" last-rc-change="1419001359" exec-time="1" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-compute" type="openstack-ceilometer-compute" class="systemd"> ++ <lrm_rsc_op id="ceilometer-compute_last_0" operation_key="ceilometer-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="658:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;658:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="299" rc-code="0" op-status="0" interval="0" last-run="1419001361" last-rc-change="1419001361" exec-time="2" queue-time="2002" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ <lrm_rsc_op id="ceilometer-compute_monitor_60000" operation_key="ceilometer-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="659:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;659:34:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="300" rc-code="0" op-status="0" interval="60000" last-rc-change="1419001361" exec-time="1" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="nova-compute" type="openstack-nova-compute" class="systemd"> ++ <lrm_rsc_op id="nova-compute_last_0" operation_key="nova-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="664:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;664:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="428" rc-code="0" op-status="0" interval="0" last-run="1419007680" last-rc-change="1419007680" exec-time="2" queue-time="2001" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node1"/> ++ <lrm_rsc_op id="nova-compute_monitor_60000" operation_key="nova-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="665:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;665:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="429" rc-code="0" op-status="0" interval="60000" last-rc-change="1419007681" exec-time="1" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-delay" type="Delay" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="ceilometer-delay_last_0" operation_key="ceilometer-delay_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="206:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;206:33:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="234" rc-code="7" op-status="0" interval="0" last-run="1419001346" last-rc-change="1419001346" exec-time="10024" queue-time="0" op-digest="ad19c7364a8662d5d94488a98ccc4fda" on_node="rhos6-node1"/> ++ </lrm_resource> ++ <lrm_resource id="galera" type="galera" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="galera_last_0" operation_key="galera_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="112:44:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;112:44:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="320" rc-code="7" op-status="0" interval="0" last-run="1419001727" last-rc-change="1419001727" exec-time="52" queue-time="0" op-digest="a357a4e08e165ea819421e864e21c1cf" on_node="rhos6-node1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="mrg-02"> ++ <instance_attributes id="status-mrg-02"> ++ <nvpair id="status-mrg-02-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="mrg-04" uname="mrg-04" crm-debug-origin="do_update_resource"> ++ <lrm id="mrg-04"> ++ <lrm_resources> ++ <lrm_resource id="lb-haproxy" type="haproxy" class="systemd"> ++ <lrm_rsc_op id="lb-haproxy_last_0" operation_key="lb-haproxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="161:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;161:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="6" rc-code="7" op-status="0" interval="0" last-run="1418999957" last-rc-change="1418999957" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-db" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-db_last_0" operation_key="vip-db_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;162:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="10" rc-code="7" op-status="0" interval="0" last-run="1418999958" last-rc-change="1418999958" exec-time="95" queue-time="0" op-digest="bd83dcd57107f6c3acbb6e2d40e1d756" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-rabbitmq" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-rabbitmq_last_0" operation_key="vip-rabbitmq_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="163:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;163:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418999958" last-rc-change="1418999958" exec-time="35" queue-time="0" op-digest="7ba719a59a5c688a8b7fd956bf87a1fa" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-qpid" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-qpid_last_0" operation_key="vip-qpid_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;164:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418999958" last-rc-change="1418999958" exec-time="36" queue-time="0" op-digest="d62959354aa6b47c3f36285361c2d082" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-keystone" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-keystone_last_0" operation_key="vip-keystone_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="165:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;165:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418999959" last-rc-change="1418999959" exec-time="36" queue-time="0" op-digest="d69192df0e0d0c91b76e20111eba774e" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-glance" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-glance_last_0" operation_key="vip-glance_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="166:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;166:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418999959" last-rc-change="1418999959" exec-time="36" queue-time="0" op-digest="2da6630244d6f2d1f8f44c36b67518a3" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-cinder" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-cinder_last_0" operation_key="vip-cinder_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="167:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;167:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418999959" last-rc-change="1418999959" exec-time="35" queue-time="0" op-digest="23848d72333024af7f572044e074b601" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-swift" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-swift_last_0" operation_key="vip-swift_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="168:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;168:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418999960" last-rc-change="1418999960" exec-time="35" queue-time="0" op-digest="9ff141249defb61f70df05c7bd9977b3" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-neutron" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-neutron_last_0" operation_key="vip-neutron_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="169:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;169:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418999960" last-rc-change="1418999960" exec-time="35" queue-time="0" op-digest="4b17de0bf3cdba285ef2deb5055bb247" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-nova" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-nova_last_0" operation_key="vip-nova_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="170:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;170:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418999960" last-rc-change="1418999960" exec-time="36" queue-time="0" op-digest="16dfd9890935251651bd9eae18d4cabb" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-horizon" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-horizon_last_0" operation_key="vip-horizon_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="171:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;171:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1418999960" last-rc-change="1418999960" exec-time="35" queue-time="0" op-digest="5f7ba67ff81462367b72255342234aff" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-heat" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-heat_last_0" operation_key="vip-heat_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="172:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;172:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418999961" last-rc-change="1418999961" exec-time="36" queue-time="0" op-digest="a7e14d3428848000cee2f17c6f6e0d4b" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="vip-ceilometer" type="IPaddr2" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="vip-ceilometer_last_0" operation_key="vip-ceilometer_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="173:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;173:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1418999961" last-rc-change="1418999961" exec-time="35" queue-time="0" op-digest="e0621f478d714995b7c7207aa3b66f14" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="rabbitmq-server" type="rabbitmq-server" class="systemd"> ++ <lrm_rsc_op id="rabbitmq-server_last_0" operation_key="rabbitmq-server_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="175:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;175:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="64" rc-code="7" op-status="0" interval="0" last-run="1418999962" last-rc-change="1418999962" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="qpidd" type="qpidd" class="systemd"> ++ <lrm_rsc_op id="qpidd_last_0" operation_key="qpidd_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="176:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;176:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="69" rc-code="7" op-status="0" interval="0" last-run="1418999962" last-rc-change="1418999962" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="memcached" type="memcached" class="systemd"> ++ <lrm_rsc_op id="memcached_last_0" operation_key="memcached_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="177:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;177:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1418999963" last-rc-change="1418999963" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="mongodb" type="mongod" class="systemd"> ++ <lrm_rsc_op id="mongodb_last_0" operation_key="mongodb_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="178:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;178:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="79" rc-code="7" op-status="0" interval="0" last-run="1418999963" last-rc-change="1418999963" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="keystone" type="openstack-keystone" class="systemd"> ++ <lrm_rsc_op id="keystone_last_0" operation_key="keystone_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="179:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;179:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="84" rc-code="7" op-status="0" interval="0" last-run="1418999964" last-rc-change="1418999964" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="glance-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="glance-fs_last_0" operation_key="glance-fs_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="180:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;180:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="89" rc-code="7" op-status="0" interval="0" last-run="1418999964" last-rc-change="1418999964" exec-time="80" queue-time="0" op-digest="4ff0fcceab38a3d5886d54ffe7acfc44" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="glance-registry" type="openstack-glance-registry" class="systemd"> ++ <lrm_rsc_op id="glance-registry_last_0" operation_key="glance-registry_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="181:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;181:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1418999964" last-rc-change="1418999964" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="glance-api" type="openstack-glance-api" class="systemd"> ++ <lrm_rsc_op id="glance-api_last_0" operation_key="glance-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="182:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;182:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="99" rc-code="7" op-status="0" interval="0" last-run="1418999965" last-rc-change="1418999965" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-api" type="openstack-cinder-api" class="systemd"> ++ <lrm_rsc_op id="cinder-api_last_0" operation_key="cinder-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="183:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;183:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="104" rc-code="7" op-status="0" interval="0" last-run="1418999965" last-rc-change="1418999965" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-scheduler" type="openstack-cinder-scheduler" class="systemd"> ++ <lrm_rsc_op id="cinder-scheduler_last_0" operation_key="cinder-scheduler_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="184:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;184:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="109" rc-code="7" op-status="0" interval="0" last-run="1418999966" last-rc-change="1418999966" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="cinder-volume" type="openstack-cinder-volume" class="systemd"> ++ <lrm_rsc_op id="cinder-volume_last_0" operation_key="cinder-volume_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="185:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;185:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418999966" last-rc-change="1418999966" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="swift-fs" type="Filesystem" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="swift-fs_last_0" operation_key="swift-fs_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="186:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;186:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="119" rc-code="7" op-status="0" interval="0" last-run="1418999966" last-rc-change="1418999966" exec-time="39" queue-time="0" op-digest="56a72ba33ffa927a833adeb9c5bba0d8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="swift-account" type="openstack-swift-account" class="systemd"> ++ <lrm_rsc_op id="swift-account_last_0" operation_key="swift-account_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="187:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;187:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="124" rc-code="7" op-status="0" interval="0" last-run="1418999967" last-rc-change="1418999967" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="swift-container" type="openstack-swift-container" class="systemd"> ++ <lrm_rsc_op id="swift-container_last_0" operation_key="swift-container_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="188:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;188:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="129" rc-code="7" op-status="0" interval="0" last-run="1418999967" last-rc-change="1418999967" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="swift-object" type="openstack-swift-object" class="systemd"> ++ <lrm_rsc_op id="swift-object_last_0" operation_key="swift-object_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="189:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;189:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418999968" last-rc-change="1418999968" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="swift-proxy" type="openstack-swift-proxy" class="systemd"> ++ <lrm_rsc_op id="swift-proxy_last_0" operation_key="swift-proxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="190:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;190:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="139" rc-code="7" op-status="0" interval="0" last-run="1418999968" last-rc-change="1418999968" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="swift-object-expirer" type="openstack-swift-object-expirer" class="systemd"> ++ <lrm_rsc_op id="swift-object-expirer_last_0" operation_key="swift-object-expirer_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="191:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;191:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="143" rc-code="7" op-status="0" interval="0" last-run="1418999968" last-rc-change="1418999968" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-server" type="neutron-server" class="systemd"> ++ <lrm_rsc_op id="neutron-server_last_0" operation_key="neutron-server_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="192:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;192:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="148" rc-code="7" op-status="0" interval="0" last-run="1418999969" last-rc-change="1418999969" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:0" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:0_last_0" operation_key="neutron-scale:0_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="193:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;193:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="152" rc-code="7" op-status="0" interval="0" last-run="1418999969" last-rc-change="1418999969" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:1" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:1_last_0" operation_key="neutron-scale:1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="194:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;194:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="156" rc-code="7" op-status="0" interval="0" last-run="1418999969" last-rc-change="1418999969" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-scale:2" type="NeutronScale" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-scale:2_last_0" operation_key="neutron-scale:2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="195:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;195:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="160" rc-code="7" op-status="0" interval="0" last-run="1418999970" last-rc-change="1418999970" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3" op-force-restart=" hostbasename " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-ovs-cleanup" type="OVSCleanup" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-ovs-cleanup_last_0" operation_key="neutron-ovs-cleanup_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="196:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;196:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="165" rc-code="7" op-status="0" interval="0" last-run="1418999970" last-rc-change="1418999970" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-netns-cleanup" type="NetnsCleanup" class="ocf" provider="neutron"> ++ <lrm_rsc_op id="neutron-netns-cleanup_last_0" operation_key="neutron-netns-cleanup_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="197:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;197:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1418999970" last-rc-change="1418999970" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-openvswitch-agent" type="neutron-openvswitch-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-openvswitch-agent_last_0" operation_key="neutron-openvswitch-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="198:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;198:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="175" rc-code="7" op-status="0" interval="0" last-run="1418999971" last-rc-change="1418999971" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-dhcp-agent" type="neutron-dhcp-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-dhcp-agent_last_0" operation_key="neutron-dhcp-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="199:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;199:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="180" rc-code="7" op-status="0" interval="0" last-run="1418999971" last-rc-change="1418999971" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-l3-agent" type="neutron-l3-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-l3-agent_last_0" operation_key="neutron-l3-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="200:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;200:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="185" rc-code="7" op-status="0" interval="0" last-run="1418999972" last-rc-change="1418999972" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-metadata-agent" type="neutron-metadata-agent" class="systemd"> ++ <lrm_rsc_op id="neutron-metadata-agent_last_0" operation_key="neutron-metadata-agent_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="201:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;201:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1418999972" last-rc-change="1418999972" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="nova-consoleauth" type="openstack-nova-consoleauth" class="systemd"> ++ <lrm_rsc_op id="nova-consoleauth_last_0" operation_key="nova-consoleauth_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="202:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;202:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="195" rc-code="7" op-status="0" interval="0" last-run="1418999972" last-rc-change="1418999972" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="nova-novncproxy" type="openstack-nova-novncproxy" class="systemd"> ++ <lrm_rsc_op id="nova-novncproxy_last_0" operation_key="nova-novncproxy_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="203:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;203:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="200" rc-code="7" op-status="0" interval="0" last-run="1418999973" last-rc-change="1418999973" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="nova-api" type="openstack-nova-api" class="systemd"> ++ <lrm_rsc_op id="nova-api_last_0" operation_key="nova-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="204:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;204:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="205" rc-code="7" op-status="0" interval="0" last-run="1418999973" last-rc-change="1418999973" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="nova-scheduler" type="openstack-nova-scheduler" class="systemd"> ++ <lrm_rsc_op id="nova-scheduler_last_0" operation_key="nova-scheduler_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="205:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;205:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="210" rc-code="7" op-status="0" interval="0" last-run="1418999974" last-rc-change="1418999974" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="nova-conductor" type="openstack-nova-conductor" class="systemd"> ++ <lrm_rsc_op id="nova-conductor_last_0" operation_key="nova-conductor_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="206:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;206:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="215" rc-code="7" op-status="0" interval="0" last-run="1418999974" last-rc-change="1418999974" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-central" type="openstack-ceilometer-central" class="systemd"> ++ <lrm_rsc_op id="ceilometer-central_last_0" operation_key="ceilometer-central_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="207:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;207:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="219" rc-code="7" op-status="0" interval="0" last-run="1418999974" last-rc-change="1418999974" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-collector" type="openstack-ceilometer-collector" class="systemd"> ++ <lrm_rsc_op id="ceilometer-collector_last_0" operation_key="ceilometer-collector_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="208:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;208:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="224" rc-code="7" op-status="0" interval="0" last-run="1418999975" last-rc-change="1418999975" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-api" type="openstack-ceilometer-api" class="systemd"> ++ <lrm_rsc_op id="ceilometer-api_last_0" operation_key="ceilometer-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="209:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;209:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="229" rc-code="7" op-status="0" interval="0" last-run="1418999975" last-rc-change="1418999975" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-alarm-evaluator" type="openstack-ceilometer-alarm-evaluator" class="systemd"> ++ <lrm_rsc_op id="ceilometer-alarm-evaluator_last_0" operation_key="ceilometer-alarm-evaluator_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="211:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;211:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="239" rc-code="7" op-status="0" interval="0" last-run="1418999976" last-rc-change="1418999976" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-alarm-notifier" type="openstack-ceilometer-alarm-notifier" class="systemd"> ++ <lrm_rsc_op id="ceilometer-alarm-notifier_last_0" operation_key="ceilometer-alarm-notifier_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="212:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;212:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="244" rc-code="7" op-status="0" interval="0" last-run="1418999976" last-rc-change="1418999976" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-notification" type="openstack-ceilometer-notification" class="systemd"> ++ <lrm_rsc_op id="ceilometer-notification_last_0" operation_key="ceilometer-notification_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="213:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;213:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="249" rc-code="7" op-status="0" interval="0" last-run="1418999977" last-rc-change="1418999977" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api" type="openstack-heat-api" class="systemd"> ++ <lrm_rsc_op id="heat-api_last_0" operation_key="heat-api_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="214:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;214:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="254" rc-code="7" op-status="0" interval="0" last-run="1418999977" last-rc-change="1418999977" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api-cfn" type="openstack-heat-api-cfn" class="systemd"> ++ <lrm_rsc_op id="heat-api-cfn_last_0" operation_key="heat-api-cfn_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="215:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;215:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="259" rc-code="7" op-status="0" interval="0" last-run="1418999978" last-rc-change="1418999978" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="heat-api-cloudwatch" type="openstack-heat-api-cloudwatch" class="systemd"> ++ <lrm_rsc_op id="heat-api-cloudwatch_last_0" operation_key="heat-api-cloudwatch_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="216:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;216:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="264" rc-code="7" op-status="0" interval="0" last-run="1418999978" last-rc-change="1418999978" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="heat-engine" type="openstack-heat-engine" class="systemd"> ++ <lrm_rsc_op id="heat-engine_last_0" operation_key="heat-engine_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="217:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;217:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="268" rc-code="7" op-status="0" interval="0" last-run="1418999978" last-rc-change="1418999978" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="horizon" type="apache" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="horizon_last_0" operation_key="horizon_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="218:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;218:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="273" rc-code="7" op-status="0" interval="0" last-run="1418999979" last-rc-change="1418999979" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="neutron-openvswitch-agent-compute" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="neutron-openvswitch-agent-compute_last_0" operation_key="neutron-openvswitch-agent-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="699:21:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;699:21:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="295" rc-code="0" op-status="0" interval="0" last-run="1418999986" last-rc-change="1418999986" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="neutron-openvswitch-agent-compute_monitor_10000" operation_key="neutron-openvswitch-agent-compute_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="639:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;639:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="296" rc-code="0" op-status="0" interval="10000" last-rc-change="1418999986" exec-time="41" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="libvirtd-compute" type="libvirtd" class="systemd"> ++ <lrm_rsc_op id="libvirtd-compute_last_0" operation_key="libvirtd-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="648:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;648:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="297" rc-code="0" op-status="0" interval="0" last-run="1418999988" last-rc-change="1418999988" exec-time="2" queue-time="2001" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ <lrm_rsc_op id="libvirtd-compute_monitor_60000" operation_key="libvirtd-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="649:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;649:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="298" rc-code="0" op-status="0" interval="60000" last-rc-change="1418999988" exec-time="2" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-compute" type="openstack-ceilometer-compute" class="systemd"> ++ <lrm_rsc_op id="ceilometer-compute_last_0" operation_key="ceilometer-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="658:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;658:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="299" rc-code="0" op-status="0" interval="0" last-run="1418999990" last-rc-change="1418999990" exec-time="2" queue-time="2001" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ <lrm_rsc_op id="ceilometer-compute_monitor_60000" operation_key="ceilometer-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="659:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;659:22:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="300" rc-code="0" op-status="0" interval="60000" last-rc-change="1418999990" exec-time="2" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="nova-compute" type="openstack-nova-compute" class="systemd"> ++ <lrm_rsc_op id="nova-compute_last_0" operation_key="nova-compute_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="668:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;668:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="445" rc-code="0" op-status="0" interval="0" last-run="1419007680" last-rc-change="1419007680" exec-time="1" queue-time="2002" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhos6-node3"/> ++ <lrm_rsc_op id="nova-compute_monitor_60000" operation_key="nova-compute_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="669:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:0;669:55:0:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="446" rc-code="0" op-status="0" interval="60000" last-rc-change="1419007681" exec-time="2" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="ceilometer-delay" type="Delay" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="ceilometer-delay_last_0" operation_key="ceilometer-delay_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="210:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;210:21:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="234" rc-code="7" op-status="0" interval="0" last-run="1418999976" last-rc-change="1418999976" exec-time="10024" queue-time="0" op-digest="ad19c7364a8662d5d94488a98ccc4fda" on_node="rhos6-node3"/> ++ </lrm_resource> ++ <lrm_resource id="galera" type="galera" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="galera_last_0" operation_key="galera_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="116:44:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" transition-magic="0:7;116:44:7:1f9a2e6c-6163-4380-a2e0-b47bd7a56a3a" call-id="343" rc-code="7" op-status="0" interval="0" last-run="1419001727" last-rc-change="1419001727" exec-time="54" queue-time="0" op-digest="a357a4e08e165ea819421e864e21c1cf" on_node="rhos6-node3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="mrg-04"> ++ <instance_attributes id="status-mrg-04"> ++ <nvpair id="status-mrg-04-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> diff --git a/SOURCES/bz1176210-require-all.patch b/SOURCES/bz1176210-require-all.patch new file mode 100644 index 0000000..21fbac5 --- /dev/null +++ b/SOURCES/bz1176210-require-all.patch @@ -0,0 +1,5799 @@ +diff --git a/include/crm/crm.h b/include/crm/crm.h +index 41279b0..37bc5ce 100644 +--- a/include/crm/crm.h ++++ b/include/crm/crm.h +@@ -133,6 +133,7 @@ extern char *crm_system_name; + # define CRM_OP_REPROBE "probe_again" + # define CRM_OP_CLEAR_FAILCOUNT "clear_failcount" + # define CRM_OP_RELAXED_SET "one-or-more" ++# define CRM_OP_RELAXED_CLONE "clone-one-or-more" + # define CRM_OP_RM_NODE_CACHE "rm_node_cache" + + # define CRMD_JOINSTATE_DOWN "down" +diff --git a/pengine/constraints.c b/pengine/constraints.c +index a2ce9c4..7054a8e 100644 +--- a/pengine/constraints.c ++++ b/pengine/constraints.c +@@ -255,6 +255,7 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set) + resource_t *rsc_then = NULL; + resource_t *rsc_first = NULL; + gboolean invert_bool = TRUE; ++ gboolean require_all = TRUE; + enum pe_order_kind kind = pe_order_kind_mandatory; + enum pe_ordering cons_weight = pe_order_optional; + +@@ -264,6 +265,7 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set) + const char *action_first = NULL; + const char *instance_then = NULL; + const char *instance_first = NULL; ++ const char *require_all_s = NULL; + + const char *id = crm_element_value(xml_obj, XML_ATTR_ID); + const char *invert = crm_element_value(xml_obj, XML_CONS_ATTR_SYMMETRICAL); +@@ -343,6 +345,14 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set) + } + } + ++ require_all_s = crm_element_value(xml_obj, "require-all"); ++ if (require_all_s ++ && crm_is_true(require_all_s) == FALSE ++ && rsc_first->variant >= pe_clone) { ++ ++ require_all = FALSE; ++ } ++ + cons_weight = pe_order_optional; + kind = get_ordering_type(xml_obj); + +@@ -356,7 +366,29 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set) + } else { + cons_weight |= get_flags(id, kind, action_first, action_then, FALSE); + } +- order_id = new_rsc_order(rsc_first, action_first, rsc_then, action_then, cons_weight, data_set); ++ ++ if (require_all == FALSE) { ++ GListPtr rIter = NULL; ++ char *task = crm_concat(CRM_OP_RELAXED_CLONE, id, ':'); ++ action_t *unordered_action = get_pseudo_op(task, data_set); ++ free(task); ++ ++ update_action_flags(unordered_action, pe_action_requires_any); ++ ++ for (rIter = rsc_first->children; id && rIter; rIter = rIter->next) { ++ resource_t *child = rIter->data; ++ ++ custom_action_order(child, generate_op_key(child->id, action_first, 0), NULL, ++ NULL, NULL, unordered_action, ++ pe_order_one_or_more | pe_order_implies_then_printed, data_set); ++ } ++ ++ order_id = custom_action_order(NULL, NULL, unordered_action, ++ rsc_then, generate_op_key(rsc_then->id, action_then, 0), NULL, ++ cons_weight | pe_order_runnable_left, data_set); ++ } else { ++ order_id = new_rsc_order(rsc_first, action_first, rsc_then, action_then, cons_weight, data_set); ++ } + + pe_rsc_trace(rsc_first, "order-%d (%s): %s_%s before %s_%s flags=0x%.6x", + order_id, id, rsc_first->id, action_first, rsc_then->id, action_then, cons_weight); +@@ -387,6 +419,7 @@ unpack_simple_rsc_order(xmlNode * xml_obj, pe_working_set_t * data_set) + } + + cons_weight |= get_flags(id, kind, action_first, action_then, TRUE); ++ + order_id = new_rsc_order(rsc_then, action_then, rsc_first, action_first, cons_weight, data_set); + + pe_rsc_trace(rsc_then, "order-%d (%s): %s_%s before %s_%s flags=0x%.6x", +diff --git a/pengine/regression.sh b/pengine/regression.sh +index 3a244d7..c2bc7fb 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -126,6 +126,16 @@ do_test one-or-more-5 "Start A and F even though C and D are stopped" + do_test one-or-more-6 "Leave A running even though B is stopped" + do_test one-or-more-7 "Leave A running even though C is stopped" + do_test bug-5140-require-all-false "Allow basegrp:0 to stop" ++do_test clone-require-all-1 "clone B starts node 3 and 4" ++do_test clone-require-all-2 "clone B remains stopped everywhere" ++do_test clone-require-all-3 "clone B stops everywhere because A stops everywhere" ++do_test clone-require-all-4 "clone B remains on node 3 and 4 with only one instance of A remaining." ++do_test clone-require-all-5 "clone B starts on node 1 3 and 4" ++do_test clone-require-all-6 "clone B remains active after shutting down instances of A" ++do_test clone-require-all-7 "clone A and B both start at the same time. all instances of A start before B." ++do_test clone-require-all-no-interleave-1 "C starts everywhere after A and B" ++do_test clone-require-all-no-interleave-2 "C starts on nodes 1, 2, and 4 with only one active instance of B" ++do_test clone-require-all-no-interleave-3 "C remains active when instance of B is stopped on one node and started on another." + + echo "" + do_test order1 "Order start 1 " +diff --git a/pengine/test10/clone-require-all-1.dot b/pengine/test10/clone-require-all-1.dot +new file mode 100644 +index 0000000..9856969 +--- /dev/null ++++ b/pengine/test10/clone-require-all-1.dot +@@ -0,0 +1,15 @@ ++ digraph "g" { ++"B-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = bold] ++"B-clone_start_0" -> "B:1_start_0 rhel7-auto4" [ style = bold] ++"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold] ++"B-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"B:1_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B:1_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold] ++"B:1_start_0 rhel7-auto4" -> "B:1_monitor_10000 rhel7-auto4" [ style = bold] ++"B:1_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold] ++"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold] ++"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/clone-require-all-1.exp b/pengine/test10/clone-require-all-1.exp +new file mode 100644 +index 0000000..c2d1abd +--- /dev/null ++++ b/pengine/test10/clone-require-all-1.exp +@@ -0,0 +1,80 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="22" operation="monitor" operation_key="B_monitor_10000" internal_operation_key="B:0_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="21" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="21" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="25" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="24" operation="monitor" operation_key="B:1_monitor_10000" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="23" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="25" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4" priority="1000000"> ++ <action_set> ++ <pseudo_event id="26" operation="running" operation_key="B-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="21" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="25" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <pseudo_event id="25" operation="start" operation_key="B-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-1.scores b/pengine/test10/clone-require-all-1.scores +new file mode 100644 +index 0000000..fe3ce21 +--- /dev/null ++++ b/pengine/test10/clone-require-all-1.scores +@@ -0,0 +1,77 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: 0 ++clone_color: A-clone allocation score on rhel7-auto2: 0 ++clone_color: A-clone allocation score on rhel7-auto3: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto4: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto1: 1 ++clone_color: A:0 allocation score on rhel7-auto2: 0 ++clone_color: A:0 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto1: 0 ++clone_color: A:1 allocation score on rhel7-auto2: 1 ++clone_color: A:1 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto1: 0 ++clone_color: A:2 allocation score on rhel7-auto2: 0 ++clone_color: A:2 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto1: 0 ++clone_color: A:3 allocation score on rhel7-auto2: 0 ++clone_color: A:3 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto4: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: 1 ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: -INFINITY ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: 0 ++native_color: A:1 allocation score on rhel7-auto2: 1 ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 0 ++native_color: B:0 allocation score on rhel7-auto4: 0 ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: -INFINITY ++native_color: B:1 allocation score on rhel7-auto4: 0 ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-1.summary b/pengine/test10/clone-require-all-1.summary +new file mode 100644 +index 0000000..2cbb97d +--- /dev/null ++++ b/pengine/test10/clone-require-all-1.summary +@@ -0,0 +1,34 @@ ++ ++Current cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 ] ++ Stopped: [ rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++Transition Summary: ++ * Start B:0 (rhel7-auto3) ++ * Start B:1 (rhel7-auto4) ++ ++Executing cluster transition: ++ * Pseudo action: B-clone_start_0 ++ * Resource action: B start on rhel7-auto3 ++ * Resource action: B start on rhel7-auto4 ++ * Pseudo action: B-clone_running_0 ++ * Resource action: B monitor=10000 on rhel7-auto3 ++ * Resource action: B monitor=10000 on rhel7-auto4 ++ ++Revised cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 ] ++ Stopped: [ rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 ] ++ +diff --git a/pengine/test10/clone-require-all-1.xml b/pengine/test10/clone-require-all-1.xml +new file mode 100644 +index 0000000..724fac1 +--- /dev/null ++++ b/pengine/test10/clone-require-all-1.xml +@@ -0,0 +1,152 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="17" num_updates="2" admin_epoch="0" cib-last-written="Mon Jan 5 17:40:52 2015" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"> ++ <nvpair id="A-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"> ++ <nvpair id="B-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-A-clone-rhel7-auto3--INFINITY" node="rhel7-auto3" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto4--INFINITY" node="rhel7-auto4" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="B-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="B-clone" score="-INFINITY"/> ++ <rsc_order require-all="false" first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420497434" last-rc-change="1420497434" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420497434" exec-time="62" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="12" rc-code="0" op-status="0" interval="0" last-run="1420497496" last-rc-change="1420497496" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="13" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497496" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497505" exec-time="24" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1420497495" last-rc-change="1420497495" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497495" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497546" last-rc-change="1420497546" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497653" last-rc-change="1420497653" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="22" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497431" last-rc-change="1420497431" exec-time="987" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497545" last-rc-change="1420497545" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497652" last-rc-change="1420497652" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="28" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-2.dot b/pengine/test10/clone-require-all-2.dot +new file mode 100644 +index 0000000..4f830ce +--- /dev/null ++++ b/pengine/test10/clone-require-all-2.dot +@@ -0,0 +1,42 @@ ++ digraph "g" { ++"A-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = dashed] ++"A-clone_start_0" -> "A_start_0 <none>" [ style = dashed] ++"A-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto2" [ style = bold] ++"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stopped_0" -> "A-clone_start_0" [ style = dashed] ++"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"A_start_0 <none>" -> "A-clone_running_0" [ style = dashed] ++"A_start_0 <none>" [ style=dashed color="red" fontcolor="black"] ++"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto1" -> "A_start_0 <none>" [ style = dashed] ++"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"A_stop_0 rhel7-auto2" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto2" -> "A_start_0 <none>" [ style = dashed] ++"A_stop_0 rhel7-auto2" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"B-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = dashed] ++"B-clone_start_0" -> "B:1_start_0 rhel7-auto3" [ style = dashed] ++"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = dashed] ++"B-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"B:1_monitor_10000 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"B:1_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = dashed] ++"B:1_start_0 rhel7-auto3" -> "B:1_monitor_10000 rhel7-auto3" [ style = dashed] ++"B:1_start_0 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"B_monitor_10000 rhel7-auto4" [ style=dashed color="red" fontcolor="black"] ++"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = dashed] ++"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = dashed] ++"B_start_0 rhel7-auto4" [ style=dashed color="red" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"shooter_monitor_60000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"shooter_start_0 rhel7-auto3" -> "shooter_monitor_60000 rhel7-auto3" [ style = bold] ++"shooter_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"shooter_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"shooter_stop_0 rhel7-auto1" -> "shooter_start_0 rhel7-auto3" [ style = bold] ++"shooter_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/clone-require-all-2.exp b/pengine/test10/clone-require-all-2.exp +new file mode 100644 +index 0000000..a5ad63f +--- /dev/null ++++ b/pengine/test10/clone-require-all-2.exp +@@ -0,0 +1,107 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="13" operation="monitor" operation_key="shooter_monitor_60000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="12" operation="start" operation_key="shooter_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="12" operation="start" operation_key="shooter_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="11" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="14" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="18" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="15" operation="stop" operation_key="A_stop_0" internal_operation_key="A:1_stop_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="A" long-id="A:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="18" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5" priority="1000000"> ++ <action_set> ++ <pseudo_event id="19" operation="stopped" operation_key="A-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="14" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="15" operation="stop" operation_key="A_stop_0" internal_operation_key="A:1_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="18" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <pseudo_event id="18" operation="stop" operation_key="A-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <pseudo_event id="5" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="14" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="15" operation="stop" operation_key="A_stop_0" internal_operation_key="A:1_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-2.scores b/pengine/test10/clone-require-all-2.scores +new file mode 100644 +index 0000000..cdbf611 +--- /dev/null ++++ b/pengine/test10/clone-require-all-2.scores +@@ -0,0 +1,77 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: 0 ++clone_color: A-clone allocation score on rhel7-auto2: 0 ++clone_color: A-clone allocation score on rhel7-auto3: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto4: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto1: 1 ++clone_color: A:0 allocation score on rhel7-auto2: 0 ++clone_color: A:0 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto1: 0 ++clone_color: A:1 allocation score on rhel7-auto2: 1 ++clone_color: A:1 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto1: 0 ++clone_color: A:2 allocation score on rhel7-auto2: 0 ++clone_color: A:2 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto1: 0 ++clone_color: A:3 allocation score on rhel7-auto2: 0 ++clone_color: A:3 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto4: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: -INFINITY ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: -INFINITY ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: -INFINITY ++native_color: A:1 allocation score on rhel7-auto2: -INFINITY ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 0 ++native_color: B:0 allocation score on rhel7-auto4: 0 ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: 0 ++native_color: B:1 allocation score on rhel7-auto4: -INFINITY ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-2.summary b/pengine/test10/clone-require-all-2.summary +new file mode 100644 +index 0000000..d4b2519 +--- /dev/null ++++ b/pengine/test10/clone-require-all-2.summary +@@ -0,0 +1,41 @@ ++ ++Current cluster status: ++Node rhel7-auto1 (1): standby ++Node rhel7-auto2 (2): standby ++Online: [ rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 ] ++ Stopped: [ rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++Transition Summary: ++ * Move shooter (Started rhel7-auto1 -> rhel7-auto3) ++ * Stop A:0 (rhel7-auto1) ++ * Stop A:1 (rhel7-auto2) ++ * Start B:0 (rhel7-auto4 - blocked) ++ * Start B:1 (rhel7-auto3 - blocked) ++ ++Executing cluster transition: ++ * Resource action: shooter stop on rhel7-auto1 ++ * Pseudo action: A-clone_stop_0 ++ * Resource action: shooter start on rhel7-auto3 ++ * Resource action: A stop on rhel7-auto1 ++ * Resource action: A stop on rhel7-auto2 ++ * Pseudo action: A-clone_stopped_0 ++ * Pseudo action: all_stopped ++ * Resource action: shooter monitor=60000 on rhel7-auto3 ++ ++Revised cluster status: ++Node rhel7-auto1 (1): standby ++Node rhel7-auto2 (2): standby ++Online: [ rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto3 ++ Clone Set: A-clone [A] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ +diff --git a/pengine/test10/clone-require-all-2.xml b/pengine/test10/clone-require-all-2.xml +new file mode 100644 +index 0000000..1fd9576 +--- /dev/null ++++ b/pengine/test10/clone-require-all-2.xml +@@ -0,0 +1,160 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="19" num_updates="0" admin_epoch="0" cib-last-written="Mon Jan 5 17:40:52 2015" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"> ++ <instance_attributes id="nodes-1"> ++ <nvpair id="nodes-1-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="2" uname="rhel7-auto2"> ++ <instance_attributes id="nodes-2"> ++ <nvpair id="nodes-2-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"> ++ <nvpair id="A-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"> ++ <nvpair id="B-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-A-clone-rhel7-auto3--INFINITY" node="rhel7-auto3" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto4--INFINITY" node="rhel7-auto4" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="B-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="B-clone" score="-INFINITY"/> ++ <rsc_order require-all="false" first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420497434" last-rc-change="1420497434" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420497434" exec-time="62" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="12" rc-code="0" op-status="0" interval="0" last-run="1420497496" last-rc-change="1420497496" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="13" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497496" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497505" exec-time="24" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1420497495" last-rc-change="1420497495" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497495" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497546" last-rc-change="1420497546" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497653" last-rc-change="1420497653" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="22" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497431" last-rc-change="1420497431" exec-time="987" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497545" last-rc-change="1420497545" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497652" last-rc-change="1420497652" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="28" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-3.dot b/pengine/test10/clone-require-all-3.dot +new file mode 100644 +index 0000000..d93693d +--- /dev/null ++++ b/pengine/test10/clone-require-all-3.dot +@@ -0,0 +1,57 @@ ++ digraph "g" { ++"A-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = dashed] ++"A-clone_start_0" -> "A_start_0 <none>" [ style = dashed] ++"A-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto2" [ style = bold] ++"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stopped_0" -> "A-clone_start_0" [ style = dashed] ++"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"A_start_0 <none>" -> "A-clone_running_0" [ style = dashed] ++"A_start_0 <none>" [ style=dashed color="red" fontcolor="black"] ++"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto1" -> "A_start_0 <none>" [ style = dashed] ++"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"A_stop_0 rhel7-auto2" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto2" -> "A_start_0 <none>" [ style = dashed] ++"A_stop_0 rhel7-auto2" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"B-clone_running_0" [ style=dashed color="red" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = dashed] ++"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = dashed] ++"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = dashed] ++"B-clone_start_0" [ style=dashed color="red" fontcolor="orange"] ++"B-clone_stop_0" -> "B-clone_stopped_0" [ style = bold] ++"B-clone_stop_0" -> "B_stop_0 rhel7-auto3" [ style = bold] ++"B-clone_stop_0" -> "B_stop_0 rhel7-auto4" [ style = bold] ++"B-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_stopped_0" -> "A-clone_stop_0" [ style = bold] ++"B-clone_stopped_0" -> "B-clone_start_0" [ style = dashed] ++"B-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"B_monitor_10000 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"B_monitor_10000 rhel7-auto4" [ style=dashed color="red" fontcolor="black"] ++"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = dashed] ++"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = dashed] ++"B_start_0 rhel7-auto3" [ style=dashed color="red" fontcolor="black"] ++"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = dashed] ++"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = dashed] ++"B_start_0 rhel7-auto4" [ style=dashed color="red" fontcolor="black"] ++"B_stop_0 rhel7-auto3" -> "B-clone_stopped_0" [ style = bold] ++"B_stop_0 rhel7-auto3" -> "B_start_0 rhel7-auto3" [ style = dashed] ++"B_stop_0 rhel7-auto3" -> "all_stopped" [ style = bold] ++"B_stop_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B_stop_0 rhel7-auto4" -> "B-clone_stopped_0" [ style = bold] ++"B_stop_0 rhel7-auto4" -> "B_start_0 rhel7-auto4" [ style = dashed] ++"B_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold] ++"B_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"shooter_monitor_60000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"shooter_start_0 rhel7-auto3" -> "shooter_monitor_60000 rhel7-auto3" [ style = bold] ++"shooter_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"shooter_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"shooter_stop_0 rhel7-auto1" -> "shooter_start_0 rhel7-auto3" [ style = bold] ++"shooter_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/clone-require-all-3.exp b/pengine/test10/clone-require-all-3.exp +new file mode 100644 +index 0000000..02eea7a +--- /dev/null ++++ b/pengine/test10/clone-require-all-3.exp +@@ -0,0 +1,169 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="15" operation="monitor" operation_key="shooter_monitor_60000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="14" operation="start" operation_key="shooter_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="14" operation="start" operation_key="shooter_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="13" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="13" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="20" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="17" operation="stop" operation_key="A_stop_0" internal_operation_key="A:1_stop_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="A" long-id="A:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="20" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5" priority="1000000"> ++ <action_set> ++ <pseudo_event id="21" operation="stopped" operation_key="A-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="17" operation="stop" operation_key="A_stop_0" internal_operation_key="A:1_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="20" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <pseudo_event id="20" operation="stop" operation_key="A-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="stopped" operation_key="B-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="22" operation="stop" operation_key="B_stop_0" internal_operation_key="B:0_stop_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="28" operation="stop" operation_key="B-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="24" operation="stop" operation_key="B_stop_0" internal_operation_key="B:1_stop_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="28" operation="stop" operation_key="B-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9" priority="1000000"> ++ <action_set> ++ <pseudo_event id="29" operation="stopped" operation_key="B-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="22" operation="stop" operation_key="B_stop_0" internal_operation_key="B:0_stop_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="24" operation="stop" operation_key="B_stop_0" internal_operation_key="B:1_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="28" operation="stop" operation_key="B-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <pseudo_event id="28" operation="stop" operation_key="B-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <pseudo_event id="7" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="13" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="17" operation="stop" operation_key="A_stop_0" internal_operation_key="A:1_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="22" operation="stop" operation_key="B_stop_0" internal_operation_key="B:0_stop_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="24" operation="stop" operation_key="B_stop_0" internal_operation_key="B:1_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-3.scores b/pengine/test10/clone-require-all-3.scores +new file mode 100644 +index 0000000..814a972 +--- /dev/null ++++ b/pengine/test10/clone-require-all-3.scores +@@ -0,0 +1,77 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: 0 ++clone_color: A-clone allocation score on rhel7-auto2: 0 ++clone_color: A-clone allocation score on rhel7-auto3: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto4: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto1: 1 ++clone_color: A:0 allocation score on rhel7-auto2: 0 ++clone_color: A:0 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto1: 0 ++clone_color: A:1 allocation score on rhel7-auto2: 1 ++clone_color: A:1 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto1: 0 ++clone_color: A:2 allocation score on rhel7-auto2: 0 ++clone_color: A:2 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto1: 0 ++clone_color: A:3 allocation score on rhel7-auto2: 0 ++clone_color: A:3 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto4: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto3: 1 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 1 ++clone_color: B:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: -INFINITY ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: -INFINITY ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: -INFINITY ++native_color: A:1 allocation score on rhel7-auto2: -INFINITY ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 1 ++native_color: B:0 allocation score on rhel7-auto4: -INFINITY ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: 0 ++native_color: B:1 allocation score on rhel7-auto4: 1 ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-3.summary b/pengine/test10/clone-require-all-3.summary +new file mode 100644 +index 0000000..68191b1 +--- /dev/null ++++ b/pengine/test10/clone-require-all-3.summary +@@ -0,0 +1,46 @@ ++ ++Current cluster status: ++Node rhel7-auto1 (1): standby ++Node rhel7-auto2 (2): standby ++Online: [ rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 ] ++ Stopped: [ rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 ] ++ ++Transition Summary: ++ * Move shooter (Started rhel7-auto1 -> rhel7-auto3) ++ * Stop A:0 (rhel7-auto1) ++ * Stop A:1 (rhel7-auto2) ++ * Stop B:0 (Started rhel7-auto3) ++ * Stop B:1 (Started rhel7-auto4) ++ ++Executing cluster transition: ++ * Resource action: shooter stop on rhel7-auto1 ++ * Pseudo action: B-clone_stop_0 ++ * Resource action: shooter start on rhel7-auto3 ++ * Resource action: B stop on rhel7-auto3 ++ * Resource action: B stop on rhel7-auto4 ++ * Pseudo action: B-clone_stopped_0 ++ * Resource action: shooter monitor=60000 on rhel7-auto3 ++ * Pseudo action: A-clone_stop_0 ++ * Resource action: A stop on rhel7-auto1 ++ * Resource action: A stop on rhel7-auto2 ++ * Pseudo action: A-clone_stopped_0 ++ * Pseudo action: all_stopped ++ ++Revised cluster status: ++Node rhel7-auto1 (1): standby ++Node rhel7-auto2 (2): standby ++Online: [ rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto3 ++ Clone Set: A-clone [A] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ +diff --git a/pengine/test10/clone-require-all-3.xml b/pengine/test10/clone-require-all-3.xml +new file mode 100644 +index 0000000..b04f0e2 +--- /dev/null ++++ b/pengine/test10/clone-require-all-3.xml +@@ -0,0 +1,160 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="17" num_updates="6" admin_epoch="0" cib-last-written="Mon Jan 5 17:40:52 2015" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"> ++ <instance_attributes id="nodes-1"> ++ <nvpair id="nodes-1-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="2" uname="rhel7-auto2"> ++ <instance_attributes id="nodes-2"> ++ <nvpair id="nodes-2-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"> ++ <nvpair id="A-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"> ++ <nvpair id="B-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-A-clone-rhel7-auto3--INFINITY" node="rhel7-auto3" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto4--INFINITY" node="rhel7-auto4" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="B-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="B-clone" score="-INFINITY"/> ++ <rsc_order require-all="false" first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420497434" last-rc-change="1420497434" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420497434" exec-time="62" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="12" rc-code="0" op-status="0" interval="0" last-run="1420497496" last-rc-change="1420497496" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="13" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497496" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497505" exec-time="24" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1420497495" last-rc-change="1420497495" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497495" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497546" last-rc-change="1420497546" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1420572996" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497431" last-rc-change="1420497431" exec-time="987" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497545" last-rc-change="1420497545" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1420572996" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-4.dot b/pengine/test10/clone-require-all-4.dot +new file mode 100644 +index 0000000..4b9521f +--- /dev/null ++++ b/pengine/test10/clone-require-all-4.dot +@@ -0,0 +1,24 @@ ++ digraph "g" { ++"A-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = bold] ++"A-clone_start_0" -> "A_start_0 <none>" [ style = dashed] ++"A-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold] ++"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stopped_0" -> "A-clone_start_0" [ style = bold] ++"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"A_start_0 <none>" -> "A-clone_running_0" [ style = dashed] ++"A_start_0 <none>" [ style=dashed color="red" fontcolor="black"] ++"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto1" -> "A_start_0 <none>" [ style = dashed] ++"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"shooter_monitor_60000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"shooter_start_0 rhel7-auto2" -> "shooter_monitor_60000 rhel7-auto2" [ style = bold] ++"shooter_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"shooter_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"shooter_stop_0 rhel7-auto1" -> "shooter_start_0 rhel7-auto2" [ style = bold] ++"shooter_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/clone-require-all-4.exp b/pengine/test10/clone-require-all-4.exp +new file mode 100644 +index 0000000..53c1529 +--- /dev/null ++++ b/pengine/test10/clone-require-all-4.exp +@@ -0,0 +1,112 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="15" operation="monitor" operation_key="shooter_monitor_60000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="14" operation="start" operation_key="shooter_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="14" operation="start" operation_key="shooter_start_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="13" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="13" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="21" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4" priority="1000000"> ++ <action_set> ++ <pseudo_event id="22" operation="stopped" operation_key="A-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="21" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <pseudo_event id="21" operation="stop" operation_key="A-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="6" priority="1000000"> ++ <action_set> ++ <pseudo_event id="20" operation="running" operation_key="A-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="22" operation="stopped" operation_key="A-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <pseudo_event id="7" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="13" operation="stop" operation_key="shooter_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-4.scores b/pengine/test10/clone-require-all-4.scores +new file mode 100644 +index 0000000..c602a1d +--- /dev/null ++++ b/pengine/test10/clone-require-all-4.scores +@@ -0,0 +1,77 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: 0 ++clone_color: A-clone allocation score on rhel7-auto2: 0 ++clone_color: A-clone allocation score on rhel7-auto3: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto4: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto1: 1 ++clone_color: A:0 allocation score on rhel7-auto2: 0 ++clone_color: A:0 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto1: 0 ++clone_color: A:1 allocation score on rhel7-auto2: 1 ++clone_color: A:1 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto1: 0 ++clone_color: A:2 allocation score on rhel7-auto2: 0 ++clone_color: A:2 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto1: 0 ++clone_color: A:3 allocation score on rhel7-auto2: 0 ++clone_color: A:3 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto4: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto3: 1 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 1 ++clone_color: B:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: -INFINITY ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: -INFINITY ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: -INFINITY ++native_color: A:1 allocation score on rhel7-auto2: 1 ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 1 ++native_color: B:0 allocation score on rhel7-auto4: 0 ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: -INFINITY ++native_color: B:1 allocation score on rhel7-auto4: 1 ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-4.summary b/pengine/test10/clone-require-all-4.summary +new file mode 100644 +index 0000000..49ae3bd +--- /dev/null ++++ b/pengine/test10/clone-require-all-4.summary +@@ -0,0 +1,40 @@ ++ ++Current cluster status: ++Node rhel7-auto1 (1): standby ++Online: [ rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 ] ++ Stopped: [ rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 ] ++ ++Transition Summary: ++ * Move shooter (Started rhel7-auto1 -> rhel7-auto2) ++ * Stop A:0 (rhel7-auto1) ++ ++Executing cluster transition: ++ * Resource action: shooter stop on rhel7-auto1 ++ * Pseudo action: A-clone_stop_0 ++ * Resource action: shooter start on rhel7-auto2 ++ * Resource action: A stop on rhel7-auto1 ++ * Pseudo action: A-clone_stopped_0 ++ * Pseudo action: A-clone_start_0 ++ * Pseudo action: all_stopped ++ * Resource action: shooter monitor=60000 on rhel7-auto2 ++ * Pseudo action: A-clone_running_0 ++ ++Revised cluster status: ++Node rhel7-auto1 (1): standby ++Online: [ rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto2 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto2 ] ++ Stopped: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 ] ++ +diff --git a/pengine/test10/clone-require-all-4.xml b/pengine/test10/clone-require-all-4.xml +new file mode 100644 +index 0000000..8bfd27f +--- /dev/null ++++ b/pengine/test10/clone-require-all-4.xml +@@ -0,0 +1,156 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="17" num_updates="6" admin_epoch="0" cib-last-written="Mon Jan 5 17:40:52 2015" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"> ++ <instance_attributes id="nodes-1"> ++ <nvpair id="nodes-1-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"> ++ <nvpair id="A-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"> ++ <nvpair id="B-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-A-clone-rhel7-auto3--INFINITY" node="rhel7-auto3" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto4--INFINITY" node="rhel7-auto4" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="B-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="B-clone" score="-INFINITY"/> ++ <rsc_order require-all="false" first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420497434" last-rc-change="1420497434" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420497434" exec-time="62" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="12" rc-code="0" op-status="0" interval="0" last-run="1420497496" last-rc-change="1420497496" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="13" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497496" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497505" exec-time="24" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1420497495" last-rc-change="1420497495" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497495" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497546" last-rc-change="1420497546" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1420572996" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497431" last-rc-change="1420497431" exec-time="987" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497545" last-rc-change="1420497545" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1420572996" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420572996" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-5.dot b/pengine/test10/clone-require-all-5.dot +new file mode 100644 +index 0000000..ce5a593 +--- /dev/null ++++ b/pengine/test10/clone-require-all-5.dot +@@ -0,0 +1,31 @@ ++ digraph "g" { ++"A-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = bold] ++"A-clone_start_0" -> "A_start_0 rhel7-auto3" [ style = bold] ++"A-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"A_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"A_start_0 rhel7-auto3" -> "A-clone_running_0" [ style = bold] ++"A_start_0 rhel7-auto3" -> "A_monitor_10000 rhel7-auto3" [ style = bold] ++"A_start_0 rhel7-auto3" -> "clone-one-or-more:order-A-clone-B-clone-mandatory" [ style = bold] ++"A_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = bold] ++"B-clone_start_0" -> "B:1_start_0 rhel7-auto3" [ style = bold] ++"B-clone_start_0" -> "B:2_start_0 rhel7-auto1" [ style = bold] ++"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = bold] ++"B-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"B:1_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B:1_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold] ++"B:1_start_0 rhel7-auto3" -> "B:1_monitor_10000 rhel7-auto3" [ style = bold] ++"B:1_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B:2_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"B:2_start_0 rhel7-auto1" -> "B-clone_running_0" [ style = bold] ++"B:2_start_0 rhel7-auto1" -> "B:2_monitor_10000 rhel7-auto1" [ style = bold] ++"B:2_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"B_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold] ++"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = bold] ++"B_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"clone-one-or-more:order-A-clone-B-clone-mandatory" -> "B-clone_start_0" [ style = bold] ++"clone-one-or-more:order-A-clone-B-clone-mandatory" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/clone-require-all-5.exp b/pengine/test10/clone-require-all-5.exp +new file mode 100644 +index 0000000..abb4d25 +--- /dev/null ++++ b/pengine/test10/clone-require-all-5.exp +@@ -0,0 +1,174 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="18" operation="monitor" operation_key="A_monitor_10000" internal_operation_key="A:2_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A_start_0" internal_operation_key="A:2_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="17" operation="start" operation_key="A_start_0" internal_operation_key="A:2_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2" priority="1000000"> ++ <action_set> ++ <pseudo_event id="20" operation="running" operation_key="A-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A_start_0" internal_operation_key="A:2_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="24" operation="monitor" operation_key="B_monitor_10000" internal_operation_key="B:0_monitor_10000" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="23" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="26" operation="monitor" operation_key="B:1_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="25" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="28" operation="monitor" operation_key="B:2_monitor_10000" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="B" long-id="B:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="27" operation="start" operation_key="B:2_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="27" operation="start" operation_key="B:2_start_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="B" long-id="B:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10" priority="1000000"> ++ <action_set> ++ <pseudo_event id="30" operation="running" operation_key="B-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="27" operation="start" operation_key="B:2_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <pseudo_event id="29" operation="start" operation_key="B-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="4" operation="clone-one-or-more:order-A-clone-B-clone-mandatory" operation_key="clone-one-or-more:order-A-clone-B-clone-mandatory"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <pseudo_event id="4" operation="clone-one-or-more:order-A-clone-B-clone-mandatory" operation_key="clone-one-or-more:order-A-clone-B-clone-mandatory"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A_start_0" internal_operation_key="A:2_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-5.scores b/pengine/test10/clone-require-all-5.scores +new file mode 100644 +index 0000000..cca6739 +--- /dev/null ++++ b/pengine/test10/clone-require-all-5.scores +@@ -0,0 +1,77 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: 0 ++clone_color: A-clone allocation score on rhel7-auto2: 0 ++clone_color: A-clone allocation score on rhel7-auto3: 0 ++clone_color: A-clone allocation score on rhel7-auto4: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto1: 1 ++clone_color: A:0 allocation score on rhel7-auto2: 0 ++clone_color: A:0 allocation score on rhel7-auto3: 0 ++clone_color: A:0 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto1: 0 ++clone_color: A:1 allocation score on rhel7-auto2: 1 ++clone_color: A:1 allocation score on rhel7-auto3: 0 ++clone_color: A:1 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto1: 0 ++clone_color: A:2 allocation score on rhel7-auto2: 0 ++clone_color: A:2 allocation score on rhel7-auto3: 0 ++clone_color: A:2 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto1: 0 ++clone_color: A:3 allocation score on rhel7-auto2: 0 ++clone_color: A:3 allocation score on rhel7-auto3: 0 ++clone_color: A:3 allocation score on rhel7-auto4: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto1: 0 ++clone_color: B-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: 0 ++clone_color: B:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: 0 ++clone_color: B:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: 0 ++clone_color: B:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: 0 ++clone_color: B:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: 1 ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: 0 ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: 0 ++native_color: A:1 allocation score on rhel7-auto2: 1 ++native_color: A:1 allocation score on rhel7-auto3: 0 ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: 0 ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: 0 ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 0 ++native_color: B:0 allocation score on rhel7-auto4: 0 ++native_color: B:1 allocation score on rhel7-auto1: 0 ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: 0 ++native_color: B:1 allocation score on rhel7-auto4: -INFINITY ++native_color: B:2 allocation score on rhel7-auto1: 0 ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-5.summary b/pengine/test10/clone-require-all-5.summary +new file mode 100644 +index 0000000..2820093 +--- /dev/null ++++ b/pengine/test10/clone-require-all-5.summary +@@ -0,0 +1,43 @@ ++ ++Current cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 ] ++ Stopped: [ rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++Transition Summary: ++ * Start A:2 (rhel7-auto3) ++ * Start B:0 (rhel7-auto4) ++ * Start B:1 (rhel7-auto3) ++ * Start B:2 (rhel7-auto1) ++ ++Executing cluster transition: ++ * Pseudo action: A-clone_start_0 ++ * Resource action: A start on rhel7-auto3 ++ * Pseudo action: A-clone_running_0 ++ * Pseudo action: clone-one-or-more:order-A-clone-B-clone-mandatory ++ * Resource action: A monitor=10000 on rhel7-auto3 ++ * Pseudo action: B-clone_start_0 ++ * Resource action: B start on rhel7-auto4 ++ * Resource action: B start on rhel7-auto3 ++ * Resource action: B start on rhel7-auto1 ++ * Pseudo action: B-clone_running_0 ++ * Resource action: B monitor=10000 on rhel7-auto4 ++ * Resource action: B monitor=10000 on rhel7-auto3 ++ * Resource action: B monitor=10000 on rhel7-auto1 ++ ++Revised cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Stopped: [ rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto2 ] ++ +diff --git a/pengine/test10/clone-require-all-5.xml b/pengine/test10/clone-require-all-5.xml +new file mode 100644 +index 0000000..1079dae +--- /dev/null ++++ b/pengine/test10/clone-require-all-5.xml +@@ -0,0 +1,150 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="17" num_updates="2" admin_epoch="0" cib-last-written="Mon Jan 5 17:40:52 2015" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"> ++ <nvpair id="A-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"> ++ <nvpair id="B-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-A-clone-rhel7-auto4--INFINITY" node="rhel7-auto4" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="B-clone" score="-INFINITY"/> ++ <rsc_order require-all="false" first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420497434" last-rc-change="1420497434" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420497434" exec-time="62" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="12" rc-code="0" op-status="0" interval="0" last-run="1420497496" last-rc-change="1420497496" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="13" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497496" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497505" exec-time="24" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1420497495" last-rc-change="1420497495" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497495" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497546" last-rc-change="1420497546" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497653" last-rc-change="1420497653" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="22" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497431" last-rc-change="1420497431" exec-time="987" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497545" last-rc-change="1420497545" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497652" last-rc-change="1420497652" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="28" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-6.dot b/pengine/test10/clone-require-all-6.dot +new file mode 100644 +index 0000000..3ee5c89 +--- /dev/null ++++ b/pengine/test10/clone-require-all-6.dot +@@ -0,0 +1,23 @@ ++ digraph "g" { ++"A-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = bold] ++"A-clone_start_0" -> "A_start_0 <none>" [ style = dashed] ++"A-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto1" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto3" [ style = bold] ++"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stopped_0" -> "A-clone_start_0" [ style = bold] ++"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"A_start_0 <none>" -> "A-clone_running_0" [ style = dashed] ++"A_start_0 <none>" [ style=dashed color="red" fontcolor="black"] ++"A_stop_0 rhel7-auto1" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto1" -> "A_start_0 <none>" [ style = dashed] ++"A_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"A_stop_0 rhel7-auto3" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto3" -> "A_start_0 <none>" [ style = dashed] ++"A_stop_0 rhel7-auto3" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/clone-require-all-6.exp b/pengine/test10/clone-require-all-6.exp +new file mode 100644 +index 0000000..8cc4c57 +--- /dev/null ++++ b/pengine/test10/clone-require-all-6.exp +@@ -0,0 +1,93 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="17" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="23" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="20" operation="stop" operation_key="A_stop_0" internal_operation_key="A:2_stop_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="23" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2" priority="1000000"> ++ <action_set> ++ <pseudo_event id="24" operation="stopped" operation_key="A-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="20" operation="stop" operation_key="A_stop_0" internal_operation_key="A:2_stop_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="23" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <pseudo_event id="23" operation="stop" operation_key="A-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="4" priority="1000000"> ++ <action_set> ++ <pseudo_event id="22" operation="running" operation_key="A-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="21" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <pseudo_event id="21" operation="start" operation_key="A-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="24" operation="stopped" operation_key="A-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <pseudo_event id="9" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="20" operation="stop" operation_key="A_stop_0" internal_operation_key="A:2_stop_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-6.scores b/pengine/test10/clone-require-all-6.scores +new file mode 100644 +index 0000000..4e8ee5a +--- /dev/null ++++ b/pengine/test10/clone-require-all-6.scores +@@ -0,0 +1,77 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto2: 0 ++clone_color: A-clone allocation score on rhel7-auto3: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto4: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto2: 0 ++clone_color: A:0 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto2: 1 ++clone_color: A:1 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto2: 0 ++clone_color: A:2 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto2: 0 ++clone_color: A:3 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto4: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto1: 0 ++clone_color: B-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: 1 ++clone_color: B:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: 0 ++clone_color: B:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto3: 1 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: 0 ++clone_color: B:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 1 ++clone_color: B:3 allocation score on rhel7-auto1: 0 ++clone_color: B:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: -INFINITY ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: -INFINITY ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: -INFINITY ++native_color: A:1 allocation score on rhel7-auto2: 1 ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: 1 ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: -INFINITY ++native_color: B:0 allocation score on rhel7-auto4: -INFINITY ++native_color: B:1 allocation score on rhel7-auto1: 0 ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: 1 ++native_color: B:1 allocation score on rhel7-auto4: 0 ++native_color: B:2 allocation score on rhel7-auto1: 0 ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: 1 ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-6.summary b/pengine/test10/clone-require-all-6.summary +new file mode 100644 +index 0000000..6561ea3 +--- /dev/null ++++ b/pengine/test10/clone-require-all-6.summary +@@ -0,0 +1,36 @@ ++ ++Current cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Stopped: [ rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto2 ] ++ ++Transition Summary: ++ * Stop A:0 (rhel7-auto1) ++ * Stop A:2 (rhel7-auto3) ++ ++Executing cluster transition: ++ * Pseudo action: A-clone_stop_0 ++ * Resource action: A stop on rhel7-auto1 ++ * Resource action: A stop on rhel7-auto3 ++ * Pseudo action: A-clone_stopped_0 ++ * Pseudo action: A-clone_start_0 ++ * Pseudo action: all_stopped ++ * Pseudo action: A-clone_running_0 ++ ++Revised cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto2 ] ++ Stopped: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto1 rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto2 ] ++ +diff --git a/pengine/test10/clone-require-all-6.xml b/pengine/test10/clone-require-all-6.xml +new file mode 100644 +index 0000000..5222b33 +--- /dev/null ++++ b/pengine/test10/clone-require-all-6.xml +@@ -0,0 +1,153 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="17" num_updates="10" admin_epoch="0" cib-last-written="Mon Jan 5 17:40:52 2015" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"> ++ <nvpair id="A-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"> ++ <nvpair id="B-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-A-clone-rhel7-auto4--INFINITY" node="rhel7-auto4" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto3--INFINITY" node="rhel7-auto3" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="B-clone" score="-INFINITY"/> ++ <rsc_order require-all="false" first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420497434" last-rc-change="1420497434" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420497434" exec-time="62" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;17:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="12" rc-code="0" op-status="0" interval="0" last-run="1420497496" last-rc-change="1420497496" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;18:6:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="13" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497496" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1420580294" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;14:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1420497495" last-rc-change="1420497495" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;15:5:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497495" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="20:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;20:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="20" rc-code="0" op-status="0" interval="0" last-run="1420580294" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="21:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;21:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="21" rc-code="0" op-status="0" interval="10000" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1420580294" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497431" last-rc-change="1420497431" exec-time="987" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;23:9:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497545" last-rc-change="1420497545" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;22:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1420580294" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;23:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420580294" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-7.dot b/pengine/test10/clone-require-all-7.dot +new file mode 100644 +index 0000000..baa87a2 +--- /dev/null ++++ b/pengine/test10/clone-require-all-7.dot +@@ -0,0 +1,51 @@ ++ digraph "g" { ++"A-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = bold] ++"A-clone_start_0" -> "A:0_start_0 rhel7-auto2" [ style = bold] ++"A-clone_start_0" -> "A:1_start_0 rhel7-auto1" [ style = bold] ++"A-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"A:0_monitor_0 rhel7-auto2" -> "probe_complete rhel7-auto2" [ style = bold] ++"A:0_monitor_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"A:0_monitor_0 rhel7-auto3" -> "probe_complete rhel7-auto3" [ style = bold] ++"A:0_monitor_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"A:0_monitor_0 rhel7-auto4" -> "probe_complete rhel7-auto4" [ style = bold] ++"A:0_monitor_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"A:0_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"A:0_start_0 rhel7-auto2" -> "A-clone_running_0" [ style = bold] ++"A:0_start_0 rhel7-auto2" -> "A:0_monitor_10000 rhel7-auto2" [ style = bold] ++"A:0_start_0 rhel7-auto2" -> "clone-one-or-more:order-A-clone-B-clone-mandatory" [ style = bold] ++"A:0_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"A:1_monitor_0 rhel7-auto1" -> "probe_complete rhel7-auto1" [ style = bold] ++"A:1_monitor_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"A:1_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"A:1_start_0 rhel7-auto1" -> "A-clone_running_0" [ style = bold] ++"A:1_start_0 rhel7-auto1" -> "A:1_monitor_10000 rhel7-auto1" [ style = bold] ++"A:1_start_0 rhel7-auto1" -> "clone-one-or-more:order-A-clone-B-clone-mandatory" [ style = bold] ++"A:1_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"B-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = bold] ++"B-clone_start_0" -> "B:1_start_0 rhel7-auto4" [ style = bold] ++"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold] ++"B-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"B:1_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B:1_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold] ++"B:1_start_0 rhel7-auto4" -> "B:1_monitor_10000 rhel7-auto4" [ style = bold] ++"B:1_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold] ++"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold] ++"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"clone-one-or-more:order-A-clone-B-clone-mandatory" -> "B-clone_start_0" [ style = bold] ++"clone-one-or-more:order-A-clone-B-clone-mandatory" [ style=bold color="green" fontcolor="orange"] ++"probe_complete rhel7-auto1" -> "probe_complete" [ style = bold] ++"probe_complete rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"probe_complete rhel7-auto2" -> "probe_complete" [ style = bold] ++"probe_complete rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"probe_complete rhel7-auto3" -> "probe_complete" [ style = bold] ++"probe_complete rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"probe_complete rhel7-auto4" -> "probe_complete" [ style = bold] ++"probe_complete rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"probe_complete" -> "A:0_start_0 rhel7-auto2" [ style = bold] ++"probe_complete" -> "A:1_start_0 rhel7-auto1" [ style = bold] ++"probe_complete" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/clone-require-all-7.exp b/pengine/test10/clone-require-all-7.exp +new file mode 100644 +index 0000000..d37a82f +--- /dev/null ++++ b/pengine/test10/clone-require-all-7.exp +@@ -0,0 +1,288 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="16" operation="monitor" operation_key="A:0_monitor_10000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="15" operation="start" operation_key="A:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="15" operation="start" operation_key="A:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="12" operation="monitor" operation_key="A:0_monitor_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="10" operation="monitor" operation_key="A:0_monitor_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="8" operation="monitor" operation_key="A:0_monitor_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="18" operation="monitor" operation_key="A:1_monitor_10000" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="A" long-id="A:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="17" operation="start" operation_key="A:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="A" long-id="A:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="6" operation="monitor" operation_key="A:1_monitor_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="A" long-id="A:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="8" priority="1000000"> ++ <action_set> ++ <pseudo_event id="20" operation="running" operation_key="A-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="15" operation="start" operation_key="A:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="24" operation="monitor" operation_key="B_monitor_10000" internal_operation_key="B:0_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="23" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="27" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="26" operation="monitor" operation_key="B:1_monitor_10000" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="25" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="27" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14" priority="1000000"> ++ <action_set> ++ <pseudo_event id="28" operation="running" operation_key="B-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="B:1_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="27" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <pseudo_event id="27" operation="start" operation_key="B-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="2" operation="clone-one-or-more:order-A-clone-B-clone-mandatory" operation_key="clone-one-or-more:order-A-clone-B-clone-mandatory"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16" priority="1000000"> ++ <action_set> ++ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-rhel7-auto4" on_node="rhel7-auto4" on_node_uuid="4"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="12" operation="monitor" operation_key="A:0_monitor_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="17" priority="1000000"> ++ <action_set> ++ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-rhel7-auto3" on_node="rhel7-auto3" on_node_uuid="3"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="10" operation="monitor" operation_key="A:0_monitor_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="18" priority="1000000"> ++ <action_set> ++ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-rhel7-auto2" on_node="rhel7-auto2" on_node_uuid="2"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="8" operation="monitor" operation_key="A:0_monitor_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="19" priority="1000000"> ++ <action_set> ++ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-rhel7-auto1" on_node="rhel7-auto1" on_node_uuid="1"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="6" operation="monitor" operation_key="A:1_monitor_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="20"> ++ <action_set> ++ <pseudo_event id="4" operation="probe_complete" operation_key="probe_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="5" operation="probe_complete" operation_key="probe_complete-rhel7-auto1" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="7" operation="probe_complete" operation_key="probe_complete-rhel7-auto2" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="9" operation="probe_complete" operation_key="probe_complete-rhel7-auto3" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="11" operation="probe_complete" operation_key="probe_complete-rhel7-auto4" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="21"> ++ <action_set> ++ <pseudo_event id="2" operation="clone-one-or-more:order-A-clone-B-clone-mandatory" operation_key="clone-one-or-more:order-A-clone-B-clone-mandatory"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="15" operation="start" operation_key="A:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-7.scores b/pengine/test10/clone-require-all-7.scores +new file mode 100644 +index 0000000..8c61fd1 +--- /dev/null ++++ b/pengine/test10/clone-require-all-7.scores +@@ -0,0 +1,77 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: 0 ++clone_color: A-clone allocation score on rhel7-auto2: 0 ++clone_color: A-clone allocation score on rhel7-auto3: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto4: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto1: 0 ++clone_color: A:0 allocation score on rhel7-auto2: 0 ++clone_color: A:0 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto1: 0 ++clone_color: A:1 allocation score on rhel7-auto2: 0 ++clone_color: A:1 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto1: 0 ++clone_color: A:2 allocation score on rhel7-auto2: 0 ++clone_color: A:2 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto4: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto1: 0 ++clone_color: A:3 allocation score on rhel7-auto2: 0 ++clone_color: A:3 allocation score on rhel7-auto3: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto4: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: 0 ++native_color: A:0 allocation score on rhel7-auto2: 0 ++native_color: A:0 allocation score on rhel7-auto3: -INFINITY ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: 0 ++native_color: A:1 allocation score on rhel7-auto2: -INFINITY ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 0 ++native_color: B:0 allocation score on rhel7-auto4: 0 ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: -INFINITY ++native_color: B:1 allocation score on rhel7-auto4: 0 ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-7.summary b/pengine/test10/clone-require-all-7.summary +new file mode 100644 +index 0000000..411f738 +--- /dev/null ++++ b/pengine/test10/clone-require-all-7.summary +@@ -0,0 +1,47 @@ ++ ++Current cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++Transition Summary: ++ * Start A:0 (rhel7-auto2) ++ * Start A:1 (rhel7-auto1) ++ * Start B:0 (rhel7-auto3) ++ * Start B:1 (rhel7-auto4) ++ ++Executing cluster transition: ++ * Resource action: A:0 monitor on rhel7-auto4 ++ * Resource action: A:0 monitor on rhel7-auto3 ++ * Resource action: A:0 monitor on rhel7-auto2 ++ * Resource action: A:1 monitor on rhel7-auto1 ++ * Pseudo action: A-clone_start_0 ++ * Pseudo action: probe_complete ++ * Resource action: A:0 start on rhel7-auto2 ++ * Resource action: A:1 start on rhel7-auto1 ++ * Pseudo action: A-clone_running_0 ++ * Pseudo action: clone-one-or-more:order-A-clone-B-clone-mandatory ++ * Resource action: A:0 monitor=10000 on rhel7-auto2 ++ * Resource action: A:1 monitor=10000 on rhel7-auto1 ++ * Pseudo action: B-clone_start_0 ++ * Resource action: B start on rhel7-auto3 ++ * Resource action: B start on rhel7-auto4 ++ * Pseudo action: B-clone_running_0 ++ * Resource action: B monitor=10000 on rhel7-auto3 ++ * Resource action: B monitor=10000 on rhel7-auto4 ++ ++Revised cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto1 rhel7-auto2 ] ++ Stopped: [ rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto3 rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 ] ++ +diff --git a/pengine/test10/clone-require-all-7.xml b/pengine/test10/clone-require-all-7.xml +new file mode 100644 +index 0000000..6aea47b +--- /dev/null ++++ b/pengine/test10/clone-require-all-7.xml +@@ -0,0 +1,138 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="17" num_updates="2" admin_epoch="0" cib-last-written="Mon Jan 5 17:40:52 2015" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-a14efad"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"> ++ <nvpair id="A-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"> ++ <nvpair id="B-clone-meta_attributes-interleave" name="interleave" value="true"/> ++ </meta_attributes> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-A-clone-rhel7-auto3--INFINITY" node="rhel7-auto3" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto4--INFINITY" node="rhel7-auto4" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="B-clone" score="-INFINITY"/> ++ <rsc_location id="location-B-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="B-clone" score="-INFINITY"/> ++ <rsc_order require-all="false" first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;11:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420497434" last-rc-change="1420497434" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;12:4:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420497434" exec-time="62" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;34:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497505" exec-time="24" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;6:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;25:10:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1420497555" last-rc-change="1420497555" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;31:7:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;8:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497432" last-rc-change="1420497432" exec-time="991" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;22:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497653" last-rc-change="1420497653" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;30:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="22" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:7;10:4:7:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420497431" last-rc-change="1420497431" exec-time="987" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;24:13:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1420497652" last-rc-change="1420497652" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" transition-magic="0:0;32:8:0:cae8134b-6333-43f4-a950-53bfe72762c8" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420497504" exec-time="28" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-no-interleave-1.dot b/pengine/test10/clone-require-all-no-interleave-1.dot +new file mode 100644 +index 0000000..d03703b +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-1.dot +@@ -0,0 +1,40 @@ ++ digraph "g" { ++"A-clone_running_0" -> "B-clone_start_0" [ style = bold] ++"A-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = bold] ++"A-clone_start_0" -> "A_start_0 rhel7-auto3" [ style = bold] ++"A-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"A_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"A_start_0 rhel7-auto3" -> "A-clone_running_0" [ style = bold] ++"A_start_0 rhel7-auto3" -> "A_monitor_10000 rhel7-auto3" [ style = bold] ++"A_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = bold] ++"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold] ++"B-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold] ++"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold] ++"B_start_0 rhel7-auto3" -> "clone-one-or-more:order-B-clone-C-clone-mandatory" [ style = bold] ++"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"C-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"C-clone_start_0" -> "C-clone_running_0" [ style = bold] ++"C-clone_start_0" -> "C:1_start_0 rhel7-auto1" [ style = bold] ++"C-clone_start_0" -> "C:2_start_0 rhel7-auto3" [ style = bold] ++"C-clone_start_0" -> "C_start_0 rhel7-auto2" [ style = bold] ++"C-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"C:1_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"C:1_start_0 rhel7-auto1" -> "C-clone_running_0" [ style = bold] ++"C:1_start_0 rhel7-auto1" -> "C:1_monitor_10000 rhel7-auto1" [ style = bold] ++"C:1_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"C:2_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"C:2_start_0 rhel7-auto3" -> "C-clone_running_0" [ style = bold] ++"C:2_start_0 rhel7-auto3" -> "C:2_monitor_10000 rhel7-auto3" [ style = bold] ++"C:2_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"C_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"C_start_0 rhel7-auto2" -> "C-clone_running_0" [ style = bold] ++"C_start_0 rhel7-auto2" -> "C_monitor_10000 rhel7-auto2" [ style = bold] ++"C_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"clone-one-or-more:order-B-clone-C-clone-mandatory" -> "C-clone_start_0" [ style = bold] ++"clone-one-or-more:order-B-clone-C-clone-mandatory" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/clone-require-all-no-interleave-1.exp b/pengine/test10/clone-require-all-no-interleave-1.exp +new file mode 100644 +index 0000000..7048f51 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-1.exp +@@ -0,0 +1,227 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="12" operation="monitor" operation_key="A_monitor_10000" internal_operation_key="A:0_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="11" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="13" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2" priority="1000000"> ++ <action_set> ++ <pseudo_event id="14" operation="running" operation_key="A-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="13" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <pseudo_event id="13" operation="start" operation_key="A-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="18" operation="monitor" operation_key="B_monitor_10000" internal_operation_key="B:0_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6" priority="1000000"> ++ <action_set> ++ <pseudo_event id="20" operation="running" operation_key="B-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <pseudo_event id="19" operation="start" operation_key="B-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="14" operation="running" operation_key="A-clone_running_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="24" operation="monitor" operation_key="C_monitor_10000" internal_operation_key="C:0_monitor_10000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="C" long-id="C:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="23" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="C" long-id="C:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="26" operation="monitor" operation_key="C:1_monitor_10000" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="C" long-id="C:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="C:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="25" operation="start" operation_key="C:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="C" long-id="C:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="28" operation="monitor" operation_key="C:2_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="C" long-id="C:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="27" operation="start" operation_key="C:2_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="27" operation="start" operation_key="C:2_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="C" long-id="C:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14" priority="1000000"> ++ <action_set> ++ <pseudo_event id="30" operation="running" operation_key="C-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="C:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="27" operation="start" operation_key="C:2_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="2" operation="clone-one-or-more:order-B-clone-C-clone-mandatory" operation_key="clone-one-or-more:order-B-clone-C-clone-mandatory"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <pseudo_event id="2" operation="clone-one-or-more:order-B-clone-C-clone-mandatory" operation_key="clone-one-or-more:order-B-clone-C-clone-mandatory"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-no-interleave-1.scores b/pengine/test10/clone-require-all-no-interleave-1.scores +new file mode 100644 +index 0000000..f6d3232 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-1.scores +@@ -0,0 +1,113 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto3: 0 ++clone_color: A-clone allocation score on rhel7-auto4: 0 ++clone_color: A:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto3: 0 ++clone_color: A:0 allocation score on rhel7-auto4: 0 ++clone_color: A:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto3: 0 ++clone_color: A:1 allocation score on rhel7-auto4: 0 ++clone_color: A:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto3: 0 ++clone_color: A:2 allocation score on rhel7-auto4: 0 ++clone_color: A:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto3: 0 ++clone_color: A:3 allocation score on rhel7-auto4: 0 ++clone_color: B-clone allocation score on rhel7-auto1: 0 ++clone_color: B-clone allocation score on rhel7-auto2: 0 ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: 0 ++clone_color: B:0 allocation score on rhel7-auto2: 0 ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: 0 ++clone_color: B:1 allocation score on rhel7-auto2: 0 ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: 0 ++clone_color: B:2 allocation score on rhel7-auto2: 0 ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: 0 ++clone_color: B:3 allocation score on rhel7-auto2: 0 ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++clone_color: C-clone allocation score on rhel7-auto1: 0 ++clone_color: C-clone allocation score on rhel7-auto2: 0 ++clone_color: C-clone allocation score on rhel7-auto3: 0 ++clone_color: C-clone allocation score on rhel7-auto4: 0 ++clone_color: C:0 allocation score on rhel7-auto1: 0 ++clone_color: C:0 allocation score on rhel7-auto2: 0 ++clone_color: C:0 allocation score on rhel7-auto3: 0 ++clone_color: C:0 allocation score on rhel7-auto4: 0 ++clone_color: C:1 allocation score on rhel7-auto1: 0 ++clone_color: C:1 allocation score on rhel7-auto2: 0 ++clone_color: C:1 allocation score on rhel7-auto3: 0 ++clone_color: C:1 allocation score on rhel7-auto4: 0 ++clone_color: C:2 allocation score on rhel7-auto1: 0 ++clone_color: C:2 allocation score on rhel7-auto2: 0 ++clone_color: C:2 allocation score on rhel7-auto3: 0 ++clone_color: C:2 allocation score on rhel7-auto4: 0 ++clone_color: C:3 allocation score on rhel7-auto1: 0 ++clone_color: C:3 allocation score on rhel7-auto2: 0 ++clone_color: C:3 allocation score on rhel7-auto3: 0 ++clone_color: C:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: -INFINITY ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: 0 ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: -INFINITY ++native_color: A:1 allocation score on rhel7-auto2: -INFINITY ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 0 ++native_color: B:0 allocation score on rhel7-auto4: -INFINITY ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: -INFINITY ++native_color: B:1 allocation score on rhel7-auto4: -INFINITY ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: C:0 allocation score on rhel7-auto1: 0 ++native_color: C:0 allocation score on rhel7-auto2: 0 ++native_color: C:0 allocation score on rhel7-auto3: 0 ++native_color: C:0 allocation score on rhel7-auto4: -INFINITY ++native_color: C:1 allocation score on rhel7-auto1: 0 ++native_color: C:1 allocation score on rhel7-auto2: -INFINITY ++native_color: C:1 allocation score on rhel7-auto3: 0 ++native_color: C:1 allocation score on rhel7-auto4: -INFINITY ++native_color: C:2 allocation score on rhel7-auto1: -INFINITY ++native_color: C:2 allocation score on rhel7-auto2: -INFINITY ++native_color: C:2 allocation score on rhel7-auto3: 0 ++native_color: C:2 allocation score on rhel7-auto4: -INFINITY ++native_color: C:3 allocation score on rhel7-auto1: -INFINITY ++native_color: C:3 allocation score on rhel7-auto2: -INFINITY ++native_color: C:3 allocation score on rhel7-auto3: -INFINITY ++native_color: C:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-no-interleave-1.summary b/pengine/test10/clone-require-all-no-interleave-1.summary +new file mode 100644 +index 0000000..dd4bc99 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-1.summary +@@ -0,0 +1,54 @@ ++ ++Current cluster status: ++Node rhel7-auto4 (4): standby ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: C-clone [C] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++Transition Summary: ++ * Start A:0 (rhel7-auto3) ++ * Start B:0 (rhel7-auto3) ++ * Start C:0 (rhel7-auto2) ++ * Start C:1 (rhel7-auto1) ++ * Start C:2 (rhel7-auto3) ++ ++Executing cluster transition: ++ * Pseudo action: A-clone_start_0 ++ * Resource action: A start on rhel7-auto3 ++ * Pseudo action: A-clone_running_0 ++ * Pseudo action: B-clone_start_0 ++ * Resource action: A monitor=10000 on rhel7-auto3 ++ * Resource action: B start on rhel7-auto3 ++ * Pseudo action: B-clone_running_0 ++ * Pseudo action: clone-one-or-more:order-B-clone-C-clone-mandatory ++ * Resource action: B monitor=10000 on rhel7-auto3 ++ * Pseudo action: C-clone_start_0 ++ * Resource action: C start on rhel7-auto2 ++ * Resource action: C start on rhel7-auto1 ++ * Resource action: C start on rhel7-auto3 ++ * Pseudo action: C-clone_running_0 ++ * Resource action: C monitor=10000 on rhel7-auto2 ++ * Resource action: C monitor=10000 on rhel7-auto1 ++ * Resource action: C monitor=10000 on rhel7-auto3 ++ ++Revised cluster status: ++Node rhel7-auto4 (4): standby ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto3 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto3 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ Clone Set: C-clone [C] ++ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Stopped: [ rhel7-auto4 ] ++ +diff --git a/pengine/test10/clone-require-all-no-interleave-1.xml b/pengine/test10/clone-require-all-no-interleave-1.xml +new file mode 100644 +index 0000000..4630f96 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-1.xml +@@ -0,0 +1,177 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="19" num_updates="6" admin_epoch="0" cib-last-written="Wed Jan 7 20:24:31 2015" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-eea796a"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ <node id="4" uname="rhel7-auto4"> ++ <instance_attributes id="nodes-4"> ++ <nvpair id="nodes-4-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"/> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"/> ++ </clone> ++ <clone id="C-clone"> ++ <primitive class="ocf" id="C" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="C-instance_attributes"/> ++ <operations> ++ <op id="C-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="C-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="C-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="C-clone-meta"/> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_order first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ <rsc_colocation id="colocation-B-clone-A-clone-INFINITY" rsc="B-clone" score="INFINITY" with-rsc="A-clone"/> ++ <rsc_order first="B-clone" first-action="start" id="order-B-clone-C-clone-mandatory" require-all="false" then="C-clone" then-action="start"/> ++ <rsc_location id="location-A-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="A-clone" score="-INFINITY"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;10:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679798" last-rc-change="1420679798" exec-time="1071" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="17:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;17:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="16:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;16:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680105" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="22:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;22:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="32:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;32:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680111" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="27:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;27:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="48:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;48:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680120" exec-time="22" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;8:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679799" last-rc-change="1420679799" exec-time="1070" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="21:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;21:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680244" last-rc-change="1420680244" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;14:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680105" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;28:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680244" last-rc-change="1420680244" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;30:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680112" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;28:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680271" last-rc-change="1420680271" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="46:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;46:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680121" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;11:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420679801" last-rc-change="1420679801" exec-time="88" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;12:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420679801" exec-time="64" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="27:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;27:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680232" last-rc-change="1420680232" exec-time="33" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="38:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;38:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680232" last-rc-change="1420680232" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="30:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;30:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="31" rc-code="0" op-status="0" interval="0" last-run="1420680271" last-rc-change="1420680271" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="50:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;50:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680121" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;6:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679798" last-rc-change="1420679798" exec-time="1070" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="25:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;25:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680238" last-rc-change="1420680238" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;34:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680238" last-rc-change="1420680238" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="32:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;32:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="47:8:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;47:8:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680120" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-no-interleave-2.dot b/pengine/test10/clone-require-all-no-interleave-2.dot +new file mode 100644 +index 0000000..1d7f8be +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-2.dot +@@ -0,0 +1,40 @@ ++ digraph "g" { ++"A-clone_running_0" -> "B-clone_start_0" [ style = bold] ++"A-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = bold] ++"A-clone_start_0" -> "A_start_0 rhel7-auto4" [ style = bold] ++"A-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"A_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"A_start_0 rhel7-auto4" -> "A-clone_running_0" [ style = bold] ++"A_start_0 rhel7-auto4" -> "A_monitor_10000 rhel7-auto4" [ style = bold] ++"A_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = bold] ++"B-clone_start_0" -> "B_start_0 rhel7-auto4" [ style = bold] ++"B-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"B_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B_start_0 rhel7-auto4" -> "B-clone_running_0" [ style = bold] ++"B_start_0 rhel7-auto4" -> "B_monitor_10000 rhel7-auto4" [ style = bold] ++"B_start_0 rhel7-auto4" -> "clone-one-or-more:order-B-clone-C-clone-mandatory" [ style = bold] ++"B_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"C-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"C-clone_start_0" -> "C-clone_running_0" [ style = bold] ++"C-clone_start_0" -> "C:1_start_0 rhel7-auto1" [ style = bold] ++"C-clone_start_0" -> "C:2_start_0 rhel7-auto4" [ style = bold] ++"C-clone_start_0" -> "C_start_0 rhel7-auto2" [ style = bold] ++"C-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"C:1_monitor_10000 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"C:1_start_0 rhel7-auto1" -> "C-clone_running_0" [ style = bold] ++"C:1_start_0 rhel7-auto1" -> "C:1_monitor_10000 rhel7-auto1" [ style = bold] ++"C:1_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"C:2_monitor_10000 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"C:2_start_0 rhel7-auto4" -> "C-clone_running_0" [ style = bold] ++"C:2_start_0 rhel7-auto4" -> "C:2_monitor_10000 rhel7-auto4" [ style = bold] ++"C:2_start_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"C_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"C_start_0 rhel7-auto2" -> "C-clone_running_0" [ style = bold] ++"C_start_0 rhel7-auto2" -> "C_monitor_10000 rhel7-auto2" [ style = bold] ++"C_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"clone-one-or-more:order-B-clone-C-clone-mandatory" -> "C-clone_start_0" [ style = bold] ++"clone-one-or-more:order-B-clone-C-clone-mandatory" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/clone-require-all-no-interleave-2.exp b/pengine/test10/clone-require-all-no-interleave-2.exp +new file mode 100644 +index 0000000..35a2df6 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-2.exp +@@ -0,0 +1,227 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="12" operation="monitor" operation_key="A_monitor_10000" internal_operation_key="A:0_monitor_10000" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="11" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="13" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2" priority="1000000"> ++ <action_set> ++ <pseudo_event id="14" operation="running" operation_key="A-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="13" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <pseudo_event id="13" operation="start" operation_key="A-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="18" operation="monitor" operation_key="B_monitor_10000" internal_operation_key="B:0_monitor_10000" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6" priority="1000000"> ++ <action_set> ++ <pseudo_event id="20" operation="running" operation_key="B-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <pseudo_event id="19" operation="start" operation_key="B-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="14" operation="running" operation_key="A-clone_running_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="24" operation="monitor" operation_key="C_monitor_10000" internal_operation_key="C:0_monitor_10000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="C" long-id="C:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="23" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="C" long-id="C:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="26" operation="monitor" operation_key="C:1_monitor_10000" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="C" long-id="C:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="C:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="25" operation="start" operation_key="C:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="C" long-id="C:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="28" operation="monitor" operation_key="C:2_monitor_10000" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="C" long-id="C:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="27" operation="start" operation_key="C:2_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="27" operation="start" operation_key="C:2_start_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="C" long-id="C:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14" priority="1000000"> ++ <action_set> ++ <pseudo_event id="30" operation="running" operation_key="C-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="25" operation="start" operation_key="C:1_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="27" operation="start" operation_key="C:2_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <pseudo_event id="29" operation="start" operation_key="C-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="2" operation="clone-one-or-more:order-B-clone-C-clone-mandatory" operation_key="clone-one-or-more:order-B-clone-C-clone-mandatory"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <pseudo_event id="2" operation="clone-one-or-more:order-B-clone-C-clone-mandatory" operation_key="clone-one-or-more:order-B-clone-C-clone-mandatory"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-no-interleave-2.scores b/pengine/test10/clone-require-all-no-interleave-2.scores +new file mode 100644 +index 0000000..50e054e +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-2.scores +@@ -0,0 +1,113 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto3: 0 ++clone_color: A-clone allocation score on rhel7-auto4: 0 ++clone_color: A:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto3: 0 ++clone_color: A:0 allocation score on rhel7-auto4: 0 ++clone_color: A:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto3: 0 ++clone_color: A:1 allocation score on rhel7-auto4: 0 ++clone_color: A:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto3: 0 ++clone_color: A:2 allocation score on rhel7-auto4: 0 ++clone_color: A:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto3: 0 ++clone_color: A:3 allocation score on rhel7-auto4: 0 ++clone_color: B-clone allocation score on rhel7-auto1: 0 ++clone_color: B-clone allocation score on rhel7-auto2: 0 ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: 0 ++clone_color: B:0 allocation score on rhel7-auto2: 0 ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 0 ++clone_color: B:1 allocation score on rhel7-auto1: 0 ++clone_color: B:1 allocation score on rhel7-auto2: 0 ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: 0 ++clone_color: B:2 allocation score on rhel7-auto2: 0 ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: 0 ++clone_color: B:3 allocation score on rhel7-auto2: 0 ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++clone_color: C-clone allocation score on rhel7-auto1: 0 ++clone_color: C-clone allocation score on rhel7-auto2: 0 ++clone_color: C-clone allocation score on rhel7-auto3: 0 ++clone_color: C-clone allocation score on rhel7-auto4: 0 ++clone_color: C:0 allocation score on rhel7-auto1: 0 ++clone_color: C:0 allocation score on rhel7-auto2: 0 ++clone_color: C:0 allocation score on rhel7-auto3: 0 ++clone_color: C:0 allocation score on rhel7-auto4: 0 ++clone_color: C:1 allocation score on rhel7-auto1: 0 ++clone_color: C:1 allocation score on rhel7-auto2: 0 ++clone_color: C:1 allocation score on rhel7-auto3: 0 ++clone_color: C:1 allocation score on rhel7-auto4: 0 ++clone_color: C:2 allocation score on rhel7-auto1: 0 ++clone_color: C:2 allocation score on rhel7-auto2: 0 ++clone_color: C:2 allocation score on rhel7-auto3: 0 ++clone_color: C:2 allocation score on rhel7-auto4: 0 ++clone_color: C:3 allocation score on rhel7-auto1: 0 ++clone_color: C:3 allocation score on rhel7-auto2: 0 ++clone_color: C:3 allocation score on rhel7-auto3: 0 ++clone_color: C:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: -INFINITY ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: -INFINITY ++native_color: A:0 allocation score on rhel7-auto4: 0 ++native_color: A:1 allocation score on rhel7-auto1: -INFINITY ++native_color: A:1 allocation score on rhel7-auto2: -INFINITY ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: -INFINITY ++native_color: B:0 allocation score on rhel7-auto4: 0 ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: -INFINITY ++native_color: B:1 allocation score on rhel7-auto4: -INFINITY ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: C:0 allocation score on rhel7-auto1: 0 ++native_color: C:0 allocation score on rhel7-auto2: 0 ++native_color: C:0 allocation score on rhel7-auto3: -INFINITY ++native_color: C:0 allocation score on rhel7-auto4: 0 ++native_color: C:1 allocation score on rhel7-auto1: 0 ++native_color: C:1 allocation score on rhel7-auto2: -INFINITY ++native_color: C:1 allocation score on rhel7-auto3: -INFINITY ++native_color: C:1 allocation score on rhel7-auto4: 0 ++native_color: C:2 allocation score on rhel7-auto1: -INFINITY ++native_color: C:2 allocation score on rhel7-auto2: -INFINITY ++native_color: C:2 allocation score on rhel7-auto3: -INFINITY ++native_color: C:2 allocation score on rhel7-auto4: 0 ++native_color: C:3 allocation score on rhel7-auto1: -INFINITY ++native_color: C:3 allocation score on rhel7-auto2: -INFINITY ++native_color: C:3 allocation score on rhel7-auto3: -INFINITY ++native_color: C:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-no-interleave-2.summary b/pengine/test10/clone-require-all-no-interleave-2.summary +new file mode 100644 +index 0000000..f16be9b +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-2.summary +@@ -0,0 +1,54 @@ ++ ++Current cluster status: ++Node rhel7-auto3 (3): standby ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ Clone Set: C-clone [C] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 rhel7-auto4 ] ++ ++Transition Summary: ++ * Start A:0 (rhel7-auto4) ++ * Start B:0 (rhel7-auto4) ++ * Start C:0 (rhel7-auto2) ++ * Start C:1 (rhel7-auto1) ++ * Start C:2 (rhel7-auto4) ++ ++Executing cluster transition: ++ * Pseudo action: A-clone_start_0 ++ * Resource action: A start on rhel7-auto4 ++ * Pseudo action: A-clone_running_0 ++ * Pseudo action: B-clone_start_0 ++ * Resource action: A monitor=10000 on rhel7-auto4 ++ * Resource action: B start on rhel7-auto4 ++ * Pseudo action: B-clone_running_0 ++ * Pseudo action: clone-one-or-more:order-B-clone-C-clone-mandatory ++ * Resource action: B monitor=10000 on rhel7-auto4 ++ * Pseudo action: C-clone_start_0 ++ * Resource action: C start on rhel7-auto2 ++ * Resource action: C start on rhel7-auto1 ++ * Resource action: C start on rhel7-auto4 ++ * Pseudo action: C-clone_running_0 ++ * Resource action: C monitor=10000 on rhel7-auto2 ++ * Resource action: C monitor=10000 on rhel7-auto1 ++ * Resource action: C monitor=10000 on rhel7-auto4 ++ ++Revised cluster status: ++Node rhel7-auto3 (3): standby ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Clone Set: C-clone [C] ++ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ Stopped: [ rhel7-auto3 ] ++ +diff --git a/pengine/test10/clone-require-all-no-interleave-2.xml b/pengine/test10/clone-require-all-no-interleave-2.xml +new file mode 100644 +index 0000000..214a7c7 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-2.xml +@@ -0,0 +1,179 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="23" num_updates="0" admin_epoch="0" cib-last-written="Wed Jan 7 20:24:31 2015" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-eea796a"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"> ++ <instance_attributes id="nodes-3"> ++ <nvpair id="nodes-3-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="4" uname="rhel7-auto4"> ++ <instance_attributes id="nodes-4"/> ++ </node> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"/> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"/> ++ </clone> ++ <clone id="C-clone"> ++ <primitive class="ocf" id="C" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="C-instance_attributes"/> ++ <operations> ++ <op id="C-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="C-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="C-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="C-clone-meta"/> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_order first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ <rsc_colocation id="colocation-B-clone-A-clone-INFINITY" rsc="B-clone" score="INFINITY" with-rsc="A-clone"/> ++ <rsc_order first="B-clone" first-action="start" id="order-B-clone-C-clone-mandatory" require-all="false" then="C-clone" then-action="start"/> ++ <rsc_location id="location-A-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="A-clone" score="-INFINITY"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;10:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679798" last-rc-change="1420679798" exec-time="1071" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="17:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;17:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="16:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;16:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680105" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="22:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;22:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="32:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;32:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680111" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="27:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;27:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="48:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;48:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680120" exec-time="22" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;8:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679799" last-rc-change="1420679799" exec-time="1070" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="21:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;21:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680244" last-rc-change="1420680244" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;14:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680105" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;28:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680244" last-rc-change="1420680244" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;30:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680112" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;28:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680271" last-rc-change="1420680271" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="46:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;46:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680121" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;11:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420679801" last-rc-change="1420679801" exec-time="88" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;12:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420679801" exec-time="64" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="27:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;27:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680232" last-rc-change="1420680232" exec-time="33" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="38:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;38:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680232" last-rc-change="1420680232" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="30:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;30:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="31" rc-code="0" op-status="0" interval="0" last-run="1420680271" last-rc-change="1420680271" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="50:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;50:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680121" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;6:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679798" last-rc-change="1420679798" exec-time="1070" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="25:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;25:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680238" last-rc-change="1420680238" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;34:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680238" last-rc-change="1420680238" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="32:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;32:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680270" last-rc-change="1420680270" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="47:8:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;47:8:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680120" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/clone-require-all-no-interleave-3.dot b/pengine/test10/clone-require-all-no-interleave-3.dot +new file mode 100644 +index 0000000..58f97a5 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-3.dot +@@ -0,0 +1,60 @@ ++ digraph "g" { ++"A-clone_running_0" -> "B-clone_start_0" [ style = bold] ++"A-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_start_0" -> "A-clone_running_0" [ style = bold] ++"A-clone_start_0" -> "A_start_0 rhel7-auto3" [ style = bold] ++"A-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stop_0" -> "A-clone_stopped_0" [ style = bold] ++"A-clone_stop_0" -> "A_stop_0 rhel7-auto4" [ style = bold] ++"A-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"A-clone_stopped_0" -> "A-clone_start_0" [ style = bold] ++"A-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"A_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"A_start_0 rhel7-auto3" -> "A-clone_running_0" [ style = bold] ++"A_start_0 rhel7-auto3" -> "A_monitor_10000 rhel7-auto3" [ style = bold] ++"A_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"A_stop_0 rhel7-auto4" -> "A-clone_stopped_0" [ style = bold] ++"A_stop_0 rhel7-auto4" -> "A_start_0 rhel7-auto3" [ style = bold] ++"A_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold] ++"A_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"B-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_start_0" -> "B-clone_running_0" [ style = bold] ++"B-clone_start_0" -> "B_start_0 rhel7-auto3" [ style = bold] ++"B-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_stop_0" -> "B-clone_stopped_0" [ style = bold] ++"B-clone_stop_0" -> "B_stop_0 rhel7-auto4" [ style = bold] ++"B-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"B-clone_stopped_0" -> "A-clone_stop_0" [ style = bold] ++"B-clone_stopped_0" -> "B-clone_start_0" [ style = bold] ++"B-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"B_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B_start_0 rhel7-auto3" -> "B-clone_running_0" [ style = bold] ++"B_start_0 rhel7-auto3" -> "B_monitor_10000 rhel7-auto3" [ style = bold] ++"B_start_0 rhel7-auto3" -> "clone-one-or-more:order-B-clone-C-clone-mandatory" [ style = bold] ++"B_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"B_stop_0 rhel7-auto4" -> "B-clone_stopped_0" [ style = bold] ++"B_stop_0 rhel7-auto4" -> "B_start_0 rhel7-auto3" [ style = bold] ++"B_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold] ++"B_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"C-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"C-clone_start_0" -> "C-clone_running_0" [ style = bold] ++"C-clone_start_0" -> "C_start_0 rhel7-auto3" [ style = bold] ++"C-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"C-clone_stop_0" -> "C-clone_stopped_0" [ style = bold] ++"C-clone_stop_0" -> "C_stop_0 rhel7-auto4" [ style = bold] ++"C-clone_stop_0" [ style=bold color="green" fontcolor="orange"] ++"C-clone_stopped_0" -> "B-clone_stop_0" [ style = bold] ++"C-clone_stopped_0" -> "C-clone_start_0" [ style = bold] ++"C-clone_stopped_0" [ style=bold color="green" fontcolor="orange"] ++"C_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"C_start_0 rhel7-auto3" -> "C-clone_running_0" [ style = bold] ++"C_start_0 rhel7-auto3" -> "C_monitor_10000 rhel7-auto3" [ style = bold] ++"C_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"C_stop_0 rhel7-auto4" -> "C-clone_stopped_0" [ style = bold] ++"C_stop_0 rhel7-auto4" -> "C_start_0 rhel7-auto3" [ style = bold] ++"C_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold] ++"C_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"clone-one-or-more:order-B-clone-C-clone-mandatory" -> "C-clone_start_0" [ style = bold] ++"clone-one-or-more:order-B-clone-C-clone-mandatory" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/clone-require-all-no-interleave-3.exp b/pengine/test10/clone-require-all-no-interleave-3.exp +new file mode 100644 +index 0000000..8aba35e +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-3.exp +@@ -0,0 +1,322 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="18" operation="monitor" operation_key="A_monitor_10000" internal_operation_key="A:0_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="17" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="A" long-id="A:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="21" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3" priority="1000000"> ++ <action_set> ++ <pseudo_event id="22" operation="stopped" operation_key="A-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="21" operation="stop" operation_key="A-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <pseudo_event id="21" operation="stop" operation_key="A-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="stopped" operation_key="B-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5" priority="1000000"> ++ <action_set> ++ <pseudo_event id="20" operation="running" operation_key="A-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="start" operation_key="A_start_0" internal_operation_key="A:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <pseudo_event id="19" operation="start" operation_key="A-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="22" operation="stopped" operation_key="A-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="25" operation="monitor" operation_key="B_monitor_10000" internal_operation_key="B:0_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="24" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="24" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="stop" operation_key="B_stop_0" internal_operation_key="B:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="26" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="23" operation="stop" operation_key="B_stop_0" internal_operation_key="B:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="B" long-id="B:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="28" operation="stop" operation_key="B-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10" priority="1000000"> ++ <action_set> ++ <pseudo_event id="29" operation="stopped" operation_key="B-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="23" operation="stop" operation_key="B_stop_0" internal_operation_key="B:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="28" operation="stop" operation_key="B-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <pseudo_event id="28" operation="stop" operation_key="B-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="40" operation="stopped" operation_key="C-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12" priority="1000000"> ++ <action_set> ++ <pseudo_event id="27" operation="running" operation_key="B-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="24" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="26" operation="start" operation_key="B-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <pseudo_event id="26" operation="start" operation_key="B-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="20" operation="running" operation_key="A-clone_running_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="stopped" operation_key="B-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14"> ++ <action_set> ++ <rsc_op id="32" operation="monitor" operation_key="C_monitor_10000" internal_operation_key="C:0_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="C" long-id="C:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="31" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <rsc_op id="31" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="C" long-id="C:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="start" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="30" operation="stop" operation_key="C_stop_0" internal_operation_key="C:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="37" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <rsc_op id="30" operation="stop" operation_key="C_stop_0" internal_operation_key="C:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"> ++ <primitive id="C" long-id="C:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_name="stop" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="39" operation="stop" operation_key="C-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="17" priority="1000000"> ++ <action_set> ++ <pseudo_event id="40" operation="stopped" operation_key="C-clone_stopped_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="30" operation="stop" operation_key="C_stop_0" internal_operation_key="C:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="39" operation="stop" operation_key="C-clone_stop_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="18"> ++ <action_set> ++ <pseudo_event id="39" operation="stop" operation_key="C-clone_stop_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="19" priority="1000000"> ++ <action_set> ++ <pseudo_event id="38" operation="running" operation_key="C-clone_running_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="31" operation="start" operation_key="C_start_0" internal_operation_key="C:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="37" operation="start" operation_key="C-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="20"> ++ <action_set> ++ <pseudo_event id="37" operation="start" operation_key="C-clone_start_0"> ++ <attributes CRM_meta_clone_max="4" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="7" operation="clone-one-or-more:order-B-clone-C-clone-mandatory" operation_key="clone-one-or-more:order-B-clone-C-clone-mandatory"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="40" operation="stopped" operation_key="C-clone_stopped_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="21"> ++ <action_set> ++ <pseudo_event id="8" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="16" operation="stop" operation_key="A_stop_0" internal_operation_key="A:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="23" operation="stop" operation_key="B_stop_0" internal_operation_key="B:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="30" operation="stop" operation_key="C_stop_0" internal_operation_key="C:0_stop_0" on_node="rhel7-auto4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="22"> ++ <action_set> ++ <pseudo_event id="7" operation="clone-one-or-more:order-B-clone-C-clone-mandatory" operation_key="clone-one-or-more:order-B-clone-C-clone-mandatory"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="24" operation="start" operation_key="B_start_0" internal_operation_key="B:0_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/clone-require-all-no-interleave-3.scores b/pengine/test10/clone-require-all-no-interleave-3.scores +new file mode 100644 +index 0000000..70dd2d1 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-3.scores +@@ -0,0 +1,113 @@ ++Allocation scores: ++clone_color: A-clone allocation score on rhel7-auto1: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto2: -INFINITY ++clone_color: A-clone allocation score on rhel7-auto3: 0 ++clone_color: A-clone allocation score on rhel7-auto4: 0 ++clone_color: A:0 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:0 allocation score on rhel7-auto3: 0 ++clone_color: A:0 allocation score on rhel7-auto4: 1 ++clone_color: A:1 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:1 allocation score on rhel7-auto3: 0 ++clone_color: A:1 allocation score on rhel7-auto4: 0 ++clone_color: A:2 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:2 allocation score on rhel7-auto3: 0 ++clone_color: A:2 allocation score on rhel7-auto4: 0 ++clone_color: A:3 allocation score on rhel7-auto1: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto2: -INFINITY ++clone_color: A:3 allocation score on rhel7-auto3: 0 ++clone_color: A:3 allocation score on rhel7-auto4: 0 ++clone_color: B-clone allocation score on rhel7-auto1: 0 ++clone_color: B-clone allocation score on rhel7-auto2: 0 ++clone_color: B-clone allocation score on rhel7-auto3: 0 ++clone_color: B-clone allocation score on rhel7-auto4: 0 ++clone_color: B:0 allocation score on rhel7-auto1: 0 ++clone_color: B:0 allocation score on rhel7-auto2: 0 ++clone_color: B:0 allocation score on rhel7-auto3: 0 ++clone_color: B:0 allocation score on rhel7-auto4: 1 ++clone_color: B:1 allocation score on rhel7-auto1: 0 ++clone_color: B:1 allocation score on rhel7-auto2: 0 ++clone_color: B:1 allocation score on rhel7-auto3: 0 ++clone_color: B:1 allocation score on rhel7-auto4: 0 ++clone_color: B:2 allocation score on rhel7-auto1: 0 ++clone_color: B:2 allocation score on rhel7-auto2: 0 ++clone_color: B:2 allocation score on rhel7-auto3: 0 ++clone_color: B:2 allocation score on rhel7-auto4: 0 ++clone_color: B:3 allocation score on rhel7-auto1: 0 ++clone_color: B:3 allocation score on rhel7-auto2: 0 ++clone_color: B:3 allocation score on rhel7-auto3: 0 ++clone_color: B:3 allocation score on rhel7-auto4: 0 ++clone_color: C-clone allocation score on rhel7-auto1: 0 ++clone_color: C-clone allocation score on rhel7-auto2: 0 ++clone_color: C-clone allocation score on rhel7-auto3: 0 ++clone_color: C-clone allocation score on rhel7-auto4: 0 ++clone_color: C:0 allocation score on rhel7-auto1: 0 ++clone_color: C:0 allocation score on rhel7-auto2: 0 ++clone_color: C:0 allocation score on rhel7-auto3: 0 ++clone_color: C:0 allocation score on rhel7-auto4: 1 ++clone_color: C:1 allocation score on rhel7-auto1: 1 ++clone_color: C:1 allocation score on rhel7-auto2: 0 ++clone_color: C:1 allocation score on rhel7-auto3: 0 ++clone_color: C:1 allocation score on rhel7-auto4: 0 ++clone_color: C:2 allocation score on rhel7-auto1: 0 ++clone_color: C:2 allocation score on rhel7-auto2: 1 ++clone_color: C:2 allocation score on rhel7-auto3: 0 ++clone_color: C:2 allocation score on rhel7-auto4: 0 ++clone_color: C:3 allocation score on rhel7-auto1: 0 ++clone_color: C:3 allocation score on rhel7-auto2: 0 ++clone_color: C:3 allocation score on rhel7-auto3: 0 ++clone_color: C:3 allocation score on rhel7-auto4: 0 ++native_color: A:0 allocation score on rhel7-auto1: -INFINITY ++native_color: A:0 allocation score on rhel7-auto2: -INFINITY ++native_color: A:0 allocation score on rhel7-auto3: 0 ++native_color: A:0 allocation score on rhel7-auto4: -INFINITY ++native_color: A:1 allocation score on rhel7-auto1: -INFINITY ++native_color: A:1 allocation score on rhel7-auto2: -INFINITY ++native_color: A:1 allocation score on rhel7-auto3: -INFINITY ++native_color: A:1 allocation score on rhel7-auto4: -INFINITY ++native_color: A:2 allocation score on rhel7-auto1: -INFINITY ++native_color: A:2 allocation score on rhel7-auto2: -INFINITY ++native_color: A:2 allocation score on rhel7-auto3: -INFINITY ++native_color: A:2 allocation score on rhel7-auto4: -INFINITY ++native_color: A:3 allocation score on rhel7-auto1: -INFINITY ++native_color: A:3 allocation score on rhel7-auto2: -INFINITY ++native_color: A:3 allocation score on rhel7-auto3: -INFINITY ++native_color: A:3 allocation score on rhel7-auto4: -INFINITY ++native_color: B:0 allocation score on rhel7-auto1: -INFINITY ++native_color: B:0 allocation score on rhel7-auto2: -INFINITY ++native_color: B:0 allocation score on rhel7-auto3: 0 ++native_color: B:0 allocation score on rhel7-auto4: -INFINITY ++native_color: B:1 allocation score on rhel7-auto1: -INFINITY ++native_color: B:1 allocation score on rhel7-auto2: -INFINITY ++native_color: B:1 allocation score on rhel7-auto3: -INFINITY ++native_color: B:1 allocation score on rhel7-auto4: -INFINITY ++native_color: B:2 allocation score on rhel7-auto1: -INFINITY ++native_color: B:2 allocation score on rhel7-auto2: -INFINITY ++native_color: B:2 allocation score on rhel7-auto3: -INFINITY ++native_color: B:2 allocation score on rhel7-auto4: -INFINITY ++native_color: B:3 allocation score on rhel7-auto1: -INFINITY ++native_color: B:3 allocation score on rhel7-auto2: -INFINITY ++native_color: B:3 allocation score on rhel7-auto3: -INFINITY ++native_color: B:3 allocation score on rhel7-auto4: -INFINITY ++native_color: C:0 allocation score on rhel7-auto1: -INFINITY ++native_color: C:0 allocation score on rhel7-auto2: -INFINITY ++native_color: C:0 allocation score on rhel7-auto3: 0 ++native_color: C:0 allocation score on rhel7-auto4: -INFINITY ++native_color: C:1 allocation score on rhel7-auto1: 1 ++native_color: C:1 allocation score on rhel7-auto2: -INFINITY ++native_color: C:1 allocation score on rhel7-auto3: 0 ++native_color: C:1 allocation score on rhel7-auto4: -INFINITY ++native_color: C:2 allocation score on rhel7-auto1: 0 ++native_color: C:2 allocation score on rhel7-auto2: 1 ++native_color: C:2 allocation score on rhel7-auto3: 0 ++native_color: C:2 allocation score on rhel7-auto4: -INFINITY ++native_color: C:3 allocation score on rhel7-auto1: -INFINITY ++native_color: C:3 allocation score on rhel7-auto2: -INFINITY ++native_color: C:3 allocation score on rhel7-auto3: -INFINITY ++native_color: C:3 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: 0 +diff --git a/pengine/test10/clone-require-all-no-interleave-3.summary b/pengine/test10/clone-require-all-no-interleave-3.summary +new file mode 100644 +index 0000000..4379644 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-3.summary +@@ -0,0 +1,61 @@ ++ ++Current cluster status: ++Node rhel7-auto4 (4): standby ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto4 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Clone Set: C-clone [C] ++ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ Stopped: [ rhel7-auto3 ] ++ ++Transition Summary: ++ * Move A:0 (Started rhel7-auto4 -> rhel7-auto3) ++ * Move B:0 (Started rhel7-auto4 -> rhel7-auto3) ++ * Move C:0 (Started rhel7-auto4 -> rhel7-auto3) ++ ++Executing cluster transition: ++ * Pseudo action: C-clone_stop_0 ++ * Resource action: C stop on rhel7-auto4 ++ * Pseudo action: C-clone_stopped_0 ++ * Pseudo action: B-clone_stop_0 ++ * Resource action: B stop on rhel7-auto4 ++ * Pseudo action: B-clone_stopped_0 ++ * Pseudo action: A-clone_stop_0 ++ * Resource action: A stop on rhel7-auto4 ++ * Pseudo action: A-clone_stopped_0 ++ * Pseudo action: A-clone_start_0 ++ * Pseudo action: all_stopped ++ * Resource action: A start on rhel7-auto3 ++ * Pseudo action: A-clone_running_0 ++ * Pseudo action: B-clone_start_0 ++ * Resource action: A monitor=10000 on rhel7-auto3 ++ * Resource action: B start on rhel7-auto3 ++ * Pseudo action: B-clone_running_0 ++ * Pseudo action: clone-one-or-more:order-B-clone-C-clone-mandatory ++ * Resource action: B monitor=10000 on rhel7-auto3 ++ * Pseudo action: C-clone_start_0 ++ * Resource action: C start on rhel7-auto3 ++ * Pseudo action: C-clone_running_0 ++ * Resource action: C monitor=10000 on rhel7-auto3 ++ ++Revised cluster status: ++Node rhel7-auto4 (4): standby ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ Clone Set: A-clone [A] ++ Started: [ rhel7-auto3 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ Clone Set: B-clone [B] ++ Started: [ rhel7-auto3 ] ++ Stopped: [ rhel7-auto1 rhel7-auto2 rhel7-auto4 ] ++ Clone Set: C-clone [C] ++ Started: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ Stopped: [ rhel7-auto4 ] ++ +diff --git a/pengine/test10/clone-require-all-no-interleave-3.xml b/pengine/test10/clone-require-all-no-interleave-3.xml +new file mode 100644 +index 0000000..8a9bea8 +--- /dev/null ++++ b/pengine/test10/clone-require-all-no-interleave-3.xml +@@ -0,0 +1,179 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.3" epoch="25" num_updates="0" admin_epoch="0" cib-last-written="Wed Jan 7 20:24:31 2015" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-eea796a"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"> ++ <instance_attributes id="nodes-3"/> ++ </node> ++ <node id="4" uname="rhel7-auto4"> ++ <instance_attributes id="nodes-4"> ++ <nvpair id="nodes-4-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="A-clone"> ++ <primitive class="ocf" id="A" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="A-instance_attributes"/> ++ <operations> ++ <op id="A-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="A-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="A-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="A-clone-meta"/> ++ </clone> ++ <clone id="B-clone"> ++ <primitive class="ocf" id="B" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="B-instance_attributes"/> ++ <operations> ++ <op id="B-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="B-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="B-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="B-clone-meta"/> ++ </clone> ++ <clone id="C-clone"> ++ <primitive class="ocf" id="C" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="C-instance_attributes"/> ++ <operations> ++ <op id="C-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="C-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="C-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <meta_attributes id="C-clone-meta"/> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_order first="A-clone" first-action="start" id="order-A-clone-B-clone-mandatory" then="B-clone" then-action="start"/> ++ <rsc_colocation id="colocation-B-clone-A-clone-INFINITY" rsc="B-clone" score="INFINITY" with-rsc="A-clone"/> ++ <rsc_order first="B-clone" first-action="start" id="order-B-clone-C-clone-mandatory" require-all="false" then="C-clone" then-action="start"/> ++ <rsc_location id="location-A-clone-rhel7-auto1--INFINITY" node="rhel7-auto1" rsc="A-clone" score="-INFINITY"/> ++ <rsc_location id="location-A-clone-rhel7-auto2--INFINITY" node="rhel7-auto2" rsc="A-clone" score="-INFINITY"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="4" uname="rhel7-auto4" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="4"> ++ <instance_attributes id="status-4"> ++ <nvpair id="status-4-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;10:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679798" last-rc-change="1420679798" exec-time="1071" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="30:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;30:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="30" rc-code="0" op-status="0" interval="0" last-run="1420680528" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="31:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;31:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="31" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="28:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;28:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="28" rc-code="0" op-status="0" interval="0" last-run="1420680528" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="29:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;29:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="29" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="26:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;26:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="26" rc-code="0" op-status="0" interval="0" last-run="1420680528" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto4" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="27:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;27:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="27" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;8:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679799" last-rc-change="1420679799" exec-time="1070" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="21:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;21:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680244" last-rc-change="1420680244" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="A_monitor_10000" operation_key="A_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;14:5:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="11" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680105" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;28:15:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680244" last-rc-change="1420680244" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="B_monitor_10000" operation_key="B_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;30:7:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="17" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680112" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;28:16:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680271" last-rc-change="1420680271" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="46:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;46:9:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="23" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680121" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;11:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1420679801" last-rc-change="1420679801" exec-time="88" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;12:3:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1420679801" exec-time="64" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="27:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;27:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1420680232" last-rc-change="1420680232" exec-time="33" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="38:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;38:13:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680232" last-rc-change="1420680232" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="32:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;32:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="32" rc-code="0" op-status="0" interval="0" last-run="1420680528" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="33:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;33:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="33" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="6:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:7;6:3:7:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1420679798" last-rc-change="1420679798" exec-time="1070" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="A" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="A_last_0" operation_key="A_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="25:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;25:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="27" rc-code="0" op-status="0" interval="0" last-run="1420680238" last-rc-change="1420680238" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="B" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="B_last_0" operation_key="B_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="34:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" transition-magic="0:0;34:14:0:0abc4e71-eceb-4fae-bc05-3c9935bff1de" call-id="25" rc-code="0" op-status="0" interval="0" last-run="1420680238" last-rc-change="1420680238" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="C" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="C_last_0" operation_key="C_start_0" operation="start" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="30:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;30:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="30" rc-code="0" op-status="0" interval="0" last-run="1420680528" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="C_monitor_10000" operation_key="C_monitor_10000" operation="monitor" crm-debug-origin="crm_simulate" crm_feature_set="3.0.9" transition-key="31:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" transition-magic="0:0;31:-1:0:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" call-id="31" rc-code="0" op-status="0" interval="10000" last-rc-change="1420680528" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/xml/constraints-2.3.rng b/xml/constraints-2.3.rng +new file mode 100644 +index 0000000..d9a4701 +--- /dev/null ++++ b/xml/constraints-2.3.rng +@@ -0,0 +1,252 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<grammar xmlns="http://relaxng.org/ns/structure/1.0" ++ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> ++ <start> ++ <ref name="element-constraints"/> ++ </start> ++ ++ <define name="element-constraints"> ++ <element name="constraints"> ++ <zeroOrMore> ++ <choice> ++ <ref name="element-location"/> ++ <ref name="element-colocation"/> ++ <ref name="element-order"/> ++ <ref name="element-rsc_ticket"/> ++ </choice> ++ </zeroOrMore> ++ </element> ++ </define> ++ ++ <define name="element-location"> ++ <element name="rsc_location"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <choice> ++ <group> ++ <attribute name="rsc"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ </group> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ </choice> ++ <choice> ++ <group> ++ <externalRef href="score.rng"/> ++ <attribute name="node"><text/></attribute> ++ </group> ++ <oneOrMore> ++ <externalRef href="rule.rng"/> ++ </oneOrMore> ++ </choice> ++ <optional> ++ <ref name="element-lifetime"/> ++ </optional> ++ <optional> ++ <attribute name="resource-discovery"> ++ <ref name="attribute-discovery"/> ++ </attribute> ++ </optional> ++ </element> ++ </define> ++ ++ <define name="element-resource-set"> ++ <element name="resource_set"> ++ <choice> ++ <attribute name="id-ref"><data type="IDREF"/></attribute> ++ <group> ++ <attribute name="id"><data type="ID"/></attribute> ++ <optional> ++ <attribute name="sequential"><data type="boolean"/></attribute> ++ </optional> ++ <optional> ++ <attribute name="require-all"><data type="boolean"/></attribute> ++ </optional> ++ <optional> ++ <attribute name="ordering"> ++ <choice> ++ <value>group</value> ++ <value>listed</value> ++ </choice> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="action"> ++ <ref name="attribute-actions"/> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ <optional> ++ <externalRef href="score.rng"/> ++ </optional> ++ <oneOrMore> ++ <element name="resource_ref"> ++ <attribute name="id"><data type="IDREF"/></attribute> ++ </element> ++ </oneOrMore> ++ </group> ++ </choice> ++ </element> ++ </define> ++ ++ <define name="element-colocation"> ++ <element name="rsc_colocation"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <optional> ++ <choice> ++ <externalRef href="score.rng"/> ++ <attribute name="score-attribute"><text/></attribute> ++ <attribute name="score-attribute-mangle"><text/></attribute> ++ </choice> ++ </optional> ++ <optional> ++ <ref name="element-lifetime"/> ++ </optional> ++ <choice> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ <group> ++ <attribute name="rsc"><data type="IDREF"/></attribute> ++ <attribute name="with-rsc"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="node-attribute"><text/></attribute> ++ </optional> ++ <optional> ++ <attribute name="rsc-role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="with-rsc-role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ </group> ++ </choice> ++ </element> ++ </define> ++ ++ <define name="element-order"> ++ <element name="rsc_order"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <optional> ++ <ref name="element-lifetime"/> ++ </optional> ++ <optional> ++ <attribute name="symmetrical"><data type="boolean"/></attribute> ++ </optional> ++ <optional> ++ <attribute name="require-all"><data type="boolean"/></attribute> ++ </optional> ++ <optional> ++ <choice> ++ <externalRef href="score.rng"/> ++ <attribute name="kind"> ++ <ref name="order-types"/> ++ </attribute> ++ </choice> ++ </optional> ++ <choice> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ <group> ++ <attribute name="first"><data type="IDREF"/></attribute> ++ <attribute name="then"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="first-action"> ++ <ref name="attribute-actions"/> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="then-action"> ++ <ref name="attribute-actions"/> ++ </attribute> ++ </optional> ++ </group> ++ </choice> ++ </element> ++ </define> ++ ++ <define name="element-rsc_ticket"> ++ <element name="rsc_ticket"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <choice> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ <group> ++ <attribute name="rsc"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="rsc-role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ </group> ++ </choice> ++ <attribute name="ticket"><text/></attribute> ++ <optional> ++ <attribute name="loss-policy"> ++ <choice> ++ <value>stop</value> ++ <value>demote</value> ++ <value>fence</value> ++ <value>freeze</value> ++ </choice> ++ </attribute> ++ </optional> ++ </element> ++ </define> ++ ++ <define name="attribute-discovery"> ++ <choice> ++ <value>always</value> ++ <value>never</value> ++ <value>exclusive</value> ++ </choice> ++ </define> ++ ++ <define name="attribute-actions"> ++ <choice> ++ <value>start</value> ++ <value>promote</value> ++ <value>demote</value> ++ <value>stop</value> ++ </choice> ++ </define> ++ ++ <define name="attribute-roles"> ++ <choice> ++ <value>Stopped</value> ++ <value>Started</value> ++ <value>Master</value> ++ <value>Slave</value> ++ </choice> ++ </define> ++ ++ <define name="order-types"> ++ <choice> ++ <value>Optional</value> ++ <value>Mandatory</value> ++ <value>Serialize</value> ++ </choice> ++ </define> ++ ++ <define name="element-lifetime"> ++ <element name="lifetime"> ++ <oneOrMore> ++ <externalRef href="rule.rng"/> ++ </oneOrMore> ++ </element> ++ </define> ++ ++</grammar> +diff --git a/xml/constraints-next.rng b/xml/constraints-next.rng +index 0defe8f..9d11003 100644 +--- a/xml/constraints-next.rng ++++ b/xml/constraints-next.rng +@@ -154,6 +154,9 @@ + <attribute name="symmetrical"><data type="boolean"/></attribute> + </optional> + <optional> ++ <attribute name="require-all"><data type="boolean"/></attribute> ++ </optional> ++ <optional> + <choice> + <externalRef href="score.rng"/> + <attribute name="kind"> diff --git a/SOURCES/bz720543-pcmk-cib_allow_values_to_be_added_updated_and_removed_in_a_single_update.patch b/SOURCES/bz720543-pcmk-cib_allow_values_to_be_added_updated_and_removed_in_a_single_update.patch deleted file mode 100644 index 5ca2615..0000000 --- a/SOURCES/bz720543-pcmk-cib_allow_values_to_be_added_updated_and_removed_in_a_single_update.patch +++ /dev/null @@ -1,51 +0,0 @@ -commit fc48cd10b4daca72217d7be42cd8eb71984d454a -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Aug 30 17:51:06 2013 +1000 - - Feature: cib: Allow values to be added/updated and removed in a single update - - (cherry picked from commit 9819039f15277c05011c6100934167227cfd135d) - - Conflicts: - attrd/commands.c - -diff --git a/include/crm/cib.h b/include/crm/cib.h -index 7a694ac..5ff57eb 100644 ---- a/include/crm/cib.h -+++ b/include/crm/cib.h -@@ -63,6 +63,7 @@ enum cib_call_options { - cib_discard_reply = 0x00000010, - cib_no_children = 0x00000020, - cib_xpath_address = 0x00000040, -+ cib_mixed_update = 0x00000080, - cib_scope_local = 0x00000100, - cib_dryrun = 0x00000200, - cib_sync_call = 0x00001000, -diff --git a/lib/cib/cib_ops.c b/lib/cib/cib_ops.c -index 4e1196b..26ae373 100644 ---- a/lib/cib/cib_ops.c -+++ b/lib/cib/cib_ops.c -@@ -354,6 +354,23 @@ cib_process_modify(const char *op, int options, const char *section, xmlNode * r - } - } - -+ if(options & cib_mixed_update) { -+ int max = 0, lpc; -+ xmlXPathObjectPtr xpathObj = xpath_search(*result_cib, "//@__delete__"); -+ -+ if (xpathObj) { -+ max = numXpathResults(xpathObj); -+ crm_log_xml_info(*result_cib, "Mixed result"); -+ } -+ -+ for (lpc = 0; lpc < max; lpc++) { -+ xmlNode *match = getXpathResult(xpathObj, lpc); -+ crm_debug("Destroying %s", (char *)xmlGetNodePath(match)); -+ free_xml(match); -+ } -+ -+ freeXpathObject(xpathObj); -+ } - return pcmk_ok; - } - diff --git a/SOURCES/bz720543-pcmk-cli_do_not_enabled_blackbox_for_cli_tools.patch b/SOURCES/bz720543-pcmk-cli_do_not_enabled_blackbox_for_cli_tools.patch deleted file mode 100644 index b11e0d8..0000000 --- a/SOURCES/bz720543-pcmk-cli_do_not_enabled_blackbox_for_cli_tools.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 32a30ee51d3d16e4ad33c329c047030f3060afe0 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Oct 3 21:01:38 2013 +1000 - - Fix: cli: Do not enabled blackbox for cli tools - - (cherry picked from commit ab0f2fede2a8ddfa250a8ea5e57fea0b79348edb) - -diff --git a/lib/common/logging.c b/lib/common/logging.c -index 84884ac..0b85093 100644 ---- a/lib/common/logging.c -+++ b/lib/common/logging.c -@@ -697,7 +697,7 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - crm_add_logfile(logfile); - } - -- if (daemon_option_enabled(crm_system_name, "blackbox")) { -+ if (crm_is_daemon && daemon_option_enabled(crm_system_name, "blackbox")) { - crm_enable_blackbox(0); - } - diff --git a/SOURCES/bz720543-pcmk-command_line_tools_should_stop_after_an_assertion_failure.patch b/SOURCES/bz720543-pcmk-command_line_tools_should_stop_after_an_assertion_failure.patch deleted file mode 100644 index b442646..0000000 --- a/SOURCES/bz720543-pcmk-command_line_tools_should_stop_after_an_assertion_failure.patch +++ /dev/null @@ -1,96 +0,0 @@ -commit 5a743a9378faf251d03f19f37facd2ddfc19989b -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Aug 6 13:36:45 2013 +1000 - - Fix: Command-line tools should stop after an assertion failure - - (cherry picked from commit 912db519b293ab18840c36e0b5d91b3ee6e205dd) - -diff --git a/lib/common/logging.c b/lib/common/logging.c -index 0b85093..571cd03 100644 ---- a/lib/common/logging.c -+++ b/lib/common/logging.c -@@ -46,6 +46,7 @@ unsigned int crm_log_priority = LOG_NOTICE; - unsigned int crm_log_level = LOG_INFO; - static gboolean crm_tracing_enabled(void); - unsigned int crm_trace_nonlog = 0; -+bool crm_is_daemon = 0; - - #ifdef HAVE_G_LOG_SET_DEFAULT_HANDLER - GLogFunc glib_log_default; -@@ -626,6 +627,8 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - const char *facility = daemon_option("logfacility"); - const char *f_copy = facility; - -+ crm_is_daemon = daemon; -+ - if (crm_trace_nonlog == 0) { - crm_trace_nonlog = g_quark_from_static_string("Pacemaker non-logging tracepoint"); - } -@@ -711,11 +714,11 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - qb_log_ctl(QB_LOG_SYSLOG, QB_LOG_CONF_ENABLED, QB_FALSE); - } - -- if (daemon) { -+ if (crm_is_daemon) { - set_daemon_option("logfacility", facility); - } - -- if (daemon && crm_tracing_enabled() -+ if (crm_is_daemon && crm_tracing_enabled() - && qb_log_ctl(QB_LOG_STDERR, QB_LOG_CONF_STATE_GET, 0) != QB_LOG_STATE_ENABLED - && qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_STATE_GET, 0) != QB_LOG_STATE_ENABLED) { - /* Make sure tracing goes somewhere */ -@@ -725,20 +728,20 @@ crm_log_init(const char *entity, int level, gboolean daemon, gboolean to_stderr, - crm_update_callsites(); - - /* Ok, now we can start logging... */ -- if (quiet == FALSE && daemon == FALSE) { -+ if (quiet == FALSE && crm_is_daemon == FALSE) { - crm_log_args(argc, argv); - } - -- if (daemon) { -+ if (crm_is_daemon) { - const char *user = getenv("USER"); - - if (user != NULL && safe_str_neq(user, "root") && safe_str_neq(user, CRM_DAEMON_USER)) { - crm_trace("Not switching to corefile directory for %s", user); -- daemon = FALSE; -+ crm_is_daemon = FALSE; - } - } - -- if (daemon) { -+ if (crm_is_daemon) { - int user = getuid(); - const char *base = CRM_CORE_DIR; - struct passwd *pwent = getpwuid(user); -diff --git a/lib/common/utils.c b/lib/common/utils.c -index 069b5c8..527c9e0 100644 ---- a/lib/common/utils.c -+++ b/lib/common/utils.c -@@ -1085,6 +1085,8 @@ filter_reload_parameters(xmlNode * param_set, const char *restart_string) - } - } - -+extern bool crm_is_daemon; -+ - /* coverity[+kill] */ - void - crm_abort(const char *file, const char *function, int line, -@@ -1097,6 +1099,14 @@ crm_abort(const char *file, const char *function, int line, - /* Implied by the parent's error logging below */ - /* crm_write_blackbox(0); */ - -+ if(crm_is_daemon == FALSE) { -+ /* This is a command line tool - do not fork */ -+ -+ /* crm_add_logfile(NULL); * Record it to a file? */ -+ crm_enable_stderr(TRUE); /* Make sure stderr is enabled so we can tell the caller */ -+ do_fork = FALSE; /* Just crash if needed */ -+ } -+ - if (do_core == FALSE) { - crm_err("%s: Triggered assert at %s:%d : %s", function, file, line, assert_condition); - return; diff --git a/SOURCES/bz720543-pcmk-corosync_attempt_to_retrieve_a_peer_s_node_name_if_it_is_not_already_known.patch b/SOURCES/bz720543-pcmk-corosync_attempt_to_retrieve_a_peer_s_node_name_if_it_is_not_already_known.patch deleted file mode 100644 index f07c89d..0000000 --- a/SOURCES/bz720543-pcmk-corosync_attempt_to_retrieve_a_peer_s_node_name_if_it_is_not_already_known.patch +++ /dev/null @@ -1,41 +0,0 @@ -commit bcd7ef60b00462c6a55ae1ce2f3ea45391059368 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Nov 14 11:25:20 2013 +1100 - - Bug cl#5179 - Corosync: Attempt to retrieve a peer's node name if it is not already known - - (cherry picked from commit 441978e42a41fcfca3f4b41a1458d8a9c171dd63) - -diff --git a/lib/cluster/membership.c b/lib/cluster/membership.c -index e7d5b69..b4c8ba7 100644 ---- a/lib/cluster/membership.c -+++ b/lib/cluster/membership.c -@@ -270,6 +270,7 @@ crm_get_peer(unsigned int id, const char *uname) - crm_node_t *node = NULL; - crm_node_t *by_id = NULL; - crm_node_t *by_name = NULL; -+ char *uname_lookup = NULL; - - CRM_ASSERT(id > 0 || uname != NULL); - -@@ -357,6 +358,12 @@ crm_get_peer(unsigned int id, const char *uname) - g_hash_table_replace(crm_peer_cache, uniqueid, node); - } - -+ if(id && uname == NULL && node->uname == NULL) { -+ uname_lookup = get_node_name(id); -+ uname = uname_lookup; -+ crm_trace("Inferred a name of '%s' for node %u", uname, id); -+ } -+ - if(id > 0 && uname && (node->id == 0 || node->uname == NULL)) { - crm_info("Node %u is now known as %s", id, uname); - } -@@ -393,6 +400,7 @@ crm_get_peer(unsigned int id, const char *uname) - } - } - -+ free(uname_lookup); - return node; - } - diff --git a/SOURCES/bz720543-pcmk-crm_report_do_not_print_garbage_when_collecting_from_the_local_node.patch b/SOURCES/bz720543-pcmk-crm_report_do_not_print_garbage_when_collecting_from_the_local_node.patch deleted file mode 100644 index ec44c63..0000000 --- a/SOURCES/bz720543-pcmk-crm_report_do_not_print_garbage_when_collecting_from_the_local_node.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 9b488a436dcdba49bd3b5e5365eb9ac44719d308 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Sep 4 14:46:23 2013 +1000 - - Fix: crm_report: Do not print garbage when collecting from the local node - - (cherry picked from commit 2c78ded0c66dc2f113ed1620efeaef51fdb489e5) - -diff --git a/tools/report.collector b/tools/report.collector -index 1667364..62cbe8b 100644 ---- a/tools/report.collector -+++ b/tools/report.collector -@@ -748,8 +748,6 @@ done - - if [ -e $REPORT_HOME/.env ]; then - debug "Localhost: $REPORT_MASTER $REPORT_TARGET" -- # Need to send something back or tar on the caller will complain -- (cd $REPORT_HOME && tar cf - .env) - - elif [ "$REPORT_MASTER" != "$REPORT_TARGET" ]; then - debug "Streaming report back to $REPORT_MASTER" diff --git a/SOURCES/bz720543-pcmk-crm_report_record_the_output_of_the_collector.patch b/SOURCES/bz720543-pcmk-crm_report_record_the_output_of_the_collector.patch deleted file mode 100644 index 91e5000..0000000 --- a/SOURCES/bz720543-pcmk-crm_report_record_the_output_of_the_collector.patch +++ /dev/null @@ -1,42 +0,0 @@ -commit c3fb9d983fbbcc7f19908c384cd29656e0620ec3 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Sep 4 12:54:37 2013 +1000 - - Feature: crm_report: Record the output of the collector - - (cherry picked from commit 494a01897f07327ec475a86957b8fc7fd3ad362c) - -diff --git a/tools/report.common.in b/tools/report.common.in -index c4023a8..9742f1c 100644 ---- a/tools/report.common.in -+++ b/tools/report.common.in -@@ -72,15 +72,29 @@ glibc - # - # keep the user posted - # -+record() { -+ if [ x != x"$REPORT_HOME" -a -d "${REPORT_HOME}/$shorthost" ]; then -+ rec="${REPORT_HOME}/$shorthost/report.out" -+ -+ elif [ x != x"${l_base}" ]; then -+ rec="${l_base}/report.summary" -+ -+ else -+ rec="/dev/null" -+ fi -+ printf "%-10s $*\n" "$shorthost:" 2>&1 >> "${rec}" -+} - - log() { - printf "%-10s $*\n" "$shorthost:" 1>&2 -+ record "$*" - } - - debug() { - if [ $verbose -gt 0 ]; then - log "Debug: $*" - fi -+ record "Debug: $*" - } - - info() { diff --git a/SOURCES/bz720543-pcmk-crm_resource_wait_for_all_replies_when_cleaning_up_resources.patch b/SOURCES/bz720543-pcmk-crm_resource_wait_for_all_replies_when_cleaning_up_resources.patch deleted file mode 100644 index ff7c066..0000000 --- a/SOURCES/bz720543-pcmk-crm_resource_wait_for_all_replies_when_cleaning_up_resources.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit 8da149c887c80b1bcf778089268b060e014159ef -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Oct 3 17:01:38 2013 +1000 - - Fix: crm_resource: Wait for all replies when cleaning up resources - - (cherry picked from commit 62e59ab2ad211cef798792632ad7df4f8a5c3418) - -diff --git a/tools/crm_resource.c b/tools/crm_resource.c -index 44d96b0..c03501d 100644 ---- a/tools/crm_resource.c -+++ b/tools/crm_resource.c -@@ -801,11 +801,15 @@ delete_lrm_rsc(cib_t *cib_conn, crm_ipc_t * crmd_channel, const char *host_uname - - printf("Cleaning up %s on %s\n", rsc->id, host_uname); - rc = send_lrm_rsc_op(crmd_channel, CRM_OP_LRM_DELETE, host_uname, rsc->id, TRUE, data_set); -+ - if (rc == pcmk_ok) { - char *attr_name = NULL; - const char *id = rsc->id; - node_t *node = pe_find_node(data_set->nodes, host_uname); - -+ if(node->details->remote_rsc == NULL) { -+ crmd_replies_needed++; -+ } - if (rsc->clone_name) { - id = rsc->clone_name; - } -@@ -2165,6 +2169,7 @@ main(int argc, char **argv) - - crm_debug("Re-checking the state of %s on %s", rsc_id, host_uname); - if(rsc) { -+ crmd_replies_needed = 0; - rc = delete_lrm_rsc(cib_conn, crmd_channel, host_uname, rsc, &data_set); - } else { - rc = -ENODEV; diff --git a/SOURCES/bz720543-pcmk-crmd_cache_rsc_info_retrieved_from_lrmd_and_pacemaker_remoted.patch b/SOURCES/bz720543-pcmk-crmd_cache_rsc_info_retrieved_from_lrmd_and_pacemaker_remoted.patch deleted file mode 100644 index 9d12301..0000000 --- a/SOURCES/bz720543-pcmk-crmd_cache_rsc_info_retrieved_from_lrmd_and_pacemaker_remoted.patch +++ /dev/null @@ -1,112 +0,0 @@ -commit 701e10aba853afb4cd1ab4a1e4e3dd64ea96e907 -Author: David Vossel <dvossel@redhat.com> -Date: Thu Oct 10 17:22:29 2013 -0500 - - Low: crmd: Cache rsc_info retrieved from lrmd and pacemaker_remoted - - (cherry picked from commit d65b2703d2107665365b0db06cff67386981e346) - -diff --git a/crmd/crmd_lrm.h b/crmd/crmd_lrm.h -index d0ca58c..2239638 100644 ---- a/crmd/crmd_lrm.h -+++ b/crmd/crmd_lrm.h -@@ -56,6 +56,8 @@ typedef struct lrm_state_s { - GHashTable *pending_ops; - GHashTable *deletion_ops; - -+ GHashTable *rsc_info_cache; -+ - int num_lrm_register_fails; - } lrm_state_t; - -diff --git a/crmd/lrm_state.c b/crmd/lrm_state.c -index b1b1b7f..57eb87e 100644 ---- a/crmd/lrm_state.c -+++ b/crmd/lrm_state.c -@@ -60,6 +60,13 @@ history_cache_destroy(gpointer data) - free(entry->id); - free(entry); - } -+static void -+free_rsc_info(gpointer value) -+{ -+ lrmd_rsc_info_t *rsc_info = value; -+ -+ lrmd_free_rsc_info(rsc_info); -+} - - static void - free_deletion_op(gpointer value) -@@ -99,6 +106,9 @@ lrm_state_create(const char *node_name) - - state->node_name = strdup(node_name); - -+ state->rsc_info_cache = g_hash_table_new_full(crm_str_hash, -+ g_str_equal, NULL, free_rsc_info); -+ - state->deletion_ops = g_hash_table_new_full(crm_str_hash, - g_str_equal, g_hash_destroy_str, free_deletion_op); - -@@ -146,6 +156,10 @@ internal_lrm_state_destroy(gpointer data) - remote_ra_cleanup(lrm_state); - lrmd_api_delete(lrm_state->conn); - -+ if (lrm_state->rsc_info_cache) { -+ crm_trace("Destroying rsc info cache with %d members", g_hash_table_size(lrm_state->rsc_info_cache)); -+ g_hash_table_destroy(lrm_state->rsc_info_cache); -+ } - if (lrm_state->resource_history) { - crm_trace("Destroying history op cache with %d members", g_hash_table_size(lrm_state->resource_history)); - g_hash_table_destroy(lrm_state->resource_history); -@@ -181,6 +195,11 @@ lrm_state_reset_tables(lrm_state_t * lrm_state) - g_hash_table_size(lrm_state->pending_ops)); - g_hash_table_remove_all(lrm_state->pending_ops); - } -+ if (lrm_state->rsc_info_cache) { -+ crm_trace("Re-setting rsc info cache with %d members", -+ g_hash_table_size(lrm_state->rsc_info_cache)); -+ g_hash_table_remove_all(lrm_state->rsc_info_cache); -+ } - } - - static void -@@ -590,16 +609,28 @@ lrm_state_cancel(lrm_state_t * lrm_state, const char *rsc_id, const char *action - lrmd_rsc_info_t * - lrm_state_get_rsc_info(lrm_state_t * lrm_state, const char *rsc_id, enum lrmd_call_options options) - { -+ lrmd_rsc_info_t *rsc = NULL; -+ - if (!lrm_state->conn) { - return NULL; - } -- /* optimize this... this function is a synced round trip from client to daemon. -- * It should be possible to cache the resource info in the lrmd client to prevent this. */ - if (is_remote_lrmd_ra(NULL, NULL, rsc_id)) { - return remote_ra_get_rsc_info(lrm_state, rsc_id); - } - -- return ((lrmd_t *) lrm_state->conn)->cmds->get_rsc_info(lrm_state->conn, rsc_id, options); -+ rsc = g_hash_table_lookup(lrm_state->rsc_info_cache, rsc_id); -+ if (rsc == NULL) { -+ /* only contact the lrmd if we don't already have a cached rsc info */ -+ rsc = ((lrmd_t *) lrm_state->conn)->cmds->get_rsc_info(lrm_state->conn, rsc_id, options); -+ if (rsc == NULL) { -+ return NULL; -+ } -+ /* cache the result */ -+ g_hash_table_insert(lrm_state->rsc_info_cache, rsc->id, rsc); -+ } -+ -+ return lrmd_copy_rsc_info(rsc); -+ - } - - int -@@ -667,5 +698,7 @@ lrm_state_unregister_rsc(lrm_state_t * lrm_state, - return pcmk_ok; - } - -+ g_hash_table_remove(lrm_state->rsc_info_cache, rsc_id); -+ - return ((lrmd_t *) lrm_state->conn)->cmds->unregister_rsc(lrm_state->conn, rsc_id, options); - } diff --git a/SOURCES/bz720543-pcmk-crmd_correctly_update_expected_state_when_the_previous_dc_shuts_down.patch b/SOURCES/bz720543-pcmk-crmd_correctly_update_expected_state_when_the_previous_dc_shuts_down.patch deleted file mode 100644 index 9854a8f..0000000 --- a/SOURCES/bz720543-pcmk-crmd_correctly_update_expected_state_when_the_previous_dc_shuts_down.patch +++ /dev/null @@ -1,88 +0,0 @@ -commit 4443e76aaccb60fb49f7c32eb2c0a34e0965a291 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Oct 2 09:00:39 2013 +1000 - - Fix: crmd: Correctly update expected state when the previous DC shuts down - - (cherry picked from commit 25ebce69ecc07799b50cf6e0ca4704345e7cf336) - -diff --git a/crmd/join_dc.c b/crmd/join_dc.c -index b45fff2..5e6c827 100644 ---- a/crmd/join_dc.c -+++ b/crmd/join_dc.c -@@ -103,17 +103,19 @@ initialize_join(gboolean before) - static void - join_make_offer(gpointer key, gpointer value, gpointer user_data) - { -- const char *join_to = NULL; -- const crm_node_t *member = value; -+ xmlNode *offer = NULL; -+ crm_node_t *member = (crm_node_t *)value; - - CRM_ASSERT(member != NULL); - if (crm_is_peer_active(member) == FALSE) { -- crm_trace("Not making an offer to %s: not active", member->uname); -+ crm_info("Not making an offer to %s: not active (%s)", member->uname, member->state); -+ if(member->expected == NULL && safe_str_eq(member->state, CRM_NODE_LOST)) { -+ crm_update_peer_expected(__FUNCTION__, member, CRMD_JOINSTATE_DOWN); -+ } - return; - } - -- join_to = member->uname; -- if (join_to == NULL) { -+ if (member->uname == NULL) { - crm_err("No recipient for welcome message"); - return; - } -@@ -130,26 +132,18 @@ join_make_offer(gpointer key, gpointer value, gpointer user_data) - - crm_update_peer_join(__FUNCTION__, (crm_node_t*)member, crm_join_none); - -- if (crm_is_peer_active(member)) { -- crm_node_t *peer = crm_get_peer(0, join_to); -- xmlNode *offer = create_request(CRM_OP_JOIN_OFFER, NULL, join_to, -- CRM_SYSTEM_CRMD, CRM_SYSTEM_DC, NULL); -- -- crm_xml_add_int(offer, F_CRM_JOIN_ID, current_join_id); -- /* send the welcome */ -- crm_info("join-%d: Sending offer to %s", current_join_id, join_to); -+ offer = create_request(CRM_OP_JOIN_OFFER, NULL, member->uname, -+ CRM_SYSTEM_CRMD, CRM_SYSTEM_DC, NULL); - -- send_cluster_message(peer, crm_msg_crmd, offer, TRUE); -- free_xml(offer); -+ crm_xml_add_int(offer, F_CRM_JOIN_ID, current_join_id); -+ /* send the welcome */ -+ crm_info("join-%d: Sending offer to %s", current_join_id, member->uname); - -- crm_update_peer_join(__FUNCTION__, peer, crm_join_welcomed); -- /* crm_update_peer_expected(__FUNCTION__, member, CRMD_JOINSTATE_PENDING); */ -- -- } else { -- crm_info("Peer process on %s is not active (yet?): %.8lx %d", -- join_to, (long)member->processes, g_hash_table_size(crm_peer_cache)); -- } -+ send_cluster_message(member, crm_msg_crmd, offer, TRUE); -+ free_xml(offer); - -+ crm_update_peer_join(__FUNCTION__, member, crm_join_welcomed); -+ /* crm_update_peer_expected(__FUNCTION__, member, CRMD_JOINSTATE_PENDING); */ - } - - /* A_DC_JOIN_OFFER_ALL */ -diff --git a/lib/cluster/membership.c b/lib/cluster/membership.c -index e3082b4..e7d5b69 100644 ---- a/lib/cluster/membership.c -+++ b/lib/cluster/membership.c -@@ -532,8 +532,8 @@ crm_update_peer_expected(const char *source, crm_node_t * node, const char *expe - } - - if (changed) { -- crm_info("%s: Node %s[%u] - expected state is now %s", source, node->uname, node->id, -- expected); -+ crm_info("%s: Node %s[%u] - expected state is now %s (was %s)", source, node->uname, node->id, -+ expected, last); - free(last); - } else { - crm_trace("%s: Node %s[%u] - expected state is unchanged (%s)", source, node->uname, diff --git a/SOURCES/bz720543-pcmk-crmd_don_t_add_node_state_to_cib_if_we_have_not_seen_or_fenced_this_node_yet.patch b/SOURCES/bz720543-pcmk-crmd_don_t_add_node_state_to_cib_if_we_have_not_seen_or_fenced_this_node_yet.patch deleted file mode 100644 index a4d8612..0000000 --- a/SOURCES/bz720543-pcmk-crmd_don_t_add_node_state_to_cib_if_we_have_not_seen_or_fenced_this_node_yet.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit e03e4f32fca5857618603e3e1c9500dbf3d348ef -Author: Lars Ellenberg <lars.ellenberg@linbit.com> -Date: Fri Aug 2 14:33:57 2013 +1000 - - Fix: crmd: Don't add node_state to cib, if we have not seen or fenced this node yet - - Also fixes the incredibly dangerous option: startup-fencing=false - - (cherry picked from commit ac7aa1c94f317fc1d4024fbc09b012bc9f1b229e) - -diff --git a/crmd/membership.c b/crmd/membership.c -index e2bcd45..d102db0 100644 ---- a/crmd/membership.c -+++ b/crmd/membership.c -@@ -131,8 +131,14 @@ xmlNode * - do_update_node_cib(crm_node_t * node, int flags, xmlNode * parent, const char *source) - { - const char *value = NULL; -- xmlNode *node_state = create_xml_node(parent, XML_CIB_TAG_STATE); -+ xmlNode *node_state; - -+ if (!node->state) { -+ crm_info("Node update for %s cancelled: no state, not seen yet", node->uname); -+ return NULL; -+ } -+ -+ node_state = create_xml_node(parent, XML_CIB_TAG_STATE); - set_uuid(node_state, XML_ATTR_UUID, node); - - if (crm_element_value(node_state, XML_ATTR_UUID) == NULL) { diff --git a/SOURCES/bz720543-pcmk-crmd_pad_internal_lrmd_rsc_info_and_metadata_retrieval_timeout.patch b/SOURCES/bz720543-pcmk-crmd_pad_internal_lrmd_rsc_info_and_metadata_retrieval_timeout.patch deleted file mode 100644 index 732e869..0000000 --- a/SOURCES/bz720543-pcmk-crmd_pad_internal_lrmd_rsc_info_and_metadata_retrieval_timeout.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 21172ada434f549515d4480e821872b8cbd12566 -Author: David Vossel <dvossel@redhat.com> -Date: Thu Oct 10 17:30:40 2013 -0500 - - Low: crmd: Pad internal lrmd rsc_info and metadata retrieval timeout - - (cherry picked from commit 5c21a6b6e7789da50111f3d955593c7fbda1ddc2) - -diff --git a/lib/lrmd/lrmd_client.c b/lib/lrmd/lrmd_client.c -index e577293..d037022 100644 ---- a/lib/lrmd/lrmd_client.c -+++ b/lib/lrmd/lrmd_client.c -@@ -1437,7 +1437,7 @@ lrmd_api_get_rsc_info(lrmd_t * lrmd, const char *rsc_id, enum lrmd_call_options - - crm_xml_add(data, F_LRMD_ORIGIN, __FUNCTION__); - crm_xml_add(data, F_LRMD_RSC_ID, rsc_id); -- lrmd_send_command(lrmd, LRMD_OP_RSC_INFO, data, &output, 0, options, TRUE); -+ lrmd_send_command(lrmd, LRMD_OP_RSC_INFO, data, &output, 30000, options, TRUE); - free_xml(data); - - if (!output) { -@@ -1743,7 +1743,7 @@ generic_get_metadata(const char *standard, const char *provider, const char *typ - type, - "meta-data", - 0, -- 5000, -+ 30000, - NULL); - - if (!(services_action_sync(action))) { diff --git a/SOURCES/bz720543-pcmk-fencing_allow_fencing_for_node_after_topology_entries_are_deleted.patch b/SOURCES/bz720543-pcmk-fencing_allow_fencing_for_node_after_topology_entries_are_deleted.patch deleted file mode 100644 index b01bc8e..0000000 --- a/SOURCES/bz720543-pcmk-fencing_allow_fencing_for_node_after_topology_entries_are_deleted.patch +++ /dev/null @@ -1,45 +0,0 @@ -commit ca9ea8de96463d137f64977a01517bf794d1f4e4 -Author: David Vossel <dvossel@redhat.com> -Date: Tue Oct 1 18:26:56 2013 -0500 - - Fix: fencing: Allow fencing for node after topology entries are deleted - - (cherry picked from commit 57de742c237ac5c01b4a7ead70003cbaffed9a3e) - -diff --git a/fencing/remote.c b/fencing/remote.c -index 525f1d7..af4fb9e 100644 ---- a/fencing/remote.c -+++ b/fencing/remote.c -@@ -374,6 +374,23 @@ remote_op_query_timeout(gpointer data) - return FALSE; - } - -+static gboolean -+topology_is_empty(stonith_topology_t *tp) -+{ -+ int i; -+ -+ if (tp == NULL) { -+ return TRUE; -+ } -+ -+ for (i = 0; i < ST_LEVEL_MAX; i++) { -+ if (tp->levels[i] != NULL) { -+ return FALSE; -+ } -+ } -+ return TRUE; -+} -+ - static int - stonith_topology_next(remote_fencing_op_t * op) - { -@@ -383,7 +400,7 @@ stonith_topology_next(remote_fencing_op_t * op) - /* Queries don't have a target set */ - tp = g_hash_table_lookup(topology, op->target); - } -- if (tp == NULL) { -+ if (topology_is_empty(tp)) { - return pcmk_ok; - } - diff --git a/SOURCES/bz720543-pcmk-fencing_deep_copy_current_topology_level_list_on_remote_op.patch b/SOURCES/bz720543-pcmk-fencing_deep_copy_current_topology_level_list_on_remote_op.patch deleted file mode 100644 index 99f1ed7..0000000 --- a/SOURCES/bz720543-pcmk-fencing_deep_copy_current_topology_level_list_on_remote_op.patch +++ /dev/null @@ -1,68 +0,0 @@ -commit 5cc40550ed6f385eb25042b1ab14339a760de1e8 -Author: David Vossel <dvossel@redhat.com> -Date: Thu Oct 17 20:34:48 2013 -0500 - - Fix: fencing: Deep copy current topology level list on remote op - - (cherry picked from commit ef29a502e0e0506fd52fc60e51e06ffd6c375f4a) - -diff --git a/fencing/internal.h b/fencing/internal.h -index 11a8c58..da510c3 100644 ---- a/fencing/internal.h -+++ b/fencing/internal.h -@@ -105,6 +105,8 @@ typedef struct remote_fencing_op_s { - /*! The current topology level being executed */ - guint level; - /*! The device list of all the devices at the current executing topology level. */ -+ GListPtr devices_list; -+ /*! Current entry in the topology device list */ - GListPtr devices; - - /*! List of duplicate operations attached to this operation. Once this operation -diff --git a/fencing/remote.c b/fencing/remote.c -index af4fb9e..8c8df6d 100644 ---- a/fencing/remote.c -+++ b/fencing/remote.c -@@ -124,6 +124,10 @@ free_remote_op(gpointer data) - free_xml(op->request); - op->request = NULL; - } -+ if (op->devices_list) { -+ g_list_free_full(op->devices_list, free); -+ op->devices_list = NULL; -+ } - free(op); - } - -@@ -391,6 +395,22 @@ topology_is_empty(stonith_topology_t *tp) - return TRUE; - } - -+/* deep copy the device list */ -+static void -+set_op_device_list(remote_fencing_op_t * op, GListPtr devices) -+{ -+ GListPtr lpc = NULL; -+ -+ if (op->devices_list) { -+ g_list_free_full(op->devices_list, free); -+ op->devices_list = NULL; -+ } -+ for (lpc = devices; lpc != NULL; lpc = lpc->next) { -+ op->devices_list = g_list_append(op->devices_list, strdup(lpc->data)); -+ } -+ op->devices = op->devices_list; -+} -+ - static int - stonith_topology_next(remote_fencing_op_t * op) - { -@@ -415,7 +435,7 @@ stonith_topology_next(remote_fencing_op_t * op) - crm_trace("Attempting fencing level %d for %s (%d devices) - %s@%s.%.8s", - op->level, op->target, g_list_length(tp->levels[op->level]), - op->client_name, op->originator, op->id); -- op->devices = tp->levels[op->level]; -+ set_op_device_list(op, tp->levels[op->level]); - return pcmk_ok; - } - diff --git a/SOURCES/bz720543-pcmk-fencing_do_not_broadcast_suicide_if_the_on_action_is_being_executed.patch b/SOURCES/bz720543-pcmk-fencing_do_not_broadcast_suicide_if_the_on_action_is_being_executed.patch deleted file mode 100644 index f8f6965..0000000 --- a/SOURCES/bz720543-pcmk-fencing_do_not_broadcast_suicide_if_the_on_action_is_being_executed.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit c041f6362e9e33e78e2645ae7c10f5aa2ad41874 -Author: David Vossel <dvossel@redhat.com> -Date: Tue Oct 1 17:12:17 2013 -0500 - - Low: fencing: Do not broadcast suicide if the on action is being executed - - (cherry picked from commit fd5d4e2f3b61a614f92781bd4280efe282bc142a) - -diff --git a/fencing/commands.c b/fencing/commands.c -index 7d04952..909dc24 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -1352,7 +1352,7 @@ stonith_send_async_reply(async_command_t * cmd, const char *output, int rc, GPid - crm_str_eq(cmd->action, "list", TRUE) || crm_str_eq(cmd->action, "status", TRUE)) { - crm_trace("Never broadcast %s replies", cmd->action); - -- } else if (!stand_alone && safe_str_eq(cmd->origin, cmd->victim)) { -+ } else if (!stand_alone && safe_str_eq(cmd->origin, cmd->victim) && safe_str_neq(cmd->action, "on")) { - crm_trace("Broadcast %s reply for %s", cmd->action, cmd->victim); - crm_xml_add(reply, F_SUBTYPE, "broadcast"); - bcast = TRUE; diff --git a/SOURCES/bz720543-pcmk-ipc_raise_the_default_buffer_size_to_128k.patch b/SOURCES/bz720543-pcmk-ipc_raise_the_default_buffer_size_to_128k.patch deleted file mode 100644 index d0ea458..0000000 --- a/SOURCES/bz720543-pcmk-ipc_raise_the_default_buffer_size_to_128k.patch +++ /dev/null @@ -1,75 +0,0 @@ -commit d42392c04d9f81a51d708723d978558690f5724b -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Sep 17 12:36:45 2013 +1000 - - Feature: ipc: Raise the default buffer size to 128k - - (cherry picked from commit 8196f23a829ed02edb887209bccc88dc851b198b) - -diff --git a/lib/common/ipc.c b/lib/common/ipc.c -index 2cd42bf..451bda5 100644 ---- a/lib/common/ipc.c -+++ b/lib/common/ipc.c -@@ -521,13 +521,6 @@ crm_ipc_prepare(uint32_t request, xmlNode * message, struct iovec ** result) - } else { - unsigned int new_size = 0; - -- if (total > biggest) { -- biggest = 2 * QB_MAX(total, biggest); -- crm_notice("Message exceeds the configured ipc limit (%d bytes), " -- "consider configuring PCMK_ipc_buffer to %d or higher " -- "to avoid compression overheads", ipc_buffer_max, biggest); -- } -- - if (crm_compress_string - (buffer, header->size_uncompressed, ipc_buffer_max, &compressed, &new_size)) { - -@@ -539,10 +532,15 @@ crm_ipc_prepare(uint32_t request, xmlNode * message, struct iovec ** result) - - free(buffer); - -+ if (header->size_compressed > biggest) { -+ biggest = 2 * QB_MAX(header->size_compressed, biggest); -+ } -+ - } else { - ssize_t rc = -EMSGSIZE; - - crm_log_xml_trace(message, "EMSGSIZE"); -+ biggest = 2 * QB_MAX(header->size_uncompressed, biggest); - - crm_err - ("Could not compress the message into less than the configured ipc limit (%d bytes)." -@@ -665,7 +663,7 @@ crm_ipcs_send_ack(crm_client_t * c, uint32_t request, const char *tag, const cha - /* Client... */ - - #define MIN_MSG_SIZE 12336 /* sizeof(struct qb_ipc_connection_response) */ --#define MAX_MSG_SIZE 50*1024 /* 50k default */ -+#define MAX_MSG_SIZE 128*1024 /* 128k default */ - - struct crm_ipc_s { - struct pollfd pfd; -@@ -1004,6 +1002,7 @@ crm_ipc_send(crm_ipc_t * client, xmlNode * message, enum crm_ipc_flags flags, in - long rc = 0; - struct iovec *iov; - static uint32_t id = 0; -+ static int factor = 8; - struct crm_ipc_response_header *header; - - crm_ipc_init(); -@@ -1041,6 +1040,15 @@ crm_ipc_send(crm_ipc_t * client, xmlNode * message, enum crm_ipc_flags flags, in - header = iov[0].iov_base; - header->flags |= flags; - -+ if(header->flags | crm_ipc_compressed) { -+ if(factor < 10 && (ipc_buffer_max / 10) < (rc / factor)) { -+ crm_notice("Compressed message exceeds %d0%% of the configured ipc limit (%d bytes), " -+ "consider setting PCMK_ipc_buffer to %d or higher", -+ factor, ipc_buffer_max, 2*ipc_buffer_max); -+ factor++; -+ } -+ } -+ - if (ms_timeout == 0) { - ms_timeout = 5000; - } diff --git a/SOURCES/bz720543-pcmk-ipc_use_the_higher_of_the_configured_buffer_size_or_the_default.patch b/SOURCES/bz720543-pcmk-ipc_use_the_higher_of_the_configured_buffer_size_or_the_default.patch deleted file mode 100644 index e862a7f..0000000 --- a/SOURCES/bz720543-pcmk-ipc_use_the_higher_of_the_configured_buffer_size_or_the_default.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit 20845c58bf1003225241dcefb47d7d71013aa432 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Oct 18 12:20:29 2013 +1100 - - Fix: ipc: Use the higher of the configured buffer size or the default - - (cherry picked from commit 87a34aa975ae2a114e964e3dd9c3c84a937c1979) - -diff --git a/lib/common/ipc.c b/lib/common/ipc.c -index 451bda5..435b392 100644 ---- a/lib/common/ipc.c -+++ b/lib/common/ipc.c -@@ -681,22 +681,19 @@ struct crm_ipc_s { - static int - pick_ipc_buffer(int max) - { -- const char *env = getenv("PCMK_ipc_buffer"); -+ static int global_max = 0; - -- if (env) { -- max = crm_parse_int(env, "0"); -- } -- -- if (max <= 0) { -- max = MAX_MSG_SIZE; -- } -+ if(global_max == 0) { -+ const char *env = getenv("PCMK_ipc_buffer"); - -- if (max < MIN_MSG_SIZE) { -- max = MIN_MSG_SIZE; -+ if (env) { -+ global_max = crm_parse_int(env, "0"); -+ } else { -+ global_max = MAX_MSG_SIZE; -+ } - } - -- crm_trace("Using max message size of %d", max); -- return max; -+ return QB_MAX(max, global_max); - } - - crm_ipc_t * diff --git a/SOURCES/bz720543-pcmk-iso8601_prevent_dates_from_jumping_backwards_a_day_in_some_timezones.patch b/SOURCES/bz720543-pcmk-iso8601_prevent_dates_from_jumping_backwards_a_day_in_some_timezones.patch deleted file mode 100644 index 12e6a68..0000000 --- a/SOURCES/bz720543-pcmk-iso8601_prevent_dates_from_jumping_backwards_a_day_in_some_timezones.patch +++ /dev/null @@ -1,20 +0,0 @@ -commit aa0e9c4d42f7ae4a856c5716444e9333b099013b -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Oct 2 09:02:19 2013 +1000 - - Fix: iso8601: Prevent dates from jumping backwards a day in some timezones - - (cherry picked from commit ed70b9864247030bc21163411b60a7e962068d88) - -diff --git a/lib/common/iso8601.c b/lib/common/iso8601.c -index d68e7e6..d88c519 100644 ---- a/lib/common/iso8601.c -+++ b/lib/common/iso8601.c -@@ -1115,7 +1115,6 @@ crm_time_add_seconds(crm_time_t * a_time, int extra) - days++; - } - -- days = 0; - while (a_time->seconds < 0) { - crm_trace("s=%d, d=%d", a_time->seconds, days); - a_time->seconds += seconds; diff --git a/SOURCES/bz720543-pcmk-lrmd_correctly_cancel_monitor_actions_for_lsb_systemd_service_resources_on_cleaning_up.patch b/SOURCES/bz720543-pcmk-lrmd_correctly_cancel_monitor_actions_for_lsb_systemd_service_resources_on_cleaning_up.patch deleted file mode 100644 index 8d4bafa..0000000 --- a/SOURCES/bz720543-pcmk-lrmd_correctly_cancel_monitor_actions_for_lsb_systemd_service_resources_on_cleaning_up.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 59a56d6fef5885f6d22f1e20bd189d91d5844827 -Author: Gao,Yan <ygao@suse.com> -Date: Mon Sep 30 21:10:44 2013 +0800 - - Fix: lrmd: Correctly cancel monitor actions for lsb/systemd/service resources on cleaning up - - (cherry picked from commit 1c14b9d69470ff56fd814091867394cd0a1cf61d) - -diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c -index 8592b6c..65421d0 100644 ---- a/lrmd/lrmd.c -+++ b/lrmd/lrmd.c -@@ -978,7 +978,7 @@ free_rsc(gpointer data) - * let service library cancel it and tell us via the callback - * when it is cancelled. The rsc can be safely destroyed - * even if we are waiting for the cancel result */ -- services_action_cancel(rsc->rsc_id, cmd->action, cmd->interval); -+ services_action_cancel(rsc->rsc_id, normalize_action_name(rsc, cmd->action), cmd->interval); - } - } - /* frees list, but not list elements. */ diff --git a/SOURCES/bz720543-pcmk-pcmk_remote_ipv6_support.patch b/SOURCES/bz720543-pcmk-pcmk_remote_ipv6_support.patch deleted file mode 100644 index 40248e3..0000000 --- a/SOURCES/bz720543-pcmk-pcmk_remote_ipv6_support.patch +++ /dev/null @@ -1,173 +0,0 @@ -commit edabd027144c2a9fcd44a997f47981b836b53b77 -Author: David Vossel <dvossel@redhat.com> -Date: Wed Nov 6 13:27:11 2013 -0500 - - High: remote: Add support for ipv6 into pacemaker_remote daemon - (cherry picked from commit 1595263ff56ac14cc697d9866b532c14267d708f) - -diff --git a/lrmd/tls_backend.c b/lrmd/tls_backend.c -index 780d17b..46e7f27 100644 ---- a/lrmd/tls_backend.c -+++ b/lrmd/tls_backend.c -@@ -30,6 +30,7 @@ - - #include <lrmd_private.h> - -+#include <netdb.h> - #include <sys/socket.h> - #include <netinet/ip.h> - #include <arpa/inet.h> -@@ -38,7 +39,7 @@ - # define LRMD_REMOTE_AUTH_TIMEOUT 10000 - gnutls_psk_server_credentials_t psk_cred_s; - gnutls_dh_params_t dh_params; --static int ssock = 0; -+static int ssock = -1; - extern int lrmd_call_id; - - static void -@@ -253,12 +254,72 @@ lrmd_tls_server_key_cb(gnutls_session_t session, const char *username, gnutls_da - return lrmd_tls_set_key(key); - } - -+static int -+bind_and_listen(struct addrinfo *addr) -+{ -+ int optval; -+ int fd; -+ int rc; -+ char buffer[256] = { 0, }; -+ -+ if (addr->ai_family == AF_INET6) { -+ struct sockaddr_in6 *addr_in = (struct sockaddr_in6 *)addr->ai_addr; -+ inet_ntop(addr->ai_family, &addr_in->sin6_addr, buffer, DIMOF(buffer)); -+ -+ } else { -+ struct sockaddr_in *addr_in = (struct sockaddr_in *)addr->ai_addr; -+ inet_ntop(addr->ai_family, &addr_in->sin_addr, buffer, DIMOF(buffer)); -+ } -+ -+ crm_trace("Attempting to bind on address %s", buffer); -+ -+ fd = socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); -+ if (fd < 0) { -+ return -1; -+ } -+ -+ /* reuse address */ -+ optval = 1; -+ rc = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)); -+ if (rc < 0) { -+ crm_perror(LOG_INFO, "Couldn't allow the reuse of local addresses by our remote listener, bind address %s", buffer); -+ close(fd); -+ return -1; -+ } -+ -+ if (addr->ai_family == AF_INET6) { -+ optval = 0; -+ rc = setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &optval, sizeof(optval)); -+ if (rc < 0) { -+ crm_perror(LOG_INFO, "Couldn't disable IPV6 only on address %s", buffer); -+ close(fd); -+ return -1; -+ } -+ } -+ -+ if (bind(fd, addr->ai_addr, addr->ai_addrlen) != 0) { -+ close(fd); -+ return -1; -+ } -+ -+ if (listen(fd, 10) == -1) { -+ crm_err("Can not start listen on address %s", buffer); -+ close(fd); -+ return -1; -+ } -+ -+ crm_notice("Listening on address %s", buffer); -+ -+ return fd; -+} -+ - int - lrmd_init_remote_tls_server(int port) - { - int rc; -- struct sockaddr_in saddr; -- int optval; -+ int filter; -+ struct addrinfo hints, *res = NULL, *iter; -+ char port_str[16]; - - static struct mainloop_fd_callbacks remote_listen_fd_callbacks = { - .dispatch = lrmd_remote_listen, -@@ -275,34 +336,39 @@ lrmd_init_remote_tls_server(int port) - gnutls_psk_set_server_credentials_function(psk_cred_s, lrmd_tls_server_key_cb); - gnutls_psk_set_server_dh_params(psk_cred_s, dh_params); - -- /* create server socket */ -- ssock = socket(AF_INET, SOCK_STREAM, 0); -- if (ssock == -1) { -- crm_err("Can not create server socket."); -- return -1; -- } -+ memset(&hints, 0, sizeof(struct addrinfo)); -+ hints.ai_flags = AI_PASSIVE; /* Only return socket addresses with wildcard INADDR_ANY or IN6ADDR_ANY_INIT */ -+ hints.ai_family = AF_UNSPEC; /* Return IPv6 or IPv4 */ -+ hints.ai_socktype = SOCK_STREAM; -+ hints.ai_protocol = IPPROTO_TCP; - -- /* reuse address */ -- optval = 1; -- rc = setsockopt(ssock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)); -- if (rc < 0) { -- crm_perror(LOG_INFO, "Couldn't allow the reuse of local addresses by our remote listener"); -+ snprintf(port_str, sizeof(port_str), "%d", port); -+ rc = getaddrinfo(NULL, port_str, &hints, &res); -+ if (rc) { -+ crm_err("getaddrinfo: %s", gai_strerror(rc)); -+ return -1; - } - -- rc = -1; -+ iter = res; -+ filter = AF_INET6; -+ /* Try IPv6 addresses first, then IPv4 */ -+ while (iter) { -+ if (iter->ai_family == filter) { -+ ssock = bind_and_listen(iter); -+ } -+ if (ssock != -1) { -+ break; -+ } - -- /* bind server socket */ -- memset(&saddr, '\0', sizeof(saddr)); -- saddr.sin_family = AF_INET; -- saddr.sin_addr.s_addr = INADDR_ANY; -- saddr.sin_port = htons(port); -- if (bind(ssock, (struct sockaddr *)&saddr, sizeof(saddr)) == -1) { -- crm_err("Can not bind server socket."); -- goto init_remote_cleanup; -+ iter = iter->ai_next; -+ if (iter == NULL && filter == AF_INET6) { -+ iter = res; -+ filter = AF_INET; -+ } - } - -- if (listen(ssock, 10) == -1) { -- crm_err("Can not start listen."); -+ if (ssock < 0) { -+ crm_err("unable to bind to address"); - goto init_remote_cleanup; - } - -@@ -314,6 +380,7 @@ lrmd_init_remote_tls_server(int port) - close(ssock); - ssock = 0; - } -+ freeaddrinfo(res); - return rc; - - } diff --git a/SOURCES/bz720543-pcmk-pe_don_t_prevent_clones_from_running_due_to_dependant_resources.patch b/SOURCES/bz720543-pcmk-pe_don_t_prevent_clones_from_running_due_to_dependant_resources.patch deleted file mode 100644 index 7976c71..0000000 --- a/SOURCES/bz720543-pcmk-pe_don_t_prevent_clones_from_running_due_to_dependant_resources.patch +++ /dev/null @@ -1,89 +0,0 @@ -commit 7d47ad8be7a9c31a1eba2a3714a645ae3985fc37 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Aug 9 15:00:40 2013 +1000 - - Bug cl#5171 - PE: Don't prevent clones from running due to dependant resources - - (cherry picked from commit 1c057f8808c71763134ae829851d2a2b3b604d07) - -diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h -index a6b9369..7240106 100644 ---- a/include/crm/pengine/internal.h -+++ b/include/crm/pengine/internal.h -@@ -129,6 +129,7 @@ pe_hash_table_lookup(GHashTable * hash, gconstpointer key) - extern action_t *get_pseudo_op(const char *name, pe_working_set_t * data_set); - extern gboolean order_actions(action_t * lh_action, action_t * rh_action, enum pe_ordering order); - -+GHashTable *node_hash_dup(GHashTable * hash); - extern GListPtr node_list_and(GListPtr list1, GListPtr list2, gboolean filter); - - extern GListPtr node_list_xor(GListPtr list1, GListPtr list2, gboolean filter); -diff --git a/pengine/clone.c b/pengine/clone.c -index b15f76f..9113e9d 100644 ---- a/pengine/clone.c -+++ b/pengine/clone.c -@@ -385,8 +385,9 @@ color_instance(resource_t * rsc, node_t * prefer, gboolean all_coloc, pe_working - { - node_t *chosen = NULL; - node_t *local_node = NULL; -+ GHashTable *backup = NULL; - -- pe_rsc_trace(rsc, "Processing %s", rsc->id); -+ pe_rsc_trace(rsc, "Processing %s %d", rsc->id, all_coloc); - - if (is_not_set(rsc->flags, pe_rsc_provisional)) { - return rsc->fns->location(rsc, NULL, FALSE); -@@ -421,15 +422,19 @@ color_instance(resource_t * rsc, node_t * prefer, gboolean all_coloc, pe_working - } - } - -+ backup = node_hash_dup(rsc->allowed_nodes); - chosen = rsc->cmds->allocate(rsc, prefer, data_set); - if (chosen) { - local_node = pe_hash_table_lookup(rsc->parent->allowed_nodes, chosen->details->id); - - if (prefer && chosen && chosen->details != prefer->details) { -- crm_err("Pre-allocation failed: got %s instead of %s", -- chosen->details->uname, prefer->details->uname); -+ crm_notice("Pre-allocation failed: got %s instead of %s", -+ chosen->details->uname, prefer->details->uname); -+ g_hash_table_destroy(rsc->allowed_nodes); -+ rsc->allowed_nodes = backup; - native_deallocate(rsc); - chosen = NULL; -+ backup = NULL; - - } else if (local_node) { - local_node->count++; -@@ -442,6 +447,9 @@ color_instance(resource_t * rsc, node_t * prefer, gboolean all_coloc, pe_working - } - } - -+ if(backup) { -+ g_hash_table_destroy(backup); -+ } - return chosen; - } - -@@ -587,7 +595,7 @@ clone_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) - } - } - -- pe_rsc_trace(rsc, "Done pre-allocating"); -+ pe_rsc_trace(rsc, "Done pre-allocating (%d of %d)", allocated, clone_data->clone_max); - g_list_free(nodes); - - for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { -diff --git a/pengine/native.c b/pengine/native.c -index 21ad629..4016a3c 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -313,7 +313,7 @@ node_hash_update(GHashTable * list1, GHashTable * list2, const char *attr, float - } - } - --static GHashTable * -+GHashTable * - node_hash_dup(GHashTable * hash) - { - /* Hack! */ diff --git a/SOURCES/bz720543-pcmk-pe_probe_containers_not_expected_to_be_up.patch b/SOURCES/bz720543-pcmk-pe_probe_containers_not_expected_to_be_up.patch deleted file mode 100644 index 368aec0..0000000 --- a/SOURCES/bz720543-pcmk-pe_probe_containers_not_expected_to_be_up.patch +++ /dev/null @@ -1,121 +0,0 @@ -commit 7d17d8ab2dd91bdcaf2dea199f2ef66b514daea0 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Nov 6 14:15:24 2013 +1100 - - PE: Probe containers not expected to be up - - RHEL-Only work-around, fixing properly upstream - -diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h -index 7240106..dd52e7f 100644 ---- a/include/crm/pengine/internal.h -+++ b/include/crm/pengine/internal.h -@@ -262,4 +262,5 @@ op_digest_cache_t *rsc_action_digest_cmp(resource_t * rsc, xmlNode * xml_op, nod - - gboolean is_remote_node(xmlNode *xml); - -+resource_t * rsc_contains_remote_node(pe_working_set_t * data_set, resource_t *rsc); - #endif -diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h -index 8eb4a1d..eb52464 100644 ---- a/include/crm/pengine/status.h -+++ b/include/crm/pengine/status.h -@@ -183,6 +183,7 @@ struct node_s { - # define pe_rsc_migrating 0x00400000ULL - - # define pe_rsc_failure_ignored 0x01000000ULL -+# define pe_rsc_unexpectedly_running 0x02000000ULL - - # define pe_rsc_needs_quorum 0x10000000ULL - # define pe_rsc_needs_fencing 0x20000000ULL -diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c -index 78ceb85..56ed291 100644 ---- a/lib/pengine/unpack.c -+++ b/lib/pengine/unpack.c -@@ -2014,6 +2014,9 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d - { - xmlNode *rsc_entry = NULL; - gboolean found_orphaned_container_filler = FALSE; -+ GListPtr unexpected_containers = NULL; -+ GListPtr gIter = NULL; -+ resource_t *remote = NULL; - - CRM_CHECK(node != NULL, return FALSE); - -@@ -2025,9 +2028,29 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d - if (crm_str_eq((const char *)rsc_entry->name, XML_LRM_TAG_RESOURCE, TRUE)) { - resource_t *rsc; - rsc = unpack_lrm_rsc_state(node, rsc_entry, data_set); -- if (rsc && is_set(rsc->flags, pe_rsc_orphan_container_filler)) { -+ if (!rsc) { -+ continue; -+ } -+ if (is_set(rsc->flags, pe_rsc_orphan_container_filler)) { - found_orphaned_container_filler = TRUE; - } -+ if (is_set(rsc->flags, pe_rsc_unexpectedly_running)) { -+ remote = rsc_contains_remote_node(data_set, rsc); -+ if (remote) { -+ unexpected_containers = g_list_append(unexpected_containers, remote); -+ } -+ } -+ } -+ } -+ -+ /* If a container resource is unexpectedly up... and the remote-node -+ * connection resource for that container is not up, the entire container -+ * must be recovered. */ -+ for (gIter = unexpected_containers; gIter != NULL; gIter = gIter->next) { -+ remote = (resource_t *) gIter->data; -+ if (remote->role != RSC_ROLE_STARTED) { -+ crm_warn("Recovering container resource %s. Resource is unexpectedly running and involves a remote-node."); -+ set_bit(remote->container->flags, pe_rsc_failed); - } - } - -@@ -2037,7 +2060,7 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d - if (found_orphaned_container_filler) { - handle_orphaned_container_fillers(lrm_rsc_list, data_set); - } -- -+ g_list_free(unexpected_containers); - return TRUE; - } - -@@ -2366,6 +2389,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - case PCMK_OCF_OK: - if (is_probe && target_rc == 7) { - task_status_i = PCMK_LRM_OP_DONE; -+ set_bit(rsc->flags, pe_rsc_unexpectedly_running); - pe_rsc_info(rsc, "Operation %s found resource %s active on %s", - task, rsc->id, node->details->uname); - -diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c -index 1e3877d..e9997a2 100644 ---- a/lib/pengine/utils.c -+++ b/lib/pengine/utils.c -@@ -1776,3 +1776,24 @@ const char *rsc_printable_id(resource_t *rsc) - } - return rsc->id; - } -+ -+resource_t * -+rsc_contains_remote_node(pe_working_set_t * data_set, resource_t *rsc) -+{ -+ if (is_set(data_set->flags, pe_flag_have_remote_nodes) == FALSE) { -+ return FALSE; -+ } -+ -+ if (rsc->fillers) { -+ GListPtr gIter = NULL; -+ for (gIter = rsc->fillers; gIter != NULL; gIter = gIter->next) { -+ resource_t *filler = (resource_t *) gIter->data; -+ -+ if (filler->is_remote_node) { -+ return filler; -+ } -+ } -+ } -+ return NULL; -+} -+ diff --git a/SOURCES/bz720543-pcmk-pe_update_regression_test_scores.patch b/SOURCES/bz720543-pcmk-pe_update_regression_test_scores.patch deleted file mode 100644 index 27fe927..0000000 --- a/SOURCES/bz720543-pcmk-pe_update_regression_test_scores.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 1106a46aa325068e42d36d70cdbb78d128602a0d -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Aug 12 11:54:10 2013 +1000 - - Test: PE: Update regression test scores - - (cherry picked from commit 86b339c959f41e9c94195317ba4aa90f09d72450) - -diff --git a/pengine/test10/utilization-order2.scores b/pengine/test10/utilization-order2.scores -index b289b72..22748db 100644 ---- a/pengine/test10/utilization-order2.scores -+++ b/pengine/test10/utilization-order2.scores -@@ -7,7 +7,7 @@ clone_color: rsc2:1 allocation score on node1: 0 - clone_color: rsc2:1 allocation score on node2: 1 - native_color: rsc1 allocation score on node1: 0 - native_color: rsc1 allocation score on node2: 0 --native_color: rsc2:0 allocation score on node1: -INFINITY -+native_color: rsc2:0 allocation score on node1: 1 - native_color: rsc2:0 allocation score on node1: 1 - native_color: rsc2:0 allocation score on node2: -INFINITY - native_color: rsc2:0 allocation score on node2: 0 diff --git a/SOURCES/bz720543-pcmk-prevent_use_of_null_when_ping_resources_do_not_define_a_host_list.patch b/SOURCES/bz720543-pcmk-prevent_use_of_null_when_ping_resources_do_not_define_a_host_list.patch deleted file mode 100644 index 42b4265..0000000 --- a/SOURCES/bz720543-pcmk-prevent_use_of_null_when_ping_resources_do_not_define_a_host_list.patch +++ /dev/null @@ -1,39 +0,0 @@ -commit d4cf7c479c30b4543db45fcce9bf69352b77f85c -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Aug 6 20:36:14 2013 +1000 - - Fix: Prevent use-of-NULL when ping resources do not define a host list - - (cherry picked from commit 7f76afac965afa209e570deac612c696fdcaddb2) - -diff --git a/tools/crm_mon.c b/tools/crm_mon.c -index 9387b46..9d68237 100644 ---- a/tools/crm_mon.c -+++ b/tools/crm_mon.c -@@ -973,7 +973,6 @@ print_attr_msg(node_t * node, GListPtr rsc_list, const char *attrname, const cha - if (safe_str_eq(type, "ping") || safe_str_eq(type, "pingd")) { - const char *name = "pingd"; - const char *multiplier = NULL; -- char **host_list = NULL; - int host_list_num = 0; - int expected_score = 0; - -@@ -984,11 +983,15 @@ print_attr_msg(node_t * node, GListPtr rsc_list, const char *attrname, const cha - /* To identify the resource with the attribute name. */ - if (safe_str_eq(name, attrname)) { - int value = crm_parse_int(attrvalue, "0"); -+ const char *hosts = g_hash_table_lookup(rsc->parameters, "host_list"); - - multiplier = g_hash_table_lookup(rsc->parameters, "multiplier"); -- host_list = g_strsplit(g_hash_table_lookup(rsc->parameters, "host_list"), " ", 0); -- host_list_num = g_strv_length(host_list); -- g_strfreev(host_list); -+ if(hosts) { -+ char **host_list = g_strsplit(hosts, " ", 0); -+ host_list_num = g_strv_length(host_list); -+ g_strfreev(host_list); -+ } -+ - /* pingd multiplier is the same as the default value. */ - expected_score = host_list_num * crm_parse_int(multiplier, "1"); - diff --git a/SOURCES/bz720543-pcmk-reduce_duplication_by_merging_the_lrmd_exec_rc_enum_with_ocf_exitcode.patch b/SOURCES/bz720543-pcmk-reduce_duplication_by_merging_the_lrmd_exec_rc_enum_with_ocf_exitcode.patch deleted file mode 100644 index ccbd8b6..0000000 --- a/SOURCES/bz720543-pcmk-reduce_duplication_by_merging_the_lrmd_exec_rc_enum_with_ocf_exitcode.patch +++ /dev/null @@ -1,1075 +0,0 @@ -commit 6de9bff49d55a5e03f3aac134fa651da02acc805 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Aug 8 10:07:43 2013 +1000 - - Refactor: Reduce duplication by merging the lrmd_exec_rc enum with ocf_exitcode - - (cherry picked from commit 7c87227849a589b65eb4864fae2811d9cc39bc1b) - -diff --git a/crmd/lrm.c b/crmd/lrm.c -index 5f4d3bb..318c7f8 100644 ---- a/crmd/lrm.c -+++ b/crmd/lrm.c -@@ -691,20 +691,20 @@ is_rsc_active(lrm_state_t * lrm_state, const char *rsc_id) - - crm_trace("Processing %s: %s.%d=%d", - rsc_id, entry->last->op_type, entry->last->interval, entry->last->rc); -- if (entry->last->rc == PCMK_EXECRA_OK && safe_str_eq(entry->last->op_type, CRMD_ACTION_STOP)) { -+ if (entry->last->rc == PCMK_OCF_OK && safe_str_eq(entry->last->op_type, CRMD_ACTION_STOP)) { - return FALSE; - -- } else if (entry->last->rc == PCMK_EXECRA_OK -+ } else if (entry->last->rc == PCMK_OCF_OK - && safe_str_eq(entry->last->op_type, CRMD_ACTION_MIGRATE)) { - /* a stricter check is too complex... - * leave that to the PE - */ - return FALSE; - -- } else if (entry->last->rc == PCMK_EXECRA_NOT_RUNNING) { -+ } else if (entry->last->rc == PCMK_OCF_NOT_RUNNING) { - return FALSE; - -- } else if (entry->last->interval == 0 && entry->last->rc == PCMK_EXECRA_NOT_CONFIGURED) { -+ } else if (entry->last->interval == 0 && entry->last->rc == PCMK_OCF_NOT_CONFIGURED) { - /* Badly configured resources can't be reliably stopped */ - return FALSE; - } -@@ -812,10 +812,10 @@ notify_deleted(lrm_state_t * lrm_state, ha_msg_input_t * input, const char *rsc_ - - if (rc == pcmk_ok) { - op->op_status = PCMK_LRM_OP_DONE; -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else { - op->op_status = PCMK_LRM_OP_ERROR; -- op->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ op->rc = PCMK_OCF_UNKNOWN_ERROR; - } - - send_direct_ack(from_host, from_sys, NULL, op, rsc_id); -@@ -1295,7 +1295,7 @@ do_lrm_invoke(long long action, - } - op->interval = 0; - op->op_status = PCMK_LRM_OP_DONE; -- op->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ op->rc = PCMK_OCF_UNKNOWN_ERROR; - op->t_run = time(NULL); - op->t_rcchange = op->t_run; - -@@ -1313,7 +1313,7 @@ do_lrm_invoke(long long action, - crm_info("Failing resource %s...", rsc->id); - process_lrm_event(lrm_state, op); - op->op_status = PCMK_LRM_OP_DONE; -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - lrmd_free_rsc_info(rsc); - } else { - crm_info("Cannot find/create resource in order to fail it..."); -@@ -1425,7 +1425,7 @@ do_lrm_invoke(long long action, - - op = construct_op(lrm_state, input->xml, ID(xml_rsc), operation); - op->op_status = PCMK_LRM_OP_DONE; -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - CRM_ASSERT(op != NULL); - send_direct_ack(from_host, from_sys, NULL, op, ID(xml_rsc)); - lrmd_free_event(op); -@@ -1486,7 +1486,7 @@ do_lrm_invoke(long long action, - g_hash_table_remove(lrm_state->pending_ops, op_key); - } - -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - op->op_status = PCMK_LRM_OP_DONE; - send_direct_ack(from_host, from_sys, rsc, op, rsc->id); - -@@ -1509,9 +1509,9 @@ do_lrm_invoke(long long action, - op->op_status = PCMK_LRM_OP_ERROR; - - if (cib_rc == -EACCES) { -- op->rc = PCMK_EXECRA_INSUFFICIENT_PRIV; -+ op->rc = PCMK_OCF_INSUFFICIENT_PRIV; - } else { -- op->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ op->rc = PCMK_OCF_UNKNOWN_ERROR; - } - send_direct_ack(from_host, from_sys, NULL, op, rsc->id); - lrmd_free_event(op); -@@ -2046,7 +2046,7 @@ process_lrm_event(lrm_state_t * lrm_state, lrmd_event_data_t * op) - } - - if (op->op_status == PCMK_LRM_OP_ERROR -- && (op->rc == PCMK_EXECRA_RUNNING_MASTER || op->rc == PCMK_EXECRA_NOT_RUNNING)) { -+ && (op->rc == PCMK_OCF_RUNNING_MASTER || op->rc == PCMK_OCF_NOT_RUNNING)) { - /* Leave it up to the TE/PE to decide if this is an error */ - op->op_status = PCMK_LRM_OP_DONE; - log_level = LOG_INFO; -@@ -2096,7 +2096,7 @@ process_lrm_event(lrm_state_t * lrm_state, lrmd_event_data_t * op) - do_crm_log(log_level, - "LRM operation %s (call=%d, rc=%d, cib-update=%d, confirmed=%s) %s", - op_key, op->call_id, op->rc, update_id, removed ? "true" : "false", -- lrmd_event_rc2str(op->rc)); -+ services_ocf_exitcode_str(op->rc)); - } else { - do_crm_log(log_level, - "LRM operation %s (call=%d, status=%d, cib-update=%d, confirmed=%s) %s", -diff --git a/crmd/remote_lrmd_ra.c b/crmd/remote_lrmd_ra.c -index 42ea043..fbb9ecb 100644 ---- a/crmd/remote_lrmd_ra.c -+++ b/crmd/remote_lrmd_ra.c -@@ -211,7 +211,7 @@ retry_start_cmd_cb(gpointer data) - } - - if (rc != 0) { -- cmd->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ cmd->rc = PCMK_OCF_UNKNOWN_ERROR; - cmd->op_status = PCMK_LRM_OP_ERROR; - report_remote_ra_result(cmd); - -@@ -236,7 +236,7 @@ monitor_timeout_cb(gpointer data) - crm_debug("Poke async response timed out for node %s", cmd->rsc_id); - cmd->monitor_timeout_id = 0; - cmd->op_status = PCMK_LRM_OP_TIMEOUT; -- cmd->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ cmd->rc = PCMK_OCF_UNKNOWN_ERROR; - - lrm_state = lrm_state_find(cmd->rsc_id); - if (lrm_state && lrm_state->remote_ra_data) { -@@ -291,7 +291,7 @@ remote_lrm_op_callback(lrmd_event_data_t * op) - lrmd_event_type2str(op->type), - op->remote_nodename, - op->op_type ? op->op_type : "none", -- lrmd_event_rc2str(op->rc), services_lrm_status_str(op->op_status)); -+ services_ocf_exitcode_str(op->rc), services_lrm_status_str(op->op_status)); - - /* filter all EXEC events up */ - if (op->type == lrmd_event_exec_complete) { -@@ -329,7 +329,7 @@ remote_lrm_op_callback(lrmd_event_data_t * op) - cmd->remaining_timeout); - } - cmd->op_status = PCMK_LRM_OP_TIMEOUT; -- cmd->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ cmd->rc = PCMK_OCF_UNKNOWN_ERROR; - - } else { - /* make sure we have a clean status section to start with */ -@@ -338,7 +338,7 @@ remote_lrm_op_callback(lrmd_event_data_t * op) - erase_status_tag(lrm_state->node_name, XML_CIB_TAG_LRM, cib_scope_local); - erase_status_tag(lrm_state->node_name, XML_TAG_TRANSIENT_NODEATTRS, cib_scope_local); - -- cmd->rc = PCMK_EXECRA_OK; -+ cmd->rc = PCMK_OCF_OK; - cmd->op_status = PCMK_LRM_OP_DONE; - } - -@@ -361,7 +361,7 @@ remote_lrm_op_callback(lrmd_event_data_t * op) - * For this function, if we get the poke pack, it is always a success. Pokes - * only fail if the send fails, or the response times out. */ - if (!cmd->reported_success) { -- cmd->rc = PCMK_EXECRA_OK; -+ cmd->rc = PCMK_OCF_OK; - cmd->op_status = PCMK_LRM_OP_DONE; - report_remote_ra_result(cmd); - cmd->reported_success = 1; -@@ -442,7 +442,7 @@ handle_remote_ra_exec(gpointer user_data) - return TRUE; - } else { - crm_debug("connect failed, not expecting to match any connection event later"); -- cmd->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ cmd->rc = PCMK_OCF_UNKNOWN_ERROR; - cmd->op_status = PCMK_LRM_OP_ERROR; - } - report_remote_ra_result(cmd); -@@ -452,13 +452,13 @@ handle_remote_ra_exec(gpointer user_data) - if (lrm_state_is_connected(lrm_state) == TRUE) { - rc = lrm_state_poke_connection(lrm_state); - if (rc < 0) { -- cmd->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ cmd->rc = PCMK_OCF_UNKNOWN_ERROR; - cmd->op_status = PCMK_LRM_OP_ERROR; - } - } else { - rc = -1; - cmd->op_status = PCMK_LRM_OP_DONE; -- cmd->rc = PCMK_EXECRA_NOT_RUNNING; -+ cmd->rc = PCMK_OCF_NOT_RUNNING; - } - - if (rc == 0) { -@@ -471,7 +471,7 @@ handle_remote_ra_exec(gpointer user_data) - - } else if (!strcmp(cmd->action, "stop")) { - lrm_state_disconnect(lrm_state); -- cmd->rc = PCMK_EXECRA_OK; -+ cmd->rc = PCMK_OCF_OK; - cmd->op_status = PCMK_LRM_OP_DONE; - - if (ra_data->cmds) { -@@ -486,7 +486,7 @@ handle_remote_ra_exec(gpointer user_data) - - } else if (!strcmp(cmd->action, "migrate_to")) { - /* no-op. */ -- cmd->rc = PCMK_EXECRA_OK; -+ cmd->rc = PCMK_OCF_OK; - cmd->op_status = PCMK_LRM_OP_DONE; - report_remote_ra_result(cmd); - } -diff --git a/crmd/te_actions.c b/crmd/te_actions.c -index b533f58..63d15bb 100644 ---- a/crmd/te_actions.c -+++ b/crmd/te_actions.c -@@ -465,7 +465,7 @@ te_rsc_command(crm_graph_t * graph, crm_action_t * action) - && safe_str_neq(task, CRMD_ACTION_DELETE)) { - /* write a "pending" entry to the CIB, inhibit notification */ - crm_debug("Recording pending op %s in the CIB", task_uuid); -- cib_action_update(action, PCMK_LRM_OP_PENDING, PCMK_EXECRA_STATUS_UNKNOWN); -+ cib_action_update(action, PCMK_LRM_OP_PENDING, PCMK_OCF_STATUS_UNKNOWN); - } - - return TRUE; -diff --git a/crmd/te_callbacks.c b/crmd/te_callbacks.c -index 3d923b2..c0360b4 100644 ---- a/crmd/te_callbacks.c -+++ b/crmd/te_callbacks.c -@@ -548,8 +548,8 @@ action_timer_callback(gpointer data) - } - - if (send_update) { -- /* cib_action_update(timer->action, PCMK_LRM_OP_PENDING, PCMK_EXECRA_STATUS_UNKNOWN); */ -- cib_action_update(timer->action, PCMK_LRM_OP_TIMEOUT, PCMK_EXECRA_UNKNOWN_ERROR); -+ /* cib_action_update(timer->action, PCMK_LRM_OP_PENDING, PCMK_OCF_STATUS_UNKNOWN); */ -+ cib_action_update(timer->action, PCMK_LRM_OP_TIMEOUT, PCMK_OCF_UNKNOWN_ERROR); - } - } - -diff --git a/crmd/te_events.c b/crmd/te_events.c -index bc474bd..78d00dd 100644 ---- a/crmd/te_events.c -+++ b/crmd/te_events.c -@@ -540,7 +540,7 @@ process_graph_event(xmlNode * event, const char *event_node) - desc = "failed"; - } - crm_info("Detected action (%d.%d) %s.%d=%s: %s", transition_num, action, id, callid, -- lrmd_event_rc2str(rc), desc); -+ services_ocf_exitcode_str(rc), desc); - } - - bail: -diff --git a/fencing/commands.c b/fencing/commands.c -index 7ef003d..7d04952 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -224,7 +224,7 @@ stonith_device_execute(stonith_device_t * device) - } else { - crm_err("failed to get secrets for %s, " - "considering resource not configured", device->id); -- exec_rc = PCMK_EXECRA_NOT_CONFIGURED; -+ exec_rc = PCMK_OCF_NOT_CONFIGURED; - cmd->done_cb(0, exec_rc, NULL, cmd); - return TRUE; - } -diff --git a/include/crm/lrmd.h b/include/crm/lrmd.h -index f627373..b8c3167 100644 ---- a/include/crm/lrmd.h -+++ b/include/crm/lrmd.h -@@ -22,6 +22,7 @@ - * \brief Local Resource Manager - * \ingroup lrm - */ -+#include <crm/services.h> - - #ifndef LRMD__H - # define LRMD__H -@@ -166,21 +167,6 @@ enum lrmd_callback_event { - lrmd_event_poke, - }; - --enum lrmd_exec_rc { -- PCMK_EXECRA_OK = 0, -- PCMK_EXECRA_UNKNOWN_ERROR = 1, -- PCMK_EXECRA_INVALID_PARAM = 2, -- PCMK_EXECRA_UNIMPLEMENT_FEATURE = 3, -- PCMK_EXECRA_INSUFFICIENT_PRIV = 4, -- PCMK_EXECRA_NOT_INSTALLED = 5, -- PCMK_EXECRA_NOT_CONFIGURED = 6, -- PCMK_EXECRA_NOT_RUNNING = 7, -- PCMK_EXECRA_RUNNING_MASTER = 8, -- PCMK_EXECRA_FAILED_MASTER = 9, -- -- /* For status command only */ -- PCMK_EXECRA_STATUS_UNKNOWN = 14, --}; - /* *INDENT-ON* */ - - typedef struct lrmd_event_data_s { -@@ -205,8 +191,8 @@ typedef struct lrmd_event_data_s { - /*! This operation that just completed is on a deleted rsc. */ - int rsc_deleted; - -- /*! The executed ra return code */ -- enum lrmd_exec_rc rc; -+ /*! The executed ra return code mapped to OCF */ -+ enum ocf_exitcode rc; - /*! The lrmd status returned for exec_complete events */ - int op_status; - /*! stdout from resource agent operation */ -@@ -448,38 +434,6 @@ struct lrmd_s { - }; - - static inline const char * --lrmd_event_rc2str(enum lrmd_exec_rc rc) --{ -- switch (rc) { -- case PCMK_EXECRA_OK: -- return "ok"; -- case PCMK_EXECRA_UNKNOWN_ERROR: -- return "unknown error"; -- case PCMK_EXECRA_INVALID_PARAM: -- return "invalid parameter"; -- case PCMK_EXECRA_UNIMPLEMENT_FEATURE: -- return "unimplemented feature"; -- case PCMK_EXECRA_INSUFFICIENT_PRIV: -- return "insufficient privileges"; -- case PCMK_EXECRA_NOT_INSTALLED: -- return "not installed"; -- case PCMK_EXECRA_NOT_CONFIGURED: -- return "not configured"; -- case PCMK_EXECRA_NOT_RUNNING: -- return "not running"; -- case PCMK_EXECRA_RUNNING_MASTER: -- return "master"; -- case PCMK_EXECRA_FAILED_MASTER: -- return "master (failed)"; -- case PCMK_EXECRA_STATUS_UNKNOWN: -- return "status: unknown"; -- default: -- break; -- } -- return "<unknown>"; --} -- --static inline const char * - lrmd_event_type2str(enum lrmd_callback_event type) - { - switch (type) { -diff --git a/include/crm/services.h b/include/crm/services.h -index fb5c6b0..0c0cca9 100644 ---- a/include/crm/services.h -+++ b/include/crm/services.h -@@ -31,6 +31,7 @@ extern "C" { - - # include <glib.h> - # include <stdio.h> -+# include <string.h> - - # ifndef OCF_ROOT_DIR - # define OCF_ROOT_DIR "/usr/lib/ocf" -@@ -59,34 +60,22 @@ enum lsb_exitcode { - PCMK_LSB_NOT_INSTALLED = 5, - PCMK_LSB_NOT_CONFIGURED = 6, - PCMK_LSB_NOT_RUNNING = 7, -- -- /* 150-199 reserved for application use */ -- PCMK_LSB_SIGNAL = 194, -- PCMK_LSB_NOT_SUPPORTED = 195, -- PCMK_LSB_PENDING = 196, -- PCMK_LSB_CANCELLED = 197, -- PCMK_LSB_TIMEOUT = 198, -- PCMK_LSB_OTHER_ERROR = 199, - }; - - /* The return codes for the status operation are not the same for other -- * operatios - go figure */ -+ * operatios - go figure -+ */ - enum lsb_status_exitcode { - PCMK_LSB_STATUS_OK = 0, - PCMK_LSB_STATUS_VAR_PID = 1, - PCMK_LSB_STATUS_VAR_LOCK = 2, - PCMK_LSB_STATUS_NOT_RUNNING = 3, - PCMK_LSB_STATUS_NOT_INSTALLED = 4, -- -- /* 150-199 reserved for application use */ -- PCMK_LSB_STATUS_SIGNAL = 194, -- PCMK_LSB_STATUS_NOT_SUPPORTED = 195, -- PCMK_LSB_STATUS_PENDING = 196, -- PCMK_LSB_STATUS_CANCELLED = 197, -- PCMK_LSB_STATUS_TIMEOUT = 198, -- PCMK_LSB_STATUS_OTHER_ERROR = 199, - }; - -+/* Uniform exit codes -+ * Everything is mapped to its OCF equivalent so that Pacemaker only deals with one set of codes -+ */ - enum ocf_exitcode { - PCMK_OCF_OK = 0, - PCMK_OCF_UNKNOWN_ERROR = 1, -@@ -95,10 +84,12 @@ enum ocf_exitcode { - PCMK_OCF_INSUFFICIENT_PRIV = 4, - PCMK_OCF_NOT_INSTALLED = 5, - PCMK_OCF_NOT_CONFIGURED = 6, -- PCMK_OCF_NOT_RUNNING = 7, -+ PCMK_OCF_NOT_RUNNING = 7, /* End of overlap with LSB */ - PCMK_OCF_RUNNING_MASTER = 8, - PCMK_OCF_FAILED_MASTER = 9, - -+ PCMK_OCF_STATUS_UNKNOWN = 14, /* Already in use */ -+ - /* 150-199 reserved for application use */ - PCMK_OCF_SIGNAL = 194, - PCMK_OCF_NOT_SUPPORTED = 195, -@@ -114,7 +105,7 @@ enum op_status { - PCMK_LRM_OP_CANCELLED, - PCMK_LRM_OP_TIMEOUT, - PCMK_LRM_OP_NOTSUPPORTED, -- PCMK_LRM_OP_ERROR -+ PCMK_LRM_OP_ERROR, - }; - - enum nagios_exitcode { -@@ -276,25 +267,25 @@ enum nagios_exitcode { - }} static inline const char *services_ocf_exitcode_str(enum ocf_exitcode code) { - switch (code) { - case PCMK_OCF_OK: -- return "OCF_OK"; -+ return "ok"; - case PCMK_OCF_UNKNOWN_ERROR: -- return "OCF_UNKNOWN_ERROR"; -+ return "unknown error"; - case PCMK_OCF_INVALID_PARAM: -- return "OCF_INVALID_PARAM"; -+ return "invalid parameter"; - case PCMK_OCF_UNIMPLEMENT_FEATURE: -- return "OCF_UNIMPLEMENT_FEATURE"; -+ return "unimplemented feature"; - case PCMK_OCF_INSUFFICIENT_PRIV: -- return "OCF_INSUFFICIENT_PRIV"; -+ return "insufficient privileges"; - case PCMK_OCF_NOT_INSTALLED: -- return "OCF_NOT_INSTALLED"; -+ return "not installed"; - case PCMK_OCF_NOT_CONFIGURED: -- return "OCF_NOT_CONFIGURED"; -+ return "not configured"; - case PCMK_OCF_NOT_RUNNING: -- return "OCF_NOT_RUNNING"; -+ return "not running"; - case PCMK_OCF_RUNNING_MASTER: -- return "OCF_RUNNING_MASTER"; -+ return "master"; - case PCMK_OCF_FAILED_MASTER: -- return "OCF_FAILED_MASTER"; -+ return "master (failed)"; - case PCMK_OCF_SIGNAL: - return "OCF_SIGNAL"; - case PCMK_OCF_NOT_SUPPORTED: -diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c -index 26cecb2..78ceb85 100644 ---- a/lib/pengine/unpack.c -+++ b/lib/pengine/unpack.c -@@ -2205,8 +2205,8 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - task_status_i = PCMK_LRM_OP_ERROR; - pe_rsc_debug(rsc, "%s on %s returned %d (%s) instead of the expected value: %d (%s)", - id, node->details->uname, -- actual_rc_i, lrmd_event_rc2str(actual_rc_i), -- target_rc, lrmd_event_rc2str(target_rc)); -+ actual_rc_i, services_ocf_exitcode_str(actual_rc_i), -+ target_rc, services_ocf_exitcode_str(target_rc)); - } - - } else if (task_status_i == PCMK_LRM_OP_ERROR) { -@@ -2215,7 +2215,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - } - - if (task_status_i == PCMK_LRM_OP_NOTSUPPORTED) { -- actual_rc_i = PCMK_EXECRA_UNIMPLEMENT_FEATURE; -+ actual_rc_i = PCMK_OCF_UNIMPLEMENT_FEATURE; - } - - if (expired) { -@@ -2254,8 +2254,8 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - } - - if (expired -- && actual_rc_i != PCMK_EXECRA_NOT_RUNNING -- && actual_rc_i != PCMK_EXECRA_RUNNING_MASTER && actual_rc_i != PCMK_EXECRA_OK) { -+ && actual_rc_i != PCMK_OCF_NOT_RUNNING -+ && actual_rc_i != PCMK_OCF_RUNNING_MASTER && actual_rc_i != PCMK_OCF_OK) { - if(interval == 0) { - crm_notice("Ignoring expired failure %s (rc=%d, magic=%s) on %s", - id, actual_rc_i, magic, node->details->uname); -@@ -2273,7 +2273,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - * didnt include target_rc and liked to remap status - */ - switch (actual_rc_i) { -- case PCMK_EXECRA_NOT_RUNNING: -+ case PCMK_OCF_NOT_RUNNING: - if (is_probe || target_rc == actual_rc_i) { - task_status_i = PCMK_LRM_OP_DONE; - rsc->role = RSC_ROLE_STOPPED; -@@ -2287,7 +2287,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - } - break; - -- case PCMK_EXECRA_RUNNING_MASTER: -+ case PCMK_OCF_RUNNING_MASTER: - if (is_probe) { - task_status_i = PCMK_LRM_OP_DONE; - crm_notice("Operation %s found resource %s active in master mode on %s", -@@ -2311,42 +2311,42 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - rsc->role = RSC_ROLE_MASTER; - break; - -- case PCMK_EXECRA_FAILED_MASTER: -+ case PCMK_OCF_FAILED_MASTER: - rsc->role = RSC_ROLE_MASTER; - task_status_i = PCMK_LRM_OP_ERROR; - break; - -- case PCMK_EXECRA_UNIMPLEMENT_FEATURE: -+ case PCMK_OCF_UNIMPLEMENT_FEATURE: - if (interval > 0) { - task_status_i = PCMK_LRM_OP_NOTSUPPORTED; - break; - } - /* else: fall through */ -- case PCMK_EXECRA_INSUFFICIENT_PRIV: -- case PCMK_EXECRA_NOT_INSTALLED: -- case PCMK_EXECRA_INVALID_PARAM: -+ case PCMK_OCF_INSUFFICIENT_PRIV: -+ case PCMK_OCF_NOT_INSTALLED: -+ case PCMK_OCF_INVALID_PARAM: - effective_node = node; - if(pe_can_fence(data_set, node) == FALSE - && safe_str_eq(task, CRMD_ACTION_STOP)) { - /* If a stop fails and we can't fence, there's nothing else we can do */ - pe_proc_err("No further recovery can be attempted for %s: %s action failed with '%s' (%d)", -- rsc->id, task, lrmd_event_rc2str(actual_rc_i), actual_rc_i); -+ rsc->id, task, services_ocf_exitcode_str(actual_rc_i), actual_rc_i); - clear_bit(rsc->flags, pe_rsc_managed); - set_bit(rsc->flags, pe_rsc_block); - } - /* fall through */ -- case PCMK_EXECRA_NOT_CONFIGURED: -+ case PCMK_OCF_NOT_CONFIGURED: - failed = rsc; - if (is_not_set(rsc->flags, pe_rsc_unique)) { - failed = uber_parent(failed); - } - -- do_crm_log(actual_rc_i == PCMK_EXECRA_NOT_INSTALLED ? LOG_NOTICE : LOG_ERR, -+ do_crm_log(actual_rc_i == PCMK_OCF_NOT_INSTALLED ? LOG_NOTICE : LOG_ERR, - "Preventing %s from re-starting %s %s: operation %s failed '%s' (rc=%d)", - failed->id, - effective_node ? "on" : "anywhere in the cluster", - effective_node ? effective_node->details->uname : "", -- task, lrmd_event_rc2str(actual_rc_i), actual_rc_i); -+ task, services_ocf_exitcode_str(actual_rc_i), actual_rc_i); - - resource_location(failed, effective_node, -INFINITY, "hard-error", data_set); - if (is_probe) { -@@ -2354,7 +2354,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - task = CRMD_ACTION_STOP; - task_status_i = PCMK_LRM_OP_DONE; - crm_xml_add(xml_op, XML_ATTR_UNAME, node->details->uname); -- if (actual_rc_i != PCMK_EXECRA_NOT_INSTALLED -+ if (actual_rc_i != PCMK_OCF_NOT_INSTALLED - || is_set(data_set->flags, pe_flag_symmetric_cluster)) { - if ((node->details->shutdown == FALSE) || (node->details->online == TRUE)) { - add_node_copy(data_set->failed, xml_op); -@@ -2363,7 +2363,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - } - break; - -- case PCMK_EXECRA_OK: -+ case PCMK_OCF_OK: - if (is_probe && target_rc == 7) { - task_status_i = PCMK_LRM_OP_DONE; - pe_rsc_info(rsc, "Operation %s found resource %s active on %s", -@@ -2447,7 +2447,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - case PCMK_LRM_OP_DONE: - pe_rsc_trace(rsc, "%s/%s completed on %s", rsc->id, task, node->details->uname); - -- if (actual_rc_i == PCMK_EXECRA_NOT_RUNNING) { -+ if (actual_rc_i == PCMK_OCF_NOT_RUNNING) { - clear_past_failure = TRUE; - - } else if (safe_str_eq(task, CRMD_ACTION_STATUS)) { -@@ -2519,7 +2519,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - ID(migrate_from), migrate_target, from_status, from_rc); - } - -- if (migrate_from && from_rc == PCMK_EXECRA_OK -+ if (migrate_from && from_rc == PCMK_OCF_OK - && from_status == PCMK_LRM_OP_DONE) { - pe_rsc_trace(rsc, "Detected dangling migration op: %s on %s", ID(xml_op), - migrate_source); -@@ -2603,7 +2603,7 @@ unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, - case PCMK_LRM_OP_TIMEOUT: - case PCMK_LRM_OP_NOTSUPPORTED: - crm_warn("Processing failed op %s for %s on %s: %s (%d)", -- task, rsc->id, node->details->uname, lrmd_event_rc2str(actual_rc_i), -+ task, rsc->id, node->details->uname, services_ocf_exitcode_str(actual_rc_i), - actual_rc_i); - crm_xml_add(xml_op, XML_ATTR_UNAME, node->details->uname); - if ((node->details->shutdown == FALSE) || (node->details->online == TRUE)) { -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index 74cf53e..783caca 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -381,10 +381,10 @@ systemd_unit_exec_done(GObject * source_object, GAsyncResult * res, gpointer use - - if (safe_str_eq(op->action, "stop")) { - crm_trace("Masking Stop failure for %s: unknown services are stopped", op->rsc); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - - } else { -- op->rc = PCMK_EXECRA_NOT_INSTALLED; -+ op->rc = PCMK_OCF_NOT_INSTALLED; - } - - } else { -@@ -398,11 +398,11 @@ systemd_unit_exec_done(GObject * source_object, GAsyncResult * res, gpointer use - g_variant_get(_ret, "(o)", &path); - crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), - path); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - - } else { - crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } - - operation_finalize(op); -@@ -423,7 +423,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - const char *action = op->action; - char *name = systemd_service_name(op->agent); - -- op->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ op->rc = PCMK_OCF_UNKNOWN_ERROR; - CRM_ASSERT(systemd_init()); - - crm_debug("Performing %ssynchronous %s op on systemd unit %s named '%s'", -@@ -431,7 +431,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - - if (safe_str_eq(op->action, "meta-data")) { - op->stdout_data = systemd_unit_metadata(op->agent); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - goto cleanup; - } - -@@ -440,7 +440,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - crm_debug("Could not obtain unit named '%s': %s", op->agent, - error ? error->message : "unknown"); - if (error && strstr(error->message, "systemd1.NoSuchUnit")) { -- op->rc = PCMK_EXECRA_NOT_INSTALLED; -+ op->rc = PCMK_OCF_NOT_INSTALLED; - } - if(error) { - g_error_free(error); -@@ -452,9 +452,9 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - char *state = systemd_unit_property(unit, BUS_NAME ".Unit", "ActiveState"); - - if (g_strcmp0(state, "active") == 0) { -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else { -- op->rc = PCMK_EXECRA_NOT_RUNNING; -+ op->rc = PCMK_OCF_NOT_RUNNING; - } - - free(state); -@@ -504,7 +504,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - } else if (g_strcmp0(action, "restart") == 0) { - action = "RestartUnit"; - } else { -- op->rc = PCMK_EXECRA_UNIMPLEMENT_FEATURE; -+ op->rc = PCMK_OCF_UNIMPLEMENT_FEATURE; - goto cleanup; - } - -@@ -525,7 +525,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - if (safe_str_eq(op->action, "stop") - && strstr(error->message, "systemd1.InvalidName")) { - crm_trace("Masking Stop failure for %s: unknown services are stopped", op->rsc); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else { - crm_err("Could not issue %s for %s: %s (%s)", action, op->rsc, error->message, unit); - } -@@ -537,11 +537,11 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - g_variant_get(_ret, "(o)", &path); - crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), - path); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - - } else { - crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } - - cleanup: -@@ -555,5 +555,5 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - operation_finalize(op); - return TRUE; - } -- return op->rc == PCMK_EXECRA_OK; -+ return op->rc == PCMK_OCF_OK; - } -diff --git a/lib/services/upstart.c b/lib/services/upstart.c -index f5fa189..daeb398 100644 ---- a/lib/services/upstart.c -+++ b/lib/services/upstart.c -@@ -384,12 +384,12 @@ upstart_job_exec_done(GObject * source_object, GAsyncResult * res, gpointer user - if (safe_str_eq(op->action, "start") - && strstr(error->message, BUS_MANAGER_IFACE ".Error.AlreadyStarted")) { - crm_trace("Masking Start failure for %s: already started", op->rsc); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - - } else if (safe_str_eq(op->action, "stop") - && strstr(error->message, BUS_MANAGER_IFACE ".Error.UnknownInstance")) { - crm_trace("Masking Stop failure for %s: unknown services are stopped", op->rsc); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else { - crm_err("Could not issue %s for %s: %s", op->action, op->rsc, error->message); - } -@@ -401,11 +401,11 @@ upstart_job_exec_done(GObject * source_object, GAsyncResult * res, gpointer user - g_variant_get(_ret, "(o)", &path); - crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), - path); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - - } else { - crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } - - operation_finalize(op); -@@ -427,12 +427,12 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) - GVariant *_ret = NULL; - GDBusProxy *job_proxy = NULL; - -- op->rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ op->rc = PCMK_OCF_UNKNOWN_ERROR; - CRM_ASSERT(upstart_init()); - - if (safe_str_eq(op->action, "meta-data")) { - op->stdout_data = upstart_job_metadata(op->agent); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - goto cleanup; - } - -@@ -443,18 +443,18 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) - } - if (pass == FALSE) { - if (!g_strcmp0(action, "stop")) { -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else { -- op->rc = PCMK_EXECRA_NOT_INSTALLED; -+ op->rc = PCMK_OCF_NOT_INSTALLED; - } - goto cleanup; - } - - if (safe_str_eq(op->action, "monitor") || safe_str_eq(action, "status")) { - if (upstart_job_running(op->agent)) { -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else { -- op->rc = PCMK_EXECRA_NOT_RUNNING; -+ op->rc = PCMK_OCF_NOT_RUNNING; - } - goto cleanup; - -@@ -465,7 +465,7 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) - } else if (!g_strcmp0(action, "restart")) { - action = "Restart"; - } else { -- op->rc = PCMK_EXECRA_UNIMPLEMENT_FEATURE; -+ op->rc = PCMK_OCF_UNIMPLEMENT_FEATURE; - goto cleanup; - } - -@@ -487,11 +487,11 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) - if (safe_str_eq(action, "Start") - && strstr(error->message, BUS_MANAGER_IFACE ".Error.AlreadyStarted")) { - crm_trace("Masking Start failure for %s: already started", op->rsc); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else if (safe_str_eq(action, "Stop") - && strstr(error->message, BUS_MANAGER_IFACE ".Error.UnknownInstance")) { - crm_trace("Masking Stop failure for %s: unknown services are stopped", op->rsc); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } else { - crm_err("Could not issue %s for %s: %s (%s)", action, op->rsc, error->message, job); - } -@@ -502,11 +502,11 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) - g_variant_get(_ret, "(o)", &path); - crm_info("Call to %s passed: type '%s' %s", op->action, g_variant_get_type_string(_ret), - path); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - - } else { - crm_err("Call to %s passed but return type was '%s' not '(o)'", op->action, g_variant_get_type_string(_ret)); -- op->rc = PCMK_EXECRA_OK; -+ op->rc = PCMK_OCF_OK; - } - - cleanup: -@@ -524,5 +524,5 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) - operation_finalize(op); - return TRUE; - } -- return op->rc == PCMK_EXECRA_OK; -+ return op->rc == PCMK_OCF_OK; - } -diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c -index b5bbea0..8592b6c 100644 ---- a/lrmd/lrmd.c -+++ b/lrmd/lrmd.c -@@ -460,38 +460,38 @@ static int - lsb2uniform_rc(const char *action, int rc) - { - if (rc < 0) { -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - - /* status has different return codes that everything else. */ - if (!safe_str_eq(action, "status") && !safe_str_eq(action, "monitor")) { - if (rc > PCMK_LSB_NOT_RUNNING) { -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - return rc; - } - - switch (rc) { - case PCMK_LSB_STATUS_OK: -- return PCMK_EXECRA_OK; -+ return PCMK_OCF_OK; - case PCMK_LSB_STATUS_NOT_INSTALLED: -- return PCMK_EXECRA_NOT_INSTALLED; -+ return PCMK_OCF_NOT_INSTALLED; - case PCMK_LSB_STATUS_VAR_PID: - case PCMK_LSB_STATUS_VAR_LOCK: - case PCMK_LSB_STATUS_NOT_RUNNING: -- return PCMK_EXECRA_NOT_RUNNING; -+ return PCMK_OCF_NOT_RUNNING; - default: -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - - static int - ocf2uniform_rc(int rc) - { - if (rc < 0 || rc > PCMK_OCF_FAILED_MASTER) { -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - - return rc; -@@ -502,14 +502,14 @@ stonith2uniform_rc(const char *action, int rc) - { - if (rc == -ENODEV) { - if (safe_str_eq(action, "stop")) { -- rc = PCMK_EXECRA_OK; -+ rc = PCMK_OCF_OK; - } else if (safe_str_eq(action, "start")) { -- rc = PCMK_EXECRA_NOT_INSTALLED; -+ rc = PCMK_OCF_NOT_INSTALLED; - } else { -- rc = PCMK_EXECRA_NOT_RUNNING; -+ rc = PCMK_OCF_NOT_RUNNING; - } - } else if (rc != 0) { -- rc = PCMK_EXECRA_UNKNOWN_ERROR; -+ rc = PCMK_OCF_UNKNOWN_ERROR; - } - return rc; - } -@@ -519,25 +519,25 @@ static int - nagios2uniform_rc(const char *action, int rc) - { - if (rc < 0) { -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - - switch (rc) { - case NAGIOS_STATE_OK: -- return PCMK_EXECRA_OK; -+ return PCMK_OCF_OK; - case NAGIOS_INSUFFICIENT_PRIV: -- return PCMK_EXECRA_INSUFFICIENT_PRIV; -+ return PCMK_OCF_INSUFFICIENT_PRIV; - case NAGIOS_NOT_INSTALLED: -- return PCMK_EXECRA_NOT_INSTALLED; -+ return PCMK_OCF_NOT_INSTALLED; - case NAGIOS_STATE_WARNING: - case NAGIOS_STATE_CRITICAL: - case NAGIOS_STATE_UNKNOWN: - case NAGIOS_STATE_DEPENDENT: - default: -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - -- return PCMK_EXECRA_UNKNOWN_ERROR; -+ return PCMK_OCF_UNKNOWN_ERROR; - } - #endif - -@@ -605,11 +605,11 @@ action_complete(svc_action_t * action) - #if SUPPORT_NAGIOS - if (rsc && safe_str_eq(rsc->class, "nagios")) { - if (safe_str_eq(cmd->action, "monitor") && -- cmd->interval == 0 && cmd->exec_rc == PCMK_EXECRA_OK) { -+ cmd->interval == 0 && cmd->exec_rc == PCMK_OCF_OK) { - /* Successfully executed --version for the nagios plugin */ -- cmd->exec_rc = PCMK_EXECRA_NOT_RUNNING; -+ cmd->exec_rc = PCMK_OCF_NOT_RUNNING; - -- } else if (safe_str_eq(cmd->action, "start") && cmd->exec_rc != PCMK_EXECRA_OK) { -+ } else if (safe_str_eq(cmd->action, "start") && cmd->exec_rc != PCMK_OCF_OK) { - int time_sum = 0; - int timeout_left = 0; - int delay = cmd->timeout_orig / 10; -@@ -841,7 +841,7 @@ lrmd_rsc_execute_service_lib(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) - #if SUPPORT_NAGIOS - /* Recurring operations are cancelled anyway for a stop operation */ - if (safe_str_eq(rsc->class, "nagios") && safe_str_eq(cmd->action, "stop")) { -- cmd->exec_rc = PCMK_EXECRA_OK; -+ cmd->exec_rc = PCMK_OCF_OK; - goto exec_done; - } - #endif -diff --git a/lrmd/test.c b/lrmd/test.c -index 15ffd88..2d8571e 100644 ---- a/lrmd/test.c -+++ b/lrmd/test.c -@@ -110,7 +110,7 @@ test_exit(int rc) - lrmd_event_type2str(event->type), \ - event->rsc_id, \ - event->op_type ? event->op_type : "none", \ -- lrmd_event_rc2str(event->rc), \ -+ services_ocf_exitcode_str(event->rc), \ - services_lrm_status_str(event->op_status)); \ - crm_info("%s", event_buf_v0);; - -diff --git a/pengine/native.c b/pengine/native.c -index 37f5211..21ad629 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -23,6 +23,7 @@ - #include <crm/msg_xml.h> - #include <allocate.h> - #include <utils.h> -+#include <crm/services.h> - - /* #define DELETE_THEN_REFRESH 1 // The crmd will remove the resource from the CIB itself, making this redundant */ - #define INFINITY_HACK (INFINITY * -100) -@@ -783,7 +784,7 @@ RecurringOp(resource_t * rsc, action_t * start, node_t * node, - } - - if (rsc->next_role == RSC_ROLE_MASTER) { -- char *running_master = crm_itoa(PCMK_EXECRA_RUNNING_MASTER); -+ char *running_master = crm_itoa(PCMK_OCF_RUNNING_MASTER); - - add_hash_param(mon->meta, XML_ATTR_TE_TARGET_RC, running_master); - free(running_master); -@@ -949,7 +950,7 @@ RecurringOp_Stopped(resource_t * rsc, action_t * start, node_t * node, - - stopped_mon = custom_action(rsc, strdup(key), name, stop_node, is_optional, TRUE, data_set); - -- rc_inactive = crm_itoa(PCMK_EXECRA_NOT_RUNNING); -+ rc_inactive = crm_itoa(PCMK_OCF_NOT_RUNNING); - add_hash_param(stopped_mon->meta, XML_ATTR_TE_TARGET_RC, rc_inactive); - free(rc_inactive); - -@@ -2400,8 +2401,8 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, - static const char *rc_inactive = NULL; - - if (rc_inactive == NULL) { -- rc_inactive = crm_itoa(PCMK_EXECRA_NOT_RUNNING); -- rc_master = crm_itoa(PCMK_EXECRA_RUNNING_MASTER); -+ rc_inactive = crm_itoa(PCMK_OCF_NOT_RUNNING); -+ rc_master = crm_itoa(PCMK_OCF_RUNNING_MASTER); - } - - CRM_CHECK(node != NULL, return FALSE); -diff --git a/tools/crm_mon.c b/tools/crm_mon.c -index 9d68237..7c6e495 100644 ---- a/tools/crm_mon.c -+++ b/tools/crm_mon.c -@@ -950,7 +950,7 @@ print_rsc_history(pe_working_set_t * data_set, node_t * node, xmlNode * rsc_entr - } - } - -- print_as(" rc=%s (%s)\n", op_rc, lrmd_event_rc2str(rc)); -+ print_as(" rc=%s (%s)\n", op_rc, services_ocf_exitcode_str(rc)); - } - - /* no need to free the contents */ -@@ -1405,11 +1405,11 @@ print_status(pe_working_set_t * data_set) - } - - print_as(" %s on %s '%s' (%d): call=%s, status=%s, last-rc-change='%s', queued=%sms, exec=%sms\n", -- op_key ? op_key : id, node, lrmd_event_rc2str(rc), rc, call, services_lrm_status_str(status), -+ op_key ? op_key : id, node, services_ocf_exitcode_str(rc), rc, call, services_lrm_status_str(status), - run_at_s, crm_element_value(xml_op, XML_RSC_OP_T_EXEC), crm_element_value(xml_op, XML_RSC_OP_T_QUEUE)); - } else { - print_as(" %s on %s '%s' (%d): call=%s, status=%s\n", -- op_key ? op_key : id, node, lrmd_event_rc2str(rc), rc, call, services_lrm_status_str(status)); -+ op_key ? op_key : id, node, services_ocf_exitcode_str(rc), rc, call, services_lrm_status_str(status)); - } - } - print_as("\n"); -@@ -2135,10 +2135,10 @@ send_smtp_trap(const char *node, const char *rsc, const char *task, int target_r - "\toperation status: (%d) %s\r\n", status, services_lrm_status_str(status)); - if (status == PCMK_LRM_OP_DONE) { - len += snprintf(crm_mail_body + len, BODY_MAX - len, -- "\tscript returned: (%d) %s\r\n", rc, lrmd_event_rc2str(rc)); -+ "\tscript returned: (%d) %s\r\n", rc, services_ocf_exitcode_str(rc)); - len += snprintf(crm_mail_body + len, BODY_MAX - len, - "\texpected return value: (%d) %s\r\n", target_rc, -- lrmd_event_rc2str(target_rc)); -+ services_ocf_exitcode_str(target_rc)); - } - - auth_client_init(); -@@ -2274,12 +2274,12 @@ handle_rsc_op(xmlNode * rsc_op) - desc = pcmk_strerror(pcmk_ok); - if (status == PCMK_LRM_OP_DONE && target_rc == rc) { - crm_notice("%s of %s on %s completed: %s", task, rsc, node, desc); -- if (rc == PCMK_EXECRA_NOT_RUNNING) { -+ if (rc == PCMK_OCF_NOT_RUNNING) { - notify = FALSE; - } - - } else if (status == PCMK_LRM_OP_DONE) { -- desc = lrmd_event_rc2str(rc); -+ desc = services_ocf_exitcode_str(rc); - crm_warn("%s of %s on %s failed: %s", task, rsc, node, desc); - - } else { diff --git a/SOURCES/bz720543-pcmk-remote_handle_endian_changes_between_client_and_server_and_improve_forward_compatibility.patch b/SOURCES/bz720543-pcmk-remote_handle_endian_changes_between_client_and_server_and_improve_forward_compatibility.patch deleted file mode 100644 index acf5502..0000000 --- a/SOURCES/bz720543-pcmk-remote_handle_endian_changes_between_client_and_server_and_improve_forward_compatibility.patch +++ /dev/null @@ -1,316 +0,0 @@ -commit d0cd173e2b9d26a3af6e28746003453500f8f655 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Oct 31 08:18:11 2013 +1100 - - Fix: remote: Handle endian changes between client and server and improve forward compatibility - - (cherry picked from commit 0c8cb451bb31335e242da328c8a537ab60095a0f) - -diff --git a/configure.ac b/configure.ac -index cfc1b1f..b94c26e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -727,6 +727,7 @@ AC_CHECK_HEADERS(glib.h) - AC_CHECK_HEADERS(grp.h) - AC_CHECK_HEADERS(limits.h) - AC_CHECK_HEADERS(linux/errqueue.h) -+AC_CHECK_HEADERS(linux/swab.h) - AC_CHECK_HEADERS(malloc.h) - AC_CHECK_HEADERS(netdb.h) - AC_CHECK_HEADERS(netinet/in.h) -diff --git a/lib/common/remote.c b/lib/common/remote.c -index c991761..47f0205 100644 ---- a/lib/common/remote.c -+++ b/lib/common/remote.c -@@ -43,9 +43,7 @@ - #ifdef HAVE_GNUTLS_GNUTLS_H - # undef KEYFILE - # include <gnutls/gnutls.h> --#endif - --#ifdef HAVE_GNUTLS_GNUTLS_H - const int psk_tls_kx_order[] = { - GNUTLS_KX_DHE_PSK, - GNUTLS_KX_PSK, -@@ -58,17 +56,87 @@ const int anon_tls_kx_order[] = { - GNUTLS_KX_RSA, - 0 - }; -+#endif -+ -+/* Swab macros from linux/swab.h */ -+#ifdef HAVE_LINUX_SWAB_H -+# include <linux/swab.h> -+#else -+/* -+ * casts are necessary for constants, because we never know how for sure -+ * how U/UL/ULL map to __u16, __u32, __u64. At least not in a portable way. -+ */ -+#define ___swab16(x) ((__u16)( \ -+ (((__u16)(x) & (__u16)0x00ffU) << 8) | \ -+ (((__u16)(x) & (__u16)0xff00U) >> 8))) -+ -+#define ___swab32(x) ((__u32)( \ -+ (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \ -+ (((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \ -+ (((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \ -+ (((__u32)(x) & (__u32)0xff000000UL) >> 24))) -+ -+#define ___swab64(x) ((__u64)( \ -+ (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \ -+ (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \ -+ (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \ -+ (((__u64)(x) & (__u64)0x00000000ff000000ULL) << 8) | \ -+ (((__u64)(x) & (__u64)0x000000ff00000000ULL) >> 8) | \ -+ (((__u64)(x) & (__u64)0x0000ff0000000000ULL) >> 24) | \ -+ (((__u64)(x) & (__u64)0x00ff000000000000ULL) >> 40) | \ -+ (((__u64)(x) & (__u64)0xff00000000000000ULL) >> 56))) -+#endif -+ -+#define REMOTE_MSG_VERSION 1 -+#define ENDIAN_LOCAL 0xBADADBBD - - struct crm_remote_header_v0 - { -+ uint32_t endian; /* Detect messages from hosts with different endian-ness */ -+ uint32_t version; - uint64_t id; - uint64_t flags; -- uint32_t error; -- uint32_t version; - uint32_t size_total; -- uint32_t payload_uncompressed; -+ uint32_t payload_offset; - uint32_t payload_compressed; --}; -+ uint32_t payload_uncompressed; -+ -+ /* New fields get added here */ -+ -+} __attribute__ ((packed)); -+ -+static struct crm_remote_header_v0 * -+crm_remote_header(crm_remote_t * remote) -+{ -+ struct crm_remote_header_v0 *header = (struct crm_remote_header_v0 *)remote->buffer; -+ if(remote->buffer_offset < sizeof(struct crm_remote_header_v0)) { -+ return NULL; -+ -+ } else if(header->endian != ENDIAN_LOCAL) { -+ uint32_t endian = __swab32(header->endian); -+ -+ CRM_LOG_ASSERT(endian == ENDIAN_LOCAL); -+ if(endian != ENDIAN_LOCAL) { -+ crm_err("Invalid message detected, endian mismatch: %lx is neither %lx nor the swab'd %lx", -+ ENDIAN_LOCAL, header->endian, endian); -+ return NULL; -+ } -+ -+ header->id = __swab64(header->id); -+ header->flags = __swab64(header->flags); -+ header->endian = __swab32(header->endian); -+ -+ header->version = __swab32(header->version); -+ header->size_total = __swab32(header->size_total); -+ header->payload_offset = __swab32(header->payload_offset); -+ header->payload_compressed = __swab32(header->payload_compressed); -+ header->payload_uncompressed = __swab32(header->payload_uncompressed); -+ } -+ -+ return header; -+} -+ -+#ifdef HAVE_GNUTLS_GNUTLS_H - - int - crm_initiate_client_tls_handshake(crm_remote_t * remote, int timeout_ms) -@@ -253,13 +321,11 @@ crm_remote_sendv(crm_remote_t * remote, struct iovec * iov, int iovs) - return rc; - } - --#define PCMK_TLS_VERSION 1 -- - int - crm_remote_send(crm_remote_t * remote, xmlNode * msg) - { -- static uint64_t id = 0; - int rc = -1; -+ static uint64_t id = 0; - char *xml_text = dump_xml_unformatted(msg); - - struct iovec iov[2]; -@@ -278,19 +344,25 @@ crm_remote_send(crm_remote_t * remote, xmlNode * msg) - - id++; - header->id = id; -- header->version = PCMK_TLS_VERSION; -- header->size_total = iov[0].iov_len + iov[1].iov_len; -+ header->endian = ENDIAN_LOCAL; -+ header->version = REMOTE_MSG_VERSION; -+ header->payload_offset = iov[0].iov_len; - header->payload_uncompressed = iov[1].iov_len; -+ header->size_total = iov[0].iov_len + iov[1].iov_len; - -+ crm_trace("Sending len[0]=%d, start=%x\n", -+ (int)iov[0].iov_len, *(int*)xml_text); - rc = crm_remote_sendv(remote, iov, 2); - if (rc < 0) { - crm_err("Failed to send remote msg, rc = %d", rc); - } - -- free(xml_text); -+ free(iov[0].iov_base); -+ free(iov[1].iov_base); - return rc; - } - -+ - /*! - * \internal - * \brief handles the recv buffer and parsing out msgs. -@@ -300,34 +372,35 @@ xmlNode * - crm_remote_parse_buffer(crm_remote_t * remote) - { - xmlNode *xml = NULL; -- size_t offset = sizeof(struct crm_remote_header_v0); -- struct crm_remote_header_v0 *header = NULL; -+ struct crm_remote_header_v0 *header = crm_remote_header(remote); - -- if (remote->buffer == NULL) { -- return NULL; -- -- } else if(remote->buffer_offset < sizeof(struct crm_remote_header_v0)) { -+ if (remote->buffer == NULL || header == NULL) { - return NULL; - } - - /* take ownership of the buffer */ - remote->buffer_offset = 0; - -- header = (struct crm_remote_header_v0 *)remote->buffer; - /* Support compression on the receiving end now, in case we ever want to add it later */ - if (header->payload_compressed) { - int rc = 0; - unsigned int size_u = 1 + header->payload_uncompressed; -- char *uncompressed = calloc(1, offset + size_u); -+ char *uncompressed = calloc(1, header->payload_offset + size_u); - - crm_trace("Decompressing message data %d bytes into %d bytes", - header->payload_compressed, size_u); - -- rc = BZ2_bzBuffToBuffDecompress(uncompressed + offset, &size_u, -- remote->buffer + offset, -+ rc = BZ2_bzBuffToBuffDecompress(uncompressed + header->payload_offset, &size_u, -+ remote->buffer + header->payload_offset, - header->payload_compressed, 1, 0); - -- if (rc != BZ_OK) { -+ if (rc != BZ_OK && header->version > REMOTE_MSG_VERSION) { -+ crm_warn("Couldn't decompress v%d message, we only understand v%d", -+ header->version, REMOTE_MSG_VERSION); -+ free(uncompressed); -+ return NULL; -+ -+ } else if (rc != BZ_OK) { - crm_err("Decompression failed: %s (%d)", bz2_strerror(rc), rc); - free(uncompressed); - return NULL; -@@ -335,19 +408,23 @@ crm_remote_parse_buffer(crm_remote_t * remote) - - CRM_ASSERT(size_u == header->payload_uncompressed); - -- memcpy(uncompressed, remote->buffer, offset); /* Preserve the header */ -- header = (struct crm_remote_header_v0 *)uncompressed; -+ memcpy(uncompressed, remote->buffer, header->payload_offset); /* Preserve the header */ -+ remote->buffer_size = header->payload_offset + size_u; - - free(remote->buffer); -- remote->buffer_size = offset + size_u; - remote->buffer = uncompressed; -+ header = crm_remote_header(remote); - } - -- CRM_ASSERT(remote->buffer[sizeof(struct crm_remote_header_v0) + header->payload_uncompressed - 1] == 0); -+ CRM_LOG_ASSERT(remote->buffer[sizeof(struct crm_remote_header_v0) + header->payload_uncompressed - 1] == 0); -+ -+ xml = string2xml(remote->buffer + header->payload_offset); -+ if (xml == NULL && header->version > REMOTE_MSG_VERSION) { -+ crm_warn("Couldn't parse v%d message, we only understand v%d", -+ header->version, REMOTE_MSG_VERSION); - -- xml = string2xml(remote->buffer + offset); -- if (xml == NULL) { -- crm_err("Couldn't parse: '%.120s'", remote->buffer + offset); -+ } else if (xml == NULL) { -+ crm_err("Couldn't parse: '%.120s'", remote->buffer + header->payload_offset); - } - - return xml; -@@ -424,16 +501,16 @@ crm_remote_recv_once(crm_remote_t * remote) - { - int rc = 0; - size_t read_len = sizeof(struct crm_remote_header_v0); -+ struct crm_remote_header_v0 *header = crm_remote_header(remote); - -- if(remote->buffer_offset >= sizeof(struct crm_remote_header_v0)) { -- struct crm_remote_header_v0 *hdr = (struct crm_remote_header_v0 *)remote->buffer; -- -- read_len = hdr->size_total; -+ if(header) { -+ /* Stop at the end of the current message */ -+ read_len = header->size_total; - } - - /* automatically grow the buffer when needed */ - if(remote->buffer_size < read_len) { -- remote->buffer_size = 2 * read_len; -+ remote->buffer_size = 2 * read_len; - crm_trace("Expanding buffer to %u bytes", remote->buffer_size); - - remote->buffer = realloc(remote->buffer, remote->buffer_size + 1); -@@ -488,23 +565,18 @@ crm_remote_recv_once(crm_remote_t * remote) - return -ENOTCONN; - } - -- if(remote->buffer_offset < sizeof(struct crm_remote_header_v0)) { -- crm_trace("Not enough data to fill header: %u < %u bytes", -- remote->buffer_offset, sizeof(struct crm_remote_header_v0)); -- return -EAGAIN; -- -- } else { -- struct crm_remote_header_v0 *hdr = (struct crm_remote_header_v0 *)remote->buffer; -- -- if(remote->buffer_offset < hdr->size_total) { -+ header = crm_remote_header(remote); -+ if(header) { -+ if(remote->buffer_offset < header->size_total) { - crm_trace("Read less than the advertised length: %u < %u bytes", -- remote->buffer_offset, hdr->size_total); -- return -EAGAIN; -+ remote->buffer_offset, header->size_total); -+ } else { -+ crm_trace("Read full message of %u bytes", remote->buffer_offset); -+ return remote->buffer_offset; - } - } - -- crm_trace("Read full message of %u bytes", remote->buffer_offset); -- return remote->buffer_offset; -+ return -EAGAIN; - } - - /*! -diff --git a/lib/lrmd/lrmd_client.c b/lib/lrmd/lrmd_client.c -index d037022..d99d7c8 100644 ---- a/lib/lrmd/lrmd_client.c -+++ b/lib/lrmd/lrmd_client.c -@@ -414,9 +414,6 @@ lrmd_poll(lrmd_t * lrmd, int timeout) - case CRM_CLIENT_TLS: - if (native->pending_notify) { - return 1; -- } else if (native->remote->buffer -- && strstr(native->remote->buffer, REMOTE_MSG_TERMINATOR)) { -- return 1; - } - - return crm_remote_ready(native->remote, 0); diff --git a/SOURCES/bz720543-pcmk-remote_improved_logging_of_recv_errors.patch b/SOURCES/bz720543-pcmk-remote_improved_logging_of_recv_errors.patch deleted file mode 100644 index edb302c..0000000 --- a/SOURCES/bz720543-pcmk-remote_improved_logging_of_recv_errors.patch +++ /dev/null @@ -1,33 +0,0 @@ -commit 15ebd31f77412e869c2bd7264a53117eb90d1229 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Oct 15 10:01:05 2013 +1100 - - Log: remote: Improved logging of recv() errors - - (cherry picked from commit 3647b64d004b4377c90963de5ccbec45d1daef72) - -diff --git a/lib/common/remote.c b/lib/common/remote.c -index 297c75a..c991761 100644 ---- a/lib/common/remote.c -+++ b/lib/common/remote.c -@@ -459,7 +459,7 @@ crm_remote_recv_once(crm_remote_t * remote) - } else if (rc == GNUTLS_E_AGAIN) { - rc = -EAGAIN; - } else if (rc < 0) { -- crm_info("TLS receive failed: %s (%d)", gnutls_strerror(rc), rc); -+ crm_debug("TLS receive failed: %s (%d)", gnutls_strerror(rc), rc); - rc = -pcmk_err_generic; - } - #endif -@@ -482,9 +482,9 @@ crm_remote_recv_once(crm_remote_t * remote) - crm_debug("EOF encoutered after %u bytes", remote->buffer_offset); - return -ENOTCONN; - -- } else if (rc <= 0) { -+ } else { - crm_debug("Error receiving message after %u bytes: %s (%d)", -- remote->buffer_offset, gnutls_strerror(rc), rc); -+ remote->buffer_offset, pcmk_strerror(rc), rc); - return -ENOTCONN; - } - diff --git a/SOURCES/bz720543-pcmk-remote_properly_version_the_remote_connection_protocol.patch b/SOURCES/bz720543-pcmk-remote_properly_version_the_remote_connection_protocol.patch deleted file mode 100644 index d562189..0000000 --- a/SOURCES/bz720543-pcmk-remote_properly_version_the_remote_connection_protocol.patch +++ /dev/null @@ -1,607 +0,0 @@ -commit 330600b4cafd37f51d109728f9377bc921a6aa7f -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Oct 14 13:50:41 2013 +1100 - - Feature: remote: Properly version the remote connection protocol - - (cherry picked from commit aa024490a023bd0d0d5568f08b2c60b61adb15f5) - -diff --git a/include/crm/common/ipcs.h b/include/crm/common/ipcs.h -index 3e78d51..84249a3 100644 ---- a/include/crm/common/ipcs.h -+++ b/include/crm/common/ipcs.h -@@ -41,14 +41,17 @@ enum client_type { - struct crm_remote_s { - /* Shared */ - char *buffer; -+ size_t buffer_size; -+ size_t buffer_offset; - int auth_timeout; -- bool authenticated; /* CIB-only */ -+ int tcp_socket; - mainloop_io_t *source; - -- char *token; /* CIB Only */ -- -- int tcp_socket; -+ /* CIB-only */ -+ bool authenticated; -+ char *token; - -+ /* TLS only */ - # ifdef HAVE_GNUTLS_GNUTLS_H - gnutls_session_t *tls_session; - bool tls_handshake_complete; -diff --git a/lib/common/remote.c b/lib/common/remote.c -index 8b00f16..297c75a 100644 ---- a/lib/common/remote.c -+++ b/lib/common/remote.c -@@ -34,6 +34,8 @@ - #include <fcntl.h> - #include <glib.h> - -+#include <bzlib.h> -+ - #include <crm/common/ipcs.h> - #include <crm/common/xml.h> - #include <crm/common/mainloop.h> -@@ -57,6 +59,17 @@ const int anon_tls_kx_order[] = { - 0 - }; - -+struct crm_remote_header_v0 -+{ -+ uint64_t id; -+ uint64_t flags; -+ uint32_t error; -+ uint32_t version; -+ uint32_t size_total; -+ uint32_t payload_uncompressed; -+ uint32_t payload_compressed; -+}; -+ - int - crm_initiate_client_tls_handshake(crm_remote_t * remote, int timeout_ms) - { -@@ -176,97 +189,6 @@ crm_send_tls(gnutls_session_t * session, const char *buf, size_t len) - - return rc < 0 ? rc : total_send; - } -- --/*! -- * \internal -- * \brief Read bytes off non blocking tls session. -- * -- * \param session - tls session to read -- * \param max_size - max bytes allowed to read for buffer. 0 assumes no limit -- * -- * \note only use with NON-Blocking sockets. Should only be used after polling socket. -- * This function will return once max_size is met, the socket read buffer -- * is empty, or an error is encountered. -- * -- * \retval '\0' terminated buffer on success -- */ --static char * --crm_recv_tls(gnutls_session_t * session, size_t max_size, size_t * recv_len, int *disconnected) --{ -- char *buf = NULL; -- int rc = 0; -- size_t len = 0; -- size_t chunk_size = max_size ? max_size : 1024; -- size_t buf_size = 0; -- size_t read_size = 0; -- -- if (session == NULL) { -- if (disconnected) { -- *disconnected = 1; -- } -- goto done; -- } -- -- buf = calloc(1, chunk_size + 1); -- buf_size = chunk_size; -- -- while (TRUE) { -- read_size = buf_size - len; -- -- /* automatically grow the buffer when needed if max_size is not set. */ -- if (!max_size && (read_size < (chunk_size / 2))) { -- buf_size += chunk_size; -- crm_trace("Grow buffer by %d more bytes. buf is now %d bytes", (int)chunk_size, -- buf_size); -- buf = realloc(buf, buf_size + 1); -- CRM_ASSERT(buf != NULL); -- -- read_size = buf_size - len; -- } -- -- rc = gnutls_record_recv(*session, buf + len, read_size); -- -- if (rc > 0) { -- crm_trace("Got %d more bytes.", rc); -- len += rc; -- /* always null terminate buffer, the +1 to alloc always allows for this. */ -- buf[len] = '\0'; -- } -- if (max_size && (max_size == read_size)) { -- crm_trace("Buffer max read size %d met", max_size); -- goto done; -- } -- -- /* process any errors. */ -- if (rc == GNUTLS_E_INTERRUPTED) { -- crm_trace("EINTR encoutered, retry tls read"); -- } else if (rc == GNUTLS_E_AGAIN) { -- crm_trace("non-blocking, exiting read on rc = %d", rc); -- goto done; -- } else if (rc <= 0) { -- if (rc == 0) { -- crm_debug("EOF encoutered during TLS read"); -- } else { -- crm_debug("Error receiving message: %s (%d)", gnutls_strerror(rc), rc); -- } -- if (disconnected) { -- *disconnected = 1; -- } -- goto done; -- } -- } -- -- done: -- if (recv_len) { -- *recv_len = len; -- } -- if (!len) { -- free(buf); -- buf = NULL; -- } -- return buf; -- --} - #endif - - static int -@@ -310,141 +232,57 @@ crm_send_plaintext(int sock, const char *buf, size_t len) - - } - --/*! -- * \internal -- * \brief Read bytes off non blocking socket. -- * -- * \param session - tls session to read -- * \param max_size - max bytes allowed to read for buffer. 0 assumes no limit -- * -- * \note only use with NON-Blocking sockets. Should only be used after polling socket. -- * This function will return once max_size is met, the socket read buffer -- * is empty, or an error is encountered. -- * -- * \retval '\0' terminated buffer on success -- */ --static char * --crm_recv_plaintext(int sock, size_t max_size, size_t * recv_len, int *disconnected) --{ -- char *buf = NULL; -- ssize_t rc = 0; -- ssize_t len = 0; -- ssize_t chunk_size = max_size ? max_size : 1024; -- size_t buf_size = 0; -- size_t read_size = 0; -- -- if (sock <= 0) { -- if (disconnected) { -- *disconnected = 1; -- } -- goto done; -- } -- -- buf = calloc(1, chunk_size + 1); -- buf_size = chunk_size; -- -- while (TRUE) { -- errno = 0; -- read_size = buf_size - len; -- -- /* automatically grow the buffer when needed if max_size is not set. */ -- if (!max_size && (read_size < (chunk_size / 2))) { -- buf_size += chunk_size; -- crm_trace("Grow buffer by %d more bytes. buf is now %d bytes", (int)chunk_size, -- buf_size); -- buf = realloc(buf, buf_size + 1); -- CRM_ASSERT(buf != NULL); -- -- read_size = buf_size - len; -- } -- -- rc = read(sock, buf + len, chunk_size); -- -- if (rc > 0) { -- crm_trace("Got %d more bytes. errno=%d", (int)rc, errno); -- len += rc; -- /* always null terminate buffer, the +1 to alloc always allows for this. */ -- buf[len] = '\0'; -- } -- if (max_size && (max_size == read_size)) { -- crm_trace("Buffer max read size %d met", max_size); -- goto done; -- } -- -- if (rc > 0) { -- continue; -- } else if (rc == 0) { -- if (disconnected) { -- *disconnected = 1; -- } -- crm_trace("EOF encoutered during read"); -- goto done; -- } -- -- /* process errors */ -- if (errno == EINTR) { -- crm_trace("EINTER encoutered, retry socket read."); -- } else if (errno == EAGAIN) { -- crm_trace("non-blocking, exiting read on rc = %d", rc); -- goto done; -- } else if (errno <= 0) { -- if (disconnected) { -- *disconnected = 1; -- } -- crm_debug("Error receiving message: %d", (int)rc); -- goto done; -- } -- } -- -- done: -- if (recv_len) { -- *recv_len = len; -- } -- if (!len) { -- free(buf); -- buf = NULL; -- } -- return buf; --} -- - static int --crm_remote_send_raw(crm_remote_t * remote, const char *buf, size_t len) -+crm_remote_sendv(crm_remote_t * remote, struct iovec * iov, int iovs) - { -+ int lpc = 0; - int rc = -ESOCKTNOSUPPORT; - -- if (remote->tcp_socket) { -- rc = crm_send_plaintext(remote->tcp_socket, buf, len); -+ for(; lpc < iovs; lpc++) { -+ if (remote->tcp_socket) { -+ rc = crm_send_plaintext(remote->tcp_socket, iov[lpc].iov_base, iov[lpc].iov_len); - #ifdef HAVE_GNUTLS_GNUTLS_H - -- } else if (remote->tls_session) { -- rc = crm_send_tls(remote->tls_session, buf, len); -+ } else if (remote->tls_session) { -+ rc = crm_send_tls(remote->tls_session, iov[lpc].iov_base, iov[lpc].iov_len); - #endif -- } else { -- crm_err("Unsupported connection type"); -+ } else { -+ crm_err("Unsupported connection type"); -+ } - } - return rc; - } - -+#define PCMK_TLS_VERSION 1 -+ - int - crm_remote_send(crm_remote_t * remote, xmlNode * msg) - { -+ static uint64_t id = 0; - int rc = -1; -- char *xml_text = NULL; -- int len = 0; -+ char *xml_text = dump_xml_unformatted(msg); - -- xml_text = dump_xml_unformatted(msg); -- if (xml_text) { -- len = strlen(xml_text); -- } else { -+ struct iovec iov[2]; -+ struct crm_remote_header_v0 *header = calloc(1, sizeof(struct crm_remote_header_v0)); -+ -+ if (xml_text == NULL) { - crm_err("Invalid XML, can not send msg"); - return -1; - } - -- rc = crm_remote_send_raw(remote, xml_text, len); -- if (rc >= 0) { -- rc = crm_remote_send_raw(remote, REMOTE_MSG_TERMINATOR, strlen(REMOTE_MSG_TERMINATOR)); -- } -+ iov[0].iov_base = header; -+ iov[0].iov_len = sizeof(struct crm_remote_header_v0); -+ -+ iov[1].iov_base = xml_text; -+ iov[1].iov_len = 1 + strlen(xml_text); - -+ id++; -+ header->id = id; -+ header->version = PCMK_TLS_VERSION; -+ header->size_total = iov[0].iov_len + iov[1].iov_len; -+ header->payload_uncompressed = iov[1].iov_len; -+ -+ rc = crm_remote_sendv(remote, iov, 2); - if (rc < 0) { - crm_err("Failed to send remote msg, rc = %d", rc); - } -@@ -461,44 +299,55 @@ crm_remote_send(crm_remote_t * remote, xmlNode * msg) - xmlNode * - crm_remote_parse_buffer(crm_remote_t * remote) - { -- char *buf = NULL; -- char *start = NULL; -- char *end = NULL; - xmlNode *xml = NULL; -+ size_t offset = sizeof(struct crm_remote_header_v0); -+ struct crm_remote_header_v0 *header = NULL; - - if (remote->buffer == NULL) { - return NULL; -+ -+ } else if(remote->buffer_offset < sizeof(struct crm_remote_header_v0)) { -+ return NULL; - } - - /* take ownership of the buffer */ -- buf = remote->buffer; -- remote->buffer = NULL; -- -- /* MSGS are separated by a '\r\n\r\n'. Split a message off the buffer and return it. */ -- start = buf; -- end = strstr(start, REMOTE_MSG_TERMINATOR); -+ remote->buffer_offset = 0; -+ -+ header = (struct crm_remote_header_v0 *)remote->buffer; -+ /* Support compression on the receiving end now, in case we ever want to add it later */ -+ if (header->payload_compressed) { -+ int rc = 0; -+ unsigned int size_u = 1 + header->payload_uncompressed; -+ char *uncompressed = calloc(1, offset + size_u); -+ -+ crm_trace("Decompressing message data %d bytes into %d bytes", -+ header->payload_compressed, size_u); -+ -+ rc = BZ2_bzBuffToBuffDecompress(uncompressed + offset, &size_u, -+ remote->buffer + offset, -+ header->payload_compressed, 1, 0); -+ -+ if (rc != BZ_OK) { -+ crm_err("Decompression failed: %s (%d)", bz2_strerror(rc), rc); -+ free(uncompressed); -+ return NULL; -+ } - -- while (!xml && end) { -+ CRM_ASSERT(size_u == header->payload_uncompressed); - -- /* grab the message */ -- end[0] = '\0'; -- end += strlen(REMOTE_MSG_TERMINATOR); -+ memcpy(uncompressed, remote->buffer, offset); /* Preserve the header */ -+ header = (struct crm_remote_header_v0 *)uncompressed; - -- xml = string2xml(start); -- if (xml == NULL) { -- crm_err("Couldn't parse: '%.120s'", start); -- } -- start = end; -- end = strstr(start, REMOTE_MSG_TERMINATOR); -+ free(remote->buffer); -+ remote->buffer_size = offset + size_u; -+ remote->buffer = uncompressed; - } - -- if (xml && start) { -- /* we have msgs left over, save it until next time */ -- remote->buffer = strdup(start); -- free(buf); -- } else if (!xml) { -- /* no msg present */ -- remote->buffer = buf; -+ CRM_ASSERT(remote->buffer[sizeof(struct crm_remote_header_v0) + header->payload_uncompressed - 1] == 0); -+ -+ xml = string2xml(remote->buffer + offset); -+ if (xml == NULL) { -+ crm_err("Couldn't parse: '%.120s'", remote->buffer + offset); - } - - return xml; -@@ -559,6 +408,105 @@ crm_remote_ready(crm_remote_t * remote, int timeout /* ms */ ) - return rc; - } - -+ -+/*! -+ * \internal -+ * \brief Read bytes off non blocking remote connection. -+ * -+ * \note only use with NON-Blocking sockets. Should only be used after polling socket. -+ * This function will return once max_size is met, the socket read buffer -+ * is empty, or an error is encountered. -+ * -+ * \retval number of bytes received -+ */ -+static size_t -+crm_remote_recv_once(crm_remote_t * remote) -+{ -+ int rc = 0; -+ size_t read_len = sizeof(struct crm_remote_header_v0); -+ -+ if(remote->buffer_offset >= sizeof(struct crm_remote_header_v0)) { -+ struct crm_remote_header_v0 *hdr = (struct crm_remote_header_v0 *)remote->buffer; -+ -+ read_len = hdr->size_total; -+ } -+ -+ /* automatically grow the buffer when needed */ -+ if(remote->buffer_size < read_len) { -+ remote->buffer_size = 2 * read_len; -+ crm_trace("Expanding buffer to %u bytes", remote->buffer_size); -+ -+ remote->buffer = realloc(remote->buffer, remote->buffer_size + 1); -+ CRM_ASSERT(remote->buffer != NULL); -+ } -+ -+ if (remote->tcp_socket) { -+ errno = 0; -+ rc = read(remote->tcp_socket, -+ remote->buffer + remote->buffer_offset, -+ remote->buffer_size - remote->buffer_offset); -+ if(rc < 0) { -+ rc = -errno; -+ } -+ -+#ifdef HAVE_GNUTLS_GNUTLS_H -+ } else if (remote->tls_session) { -+ rc = gnutls_record_recv(*(remote->tls_session), -+ remote->buffer + remote->buffer_offset, -+ remote->buffer_size - remote->buffer_offset); -+ if (rc == GNUTLS_E_INTERRUPTED) { -+ rc = -EINTR; -+ } else if (rc == GNUTLS_E_AGAIN) { -+ rc = -EAGAIN; -+ } else if (rc < 0) { -+ crm_info("TLS receive failed: %s (%d)", gnutls_strerror(rc), rc); -+ rc = -pcmk_err_generic; -+ } -+#endif -+ } else { -+ crm_err("Unsupported connection type"); -+ return -ESOCKTNOSUPPORT; -+ } -+ -+ /* process any errors. */ -+ if (rc > 0) { -+ remote->buffer_offset += rc; -+ /* always null terminate buffer, the +1 to alloc always allows for this. */ -+ remote->buffer[remote->buffer_offset] = '\0'; -+ crm_trace("Received %u more bytes, %u total", rc, remote->buffer_offset); -+ -+ } else if (rc == -EINTR || rc == -EAGAIN) { -+ crm_trace("non-blocking, exiting read: %s (%d)", pcmk_strerror(rc), rc); -+ -+ } else if (rc == 0) { -+ crm_debug("EOF encoutered after %u bytes", remote->buffer_offset); -+ return -ENOTCONN; -+ -+ } else if (rc <= 0) { -+ crm_debug("Error receiving message after %u bytes: %s (%d)", -+ remote->buffer_offset, gnutls_strerror(rc), rc); -+ return -ENOTCONN; -+ } -+ -+ if(remote->buffer_offset < sizeof(struct crm_remote_header_v0)) { -+ crm_trace("Not enough data to fill header: %u < %u bytes", -+ remote->buffer_offset, sizeof(struct crm_remote_header_v0)); -+ return -EAGAIN; -+ -+ } else { -+ struct crm_remote_header_v0 *hdr = (struct crm_remote_header_v0 *)remote->buffer; -+ -+ if(remote->buffer_offset < hdr->size_total) { -+ crm_trace("Read less than the advertised length: %u < %u bytes", -+ remote->buffer_offset, hdr->size_total); -+ return -EAGAIN; -+ } -+ } -+ -+ crm_trace("Read full message of %u bytes", remote->buffer_offset); -+ return remote->buffer_offset; -+} -+ - /*! - * \internal - * \brief Read data off the socket until at least one full message is present or timeout occures. -@@ -569,10 +517,8 @@ crm_remote_ready(crm_remote_t * remote, int timeout /* ms */ ) - gboolean - crm_remote_recv(crm_remote_t * remote, int total_timeout /*ms */ , int *disconnected) - { -- int ret; -- size_t request_len = 0; -+ int rc; - time_t start = time(NULL); -- char *raw_request = NULL; - int remaining_timeout = 0; - - if (total_timeout == 0) { -@@ -588,57 +534,30 @@ crm_remote_recv(crm_remote_t * remote, int total_timeout /*ms */ , int *disconne - /* read some more off the tls buffer if we still have time left. */ - crm_trace("waiting to receive remote msg, starting timeout %d, remaining_timeout %d", - total_timeout, remaining_timeout); -- ret = crm_remote_ready(remote, remaining_timeout); -- raw_request = NULL; -+ rc = crm_remote_ready(remote, remaining_timeout); - -- if (ret == 0) { -+ if (rc == 0) { - crm_err("poll timed out (%d ms) while waiting to receive msg", remaining_timeout); - return FALSE; - -- } else if (ret < 0) { -- if (errno != EINTR) { -- crm_debug("poll returned error while waiting for msg, rc: %d, errno: %d", ret, -- errno); -- *disconnected = 1; -- return FALSE; -- } -- crm_debug("poll EINTR encountered during poll, retrying"); -- -- } else if (remote->tcp_socket) { -- raw_request = crm_recv_plaintext(remote->tcp_socket, 0, &request_len, disconnected); -+ } else if(rc < 0) { -+ crm_debug("poll() failed: %s (%d)", pcmk_strerror(rc), rc); - --#ifdef HAVE_GNUTLS_GNUTLS_H -- } else if (remote->tls_session) { -- raw_request = crm_recv_tls(remote->tls_session, 0, &request_len, disconnected); --#endif - } else { -- crm_err("Unsupported connection type"); -- } -- -- remaining_timeout = remaining_timeout - ((time(NULL) - start) * 1000); -- -- if (!raw_request) { -- crm_debug("Empty msg received after poll"); -- continue; -+ rc = crm_remote_recv_once(remote); -+ if(rc > 0) { -+ return TRUE; -+ } else if (rc < 0) { -+ crm_debug("recv() failed: %s (%d)", pcmk_strerror(rc), rc); -+ } - } - -- if (remote->buffer) { -- int old_len = strlen(remote->buffer); -- -- crm_trace("Expanding recv buffer from %d to %d", old_len, old_len + request_len); -- -- remote->buffer = realloc(remote->buffer, old_len + request_len + 1); -- memcpy(remote->buffer + old_len, raw_request, request_len); -- *(remote->buffer + old_len + request_len) = '\0'; -- free(raw_request); -- -- } else { -- remote->buffer = raw_request; -+ if(rc == -ENOTCONN) { -+ *disconnected = 1; -+ return FALSE; - } - -- if (strstr(remote->buffer, REMOTE_MSG_TERMINATOR)) { -- return TRUE; -- } -+ remaining_timeout = remaining_timeout - ((time(NULL) - start) * 1000); - } - - return FALSE; diff --git a/SOURCES/bz720543-pcmk-removes_unnecessary_newlines_in_crm_resource_o_output.patch b/SOURCES/bz720543-pcmk-removes_unnecessary_newlines_in_crm_resource_o_output.patch deleted file mode 100644 index 9d1e7cc..0000000 --- a/SOURCES/bz720543-pcmk-removes_unnecessary_newlines_in_crm_resource_o_output.patch +++ /dev/null @@ -1,64 +0,0 @@ -commit 0c88fc0aa260dcd50e654275cc9fdd68e27a2617 -Author: David Vossel <dvossel@redhat.com> -Date: Wed Dec 4 17:04:52 2013 -0600 - - Fix: Removes unnecessary newlines in crm_resource -O output - - Resolves: rhbz#1038155 - (cherry picked from commit cd56faa1c9168811b64be9f7eea73ad600261844) - -diff --git a/include/crm/common/util.h b/include/crm/common/util.h -index f0dca36..9092708 100644 ---- a/include/crm/common/util.h -+++ b/include/crm/common/util.h -@@ -67,6 +67,8 @@ gboolean decode_transition_key(const char *key, char **uuid, int *action, int *t - gboolean decode_transition_magic(const char *magic, char **uuid, int *transition_id, int *action_id, - int *op_status, int *op_rc, int *target_rc); - -+char * crm_strip_trailing_newline(char *str); -+ - # define safe_str_eq(a, b) crm_str_eq(a, b, FALSE) - gboolean crm_str_eq(const char *a, const char *b, gboolean use_case); - gboolean safe_str_neq(const char *a, const char *b); -diff --git a/lib/common/utils.c b/lib/common/utils.c -index 527c9e0..4e18039 100644 ---- a/lib/common/utils.c -+++ b/lib/common/utils.c -@@ -1550,6 +1550,22 @@ crm_is_writable(const char *dir, const char *file, - return pass; - } - -+char * -+crm_strip_trailing_newline(char *str) -+{ -+ int len; -+ -+ if (str == NULL) { -+ return str; -+ } -+ -+ for (len = strlen(str) - 1; len >= 0 && str[len] == '\n'; len--) { -+ str[len] = '\0'; -+ } -+ -+ return str; -+} -+ - gboolean - crm_str_eq(const char *a, const char *b, gboolean use_case) - { -diff --git a/tools/crm_resource.c b/tools/crm_resource.c -index c03501d..2f0e282 100644 ---- a/tools/crm_resource.c -+++ b/tools/crm_resource.c -@@ -1119,8 +1119,8 @@ list_resource_operations(const char *rsc_id, const char *host_uname, gboolean ac - if (last) { - time_t run_at = crm_parse_int(last, "0"); - -- fprintf(stdout, ", last-rc-change=%s, exec=%sms\n", -- ctime(&run_at), crm_element_value(xml_op, XML_RSC_OP_T_EXEC)); -+ fprintf(stdout, ", last-rc-change=%s, exec=%sms", -+ crm_strip_trailing_newline(ctime(&run_at)), crm_element_value(xml_op, XML_RSC_OP_T_EXEC)); - } - fprintf(stdout, "): %s\n", services_lrm_status_str(status)); - } diff --git a/SOURCES/bz720543-pcmk-tools_fixes_formatting_of_remote_nodes_in_crm_mon_and_crm_simulate.patch b/SOURCES/bz720543-pcmk-tools_fixes_formatting_of_remote_nodes_in_crm_mon_and_crm_simulate.patch deleted file mode 100644 index ddbfc43..0000000 --- a/SOURCES/bz720543-pcmk-tools_fixes_formatting_of_remote_nodes_in_crm_mon_and_crm_simulate.patch +++ /dev/null @@ -1,356 +0,0 @@ -commit 27adba1575f508166e7203225a3ff6d580842dfd -Author: David Vossel <dvossel@redhat.com> -Date: Tue Aug 27 17:46:28 2013 -0500 - - Fix: tools: Fixes formatting of remote-nodes in crm_mon and crm_simulate - - (cherry picked from commit b32b60ec6d0963ea3767196f0fdd50746d27fafa) - - Conflicts: - pengine/test10/whitebox-ms-ordering.summary - -diff --git a/pengine/test10/whitebox-asymmetric.summary b/pengine/test10/whitebox-asymmetric.summary -index c4a8e0a..1a68802 100644 ---- a/pengine/test10/whitebox-asymmetric.summary -+++ b/pengine/test10/whitebox-asymmetric.summary -@@ -1,7 +1,6 @@ - - Current cluster status: - Online: [ 18builder ] --OFFLINE: [ 18node2:container2 ] - - fence_false (stonith:fence_false): Stopped - container2 (ocf::pacemaker:Dummy): Started 18builder -@@ -22,7 +21,8 @@ Executing cluster transition: - * Resource action: nfs_mount monitor=10000 on 18node2 - - Revised cluster status: --Online: [ 18builder 18node2:container2 ] -+Online: [ 18builder ] -+Containers: [ 18node2:container2 ] - - fence_false (stonith:fence_false): Stopped - container2 (ocf::pacemaker:Dummy): Started 18builder -diff --git a/pengine/test10/whitebox-fail1.summary b/pengine/test10/whitebox-fail1.summary -index 02d0f8e..5e5887b 100644 ---- a/pengine/test10/whitebox-fail1.summary -+++ b/pengine/test10/whitebox-fail1.summary -@@ -1,7 +1,7 @@ - - Current cluster status: --Online: [ 18node1 18node2 18node3 lxc2:container2 ] --OFFLINE: [ lxc1:container1 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): FAILED 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -@@ -38,7 +38,8 @@ Executing cluster transition: - * Resource action: B monitor=10000 on lxc1 - - Revised cluster status: --Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc1:container1 lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Started 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -diff --git a/pengine/test10/whitebox-fail2.summary b/pengine/test10/whitebox-fail2.summary -index 0e53524..338173d 100644 ---- a/pengine/test10/whitebox-fail2.summary -+++ b/pengine/test10/whitebox-fail2.summary -@@ -1,7 +1,7 @@ - - Current cluster status: --Online: [ 18node1 18node2 18node3 lxc2:container2 ] --OFFLINE: [ lxc1:container1 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): FAILED 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -@@ -38,7 +38,8 @@ Executing cluster transition: - * Resource action: B monitor=10000 on lxc1 - - Revised cluster status: --Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc1:container1 lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Started 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -diff --git a/pengine/test10/whitebox-fail3.summary b/pengine/test10/whitebox-fail3.summary -index 1d25724..395d218 100644 ---- a/pengine/test10/whitebox-fail3.summary -+++ b/pengine/test10/whitebox-fail3.summary -@@ -1,7 +1,6 @@ - - Current cluster status: - Online: [ dvossel-laptop2 ] --OFFLINE: [ 18builder:vm 18node1:vm2 ] - - vm (ocf::heartbeat:VirtualDomain): Stopped - vm2 (ocf::heartbeat:VirtualDomain): Stopped -@@ -39,8 +38,8 @@ Executing cluster transition: - * Resource action: X monitor=10000 on 18builder - - Revised cluster status: --Online: [ 18builder:vm dvossel-laptop2 ] --OFFLINE: [ 18node1:vm2 ] -+Online: [ dvossel-laptop2 ] -+Containers: [ 18builder:vm ] - - vm (ocf::heartbeat:VirtualDomain): Started dvossel-laptop2 - vm2 (ocf::heartbeat:VirtualDomain): Stopped -diff --git a/pengine/test10/whitebox-move.summary b/pengine/test10/whitebox-move.summary -index 6dc2f6f..3422ac7 100644 ---- a/pengine/test10/whitebox-move.summary -+++ b/pengine/test10/whitebox-move.summary -@@ -1,6 +1,7 @@ - - Current cluster status: --Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc1:container1 lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Started 18node1 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -@@ -34,7 +35,8 @@ Executing cluster transition: - * Resource action: lxc1 monitor=30000 on 18node2 - - Revised cluster status: --Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc1:container1 lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Started 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -diff --git a/pengine/test10/whitebox-start.summary b/pengine/test10/whitebox-start.summary -index e5d654b..2801abe 100644 ---- a/pengine/test10/whitebox-start.summary -+++ b/pengine/test10/whitebox-start.summary -@@ -1,7 +1,7 @@ - - Current cluster status: --Online: [ 18node1 18node2 18node3 lxc2:container2 ] --OFFLINE: [ lxc1:container1 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Stopped - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -@@ -29,7 +29,8 @@ Executing cluster transition: - * Resource action: M monitor=10000 on lxc1 - - Revised cluster status: --Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc1:container1 lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Started 18node1 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -diff --git a/pengine/test10/whitebox-stop.summary b/pengine/test10/whitebox-stop.summary -index 4116571..51357b9 100644 ---- a/pengine/test10/whitebox-stop.summary -+++ b/pengine/test10/whitebox-stop.summary -@@ -1,6 +1,7 @@ - - Current cluster status: --Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc1:container1 lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Started 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -@@ -30,8 +31,8 @@ Executing cluster transition: - * Pseudo action: all_stopped - - Revised cluster status: --Online: [ 18node1 18node2 18node3 lxc2:container2 ] --OFFLINE: [ lxc1:container1 ] -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc2:container2 ] - - container1 (ocf::heartbeat:VirtualDomain): Stopped - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 -diff --git a/tools/crm_mon.c b/tools/crm_mon.c -index 7c6e495..599df02 100644 ---- a/tools/crm_mon.c -+++ b/tools/crm_mon.c -@@ -1153,7 +1153,10 @@ print_status(pe_working_set_t * data_set) - node_t *dc = NULL; - char *since_epoch = NULL; - char *online_nodes = NULL; -+ char *online_remote_nodes = NULL; -+ char *online_remote_containers = NULL; - char *offline_nodes = NULL; -+ char *offline_remote_nodes = NULL; - const char *stack_s = NULL; - xmlNode *dc_version = NULL; - xmlNode *quorum_node = NULL; -@@ -1246,7 +1249,7 @@ print_status(pe_working_set_t * data_set) - const char *node_mode = NULL; - char *node_name = NULL; - -- if(node->details->remote_rsc) { -+ if (node->details->remote_rsc && node->details->remote_rsc->container) { - node_name = g_strdup_printf("%s:%s", node->details->uname, node->details->remote_rsc->container->id); - } else { - node_name = g_strdup_printf("%s", node->details->uname); -@@ -1286,23 +1289,37 @@ print_status(pe_working_set_t * data_set) - } else if (node->details->online) { - node_mode = "online"; - if (group_by_node == FALSE) { -- online_nodes = add_list_element(online_nodes, node_name); -+ if (node->details->remote_rsc && node->details->remote_rsc->container) { -+ online_remote_containers = add_list_element(online_remote_containers, node_name); -+ } else if (node->details->remote_rsc) { -+ online_remote_nodes = add_list_element(online_remote_nodes, node_name); -+ } else { -+ online_nodes = add_list_element(online_nodes, node_name); -+ } - continue; - } -- - } else { - node_mode = "OFFLINE"; - if (group_by_node == FALSE) { -- offline_nodes = add_list_element(offline_nodes, node_name); -+ -+ if (node->details->remote_rsc) { -+ if (node->details->remote_rsc->container == NULL) { -+ offline_remote_nodes = add_list_element(offline_remote_nodes, node_name); -+ } else { -+ /* ignore displaying offline container nodes */ -+ } -+ } else { -+ offline_nodes = add_list_element(offline_nodes, node_name); -+ } - continue; - } - } - -- if(node->details->remote_rsc) { -- online_nodes = add_list_element(online_nodes, node->details->remote_rsc->id); -- } -- -- if (safe_str_eq(node->details->uname, node->details->id)) { -+ if (node->details->remote_rsc && node->details->remote_rsc->container) { -+ print_as("ContainerNode %s: %s\n", node_name, node_mode); -+ } else if (node->details->remote_rsc) { -+ print_as("RemoteNode %s: %s\n", node_name, node_mode); -+ } else if (safe_str_eq(node->details->uname, node->details->id)) { - print_as("Node %s: %s\n", node_name, node_mode); - } else { - print_as("Node %s (%s): %s\n", node_name, node->details->id, node_mode); -@@ -1328,6 +1345,18 @@ print_status(pe_working_set_t * data_set) - print_as("OFFLINE: [%s ]\n", offline_nodes); - free(offline_nodes); - } -+ if (online_remote_nodes) { -+ print_as("RemoteOnline: [%s ]\n", online_remote_nodes); -+ free(online_remote_nodes); -+ } -+ if (offline_remote_nodes) { -+ print_as("RemoteOFFLINE: [%s ]\n", offline_remote_nodes); -+ free(offline_remote_nodes); -+ } -+ if (online_remote_containers) { -+ print_as("Containers: [%s ]\n", online_remote_containers); -+ free(online_remote_containers); -+ } - - if (group_by_node == FALSE && inactive_resources) { - print_as("\nFull list of resources:\n"); -diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c -index 0d95e53..78cab50 100644 ---- a/tools/crm_simulate.c -+++ b/tools/crm_simulate.c -@@ -530,7 +530,10 @@ static void - print_cluster_status(pe_working_set_t * data_set) - { - char *online_nodes = NULL; -+ char *online_remote_nodes = NULL; -+ char *online_remote_containers = NULL; - char *offline_nodes = NULL; -+ char *offline_remote_nodes = NULL; - - GListPtr gIter = NULL; - -@@ -539,7 +542,7 @@ print_cluster_status(pe_working_set_t * data_set) - const char *node_mode = NULL; - char *node_name = NULL; - -- if(node->details->remote_rsc) { -+ if (node->details->remote_rsc && node->details->remote_rsc->container) { - node_name = g_strdup_printf("%s:%s", node->details->uname, node->details->remote_rsc->container->id); - } else { - node_name = g_strdup_printf("%s", node->details->uname); -@@ -576,24 +579,45 @@ print_cluster_status(pe_working_set_t * data_set) - node_mode = "OFFLINE (maintenance)"; - } - -+ -+ - } else if (node->details->online) { - node_mode = "online"; -- online_nodes = add_list_element(online_nodes, node_name); -+ if (node->details->remote_rsc && node->details->remote_rsc->container) { -+ online_remote_containers = add_list_element(online_remote_containers, node_name); -+ } else if (node->details->remote_rsc) { -+ online_remote_nodes = add_list_element(online_remote_nodes, node_name); -+ } else { -+ online_nodes = add_list_element(online_nodes, node_name); -+ } - free(node_name); - continue; - - } else { - node_mode = "OFFLINE"; -- offline_nodes = add_list_element(offline_nodes, node_name); -+ if (node->details->remote_rsc) { -+ if (node->details->remote_rsc->container == NULL) { -+ offline_remote_nodes = add_list_element(offline_remote_nodes, node_name); -+ } else { -+ /* ignore displaying offline container nodes */ -+ } -+ } else { -+ offline_nodes = add_list_element(offline_nodes, node_name); -+ } - free(node_name); - continue; - } - -- if (safe_str_eq(node_name, node->details->id)) { -+ if (node->details->remote_rsc && node->details->remote_rsc->container) { -+ printf("ContainerNode %s: %s\n", node_name, node_mode); -+ } else if (node->details->remote_rsc) { -+ printf("RemoteNode %s: %s\n", node_name, node_mode); -+ } else if (safe_str_eq(node->details->uname, node->details->id)) { - printf("Node %s: %s\n", node_name, node_mode); - } else { - printf("Node %s (%s): %s\n", node_name, node->details->id, node_mode); - } -+ - free(node_name); - } - -@@ -605,6 +629,18 @@ print_cluster_status(pe_working_set_t * data_set) - printf("OFFLINE: [%s ]\n", offline_nodes); - free(offline_nodes); - } -+ if (online_remote_nodes) { -+ printf("RemoteOnline: [%s ]\n", online_remote_nodes); -+ free(online_remote_nodes); -+ } -+ if (offline_remote_nodes) { -+ printf("RemoteOFFLINE: [%s ]\n", offline_remote_nodes); -+ free(offline_remote_nodes); -+ } -+ if (online_remote_containers) { -+ printf("Containers: [%s ]\n", online_remote_containers); -+ free(online_remote_containers); -+ } - - fprintf(stdout, "\n"); - for (gIter = data_set->resources; gIter != NULL; gIter = gIter->next) { diff --git a/SOURCES/bz902407-pcmk-crm_resource_handle_ban_for_master_slave_resources_as_advertised.patch b/SOURCES/bz902407-pcmk-crm_resource_handle_ban_for_master_slave_resources_as_advertised.patch deleted file mode 100644 index 346f593..0000000 --- a/SOURCES/bz902407-pcmk-crm_resource_handle_ban_for_master_slave_resources_as_advertised.patch +++ /dev/null @@ -1,41 +0,0 @@ -commit b15fd2bd176211fb9ae6b158e48f1ee07c21ecee -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Aug 23 13:29:00 2013 +1000 - - Bug rhbz#902407 - crm_resource: Handle --ban for master/slave resources as advertised - -diff --git a/tools/crm_resource.c b/tools/crm_resource.c -index e4d2215..ea23698 100644 ---- a/tools/crm_resource.c -+++ b/tools/crm_resource.c -@@ -905,16 +905,19 @@ ban_resource(const char *rsc_id, const char *host, GListPtr allnodes, cib_t * ci - CMD_ERR("WARNING: Creating rsc_location constraint '%s'" - " with a score of -INFINITY for resource %s" - " on %s.\n", ID(location), rsc_id, host); -- CMD_ERR("\tThis will prevent %s from running" -+ CMD_ERR("\tThis will prevent %s from %s" - " on %s until the constraint is removed using" - " the 'crm_resource --clear' command or manually" -- " with cibadmin\n", rsc_id, host); -+ " with cibadmin\n", rsc_id, scope_master?"being promoted":"running", host); - CMD_ERR("\tThis will be the case even if %s is" - " the last node in the cluster\n", host); - CMD_ERR("\tThis message can be disabled with --quiet\n"); - } - - crm_xml_add(location, XML_COLOC_ATTR_SOURCE, rsc_id); -+ if(scope_master) { -+ crm_xml_add(location, XML_RULE_ATTR_ROLE, RSC_ROLE_MASTER_S); -+ } - - if (later_s == NULL) { - /* Short form */ -@@ -2003,7 +2006,7 @@ main(int argc, char **argv) - node_t *current = rsc->running_on->data; - rc = ban_resource(rsc_id, current->details->uname, NULL, cib_conn); - -- } else if(scope_master && rsc->variant == pe_master) { -+ } else if(rsc->variant == pe_master) { - int count = 0; - GListPtr iter = NULL; - node_t *current = NULL; diff --git a/SOURCES/bz902407-pcmk-crm_resource_observe_master_modifier_for_move.patch b/SOURCES/bz902407-pcmk-crm_resource_observe_master_modifier_for_move.patch deleted file mode 100644 index 3781c22..0000000 --- a/SOURCES/bz902407-pcmk-crm_resource_observe_master_modifier_for_move.patch +++ /dev/null @@ -1,180 +0,0 @@ -commit 04c1373e2758744d53e83f8013c84c3517a028ce -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Oct 1 20:47:07 2013 +1000 - - Fix: crm_resource: Observe --master modifier for --move - - Also ensure role=Master is overwritten for --ban - Do something sane for --move when called for a clone - - (cherry picked from commit f36c32b47b58254caf580e7fe56e6b5a8eef7639) - -diff --git a/tools/crm_resource.c b/tools/crm_resource.c -index 6ded13d..44d96b0 100644 ---- a/tools/crm_resource.c -+++ b/tools/crm_resource.c -@@ -917,6 +917,8 @@ ban_resource(const char *rsc_id, const char *host, GListPtr allnodes, cib_t * ci - crm_xml_add(location, XML_COLOC_ATTR_SOURCE, rsc_id); - if(scope_master) { - crm_xml_add(location, XML_RULE_ATTR_ROLE, RSC_ROLE_MASTER_S); -+ } else { -+ crm_xml_add(location, XML_RULE_ATTR_ROLE, RSC_ROLE_STARTED_S); - } - - if (later_s == NULL) { -@@ -982,6 +984,11 @@ prefer_resource(const char *rsc_id, const char *host, cib_t * cib_conn) - free(id); - - crm_xml_add(location, XML_COLOC_ATTR_SOURCE, rsc_id); -+ if(scope_master) { -+ crm_xml_add(location, XML_RULE_ATTR_ROLE, RSC_ROLE_MASTER_S); -+ } else { -+ crm_xml_add(location, XML_RULE_ATTR_ROLE, RSC_ROLE_STARTED_S); -+ } - - if (later_s == NULL) { - /* Short form */ -@@ -1924,8 +1931,11 @@ main(int argc, char **argv) - } - - } else if (rsc_cmd == 'M' && host_uname) { -- resource_t *rsc = pe_find_resource(data_set.resources, rsc_id); -+ -+ int count = 0; -+ node_t *current = NULL; - node_t *dest = pe_find_node(data_set.nodes, host_uname); -+ resource_t *rsc = pe_find_resource(data_set.resources, rsc_id); - - rc = -EINVAL; - -@@ -1934,23 +1944,40 @@ main(int argc, char **argv) - rc = -ENXIO; - goto bail; - -- } else if(rsc->variant == pe_clone) { -- CMD_ERR("Resource '%s' not moved: moving a clone makes no sense\n", rsc_id); -- goto bail; -- -- } else if (rsc->variant < pe_clone && g_list_length(rsc->running_on) > 1) { -- CMD_ERR("Resource '%s' not moved: active on multiple nodes\n", rsc_id); -- goto bail; -- -- } else if (rsc->variant < pe_clone && scope_master) { -+ } else if (scope_master && rsc->variant < pe_master) { - resource_t *p = uber_parent(rsc); - if(p->variant == pe_master) { -- CMD_ERR("Resource '%s' not moved: The --master option is not a valid for %s resources." -- " Did you mean '%s'?\n", rsc_id, get_resource_typename(rsc->variant), p->id); -+ CMD_ERR("Using parent '%s' for --move command instead of '%s'.\n", rsc->id, rsc_id); -+ rsc_id = p->id; -+ rsc = p; -+ - } else { -- CMD_ERR("Resource '%s' not moved: The --master option is not a valid for %s resources.\n", -- rsc_id, get_resource_typename(rsc->variant)); -+ CMD_ERR("Ignoring '--master' option: not valid for %s resources.\n", -+ get_resource_typename(rsc->variant)); -+ scope_master = FALSE; - } -+ } -+ -+ if(rsc->variant == pe_master) { -+ GListPtr iter = NULL; -+ -+ for(iter = rsc->children; iter; iter = iter->next) { -+ resource_t *child = (resource_t *)iter->data; -+ if(child->role == RSC_ROLE_MASTER) { -+ rsc = child; -+ count++; -+ } -+ } -+ -+ if(scope_master == FALSE && count == 0) { -+ count = g_list_length(rsc->running_on); -+ } -+ -+ } else if (rsc->variant > pe_group) { -+ count = g_list_length(rsc->running_on); -+ -+ } else if (g_list_length(rsc->running_on) > 1) { -+ CMD_ERR("Resource '%s' not moved: active on multiple nodes\n", rsc_id); - goto bail; - } - -@@ -1961,13 +1988,19 @@ main(int argc, char **argv) - } - - if(g_list_length(rsc->running_on) == 1) { -- node_t *current = rsc->running_on->data; -+ current = rsc->running_on->data; -+ } - -- if (safe_str_eq(current->details->uname, dest->details->uname)) { -- CMD_ERR("Error performing operation: %s is already active on %s\n", rsc_id, dest->details->uname); -- goto bail; -- } -- /* } else if (rsc->variant == pe_master) { Find the master and ban it */ -+ if(current == NULL) { -+ /* Nothing to check */ -+ -+ } else if(scope_master && rsc->role != RSC_ROLE_MASTER) { -+ crm_trace("%s is already active on %s but not in correct state", rsc_id, dest->details->uname); -+ -+ } else if (safe_str_eq(current->details->uname, dest->details->uname)) { -+ CMD_ERR("Error performing operation: %s is already %s on %s\n", -+ rsc_id, scope_master?"promoted":"active", dest->details->uname); -+ goto bail; - } - - /* Clear any previous constraints for 'dest' */ -@@ -1976,11 +2009,23 @@ main(int argc, char **argv) - /* Record an explicit preference for 'dest' */ - rc = prefer_resource(rsc_id, dest->details->uname, cib_conn); - -- if(do_force && g_list_length(rsc->running_on) == 1) { -- node_t *current = rsc->running_on->data; -+ crm_trace("%s%s now prefers node %s%s", -+ rsc->id, scope_master?" (master)":"", dest->details->uname, do_force?"(forced)":""); - -- /* Ban the original location */ -- ban_resource(rsc_id, current->details->uname, NULL, cib_conn); -+ if(do_force) { -+ /* Ban the original location if possible */ -+ if(current) { -+ ban_resource(rsc_id, current->details->uname, NULL, cib_conn); -+ -+ } else if(count > 1) { -+ CMD_ERR("Resource '%s' is currently %s in %d locations. One may now move one to %s\n", -+ rsc_id, scope_master?"promoted":"active", count, dest->details->uname); -+ CMD_ERR("You can prevent '%s' from being %s at a specific location with:" -+ " --ban %s--host <name>\n", rsc_id, scope_master?"promoted":"active", scope_master?"--master ":""); -+ -+ } else { -+ crm_trace("Not banning %s from it's current location: not active", rsc_id); -+ } - } - - } else if (rsc_cmd == 'B' && host_uname) { -@@ -2034,7 +2079,8 @@ main(int argc, char **argv) - rc = ban_resource(rsc_id, current->details->uname, NULL, cib_conn); - - } else { -- CMD_ERR("Resource '%s' not moved: currently promoted in %d locations.\n", rsc_id, count); -+ CMD_ERR("Resource '%s' not moved: active in %d locations (promoted in %d).\n", rsc_id, g_list_length(rsc->running_on), count); -+ CMD_ERR("You can prevent '%s' from running on a specific location with: --ban --host <name>\n", rsc_id); - CMD_ERR("You can prevent '%s' from being promoted at a specific location with:" - " --ban --master --host <name>\n", rsc_id); - } -@@ -2042,12 +2088,6 @@ main(int argc, char **argv) - } else { - CMD_ERR("Resource '%s' not moved: active in %d locations.\n", rsc_id, g_list_length(rsc->running_on)); - CMD_ERR("You can prevent '%s' from running on a specific location with: --ban --host <name>\n", rsc_id); -- -- if(rsc->variant == pe_master && g_list_length(rsc->running_on) > 0) { -- CMD_ERR("You can prevent '%s' from being promoted at its current location with: --ban --master\n", rsc_id); -- CMD_ERR("You can prevent '%s' from being promoted at a specific location with:" -- " --ban --master --host <name>\n", rsc_id); -- } - } - - } else if (rsc_cmd == 'G') { diff --git a/SOURCES/bz902407-pcmk-location_constraints_are_allowed_to_specify_a_role.patch b/SOURCES/bz902407-pcmk-location_constraints_are_allowed_to_specify_a_role.patch deleted file mode 100644 index c06bfda..0000000 --- a/SOURCES/bz902407-pcmk-location_constraints_are_allowed_to_specify_a_role.patch +++ /dev/null @@ -1,45 +0,0 @@ -commit 1bf33b4b3954cc7e8958d90c0dd02c1a108871d6 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Aug 23 13:27:48 2013 +1000 - - Fix: xml: Location constraints are allowed to specify a role - -diff --git a/xml/constraints-1.1.rng b/xml/constraints-1.1.rng -index e224600..425b54c 100644 ---- a/xml/constraints-1.1.rng -+++ b/xml/constraints-1.1.rng -@@ -20,13 +20,13 @@ - <element name="rsc_location"> - <attribute name="id"><data type="ID"/></attribute> - <attribute name="rsc"><data type="IDREF"/></attribute> -+ <optional> -+ <attribute name="role"> -+ <ref name="attribute-roles"/> -+ </attribute> -+ </optional> - <choice> - <group> -- <optional> -- <attribute name="role"> -- <ref name="attribute-roles"/> -- </attribute> -- </optional> - <choice> - <attribute name="domain"><data type="IDREF"/></attribute> - <group> -diff --git a/xml/constraints-1.2.rng b/xml/constraints-1.2.rng -index f3af61f..221140c 100644 ---- a/xml/constraints-1.2.rng -+++ b/xml/constraints-1.2.rng -@@ -20,6 +20,11 @@ - <element name="rsc_location"> - <attribute name="id"><data type="ID"/></attribute> - <attribute name="rsc"><data type="IDREF"/></attribute> -+ <optional> -+ <attribute name="role"> -+ <ref name="attribute-roles"/> -+ </attribute> -+ </optional> - <choice> - <group> - <externalRef href="score.rng"/> diff --git a/SOURCES/bz902407-pcmk-pe_location_constraints_with_role_started_should_prevent_masters_from_running_at_all.patch b/SOURCES/bz902407-pcmk-pe_location_constraints_with_role_started_should_prevent_masters_from_running_at_all.patch deleted file mode 100644 index 6cb28fa..0000000 --- a/SOURCES/bz902407-pcmk-pe_location_constraints_with_role_started_should_prevent_masters_from_running_at_all.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit fbb822a3f83a180380d16be59d8eb9e38abbdce3 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Oct 1 15:20:25 2013 +1000 - - Fix: PE: Location constraints with role=Started should prevent masters from running at all - - (cherry picked from commit b4c34e06f5f355f5cf6ee721b4bff1ce455e114e) - -diff --git a/pengine/constraints.c b/pengine/constraints.c -index 9fc52d9..594d630 100644 ---- a/pengine/constraints.c -+++ b/pengine/constraints.c -@@ -402,13 +402,17 @@ unpack_rsc_location(xmlNode * xml_obj, pe_working_set_t * data_set) - return FALSE; - - } else { -- location->role_filter = text2role(role); -- if (location->role_filter == RSC_ROLE_SLAVE) { -- /* Fold slave back into Started for simplicity -- * At the point Slave location constraints are evaluated, -- * all resources are still either stopped or started -- */ -- location->role_filter = RSC_ROLE_STARTED; -+ enum rsc_role_e r = text2role(role); -+ switch(r) { -+ case RSC_ROLE_UNKNOWN: -+ case RSC_ROLE_STARTED: -+ case RSC_ROLE_SLAVE: -+ /* Applies to all */ -+ location->role_filter = RSC_ROLE_UNKNOWN; -+ break; -+ default: -+ location->role_filter = r; -+ break; - } - } - } diff --git a/SOURCES/bz902407-pcmk-provide_a_meaningful_error_if_master_is_used_for_primitives_and_groups.patch b/SOURCES/bz902407-pcmk-provide_a_meaningful_error_if_master_is_used_for_primitives_and_groups.patch deleted file mode 100644 index 4c79da2..0000000 --- a/SOURCES/bz902407-pcmk-provide_a_meaningful_error_if_master_is_used_for_primitives_and_groups.patch +++ /dev/null @@ -1,28 +0,0 @@ -commit 4cc5bf3a67cae9b17c49cd73d840b5388500ad13 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Sep 17 14:06:41 2013 +1000 - - Fix: crm_resource: Provide a meaningful error if --master is used for primitives and groups - -diff --git a/tools/crm_resource.c b/tools/crm_resource.c -index 69470d7..b63b9ae 100644 ---- a/tools/crm_resource.c -+++ b/tools/crm_resource.c -@@ -1942,6 +1942,17 @@ main(int argc, char **argv) - } else if (rsc->variant < pe_clone && g_list_length(rsc->running_on) > 1) { - CMD_ERR("Resource '%s' not moved: active on multiple nodes\n", rsc_id); - goto bail; -+ -+ } else if (rsc->variant < pe_clone && scope_master) { -+ resource_t *p = uber_parent(rsc); -+ if(p->variant == pe_master) { -+ CMD_ERR("Resource '%s' not moved: The --master option is not a valid for %s resources." -+ " Did you mean '%s'?\n", rsc_id, get_resource_typename(rsc->variant), p->id); -+ } else { -+ CMD_ERR("Resource '%s' not moved: The --master option is not a valid for %s resources.\n", -+ rsc_id, get_resource_typename(rsc->variant)); -+ } -+ goto bail; - } - - if(dest == NULL) { diff --git a/SOURCES/bz996576-pcmk-crm_report_correctly_redirect_error_message_to_dev_null.patch b/SOURCES/bz996576-pcmk-crm_report_correctly_redirect_error_message_to_dev_null.patch deleted file mode 100644 index 86a9f9e..0000000 --- a/SOURCES/bz996576-pcmk-crm_report_correctly_redirect_error_message_to_dev_null.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit e3410ecf4c13dba52d11981b371f4f9c81b369be -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Sep 25 12:44:58 2013 +1000 - - Fix: crm_report: Correctly redirect error message to /dev/null - - (cherry picked from commit 2a977cb7a338fdb1e845c5403485c606b8c9eb2f) - - Conflicts: - tools/report.collector - -diff --git a/tools/report.collector b/tools/report.collector -index 00bd319..1667364 100644 ---- a/tools/report.collector -+++ b/tools/report.collector -@@ -711,6 +711,13 @@ for l in $logfiles $EXTRA_LOGS; do - cat $b | grep -f $pattfile >> $ANALYSIS_F - done - -+which journalctl > /dev/null 2>&1 -+if [ $? = 0 ]; then -+ log "Including segment [$LOG_START-$LOG_END] from journald" -+ journalctl --since "$start" --until "$end" > journal.log -+ cat journal.log | grep -f $pattfile >> $ANALYSIS_F -+fi -+ - rm -f $pattfile - trap "" 0 - diff --git a/SOURCES/bz996576-pcmk-observe_pcmk_host_list_during_automatic_unfencing.patch b/SOURCES/bz996576-pcmk-observe_pcmk_host_list_during_automatic_unfencing.patch deleted file mode 100644 index 5f58a19..0000000 --- a/SOURCES/bz996576-pcmk-observe_pcmk_host_list_during_automatic_unfencing.patch +++ /dev/null @@ -1,66 +0,0 @@ -commit dde47a0eca301ca97dbe03fc9a1f6328e3b127a3 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Sep 23 09:23:45 2013 +1000 - - Fix: Fencing: Observe pcmk_host_list during automatic unfencing - -diff --git a/fencing/commands.c b/fencing/commands.c -index 73a7fc1..7d04952 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -665,7 +665,7 @@ schedule_internal_command(const char *origin, - schedule_stonith_command(cmd, device); - } - --static gboolean -+gboolean - string_in_list(GListPtr list, const char *item) - { - int lpc = 0; -diff --git a/fencing/internal.h b/fencing/internal.h -index 9a8b096..11a8c58 100644 ---- a/fencing/internal.h -+++ b/fencing/internal.h -@@ -164,6 +164,8 @@ int stonith_manual_ack(xmlNode * msg, remote_fencing_op_t * op); - - void unfence_cb(GPid pid, int rc, const char *output, gpointer user_data); - -+gboolean string_in_list(GListPtr list, const char *item); -+ - void - schedule_internal_command(const char *origin, - stonith_device_t * device, -diff --git a/fencing/main.c b/fencing/main.c -index 6401f2f..a90c43b 100644 ---- a/fencing/main.c -+++ b/fencing/main.c -@@ -669,12 +669,24 @@ static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) - if(have_fence_scsi == FALSE && safe_str_eq(agent, "fence_scsi")) { - stonith_device_t *device = g_hash_table_lookup(device_list, rsc->id); - -- if(device) { -- have_fence_scsi = TRUE; -- crm_notice("Unfencing ourselves with %s (%s)", agent, device->id); -- schedule_internal_command(__FUNCTION__, device, "on", stonith_our_uname, 0, NULL, unfence_cb); -+ if(stonith_our_uname == NULL) { -+ crm_trace("Cannot unfence ourselves: no local host name"); -+ -+ } else if(device == NULL) { -+ crm_err("Cannot unfence ourselves: no such device '%s'", rsc->id); -+ - } else { -- crm_err("Device %s does not exist", rsc->id); -+ const char *alias = g_hash_table_lookup(device->aliases, stonith_our_uname); -+ -+ if (!alias) { -+ alias = stonith_our_uname; -+ } -+ -+ if (device->targets && string_in_list(device->targets, alias)) { -+ have_fence_scsi = TRUE; -+ crm_notice("Unfencing ourselves with %s (%s)", agent, device->id); -+ schedule_internal_command(__FUNCTION__, device, "on", stonith_our_uname, 0, NULL, unfence_cb); -+ } - } - } - diff --git a/SOURCES/bz996850-pcmk-log_crmd_supply_arguments_in_the_correct_order.patch b/SOURCES/bz996850-pcmk-log_crmd_supply_arguments_in_the_correct_order.patch deleted file mode 100644 index 93f07e0..0000000 --- a/SOURCES/bz996850-pcmk-log_crmd_supply_arguments_in_the_correct_order.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit d5875e38412739155a6e3480cd5797d86fdda301 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Mon Sep 23 15:37:18 2013 +1000 - - Log: crmd: Supply arguments in the correct order - - (cherry picked from commit 6cbe8c46fa82ab908d8b0731ad4995cc19b34cc4) - -diff --git a/crmd/lrm.c b/crmd/lrm.c -index 2e17488..0254a9f 100644 ---- a/crmd/lrm.c -+++ b/crmd/lrm.c -@@ -353,7 +353,7 @@ lrm_state_verify_stopped(lrm_state_t * lrm_state, enum crmd_fsa_state cur_state, - lrm_state->pending_ops, stop_recurring_actions, lrm_state); - - crm_notice("Stopped %u recurring operations at %s (%u ops remaining)", -- g_hash_table_size(lrm_state->pending_ops), when, removed); -+ removed, when, g_hash_table_size(lrm_state->pending_ops)); - } - - if (lrm_state->pending_ops) { diff --git a/SOURCES/pacemaker-094c0ea-to-d9a51c6.patch b/SOURCES/pacemaker-094c0ea-to-d9a51c6.patch new file mode 100644 index 0000000..d166559 --- /dev/null +++ b/SOURCES/pacemaker-094c0ea-to-d9a51c6.patch @@ -0,0 +1,8513 @@ +diff --git a/crmd/crmd_lrm.h b/crmd/crmd_lrm.h +index 46cddc2..3a08392 100644 +--- a/crmd/crmd_lrm.h ++++ b/crmd/crmd_lrm.h +@@ -71,6 +71,12 @@ struct pending_deletion_op_s { + xmlNode *do_lrm_query_internal(lrm_state_t * lrm_state, gboolean is_replace); + + /*! ++ * \brief Is this the local ipc connection to the lrmd ++ */ ++gboolean ++lrm_state_is_local(lrm_state_t *lrm_state); ++ ++/*! + * \brief Clear all state information from a single state entry. + * \note This does not close the lrmd connection + */ +diff --git a/crmd/lrm.c b/crmd/lrm.c +index b68f657..5bff4d5 100644 +--- a/crmd/lrm.c ++++ b/crmd/lrm.c +@@ -1163,7 +1163,12 @@ get_lrm_resource(lrm_state_t * lrm_state, xmlNode * resource, xmlNode * op_msg, + fsa_data_t *msg_data = NULL; + + crm_err("Could not add resource %s to LRM %s", id, lrm_state->node_name); +- register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL); ++ /* only register this as a internal error if this involves the local ++ * lrmd. Otherwise we're likely dealing with an unresponsive remote-node ++ * which is not a FSA failure. */ ++ if (lrm_state_is_local(lrm_state) == TRUE) { ++ register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL); ++ } + } + } + +@@ -1211,6 +1216,28 @@ delete_resource(lrm_state_t * lrm_state, + delete_rsc_entry(lrm_state, request, id, gIter, rc, user); + } + ++static int ++get_fake_call_id(lrm_state_t *lrm_state, const char *rsc_id) ++{ ++ int call_id = 0; ++ rsc_history_t *entry = NULL; ++ ++ entry = g_hash_table_lookup(lrm_state->resource_history, rsc_id); ++ ++ /* Make sure the call id is greater than the last successful operation, ++ * otherwise the failure will not result in a possible recovery of the resource ++ * as it could appear the failure occurred before the successful start */ ++ if (entry) { ++ call_id = entry->last_callid + 1; ++ } ++ ++ if (call_id < 0) { ++ call_id = 1; ++ } ++ return call_id; ++} ++ ++ + /* A_LRM_INVOKE */ + void + do_lrm_invoke(long long action, +@@ -1272,7 +1299,6 @@ do_lrm_invoke(long long action, + operation = CRM_OP_LRM_REFRESH; + + } else if (safe_str_eq(crm_op, CRM_OP_LRM_FAIL)) { +- rsc_history_t *entry = NULL; + lrmd_event_data_t *op = NULL; + lrmd_rsc_info_t *rsc = NULL; + xmlNode *xml_rsc = find_xml_node(input->xml, XML_CIB_TAG_RESOURCE, TRUE); +@@ -1293,16 +1319,7 @@ do_lrm_invoke(long long action, + + free((char *)op->user_data); + op->user_data = NULL; +- entry = g_hash_table_lookup(lrm_state->resource_history, op->rsc_id); +- /* Make sure the call id is greater than the last successful operation, +- * otherwise the failure will not result in a possible recovery of the resource +- * as it could appear the failure occurred before the successful start */ +- if (entry) { +- op->call_id = entry->last_callid + 1; +- if (op->call_id < 0) { +- op->call_id = 1; +- } +- } ++ op->call_id = get_fake_call_id(lrm_state, op->rsc_id); + op->interval = 0; + op->op_status = PCMK_LRM_OP_DONE; + op->rc = PCMK_OCF_UNKNOWN_ERROR; +@@ -1430,6 +1447,21 @@ do_lrm_invoke(long long action, + rsc = get_lrm_resource(lrm_state, xml_rsc, input->xml, create_rsc); + + if (rsc == NULL && create_rsc) { ++ lrmd_event_data_t *op = NULL; ++ ++ /* if the operation couldn't complete because we can't register ++ * the resource, return a generic error */ ++ op = construct_op(lrm_state, input->xml, ID(xml_rsc), operation); ++ CRM_ASSERT(op != NULL); ++ ++ op->op_status = PCMK_LRM_OP_DONE; ++ op->rc = PCMK_OCF_UNKNOWN_ERROR; ++ op->t_run = time(NULL); ++ op->t_rcchange = op->t_run; ++ ++ send_direct_ack(from_host, from_sys, NULL, op, ID(xml_rsc)); ++ lrmd_free_event(op); ++ + crm_err("Invalid resource definition"); + crm_log_xml_warn(input->msg, "bad input"); + +@@ -1767,6 +1799,7 @@ do_lrm_rsc_op(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *operat + lrmd_key_value_t *params = NULL; + fsa_data_t *msg_data = NULL; + const char *transition = NULL; ++ gboolean stop_recurring = FALSE; + + CRM_CHECK(rsc != NULL, return); + CRM_CHECK(operation != NULL, return); +@@ -1781,10 +1814,25 @@ do_lrm_rsc_op(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *operat + op = construct_op(lrm_state, msg, rsc->id, operation); + CRM_CHECK(op != NULL, return); + +- /* stop any previous monitor operations before changing the resource state */ +- if (op->interval == 0 ++ if (is_remote_lrmd_ra(NULL, NULL, rsc->id) ++ && op->interval == 0 ++ && strcmp(operation, CRMD_ACTION_MIGRATE) == 0) { ++ ++ /* pcmk remote connections are a special use case. ++ * We never ever want to stop monitoring a connection resource until ++ * the entire migration has completed. If the connection is ever unexpected ++ * severed, even during a migration, this is an event we must detect.*/ ++ stop_recurring = FALSE; ++ ++ } else if (op->interval == 0 + && strcmp(operation, CRMD_ACTION_STATUS) != 0 + && strcmp(operation, CRMD_ACTION_NOTIFY) != 0) { ++ ++ /* stop any previous monitor operations before changing the resource state */ ++ stop_recurring = TRUE; ++ } ++ ++ if (stop_recurring == TRUE) { + guint removed = 0; + struct stop_recurring_action_s data; + +@@ -1837,10 +1885,20 @@ do_lrm_rsc_op(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *operat + op->op_type, + op->user_data, op->interval, op->timeout, op->start_delay, params); + +- if (call_id <= 0) { ++ if (call_id <= 0 && lrm_state_is_local(lrm_state)) { + crm_err("Operation %s on %s failed: %d", operation, rsc->id, call_id); + register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL); + ++ } else if (call_id <= 0) { ++ ++ crm_err("Operation %s on resource %s failed to execute on remote node %s: %d", operation, rsc->id, lrm_state->node_name, call_id); ++ op->call_id = get_fake_call_id(lrm_state, rsc->id); ++ op->op_status = PCMK_LRM_OP_DONE; ++ op->rc = PCMK_OCF_UNKNOWN_ERROR; ++ op->t_run = time(NULL); ++ op->t_rcchange = op->t_run; ++ process_lrm_event(lrm_state, op); ++ + } else { + /* record all operations so we can wait + * for them to complete during shutdown +diff --git a/crmd/lrm_state.c b/crmd/lrm_state.c +index 72f66c7..efd061c 100644 +--- a/crmd/lrm_state.c ++++ b/crmd/lrm_state.c +@@ -90,6 +90,21 @@ free_recurring_op(gpointer value) + free(op); + } + ++gboolean ++lrm_state_is_local(lrm_state_t *lrm_state) ++{ ++ if (lrm_state == NULL || fsa_our_uname == NULL) { ++ return FALSE; ++ } ++ ++ if (strcmp(lrm_state->node_name, fsa_our_uname) != 0) { ++ return FALSE; ++ } ++ ++ return TRUE; ++ ++} ++ + lrm_state_t * + lrm_state_create(const char *node_name) + { +diff --git a/crmd/remote_lrmd_ra.c b/crmd/remote_lrmd_ra.c +index 2f658ee..ae59070 100644 +--- a/crmd/remote_lrmd_ra.c ++++ b/crmd/remote_lrmd_ra.c +@@ -231,7 +231,7 @@ retry_start_cmd_cb(gpointer data) + return FALSE; + } + cmd = ra_data->cur_cmd; +- if (safe_str_neq(cmd->action, "start")) { ++ if (safe_str_neq(cmd->action, "start") && safe_str_neq(cmd->action, "migrate_from")) { + return FALSE; + } + update_remaining_timeout(cmd); +@@ -264,7 +264,7 @@ connection_takeover_timeout_cb(gpointer data) + lrm_state_t *lrm_state = NULL; + remote_ra_cmd_t *cmd = data; + +- crm_debug("takeover event timed out for node %s", cmd->rsc_id); ++ crm_info("takeover event timed out for node %s", cmd->rsc_id); + cmd->takeover_timeout_id = 0; + + lrm_state = lrm_state_find(cmd->rsc_id); +@@ -281,7 +281,7 @@ monitor_timeout_cb(gpointer data) + lrm_state_t *lrm_state = NULL; + remote_ra_cmd_t *cmd = data; + +- crm_debug("Poke async response timed out for node %s", cmd->rsc_id); ++ crm_info("Poke async response timed out for node %s", cmd->rsc_id); + cmd->monitor_timeout_id = 0; + cmd->op_status = PCMK_LRM_OP_TIMEOUT; + cmd->rc = PCMK_OCF_UNKNOWN_ERROR; +diff --git a/include/crm/pengine/common.h b/include/crm/pengine/common.h +index 33acc6e..0d853c0 100644 +--- a/include/crm/pengine/common.h ++++ b/include/crm/pengine/common.h +@@ -34,7 +34,18 @@ enum action_fail_response { + action_fail_stop, + action_fail_standby, + action_fail_fence, +- action_fail_restart_container ++ action_fail_restart_container, ++ /* This is reserved for internal use for baremetal remote node connection ++ * resources. This fail action means ++ * 1. If stonith is enabled, fence the baremetal remote node ++ * 2. stonith not enabled, attempt to recover the connection resources ++ * ++ * This response value gives us control of saying types of ++ * connection resource failures result in fencing the remote node. ++ * Example: recurring monitors failure should result in fencing. ++ */ ++ action_fail_reset_remote, ++ + }; + + /* the "done" action must be the "pre" action +1 */ +diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h +index f08a910..da20f64 100644 +--- a/include/crm/pengine/status.h ++++ b/include/crm/pengine/status.h +@@ -138,6 +138,8 @@ struct node_shared_s { + gboolean is_dc; + gboolean rsc_discovery_enabled; + ++ gboolean remote_requires_reset; ++ + int num_resources; + GListPtr running_rsc; /* resource_t* */ + GListPtr allocated_rsc; /* resource_t* */ +diff --git a/lib/common/ipc.c b/lib/common/ipc.c +index f26225f..1b8558d 100644 +--- a/lib/common/ipc.c ++++ b/lib/common/ipc.c +@@ -1144,7 +1144,7 @@ crm_ipc_send(crm_ipc_t * client, xmlNode * message, enum crm_ipc_flags flags, in + + id++; + CRM_LOG_ASSERT(id != 0); /* Crude wrap-around detection */ +- rc = crm_ipc_prepare(id, message, &iov, ipc_buffer_max); ++ rc = crm_ipc_prepare(id, message, &iov, client->max_buf_size); + if(rc < 0) { + return rc; + } +@@ -1158,10 +1158,10 @@ crm_ipc_send(crm_ipc_t * client, xmlNode * message, enum crm_ipc_flags flags, in + } + + if(header->size_compressed) { +- if(factor < 10 && (ipc_buffer_max / 10) < (rc / factor)) { ++ if(factor < 10 && (client->max_buf_size / 10) < (rc / factor)) { + crm_notice("Compressed message exceeds %d0%% of the configured ipc limit (%d bytes), " + "consider setting PCMK_ipc_buffer to %d or higher", +- factor, ipc_buffer_max, 2*ipc_buffer_max); ++ factor, client->max_buf_size, 2*client->max_buf_size); + factor++; + } + } +diff --git a/lib/lrmd/lrmd_client.c b/lib/lrmd/lrmd_client.c +index b8c5d23..74bd692 100644 +--- a/lib/lrmd/lrmd_client.c ++++ b/lib/lrmd/lrmd_client.c +@@ -604,12 +604,18 @@ lrmd_tls_recv_reply(lrmd_t * lrmd, int total_timeout, int expected_reply_id, int + remaining_timeout = total_timeout; + } + if (remaining_timeout <= 0) { ++ crm_err("Never received the expected reply during the timeout period, disconnecting."); ++ *disconnected = TRUE; + return NULL; + } + + crm_remote_recv(native->remote, remaining_timeout, disconnected); + xml = crm_remote_parse_buffer(native->remote); +- if (!xml || *disconnected) { ++ if (!xml) { ++ crm_err("Unable to receive expected reply, disconnecting."); ++ *disconnected = TRUE; ++ return NULL; ++ } else if (*disconnected) { + return NULL; + } + } +diff --git a/lib/pengine/common.c b/lib/pengine/common.c +index e5e4ea7..42eda33 100644 +--- a/lib/pengine/common.c ++++ b/lib/pengine/common.c +@@ -214,6 +214,9 @@ fail2text(enum action_fail_response fail) + case action_fail_restart_container: + result = "restart-container"; + break; ++ case action_fail_reset_remote: ++ result = "reset-remote"; ++ break; + } + return result; + } +diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c +index a19bdff..bdd6450 100644 +--- a/lib/pengine/unpack.c ++++ b/lib/pengine/unpack.c +@@ -80,6 +80,15 @@ pe_fence_node(pe_working_set_t * data_set, node_t * node, const char *reason) + node->details->uname, reason); + set_bit(node->details->remote_rsc->flags, pe_rsc_failed); + ++ } else if (is_baremetal_remote_node(node)) { ++ if(pe_can_fence(data_set, node)) { ++ crm_warn("Node %s will be fenced %s", node->details->uname, reason); ++ } else { ++ crm_warn("Node %s is unclean %s", node->details->uname, reason); ++ } ++ node->details->unclean = TRUE; ++ node->details->remote_requires_reset = TRUE; ++ + } else if (node->details->unclean == FALSE) { + if(pe_can_fence(data_set, node)) { + crm_warn("Node %s will be fenced %s", node->details->uname, reason); +@@ -1143,8 +1152,10 @@ unpack_remote_status(xmlNode * status, pe_working_set_t * data_set) + } + crm_trace("Processing remote node id=%s, uname=%s", id, uname); + +- this_node->details->unclean = FALSE; +- this_node->details->unseen = FALSE; ++ if (this_node->details->remote_requires_reset == FALSE) { ++ this_node->details->unclean = FALSE; ++ this_node->details->unseen = FALSE; ++ } + attrs = find_xml_node(state, XML_TAG_TRANSIENT_NODEATTRS, FALSE); + add_node_attrs(attrs, this_node, TRUE, data_set); + +@@ -1777,6 +1788,7 @@ process_rsc_state(resource_t * rsc, node_t * node, + enum action_fail_response on_fail, + xmlNode * migrate_op, pe_working_set_t * data_set) + { ++ node_t *tmpnode = NULL; + CRM_ASSERT(rsc); + pe_rsc_trace(rsc, "Resource %s is %s on %s: on_fail=%s", + rsc->id, role2text(rsc->role), node->details->uname, fail2text(on_fail)); +@@ -1817,7 +1829,7 @@ process_rsc_state(resource_t * rsc, node_t * node, + should_fence = TRUE; + } else if (is_set(data_set->flags, pe_flag_stonith_enabled)) { + if (is_baremetal_remote_node(node) && is_not_set(node->details->remote_rsc->flags, pe_rsc_failed)) { +- /* setting unceen = true means that fencing of the remote node will ++ /* setting unseen = true means that fencing of the remote node will + * only occur if the connection resource is not going to start somewhere. + * This allows connection resources on a failed cluster-node to move to + * another node without requiring the baremetal remote nodes to be fenced +@@ -1892,7 +1904,20 @@ process_rsc_state(resource_t * rsc, node_t * node, + + if (rsc->container) { + stop_action(rsc->container, node, FALSE); +- ++ } else if (rsc->role != RSC_ROLE_STOPPED && rsc->role != RSC_ROLE_UNKNOWN) { ++ stop_action(rsc, node, FALSE); ++ } ++ break; ++ case action_fail_reset_remote: ++ set_bit(rsc->flags, pe_rsc_failed); ++ tmpnode = NULL; ++ if (rsc->is_remote_node) { ++ tmpnode = pe_find_node(data_set->nodes, rsc->id); ++ } ++ if (tmpnode && is_baremetal_remote_node(tmpnode)) { ++ /* connection resource to baremetal resource failed in a way that ++ * should result in fencing the remote-node. */ ++ pe_fence_node(data_set, tmpnode, "because of connection failure(s)"); + } else if (rsc->role != RSC_ROLE_STOPPED && rsc->role != RSC_ROLE_UNKNOWN) { + stop_action(rsc, node, FALSE); + } +@@ -1904,7 +1929,7 @@ process_rsc_state(resource_t * rsc, node_t * node, + * result in a fencing operation regardless if we're going to attempt to + * reconnect to the remote-node in this transition or not. */ + if (is_set(rsc->flags, pe_rsc_failed) && rsc->is_remote_node) { +- node_t *tmpnode = pe_find_node(data_set->nodes, rsc->id); ++ tmpnode = pe_find_node(data_set->nodes, rsc->id); + if (tmpnode && tmpnode->details->unclean) { + tmpnode->details->unseen = FALSE; + } +@@ -2510,10 +2535,9 @@ unpack_rsc_op_failure(resource_t *rsc, node_t *node, int rc, xmlNode *xml_op, en + + action = custom_action(rsc, strdup(key), task, NULL, TRUE, FALSE, data_set); + if ((action->on_fail <= action_fail_fence && *on_fail < action->on_fail) || +- (action->on_fail == action_fail_restart_container +- && *on_fail <= action_fail_recover) || (*on_fail == action_fail_restart_container +- && action->on_fail >= +- action_fail_migrate)) { ++ (action->on_fail == action_fail_reset_remote && *on_fail <= action_fail_recover) || ++ (action->on_fail == action_fail_restart_container && *on_fail <= action_fail_recover) || ++ (*on_fail == action_fail_restart_container && action->on_fail >= action_fail_migrate)) { + pe_rsc_trace(rsc, "on-fail %s -> %s for %s (%s)", fail2text(*on_fail), + fail2text(action->on_fail), action->uuid, key); + *on_fail = action->on_fail; +@@ -2881,13 +2905,11 @@ update_resource_state(resource_t *rsc, node_t * node, xmlNode * xml_op, const ch + case action_fail_block: + case action_fail_ignore: + case action_fail_recover: +- *on_fail = action_fail_ignore; +- rsc->next_role = RSC_ROLE_UNKNOWN; +- break; +- + case action_fail_restart_container: ++ case action_fail_reset_remote: + *on_fail = action_fail_ignore; + rsc->next_role = RSC_ROLE_UNKNOWN; ++ break; + } + } + } +diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c +index baf6cb9..a40de60 100644 +--- a/lib/pengine/utils.c ++++ b/lib/pengine/utils.c +@@ -35,6 +35,7 @@ void unpack_operation(action_t * action, xmlNode * xml_obj, resource_t * contain + pe_working_set_t * data_set); + static xmlNode *find_rsc_op_entry_helper(resource_t * rsc, const char *key, + gboolean include_disabled); ++static gboolean is_rsc_baremetal_remote_node(resource_t *rsc, pe_working_set_t * data_set); + + bool pe_can_fence(pe_working_set_t * data_set, node_t *node) + { +@@ -686,6 +687,19 @@ unpack_operation(action_t * action, xmlNode * xml_obj, resource_t * container, + NULL, action->meta, NULL, FALSE, data_set->now); + g_hash_table_remove(action->meta, "id"); + ++ field = XML_LRM_ATTR_INTERVAL; ++ value = g_hash_table_lookup(action->meta, field); ++ if (value != NULL) { ++ interval = crm_get_interval(value); ++ if (interval > 0) { ++ value_ms = crm_itoa(interval); ++ g_hash_table_replace(action->meta, strdup(field), value_ms); ++ ++ } else { ++ g_hash_table_remove(action->meta, field); ++ } ++ } ++ + /* Begin compatability code */ + value = g_hash_table_lookup(action->meta, "requires"); + +@@ -789,6 +803,22 @@ unpack_operation(action_t * action, xmlNode * xml_obj, resource_t * container, + action->on_fail = action_fail_restart_container; + value = "restart container (and possibly migrate) (default)"; + ++ /* for baremetal remote nodes, ensure that a recurring monitor operation failure ++ * defaults to either fencing the remote-node for recovery, or at least ++ * attempting to recover the the connection when fencing is disabled. */ ++ } else if (value == NULL && ++ is_rsc_baremetal_remote_node(action->rsc, data_set) && ++ safe_str_eq(action->task, CRMD_ACTION_STATUS) && ++ interval > 0) { ++ ++ if (is_set(data_set->flags, pe_flag_stonith_enabled)) { ++ action->on_fail = action_fail_reset_remote; ++ value = "fence baremetal remote node (default)"; ++ } else { ++ action->on_fail = action_fail_recover; ++ value = "recover baremetal remote node connection (default)"; ++ } ++ + } else if (value == NULL && safe_str_eq(action->task, CRMD_ACTION_STOP)) { + if (is_set(data_set->flags, pe_flag_stonith_enabled)) { + action->on_fail = action_fail_fence; +@@ -824,19 +854,6 @@ unpack_operation(action_t * action, xmlNode * xml_obj, resource_t * container, + pe_rsc_trace(action->rsc, "\t%s failure results in: %s", action->task, + role2text(action->fail_role)); + +- field = XML_LRM_ATTR_INTERVAL; +- value = g_hash_table_lookup(action->meta, field); +- if (value != NULL) { +- interval = crm_get_interval(value); +- if (interval > 0) { +- value_ms = crm_itoa(interval); +- g_hash_table_replace(action->meta, strdup(field), value_ms); +- +- } else { +- g_hash_table_remove(action->meta, field); +- } +- } +- + field = XML_OP_ATTR_START_DELAY; + value = g_hash_table_lookup(action->meta, field); + if (value != NULL) { +@@ -1939,6 +1956,25 @@ const char *rsc_printable_id(resource_t *rsc) + } + + gboolean ++is_rsc_baremetal_remote_node(resource_t *rsc, pe_working_set_t * data_set) ++{ ++ node_t *node; ++ ++ if (rsc == NULL) { ++ return FALSE; ++ } else if (rsc->is_remote_node == FALSE) { ++ return FALSE; ++ } ++ ++ node = pe_find_node(data_set->nodes, rsc->id); ++ if (node == NULL) { ++ return FALSE; ++ } ++ ++ return is_baremetal_remote_node(node); ++} ++ ++gboolean + is_baremetal_remote_node(node_t *node) + { + if (is_remote_node(node) && (node->details->remote_rsc == FALSE || node->details->remote_rsc->container == FALSE)) { +diff --git a/pengine/allocate.c b/pengine/allocate.c +index 45e2212..9c3cb60 100644 +--- a/pengine/allocate.c ++++ b/pengine/allocate.c +@@ -1191,7 +1191,10 @@ allocate_resources(pe_working_set_t * data_set) + continue; + } + pe_rsc_trace(rsc, "Allocating: %s", rsc->id); +- rsc->cmds->allocate(rsc, NULL, data_set); ++ /* for remote node connection resources, always prefer the partial migration ++ * target during resource allocation if the rsc is in the middle of a ++ * migration */ ++ rsc->cmds->allocate(rsc, rsc->partial_migration_target, data_set); + } + } + +@@ -1716,9 +1719,18 @@ apply_remote_node_ordering(pe_working_set_t *data_set) + node_t *cluster_node = remote_rsc->running_on ? remote_rsc->running_on->data : NULL; + + /* if the current cluster node a baremetal connection resource +- * is residing on is unclean, we can't process any operations on that +- * remote node until after it starts somewhere else. */ +- if (cluster_node && cluster_node->details->unclean == TRUE) { ++ * is residing on is unclean or went offline we can't process any ++ * operations on that remote node until after it starts somewhere else. */ ++ if (cluster_node == NULL || ++ cluster_node->details->unclean == TRUE || ++ cluster_node->details->online == FALSE) { ++ after_start = TRUE; ++ } else if (g_list_length(remote_rsc->running_on) > 1 && ++ remote_rsc->partial_migration_source && ++ remote_rsc->partial_migration_target) { ++ /* if we're caught in the middle of migrating a connection resource, ++ * then we have to wait until after the resource migrates before performing ++ * any actions. */ + after_start = TRUE; + } + } +diff --git a/pengine/native.c b/pengine/native.c +index 6d62010..62639d0 100644 +--- a/pengine/native.c ++++ b/pengine/native.c +@@ -1137,12 +1137,18 @@ handle_migration_actions(resource_t * rsc, node_t *current, node_t *chosen, pe_w + if (migrate_to) { + add_hash_param(migrate_to->meta, XML_LRM_ATTR_MIGRATE_SOURCE, current->details->uname); + add_hash_param(migrate_to->meta, XML_LRM_ATTR_MIGRATE_TARGET, chosen->details->uname); +- /* migrate_to takes place on the source node, but can +- * have an effect on the target node depending on how +- * the agent is written. Because of this, we have to maintain +- * a record that the migrate_to occurred incase the source node +- * loses membership while the migrate_to action is still in-flight. */ +- add_hash_param(migrate_to->meta, XML_OP_ATTR_PENDING, "true"); ++ ++ /* pcmk remote connections don't require pending to be recorded in cib. ++ * We can optimize cib writes by only setting PENDING for non pcmk remote ++ * connection resources */ ++ if (rsc->is_remote_node == FALSE) { ++ /* migrate_to takes place on the source node, but can ++ * have an effect on the target node depending on how ++ * the agent is written. Because of this, we have to maintain ++ * a record that the migrate_to occurred incase the source node ++ * loses membership while the migrate_to action is still in-flight. */ ++ add_hash_param(migrate_to->meta, XML_OP_ATTR_PENDING, "true"); ++ } + } + + if (migrate_from) { +diff --git a/pengine/regression.sh b/pengine/regression.sh +index aa03b18..3a244d7 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -769,6 +769,11 @@ do_test remote-disable "Disable a baremetal remote-node" + do_test remote-orphaned "Properly shutdown orphaned connection resource" + do_test remote-recover "Recover connection resource after cluster-node fails." + do_test remote-stale-node-entry "Make sure we properly handle leftover remote-node entries in the node section" ++do_test remote-partial-migrate "Make sure partial migrations are handled before ops on the remote node." ++do_test remote-partial-migrate2 "Make sure partial migration target is prefered for remote connection." ++do_test remote-recover-fail "Make sure start failure causes fencing if rsc are active on remote." ++do_test remote-start-fail "Make sure a start failure does not result in fencing if no active resources are on remote." ++do_test remote-unclean2 "Make monitor failure always results in fencing, even if no rsc are active on remote." + + echo "" + do_test resource-discovery "Exercises resource-discovery location constraint option." +diff --git a/pengine/test10/remote-fence-unclean.exp b/pengine/test10/remote-fence-unclean.exp +index 9b1e327..b8c90f2 100644 +--- a/pengine/test10/remote-fence-unclean.exp ++++ b/pengine/test10/remote-fence-unclean.exp +@@ -8,7 +8,7 @@ + </action_set> + <inputs> + <trigger> +- <rsc_op id="5" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="14" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> + <pseudo_event id="27" operation="stonith_complete" operation_key="stonith_complete"/> +@@ -17,7 +17,7 @@ + </synapse> + <synapse id="1"> + <action_set> +- <rsc_op id="5" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"> ++ <rsc_op id="14" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"> + <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_timeout="20000" /> + </rsc_op> +@@ -176,13 +176,13 @@ + </synapse> + <synapse id="14"> + <action_set> +- <pseudo_event id="7" operation="all_stopped" operation_key="all_stopped"> ++ <pseudo_event id="6" operation="all_stopped" operation_key="all_stopped"> + <attributes /> + </pseudo_event> + </action_set> + <inputs> + <trigger> +- <rsc_op id="5" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="14" operation="stop" operation_key="remote1_stop_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> + <pseudo_event id="18" operation="stop" operation_key="FAKE2_stop_0"/> +diff --git a/pengine/test10/remote-move.exp b/pengine/test10/remote-move.exp +index 6724679..6287daa 100644 +--- a/pengine/test10/remote-move.exp ++++ b/pengine/test10/remote-move.exp +@@ -51,7 +51,7 @@ + <action_set> + <rsc_op id="20" operation="migrate_to" operation_key="remote1_migrate_to_0" on_node="18builder" on_node_uuid="5"> + <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> +- <attributes CRM_meta_migrate_source="18builder" CRM_meta_migrate_target="18node1" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_migrate_source="18builder" CRM_meta_migrate_target="18node1" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs/> +diff --git a/pengine/test10/remote-partial-migrate.dot b/pengine/test10/remote-partial-migrate.dot +new file mode 100644 +index 0000000..8d776dc +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate.dot +@@ -0,0 +1,86 @@ ++ digraph "g" { ++"FAKE10_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE10_start_0 pcmk1" -> "FAKE10_monitor_10000 pcmk1" [ style = bold] ++"FAKE10_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE13_monitor_10000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE13_start_0 pcmk2" -> "FAKE13_monitor_10000 pcmk2" [ style = bold] ++"FAKE13_start_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE15_monitor_10000 pcmk3" [ style=bold color="green" fontcolor="black"] ++"FAKE15_start_0 pcmk3" -> "FAKE15_monitor_10000 pcmk3" [ style = bold] ++"FAKE15_start_0 pcmk3" [ style=bold color="green" fontcolor="black"] ++"FAKE16_monitor_10000 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"FAKE16_start_0 pcmk_remote3" -> "FAKE16_monitor_10000 pcmk_remote3" [ style = bold] ++"FAKE16_start_0 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"FAKE16_stop_0 pcmk1" -> "FAKE16_start_0 pcmk_remote3" [ style = bold] ++"FAKE16_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE16_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE22_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE22_start_0 pcmk1" -> "FAKE22_monitor_10000 pcmk1" [ style = bold] ++"FAKE22_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE23_monitor_10000 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE23_start_0 pcmk_remote1" -> "FAKE23_monitor_10000 pcmk_remote1" [ style = bold] ++"FAKE23_start_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE23_stop_0 pcmk1" -> "FAKE23_start_0 pcmk_remote1" [ style = bold] ++"FAKE23_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE23_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE26_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE26_start_0 pcmk1" -> "FAKE26_monitor_10000 pcmk1" [ style = bold] ++"FAKE26_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE29_monitor_10000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE29_start_0 pcmk2" -> "FAKE29_monitor_10000 pcmk2" [ style = bold] ++"FAKE29_start_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE30_monitor_10000 pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"FAKE30_start_0 pcmk_remote2" -> "FAKE30_monitor_10000 pcmk_remote2" [ style = bold] ++"FAKE30_start_0 pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"FAKE30_stop_0 pcmk1" -> "FAKE30_start_0 pcmk_remote2" [ style = bold] ++"FAKE30_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE30_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE36_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE36_start_0 pcmk1" -> "FAKE36_monitor_10000 pcmk1" [ style = bold] ++"FAKE36_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE37_monitor_10000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE37_start_0 pcmk2" -> "FAKE37_monitor_10000 pcmk2" [ style = bold] ++"FAKE37_start_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE37_stop_0 pcmk1" -> "FAKE37_start_0 pcmk2" [ style = bold] ++"FAKE37_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE37_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE43_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE43_start_0 pcmk1" -> "FAKE43_monitor_10000 pcmk1" [ style = bold] ++"FAKE43_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE44_monitor_10000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE44_start_0 pcmk2" -> "FAKE44_monitor_10000 pcmk2" [ style = bold] ++"FAKE44_start_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE44_stop_0 pcmk1" -> "FAKE44_start_0 pcmk2" [ style = bold] ++"FAKE44_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE44_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE4_monitor_10000 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"FAKE4_start_0 pcmk_remote3" -> "FAKE4_monitor_10000 pcmk_remote3" [ style = bold] ++"FAKE4_start_0 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"FAKE50_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE50_start_0 pcmk1" -> "FAKE50_monitor_10000 pcmk1" [ style = bold] ++"FAKE50_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE9_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE9_start_0 pcmk1" -> "FAKE9_monitor_10000 pcmk1" [ style = bold] ++"FAKE9_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE9_stop_0 pcmk_remote3" -> "FAKE9_start_0 pcmk1" [ style = bold] ++"FAKE9_stop_0 pcmk_remote3" -> "all_stopped" [ style = bold] ++"FAKE9_stop_0 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"pcmk_remote3_migrate_from_0 pcmk2" -> "pcmk_remote3_start_0 pcmk2" [ style = bold] ++"pcmk_remote3_migrate_from_0 pcmk2" -> "pcmk_remote3_stop_0 pcmk1" [ style = bold] ++"pcmk_remote3_migrate_from_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote3_monitor_60000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote3_start_0 pcmk2" -> "FAKE16_monitor_10000 pcmk_remote3" [ style = bold] ++"pcmk_remote3_start_0 pcmk2" -> "FAKE16_start_0 pcmk_remote3" [ style = bold] ++"pcmk_remote3_start_0 pcmk2" -> "FAKE4_monitor_10000 pcmk_remote3" [ style = bold] ++"pcmk_remote3_start_0 pcmk2" -> "FAKE4_start_0 pcmk_remote3" [ style = bold] ++"pcmk_remote3_start_0 pcmk2" -> "FAKE9_stop_0 pcmk_remote3" [ style = bold] ++"pcmk_remote3_start_0 pcmk2" -> "pcmk_remote3_monitor_60000 pcmk2" [ style = bold] ++"pcmk_remote3_start_0 pcmk2" [ style=bold color="green" fontcolor="orange"] ++"pcmk_remote3_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"pcmk_remote3_stop_0 pcmk1" -> "pcmk_remote3_start_0 pcmk2" [ style = bold] ++"pcmk_remote3_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"probe_complete pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"probe_complete pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"probe_complete pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/remote-partial-migrate.exp b/pengine/test10/remote-partial-migrate.exp +new file mode 100644 +index 0000000..0a531df +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate.exp +@@ -0,0 +1,553 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="65" operation="migrate_from" operation_key="pcmk_remote3_migrate_from_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="pcmk_remote3" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_migrate_source="pcmk1" CRM_meta_migrate_target="pcmk2" CRM_meta_timeout="20000" server="172.17.201.3"/> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="64" operation="monitor" operation_key="pcmk_remote3_monitor_60000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="pcmk_remote3" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="30000" server="172.17.201.3"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="63" operation="start" operation_key="pcmk_remote3_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <pseudo_event id="63" operation="start" operation_key="pcmk_remote3_start_0"> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="10000" server="172.17.201.3"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="62" operation="stop" operation_key="pcmk_remote3_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="65" operation="migrate_from" operation_key="pcmk_remote3_migrate_from_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="62" operation="stop" operation_key="pcmk_remote3_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="pcmk_remote3" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="60000" server="172.17.201.3"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="65" operation="migrate_from" operation_key="pcmk_remote3_migrate_from_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="75" operation="monitor" operation_key="FAKE4_monitor_10000" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="63" operation="start" operation_key="pcmk_remote3_start_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="74" operation="start" operation_key="FAKE4_start_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="74" operation="start" operation_key="FAKE4_start_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="63" operation="start" operation_key="pcmk_remote3_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="86" operation="monitor" operation_key="FAKE9_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE9" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="85" operation="start" operation_key="FAKE9_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="85" operation="start" operation_key="FAKE9_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE9" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="84" operation="stop" operation_key="FAKE9_stop_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="84" operation="stop" operation_key="FAKE9_stop_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"> ++ <primitive id="FAKE9" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="63" operation="start" operation_key="pcmk_remote3_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="88" operation="monitor" operation_key="FAKE10_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE10" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="87" operation="start" operation_key="FAKE10_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="87" operation="start" operation_key="FAKE10_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE10" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="94" operation="monitor" operation_key="FAKE13_monitor_10000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE13" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="93" operation="start" operation_key="FAKE13_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="93" operation="start" operation_key="FAKE13_start_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE13" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="98" operation="monitor" operation_key="FAKE15_monitor_10000" on_node="pcmk3" on_node_uuid="3"> ++ <primitive id="FAKE15" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="97" operation="start" operation_key="FAKE15_start_0" on_node="pcmk3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14"> ++ <action_set> ++ <rsc_op id="97" operation="start" operation_key="FAKE15_start_0" on_node="pcmk3" on_node_uuid="3"> ++ <primitive id="FAKE15" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <rsc_op id="101" operation="monitor" operation_key="FAKE16_monitor_10000" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"> ++ <primitive id="FAKE16" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="63" operation="start" operation_key="pcmk_remote3_start_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="100" operation="start" operation_key="FAKE16_start_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <rsc_op id="100" operation="start" operation_key="FAKE16_start_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"> ++ <primitive id="FAKE16" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="63" operation="start" operation_key="pcmk_remote3_start_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="99" operation="stop" operation_key="FAKE16_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="17"> ++ <action_set> ++ <rsc_op id="99" operation="stop" operation_key="FAKE16_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE16" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="18"> ++ <action_set> ++ <rsc_op id="113" operation="monitor" operation_key="FAKE22_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE22" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="112" operation="start" operation_key="FAKE22_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="19"> ++ <action_set> ++ <rsc_op id="112" operation="start" operation_key="FAKE22_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE22" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="20"> ++ <action_set> ++ <rsc_op id="116" operation="monitor" operation_key="FAKE23_monitor_10000" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE23" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="115" operation="start" operation_key="FAKE23_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="21"> ++ <action_set> ++ <rsc_op id="115" operation="start" operation_key="FAKE23_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE23" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="114" operation="stop" operation_key="FAKE23_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="22"> ++ <action_set> ++ <rsc_op id="114" operation="stop" operation_key="FAKE23_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE23" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="23"> ++ <action_set> ++ <rsc_op id="122" operation="monitor" operation_key="FAKE26_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE26" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="121" operation="start" operation_key="FAKE26_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="24"> ++ <action_set> ++ <rsc_op id="121" operation="start" operation_key="FAKE26_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE26" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="25"> ++ <action_set> ++ <rsc_op id="128" operation="monitor" operation_key="FAKE29_monitor_10000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE29" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="127" operation="start" operation_key="FAKE29_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="26"> ++ <action_set> ++ <rsc_op id="127" operation="start" operation_key="FAKE29_start_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE29" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="27"> ++ <action_set> ++ <rsc_op id="131" operation="monitor" operation_key="FAKE30_monitor_10000" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk3"> ++ <primitive id="FAKE30" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="130" operation="start" operation_key="FAKE30_start_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="28"> ++ <action_set> ++ <rsc_op id="130" operation="start" operation_key="FAKE30_start_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk3"> ++ <primitive id="FAKE30" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="129" operation="stop" operation_key="FAKE30_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="29"> ++ <action_set> ++ <rsc_op id="129" operation="stop" operation_key="FAKE30_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE30" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="30"> ++ <action_set> ++ <rsc_op id="143" operation="monitor" operation_key="FAKE36_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE36" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="142" operation="start" operation_key="FAKE36_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="31"> ++ <action_set> ++ <rsc_op id="142" operation="start" operation_key="FAKE36_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE36" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="32"> ++ <action_set> ++ <rsc_op id="146" operation="monitor" operation_key="FAKE37_monitor_10000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE37" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="145" operation="start" operation_key="FAKE37_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="33"> ++ <action_set> ++ <rsc_op id="145" operation="start" operation_key="FAKE37_start_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE37" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="144" operation="stop" operation_key="FAKE37_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="34"> ++ <action_set> ++ <rsc_op id="144" operation="stop" operation_key="FAKE37_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE37" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="35"> ++ <action_set> ++ <rsc_op id="158" operation="monitor" operation_key="FAKE43_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE43" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="157" operation="start" operation_key="FAKE43_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="36"> ++ <action_set> ++ <rsc_op id="157" operation="start" operation_key="FAKE43_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE43" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="37"> ++ <action_set> ++ <rsc_op id="161" operation="monitor" operation_key="FAKE44_monitor_10000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE44" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="160" operation="start" operation_key="FAKE44_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="38"> ++ <action_set> ++ <rsc_op id="160" operation="start" operation_key="FAKE44_start_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE44" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="159" operation="stop" operation_key="FAKE44_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="39"> ++ <action_set> ++ <rsc_op id="159" operation="stop" operation_key="FAKE44_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE44" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="40"> ++ <action_set> ++ <rsc_op id="173" operation="monitor" operation_key="FAKE50_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE50" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="172" operation="start" operation_key="FAKE50_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="41"> ++ <action_set> ++ <rsc_op id="172" operation="start" operation_key="FAKE50_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE50" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="42" priority="1000000"> ++ <action_set> ++ <rsc_op id="55" operation="probe_complete" operation_key="probe_complete-pcmk_remote4" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk3"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="43" priority="1000000"> ++ <action_set> ++ <rsc_op id="53" operation="probe_complete" operation_key="probe_complete-pcmk_remote2" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk3"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="44" priority="1000000"> ++ <action_set> ++ <rsc_op id="52" operation="probe_complete" operation_key="probe_complete-pcmk_remote1" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="45"> ++ <action_set> ++ <pseudo_event id="46" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="62" operation="stop" operation_key="pcmk_remote3_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="84" operation="stop" operation_key="FAKE9_stop_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="99" operation="stop" operation_key="FAKE16_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="114" operation="stop" operation_key="FAKE23_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="129" operation="stop" operation_key="FAKE30_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="144" operation="stop" operation_key="FAKE37_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="159" operation="stop" operation_key="FAKE44_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/remote-partial-migrate.scores b/pengine/test10/remote-partial-migrate.scores +new file mode 100644 +index 0000000..a81602d +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate.scores +@@ -0,0 +1,449 @@ ++Allocation scores: ++native_color: FAKE1 allocation score on pcmk1: 0 ++native_color: FAKE1 allocation score on pcmk2: 0 ++native_color: FAKE1 allocation score on pcmk3: 0 ++native_color: FAKE1 allocation score on pcmk_remote1: 0 ++native_color: FAKE1 allocation score on pcmk_remote2: 0 ++native_color: FAKE1 allocation score on pcmk_remote3: 0 ++native_color: FAKE1 allocation score on pcmk_remote4: 0 ++native_color: FAKE1 allocation score on pcmk_remote5: 0 ++native_color: FAKE10 allocation score on pcmk1: 0 ++native_color: FAKE10 allocation score on pcmk2: 0 ++native_color: FAKE10 allocation score on pcmk3: 0 ++native_color: FAKE10 allocation score on pcmk_remote1: 0 ++native_color: FAKE10 allocation score on pcmk_remote2: 0 ++native_color: FAKE10 allocation score on pcmk_remote3: 0 ++native_color: FAKE10 allocation score on pcmk_remote4: 0 ++native_color: FAKE10 allocation score on pcmk_remote5: 0 ++native_color: FAKE11 allocation score on pcmk1: 0 ++native_color: FAKE11 allocation score on pcmk2: 0 ++native_color: FAKE11 allocation score on pcmk3: 0 ++native_color: FAKE11 allocation score on pcmk_remote1: 0 ++native_color: FAKE11 allocation score on pcmk_remote2: 0 ++native_color: FAKE11 allocation score on pcmk_remote3: 0 ++native_color: FAKE11 allocation score on pcmk_remote4: 0 ++native_color: FAKE11 allocation score on pcmk_remote5: 0 ++native_color: FAKE12 allocation score on pcmk1: 0 ++native_color: FAKE12 allocation score on pcmk2: 0 ++native_color: FAKE12 allocation score on pcmk3: 0 ++native_color: FAKE12 allocation score on pcmk_remote1: 0 ++native_color: FAKE12 allocation score on pcmk_remote2: 0 ++native_color: FAKE12 allocation score on pcmk_remote3: 0 ++native_color: FAKE12 allocation score on pcmk_remote4: 0 ++native_color: FAKE12 allocation score on pcmk_remote5: 0 ++native_color: FAKE13 allocation score on pcmk1: 0 ++native_color: FAKE13 allocation score on pcmk2: 0 ++native_color: FAKE13 allocation score on pcmk3: 0 ++native_color: FAKE13 allocation score on pcmk_remote1: 0 ++native_color: FAKE13 allocation score on pcmk_remote2: 0 ++native_color: FAKE13 allocation score on pcmk_remote3: 0 ++native_color: FAKE13 allocation score on pcmk_remote4: 0 ++native_color: FAKE13 allocation score on pcmk_remote5: 0 ++native_color: FAKE14 allocation score on pcmk1: 0 ++native_color: FAKE14 allocation score on pcmk2: 0 ++native_color: FAKE14 allocation score on pcmk3: 0 ++native_color: FAKE14 allocation score on pcmk_remote1: 0 ++native_color: FAKE14 allocation score on pcmk_remote2: 0 ++native_color: FAKE14 allocation score on pcmk_remote3: 0 ++native_color: FAKE14 allocation score on pcmk_remote4: 0 ++native_color: FAKE14 allocation score on pcmk_remote5: 0 ++native_color: FAKE15 allocation score on pcmk1: 0 ++native_color: FAKE15 allocation score on pcmk2: 0 ++native_color: FAKE15 allocation score on pcmk3: 0 ++native_color: FAKE15 allocation score on pcmk_remote1: 0 ++native_color: FAKE15 allocation score on pcmk_remote2: 0 ++native_color: FAKE15 allocation score on pcmk_remote3: 0 ++native_color: FAKE15 allocation score on pcmk_remote4: 0 ++native_color: FAKE15 allocation score on pcmk_remote5: 0 ++native_color: FAKE16 allocation score on pcmk1: 0 ++native_color: FAKE16 allocation score on pcmk2: 0 ++native_color: FAKE16 allocation score on pcmk3: 0 ++native_color: FAKE16 allocation score on pcmk_remote1: 0 ++native_color: FAKE16 allocation score on pcmk_remote2: 0 ++native_color: FAKE16 allocation score on pcmk_remote3: 0 ++native_color: FAKE16 allocation score on pcmk_remote4: 0 ++native_color: FAKE16 allocation score on pcmk_remote5: 0 ++native_color: FAKE17 allocation score on pcmk1: 0 ++native_color: FAKE17 allocation score on pcmk2: 0 ++native_color: FAKE17 allocation score on pcmk3: 0 ++native_color: FAKE17 allocation score on pcmk_remote1: 0 ++native_color: FAKE17 allocation score on pcmk_remote2: 0 ++native_color: FAKE17 allocation score on pcmk_remote3: 0 ++native_color: FAKE17 allocation score on pcmk_remote4: 0 ++native_color: FAKE17 allocation score on pcmk_remote5: 0 ++native_color: FAKE18 allocation score on pcmk1: 0 ++native_color: FAKE18 allocation score on pcmk2: 0 ++native_color: FAKE18 allocation score on pcmk3: 0 ++native_color: FAKE18 allocation score on pcmk_remote1: 0 ++native_color: FAKE18 allocation score on pcmk_remote2: 0 ++native_color: FAKE18 allocation score on pcmk_remote3: 0 ++native_color: FAKE18 allocation score on pcmk_remote4: 0 ++native_color: FAKE18 allocation score on pcmk_remote5: 0 ++native_color: FAKE19 allocation score on pcmk1: 0 ++native_color: FAKE19 allocation score on pcmk2: 0 ++native_color: FAKE19 allocation score on pcmk3: 0 ++native_color: FAKE19 allocation score on pcmk_remote1: 0 ++native_color: FAKE19 allocation score on pcmk_remote2: 0 ++native_color: FAKE19 allocation score on pcmk_remote3: 0 ++native_color: FAKE19 allocation score on pcmk_remote4: 0 ++native_color: FAKE19 allocation score on pcmk_remote5: 0 ++native_color: FAKE2 allocation score on pcmk1: 0 ++native_color: FAKE2 allocation score on pcmk2: 0 ++native_color: FAKE2 allocation score on pcmk3: 0 ++native_color: FAKE2 allocation score on pcmk_remote1: 0 ++native_color: FAKE2 allocation score on pcmk_remote2: 0 ++native_color: FAKE2 allocation score on pcmk_remote3: 0 ++native_color: FAKE2 allocation score on pcmk_remote4: 0 ++native_color: FAKE2 allocation score on pcmk_remote5: 0 ++native_color: FAKE20 allocation score on pcmk1: 0 ++native_color: FAKE20 allocation score on pcmk2: 0 ++native_color: FAKE20 allocation score on pcmk3: 0 ++native_color: FAKE20 allocation score on pcmk_remote1: 0 ++native_color: FAKE20 allocation score on pcmk_remote2: 0 ++native_color: FAKE20 allocation score on pcmk_remote3: 0 ++native_color: FAKE20 allocation score on pcmk_remote4: 0 ++native_color: FAKE20 allocation score on pcmk_remote5: 0 ++native_color: FAKE21 allocation score on pcmk1: 0 ++native_color: FAKE21 allocation score on pcmk2: 0 ++native_color: FAKE21 allocation score on pcmk3: 0 ++native_color: FAKE21 allocation score on pcmk_remote1: 0 ++native_color: FAKE21 allocation score on pcmk_remote2: 0 ++native_color: FAKE21 allocation score on pcmk_remote3: 0 ++native_color: FAKE21 allocation score on pcmk_remote4: 0 ++native_color: FAKE21 allocation score on pcmk_remote5: 0 ++native_color: FAKE22 allocation score on pcmk1: 0 ++native_color: FAKE22 allocation score on pcmk2: 0 ++native_color: FAKE22 allocation score on pcmk3: 0 ++native_color: FAKE22 allocation score on pcmk_remote1: 0 ++native_color: FAKE22 allocation score on pcmk_remote2: 0 ++native_color: FAKE22 allocation score on pcmk_remote3: 0 ++native_color: FAKE22 allocation score on pcmk_remote4: 0 ++native_color: FAKE22 allocation score on pcmk_remote5: 0 ++native_color: FAKE23 allocation score on pcmk1: 0 ++native_color: FAKE23 allocation score on pcmk2: 0 ++native_color: FAKE23 allocation score on pcmk3: 0 ++native_color: FAKE23 allocation score on pcmk_remote1: 0 ++native_color: FAKE23 allocation score on pcmk_remote2: 0 ++native_color: FAKE23 allocation score on pcmk_remote3: 0 ++native_color: FAKE23 allocation score on pcmk_remote4: 0 ++native_color: FAKE23 allocation score on pcmk_remote5: 0 ++native_color: FAKE24 allocation score on pcmk1: 0 ++native_color: FAKE24 allocation score on pcmk2: 0 ++native_color: FAKE24 allocation score on pcmk3: 0 ++native_color: FAKE24 allocation score on pcmk_remote1: 0 ++native_color: FAKE24 allocation score on pcmk_remote2: 0 ++native_color: FAKE24 allocation score on pcmk_remote3: 0 ++native_color: FAKE24 allocation score on pcmk_remote4: 0 ++native_color: FAKE24 allocation score on pcmk_remote5: 0 ++native_color: FAKE25 allocation score on pcmk1: 0 ++native_color: FAKE25 allocation score on pcmk2: 0 ++native_color: FAKE25 allocation score on pcmk3: 0 ++native_color: FAKE25 allocation score on pcmk_remote1: 0 ++native_color: FAKE25 allocation score on pcmk_remote2: 0 ++native_color: FAKE25 allocation score on pcmk_remote3: 0 ++native_color: FAKE25 allocation score on pcmk_remote4: 0 ++native_color: FAKE25 allocation score on pcmk_remote5: 0 ++native_color: FAKE26 allocation score on pcmk1: 0 ++native_color: FAKE26 allocation score on pcmk2: 0 ++native_color: FAKE26 allocation score on pcmk3: 0 ++native_color: FAKE26 allocation score on pcmk_remote1: 0 ++native_color: FAKE26 allocation score on pcmk_remote2: 0 ++native_color: FAKE26 allocation score on pcmk_remote3: 0 ++native_color: FAKE26 allocation score on pcmk_remote4: 0 ++native_color: FAKE26 allocation score on pcmk_remote5: 0 ++native_color: FAKE27 allocation score on pcmk1: 0 ++native_color: FAKE27 allocation score on pcmk2: 0 ++native_color: FAKE27 allocation score on pcmk3: 0 ++native_color: FAKE27 allocation score on pcmk_remote1: 0 ++native_color: FAKE27 allocation score on pcmk_remote2: 0 ++native_color: FAKE27 allocation score on pcmk_remote3: 0 ++native_color: FAKE27 allocation score on pcmk_remote4: 0 ++native_color: FAKE27 allocation score on pcmk_remote5: 0 ++native_color: FAKE28 allocation score on pcmk1: 0 ++native_color: FAKE28 allocation score on pcmk2: 0 ++native_color: FAKE28 allocation score on pcmk3: 0 ++native_color: FAKE28 allocation score on pcmk_remote1: 0 ++native_color: FAKE28 allocation score on pcmk_remote2: 0 ++native_color: FAKE28 allocation score on pcmk_remote3: 0 ++native_color: FAKE28 allocation score on pcmk_remote4: 0 ++native_color: FAKE28 allocation score on pcmk_remote5: 0 ++native_color: FAKE29 allocation score on pcmk1: 0 ++native_color: FAKE29 allocation score on pcmk2: 0 ++native_color: FAKE29 allocation score on pcmk3: 0 ++native_color: FAKE29 allocation score on pcmk_remote1: 0 ++native_color: FAKE29 allocation score on pcmk_remote2: 0 ++native_color: FAKE29 allocation score on pcmk_remote3: 0 ++native_color: FAKE29 allocation score on pcmk_remote4: 0 ++native_color: FAKE29 allocation score on pcmk_remote5: 0 ++native_color: FAKE3 allocation score on pcmk1: 0 ++native_color: FAKE3 allocation score on pcmk2: 0 ++native_color: FAKE3 allocation score on pcmk3: 0 ++native_color: FAKE3 allocation score on pcmk_remote1: 0 ++native_color: FAKE3 allocation score on pcmk_remote2: 0 ++native_color: FAKE3 allocation score on pcmk_remote3: 0 ++native_color: FAKE3 allocation score on pcmk_remote4: 0 ++native_color: FAKE3 allocation score on pcmk_remote5: 0 ++native_color: FAKE30 allocation score on pcmk1: 0 ++native_color: FAKE30 allocation score on pcmk2: 0 ++native_color: FAKE30 allocation score on pcmk3: 0 ++native_color: FAKE30 allocation score on pcmk_remote1: 0 ++native_color: FAKE30 allocation score on pcmk_remote2: 0 ++native_color: FAKE30 allocation score on pcmk_remote3: 0 ++native_color: FAKE30 allocation score on pcmk_remote4: 0 ++native_color: FAKE30 allocation score on pcmk_remote5: 0 ++native_color: FAKE31 allocation score on pcmk1: 0 ++native_color: FAKE31 allocation score on pcmk2: 0 ++native_color: FAKE31 allocation score on pcmk3: 0 ++native_color: FAKE31 allocation score on pcmk_remote1: 0 ++native_color: FAKE31 allocation score on pcmk_remote2: 0 ++native_color: FAKE31 allocation score on pcmk_remote3: 0 ++native_color: FAKE31 allocation score on pcmk_remote4: 0 ++native_color: FAKE31 allocation score on pcmk_remote5: 0 ++native_color: FAKE32 allocation score on pcmk1: 0 ++native_color: FAKE32 allocation score on pcmk2: 0 ++native_color: FAKE32 allocation score on pcmk3: 0 ++native_color: FAKE32 allocation score on pcmk_remote1: 0 ++native_color: FAKE32 allocation score on pcmk_remote2: 0 ++native_color: FAKE32 allocation score on pcmk_remote3: 0 ++native_color: FAKE32 allocation score on pcmk_remote4: 0 ++native_color: FAKE32 allocation score on pcmk_remote5: 0 ++native_color: FAKE33 allocation score on pcmk1: 0 ++native_color: FAKE33 allocation score on pcmk2: 0 ++native_color: FAKE33 allocation score on pcmk3: 0 ++native_color: FAKE33 allocation score on pcmk_remote1: 0 ++native_color: FAKE33 allocation score on pcmk_remote2: 0 ++native_color: FAKE33 allocation score on pcmk_remote3: 0 ++native_color: FAKE33 allocation score on pcmk_remote4: 0 ++native_color: FAKE33 allocation score on pcmk_remote5: 0 ++native_color: FAKE34 allocation score on pcmk1: 0 ++native_color: FAKE34 allocation score on pcmk2: 0 ++native_color: FAKE34 allocation score on pcmk3: 0 ++native_color: FAKE34 allocation score on pcmk_remote1: 0 ++native_color: FAKE34 allocation score on pcmk_remote2: 0 ++native_color: FAKE34 allocation score on pcmk_remote3: 0 ++native_color: FAKE34 allocation score on pcmk_remote4: 0 ++native_color: FAKE34 allocation score on pcmk_remote5: 0 ++native_color: FAKE35 allocation score on pcmk1: 0 ++native_color: FAKE35 allocation score on pcmk2: 0 ++native_color: FAKE35 allocation score on pcmk3: 0 ++native_color: FAKE35 allocation score on pcmk_remote1: 0 ++native_color: FAKE35 allocation score on pcmk_remote2: 0 ++native_color: FAKE35 allocation score on pcmk_remote3: 0 ++native_color: FAKE35 allocation score on pcmk_remote4: 0 ++native_color: FAKE35 allocation score on pcmk_remote5: 0 ++native_color: FAKE36 allocation score on pcmk1: 0 ++native_color: FAKE36 allocation score on pcmk2: 0 ++native_color: FAKE36 allocation score on pcmk3: 0 ++native_color: FAKE36 allocation score on pcmk_remote1: 0 ++native_color: FAKE36 allocation score on pcmk_remote2: 0 ++native_color: FAKE36 allocation score on pcmk_remote3: 0 ++native_color: FAKE36 allocation score on pcmk_remote4: 0 ++native_color: FAKE36 allocation score on pcmk_remote5: 0 ++native_color: FAKE37 allocation score on pcmk1: 0 ++native_color: FAKE37 allocation score on pcmk2: 0 ++native_color: FAKE37 allocation score on pcmk3: 0 ++native_color: FAKE37 allocation score on pcmk_remote1: 0 ++native_color: FAKE37 allocation score on pcmk_remote2: 0 ++native_color: FAKE37 allocation score on pcmk_remote3: 0 ++native_color: FAKE37 allocation score on pcmk_remote4: 0 ++native_color: FAKE37 allocation score on pcmk_remote5: 0 ++native_color: FAKE38 allocation score on pcmk1: 0 ++native_color: FAKE38 allocation score on pcmk2: 0 ++native_color: FAKE38 allocation score on pcmk3: 0 ++native_color: FAKE38 allocation score on pcmk_remote1: 0 ++native_color: FAKE38 allocation score on pcmk_remote2: 0 ++native_color: FAKE38 allocation score on pcmk_remote3: 0 ++native_color: FAKE38 allocation score on pcmk_remote4: 0 ++native_color: FAKE38 allocation score on pcmk_remote5: 0 ++native_color: FAKE39 allocation score on pcmk1: 0 ++native_color: FAKE39 allocation score on pcmk2: 0 ++native_color: FAKE39 allocation score on pcmk3: 0 ++native_color: FAKE39 allocation score on pcmk_remote1: 0 ++native_color: FAKE39 allocation score on pcmk_remote2: 0 ++native_color: FAKE39 allocation score on pcmk_remote3: 0 ++native_color: FAKE39 allocation score on pcmk_remote4: 0 ++native_color: FAKE39 allocation score on pcmk_remote5: 0 ++native_color: FAKE4 allocation score on pcmk1: 0 ++native_color: FAKE4 allocation score on pcmk2: 0 ++native_color: FAKE4 allocation score on pcmk3: 0 ++native_color: FAKE4 allocation score on pcmk_remote1: 0 ++native_color: FAKE4 allocation score on pcmk_remote2: 0 ++native_color: FAKE4 allocation score on pcmk_remote3: 0 ++native_color: FAKE4 allocation score on pcmk_remote4: 0 ++native_color: FAKE4 allocation score on pcmk_remote5: 0 ++native_color: FAKE40 allocation score on pcmk1: 0 ++native_color: FAKE40 allocation score on pcmk2: 0 ++native_color: FAKE40 allocation score on pcmk3: 0 ++native_color: FAKE40 allocation score on pcmk_remote1: 0 ++native_color: FAKE40 allocation score on pcmk_remote2: 0 ++native_color: FAKE40 allocation score on pcmk_remote3: 0 ++native_color: FAKE40 allocation score on pcmk_remote4: 0 ++native_color: FAKE40 allocation score on pcmk_remote5: 0 ++native_color: FAKE41 allocation score on pcmk1: 0 ++native_color: FAKE41 allocation score on pcmk2: 0 ++native_color: FAKE41 allocation score on pcmk3: 0 ++native_color: FAKE41 allocation score on pcmk_remote1: 0 ++native_color: FAKE41 allocation score on pcmk_remote2: 0 ++native_color: FAKE41 allocation score on pcmk_remote3: 0 ++native_color: FAKE41 allocation score on pcmk_remote4: 0 ++native_color: FAKE41 allocation score on pcmk_remote5: 0 ++native_color: FAKE42 allocation score on pcmk1: 0 ++native_color: FAKE42 allocation score on pcmk2: 0 ++native_color: FAKE42 allocation score on pcmk3: 0 ++native_color: FAKE42 allocation score on pcmk_remote1: 0 ++native_color: FAKE42 allocation score on pcmk_remote2: 0 ++native_color: FAKE42 allocation score on pcmk_remote3: 0 ++native_color: FAKE42 allocation score on pcmk_remote4: 0 ++native_color: FAKE42 allocation score on pcmk_remote5: 0 ++native_color: FAKE43 allocation score on pcmk1: 0 ++native_color: FAKE43 allocation score on pcmk2: 0 ++native_color: FAKE43 allocation score on pcmk3: 0 ++native_color: FAKE43 allocation score on pcmk_remote1: 0 ++native_color: FAKE43 allocation score on pcmk_remote2: 0 ++native_color: FAKE43 allocation score on pcmk_remote3: 0 ++native_color: FAKE43 allocation score on pcmk_remote4: 0 ++native_color: FAKE43 allocation score on pcmk_remote5: 0 ++native_color: FAKE44 allocation score on pcmk1: 0 ++native_color: FAKE44 allocation score on pcmk2: 0 ++native_color: FAKE44 allocation score on pcmk3: 0 ++native_color: FAKE44 allocation score on pcmk_remote1: 0 ++native_color: FAKE44 allocation score on pcmk_remote2: 0 ++native_color: FAKE44 allocation score on pcmk_remote3: 0 ++native_color: FAKE44 allocation score on pcmk_remote4: 0 ++native_color: FAKE44 allocation score on pcmk_remote5: 0 ++native_color: FAKE45 allocation score on pcmk1: 0 ++native_color: FAKE45 allocation score on pcmk2: 0 ++native_color: FAKE45 allocation score on pcmk3: 0 ++native_color: FAKE45 allocation score on pcmk_remote1: 0 ++native_color: FAKE45 allocation score on pcmk_remote2: 0 ++native_color: FAKE45 allocation score on pcmk_remote3: 0 ++native_color: FAKE45 allocation score on pcmk_remote4: 0 ++native_color: FAKE45 allocation score on pcmk_remote5: 0 ++native_color: FAKE46 allocation score on pcmk1: 0 ++native_color: FAKE46 allocation score on pcmk2: 0 ++native_color: FAKE46 allocation score on pcmk3: 0 ++native_color: FAKE46 allocation score on pcmk_remote1: 0 ++native_color: FAKE46 allocation score on pcmk_remote2: 0 ++native_color: FAKE46 allocation score on pcmk_remote3: 0 ++native_color: FAKE46 allocation score on pcmk_remote4: 0 ++native_color: FAKE46 allocation score on pcmk_remote5: 0 ++native_color: FAKE47 allocation score on pcmk1: 0 ++native_color: FAKE47 allocation score on pcmk2: 0 ++native_color: FAKE47 allocation score on pcmk3: 0 ++native_color: FAKE47 allocation score on pcmk_remote1: 0 ++native_color: FAKE47 allocation score on pcmk_remote2: 0 ++native_color: FAKE47 allocation score on pcmk_remote3: 0 ++native_color: FAKE47 allocation score on pcmk_remote4: 0 ++native_color: FAKE47 allocation score on pcmk_remote5: 0 ++native_color: FAKE48 allocation score on pcmk1: 0 ++native_color: FAKE48 allocation score on pcmk2: 0 ++native_color: FAKE48 allocation score on pcmk3: 0 ++native_color: FAKE48 allocation score on pcmk_remote1: 0 ++native_color: FAKE48 allocation score on pcmk_remote2: 0 ++native_color: FAKE48 allocation score on pcmk_remote3: 0 ++native_color: FAKE48 allocation score on pcmk_remote4: 0 ++native_color: FAKE48 allocation score on pcmk_remote5: 0 ++native_color: FAKE49 allocation score on pcmk1: 0 ++native_color: FAKE49 allocation score on pcmk2: 0 ++native_color: FAKE49 allocation score on pcmk3: 0 ++native_color: FAKE49 allocation score on pcmk_remote1: 0 ++native_color: FAKE49 allocation score on pcmk_remote2: 0 ++native_color: FAKE49 allocation score on pcmk_remote3: 0 ++native_color: FAKE49 allocation score on pcmk_remote4: 0 ++native_color: FAKE49 allocation score on pcmk_remote5: 0 ++native_color: FAKE5 allocation score on pcmk1: 0 ++native_color: FAKE5 allocation score on pcmk2: 0 ++native_color: FAKE5 allocation score on pcmk3: 0 ++native_color: FAKE5 allocation score on pcmk_remote1: 0 ++native_color: FAKE5 allocation score on pcmk_remote2: 0 ++native_color: FAKE5 allocation score on pcmk_remote3: 0 ++native_color: FAKE5 allocation score on pcmk_remote4: 0 ++native_color: FAKE5 allocation score on pcmk_remote5: 0 ++native_color: FAKE50 allocation score on pcmk1: 0 ++native_color: FAKE50 allocation score on pcmk2: 0 ++native_color: FAKE50 allocation score on pcmk3: 0 ++native_color: FAKE50 allocation score on pcmk_remote1: 0 ++native_color: FAKE50 allocation score on pcmk_remote2: 0 ++native_color: FAKE50 allocation score on pcmk_remote3: 0 ++native_color: FAKE50 allocation score on pcmk_remote4: 0 ++native_color: FAKE50 allocation score on pcmk_remote5: 0 ++native_color: FAKE6 allocation score on pcmk1: 0 ++native_color: FAKE6 allocation score on pcmk2: 0 ++native_color: FAKE6 allocation score on pcmk3: 0 ++native_color: FAKE6 allocation score on pcmk_remote1: 0 ++native_color: FAKE6 allocation score on pcmk_remote2: 0 ++native_color: FAKE6 allocation score on pcmk_remote3: 0 ++native_color: FAKE6 allocation score on pcmk_remote4: 0 ++native_color: FAKE6 allocation score on pcmk_remote5: 0 ++native_color: FAKE7 allocation score on pcmk1: 0 ++native_color: FAKE7 allocation score on pcmk2: 0 ++native_color: FAKE7 allocation score on pcmk3: 0 ++native_color: FAKE7 allocation score on pcmk_remote1: 0 ++native_color: FAKE7 allocation score on pcmk_remote2: 0 ++native_color: FAKE7 allocation score on pcmk_remote3: 0 ++native_color: FAKE7 allocation score on pcmk_remote4: 0 ++native_color: FAKE7 allocation score on pcmk_remote5: 0 ++native_color: FAKE8 allocation score on pcmk1: 0 ++native_color: FAKE8 allocation score on pcmk2: 0 ++native_color: FAKE8 allocation score on pcmk3: 0 ++native_color: FAKE8 allocation score on pcmk_remote1: 0 ++native_color: FAKE8 allocation score on pcmk_remote2: 0 ++native_color: FAKE8 allocation score on pcmk_remote3: 0 ++native_color: FAKE8 allocation score on pcmk_remote4: 0 ++native_color: FAKE8 allocation score on pcmk_remote5: 0 ++native_color: FAKE9 allocation score on pcmk1: 0 ++native_color: FAKE9 allocation score on pcmk2: -INFINITY ++native_color: FAKE9 allocation score on pcmk3: 0 ++native_color: FAKE9 allocation score on pcmk_remote1: 0 ++native_color: FAKE9 allocation score on pcmk_remote2: 0 ++native_color: FAKE9 allocation score on pcmk_remote3: 0 ++native_color: FAKE9 allocation score on pcmk_remote4: 0 ++native_color: FAKE9 allocation score on pcmk_remote5: 0 ++native_color: pcmk_remote1 allocation score on pcmk1: 0 ++native_color: pcmk_remote1 allocation score on pcmk2: 0 ++native_color: pcmk_remote1 allocation score on pcmk3: 0 ++native_color: pcmk_remote1 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk1: 0 ++native_color: pcmk_remote2 allocation score on pcmk2: 0 ++native_color: pcmk_remote2 allocation score on pcmk3: 0 ++native_color: pcmk_remote2 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk1: 0 ++native_color: pcmk_remote3 allocation score on pcmk2: 0 ++native_color: pcmk_remote3 allocation score on pcmk3: 0 ++native_color: pcmk_remote3 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk1: 0 ++native_color: pcmk_remote4 allocation score on pcmk2: 0 ++native_color: pcmk_remote4 allocation score on pcmk3: 0 ++native_color: pcmk_remote4 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk1: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk2: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk3: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote5: -INFINITY ++native_color: shooter allocation score on pcmk1: 0 ++native_color: shooter allocation score on pcmk2: 0 ++native_color: shooter allocation score on pcmk3: 0 ++native_color: shooter allocation score on pcmk_remote1: -INFINITY ++native_color: shooter allocation score on pcmk_remote2: -INFINITY ++native_color: shooter allocation score on pcmk_remote3: -INFINITY ++native_color: shooter allocation score on pcmk_remote4: -INFINITY ++native_color: shooter allocation score on pcmk_remote5: -INFINITY +diff --git a/pengine/test10/remote-partial-migrate.summary b/pengine/test10/remote-partial-migrate.summary +new file mode 100644 +index 0000000..e8abf92 +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate.summary +@@ -0,0 +1,189 @@ ++ ++Current cluster status: ++Online: [ pcmk1 pcmk2 pcmk3 ] ++RemoteOnline: [ pcmk_remote1 pcmk_remote2 pcmk_remote3 pcmk_remote4 ] ++RemoteOFFLINE: [ pcmk_remote5 ] ++ ++ shooter (stonith:fence_docker_cts): Started pcmk2 ++ pcmk_remote1 (ocf::pacemaker:remote): Started pcmk1 ++ pcmk_remote2 (ocf::pacemaker:remote): Started pcmk3 ++ pcmk_remote3 (ocf::pacemaker:remote): Started [ pcmk2 pcmk1 ] ++ pcmk_remote4 (ocf::pacemaker:remote): Started pcmk3 ++ pcmk_remote5 (ocf::pacemaker:remote): Stopped ++ FAKE1 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE2 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE3 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE4 (ocf::heartbeat:Dummy): Stopped ++ FAKE5 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE6 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE7 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE8 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE9 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE10 (ocf::heartbeat:Dummy): Stopped ++ FAKE11 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE12 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE13 (ocf::heartbeat:Dummy): Stopped ++ FAKE14 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE15 (ocf::heartbeat:Dummy): Stopped ++ FAKE16 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE17 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE18 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE19 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE20 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE21 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE22 (ocf::heartbeat:Dummy): Stopped ++ FAKE23 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE24 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE25 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE26 (ocf::heartbeat:Dummy): Stopped ++ FAKE27 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE28 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE29 (ocf::heartbeat:Dummy): Stopped ++ FAKE30 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE31 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE32 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE33 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE34 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE35 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE36 (ocf::heartbeat:Dummy): Stopped ++ FAKE37 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE38 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE39 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE40 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE41 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE42 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE43 (ocf::heartbeat:Dummy): Stopped ++ FAKE44 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE45 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE46 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE47 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE48 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE49 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE50 (ocf::heartbeat:Dummy): Stopped ++ ++Transition Summary: ++ * Migrate pcmk_remote3 (Started pcmk1 -> pcmk2) ++ * Start FAKE4 (pcmk_remote3) ++ * Move FAKE9 (Started pcmk_remote3 -> pcmk1) ++ * Start FAKE10 (pcmk1) ++ * Start FAKE13 (pcmk2) ++ * Start FAKE15 (pcmk3) ++ * Move FAKE16 (Started pcmk1 -> pcmk_remote3) ++ * Start FAKE22 (pcmk1) ++ * Move FAKE23 (Started pcmk1 -> pcmk_remote1) ++ * Start FAKE26 (pcmk1) ++ * Start FAKE29 (pcmk2) ++ * Move FAKE30 (Started pcmk1 -> pcmk_remote2) ++ * Start FAKE36 (pcmk1) ++ * Move FAKE37 (Started pcmk1 -> pcmk2) ++ * Start FAKE43 (pcmk1) ++ * Move FAKE44 (Started pcmk1 -> pcmk2) ++ * Start FAKE50 (pcmk1) ++ ++Executing cluster transition: ++ * Resource action: pcmk_remote3 migrate_from on pcmk2 ++ * Resource action: pcmk_remote3 stop on pcmk1 ++ * Resource action: FAKE10 start on pcmk1 ++ * Resource action: FAKE13 start on pcmk2 ++ * Resource action: FAKE15 start on pcmk3 ++ * Resource action: FAKE16 stop on pcmk1 ++ * Resource action: FAKE22 start on pcmk1 ++ * Resource action: FAKE23 stop on pcmk1 ++ * Resource action: FAKE26 start on pcmk1 ++ * Resource action: FAKE29 start on pcmk2 ++ * Resource action: FAKE30 stop on pcmk1 ++ * Resource action: FAKE36 start on pcmk1 ++ * Resource action: FAKE37 stop on pcmk1 ++ * Resource action: FAKE43 start on pcmk1 ++ * Resource action: FAKE44 stop on pcmk1 ++ * Resource action: FAKE50 start on pcmk1 ++ * Pseudo action: pcmk_remote3_start_0 ++ * Resource action: FAKE4 start on pcmk_remote3 ++ * Resource action: FAKE9 stop on pcmk_remote3 ++ * Resource action: FAKE10 monitor=10000 on pcmk1 ++ * Resource action: FAKE13 monitor=10000 on pcmk2 ++ * Resource action: FAKE15 monitor=10000 on pcmk3 ++ * Resource action: FAKE16 start on pcmk_remote3 ++ * Resource action: FAKE22 monitor=10000 on pcmk1 ++ * Resource action: FAKE23 start on pcmk_remote1 ++ * Resource action: FAKE26 monitor=10000 on pcmk1 ++ * Resource action: FAKE29 monitor=10000 on pcmk2 ++ * Resource action: FAKE30 start on pcmk_remote2 ++ * Resource action: FAKE36 monitor=10000 on pcmk1 ++ * Resource action: FAKE37 start on pcmk2 ++ * Resource action: FAKE43 monitor=10000 on pcmk1 ++ * Resource action: FAKE44 start on pcmk2 ++ * Resource action: FAKE50 monitor=10000 on pcmk1 ++ * Pseudo action: all_stopped ++ * Resource action: pcmk_remote3 monitor=60000 on pcmk2 ++ * Resource action: FAKE4 monitor=10000 on pcmk_remote3 ++ * Resource action: FAKE9 start on pcmk1 ++ * Resource action: FAKE16 monitor=10000 on pcmk_remote3 ++ * Resource action: FAKE23 monitor=10000 on pcmk_remote1 ++ * Resource action: FAKE30 monitor=10000 on pcmk_remote2 ++ * Resource action: FAKE37 monitor=10000 on pcmk2 ++ * Resource action: FAKE44 monitor=10000 on pcmk2 ++ * Resource action: FAKE9 monitor=10000 on pcmk1 ++ ++Revised cluster status: ++Online: [ pcmk1 pcmk2 pcmk3 ] ++RemoteOnline: [ pcmk_remote1 pcmk_remote2 pcmk_remote3 pcmk_remote4 ] ++RemoteOFFLINE: [ pcmk_remote5 ] ++ ++ shooter (stonith:fence_docker_cts): Started pcmk2 ++ pcmk_remote1 (ocf::pacemaker:remote): Started pcmk1 ++ pcmk_remote2 (ocf::pacemaker:remote): Started pcmk3 ++ pcmk_remote3 (ocf::pacemaker:remote): Started pcmk2 ++ pcmk_remote4 (ocf::pacemaker:remote): Started pcmk3 ++ pcmk_remote5 (ocf::pacemaker:remote): Stopped ++ FAKE1 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE2 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE3 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE4 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE5 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE6 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE7 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE8 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE9 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE10 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE11 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE12 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE13 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE14 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE15 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE16 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE17 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE18 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE19 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE20 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE21 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE22 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE23 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE24 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE25 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE26 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE27 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE28 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE29 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE30 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE31 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE32 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE33 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE34 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE35 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE36 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE37 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE38 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE39 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE40 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE41 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE42 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE43 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE44 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE45 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE46 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE47 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE48 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE49 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE50 (ocf::heartbeat:Dummy): Started pcmk1 ++ +diff --git a/pengine/test10/remote-partial-migrate.xml b/pengine/test10/remote-partial-migrate.xml +new file mode 100644 +index 0000000..e71f029 +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate.xml +@@ -0,0 +1,1734 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.2" epoch="154" num_updates="1682" admin_epoch="0" cib-last-written="Wed Dec 10 20:33:26 2014" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-6b19349"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="mycluster"/> ++ <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1418243606"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="3" uname="pcmk3"/> ++ <node id="1" uname="pcmk1"/> ++ <node id="2" uname="pcmk2"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_docker_cts"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote1" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote1-instance_attributes"> ++ <nvpair id="pcmk_remote1-instance_attributes-server" name="server" value="172.17.201.1"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote1-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote1-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote1-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote2" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote2-instance_attributes"> ++ <nvpair id="pcmk_remote2-instance_attributes-server" name="server" value="172.17.201.2"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote2-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote2-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote2-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote3" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote3-instance_attributes"> ++ <nvpair id="pcmk_remote3-instance_attributes-server" name="server" value="172.17.201.3"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote3-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote3-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote3-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote4" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote4-instance_attributes"> ++ <nvpair id="pcmk_remote4-instance_attributes-server" name="server" value="172.17.201.4"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote4-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote4-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote4-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote5" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote5-instance_attributes"> ++ <nvpair id="pcmk_remote5-instance_attributes-server" name="server" value="172.17.201.5"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote5-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote5-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote5-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE1" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE1-instance_attributes"/> ++ <operations> ++ <op id="FAKE1-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE1-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE1-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE2" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE2-instance_attributes"/> ++ <operations> ++ <op id="FAKE2-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE2-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE2-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE3" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE3-instance_attributes"/> ++ <operations> ++ <op id="FAKE3-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE3-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE3-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE4" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE4-instance_attributes"/> ++ <operations> ++ <op id="FAKE4-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE4-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE4-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE5" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE5-instance_attributes"/> ++ <operations> ++ <op id="FAKE5-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE5-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE5-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE6" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE6-instance_attributes"/> ++ <operations> ++ <op id="FAKE6-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE6-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE6-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE7" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE7-instance_attributes"/> ++ <operations> ++ <op id="FAKE7-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE7-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE7-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE8" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE8-instance_attributes"/> ++ <operations> ++ <op id="FAKE8-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE8-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE8-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE9" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE9-instance_attributes"/> ++ <operations> ++ <op id="FAKE9-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE9-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE9-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE10" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE10-instance_attributes"/> ++ <operations> ++ <op id="FAKE10-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE10-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE10-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE11" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE11-instance_attributes"/> ++ <operations> ++ <op id="FAKE11-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE11-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE11-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE12" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE12-instance_attributes"/> ++ <operations> ++ <op id="FAKE12-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE12-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE12-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE13" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE13-instance_attributes"/> ++ <operations> ++ <op id="FAKE13-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE13-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE13-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE14" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE14-instance_attributes"/> ++ <operations> ++ <op id="FAKE14-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE14-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE14-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE15" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE15-instance_attributes"/> ++ <operations> ++ <op id="FAKE15-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE15-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE15-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE16" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE16-instance_attributes"/> ++ <operations> ++ <op id="FAKE16-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE16-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE16-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE17" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE17-instance_attributes"/> ++ <operations> ++ <op id="FAKE17-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE17-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE17-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE18" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE18-instance_attributes"/> ++ <operations> ++ <op id="FAKE18-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE18-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE18-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE19" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE19-instance_attributes"/> ++ <operations> ++ <op id="FAKE19-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE19-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE19-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE20" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE20-instance_attributes"/> ++ <operations> ++ <op id="FAKE20-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE20-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE20-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE21" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE21-instance_attributes"/> ++ <operations> ++ <op id="FAKE21-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE21-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE21-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE22" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE22-instance_attributes"/> ++ <operations> ++ <op id="FAKE22-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE22-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE22-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE23" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE23-instance_attributes"/> ++ <operations> ++ <op id="FAKE23-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE23-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE23-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE24" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE24-instance_attributes"/> ++ <operations> ++ <op id="FAKE24-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE24-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE24-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE25" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE25-instance_attributes"/> ++ <operations> ++ <op id="FAKE25-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE25-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE25-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE26" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE26-instance_attributes"/> ++ <operations> ++ <op id="FAKE26-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE26-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE26-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE27" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE27-instance_attributes"/> ++ <operations> ++ <op id="FAKE27-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE27-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE27-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE28" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE28-instance_attributes"/> ++ <operations> ++ <op id="FAKE28-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE28-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE28-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE29" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE29-instance_attributes"/> ++ <operations> ++ <op id="FAKE29-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE29-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE29-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE30" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE30-instance_attributes"/> ++ <operations> ++ <op id="FAKE30-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE30-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE30-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE31" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE31-instance_attributes"/> ++ <operations> ++ <op id="FAKE31-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE31-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE31-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE32" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE32-instance_attributes"/> ++ <operations> ++ <op id="FAKE32-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE32-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE32-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE33" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE33-instance_attributes"/> ++ <operations> ++ <op id="FAKE33-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE33-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE33-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE34" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE34-instance_attributes"/> ++ <operations> ++ <op id="FAKE34-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE34-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE34-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE35" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE35-instance_attributes"/> ++ <operations> ++ <op id="FAKE35-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE35-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE35-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE36" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE36-instance_attributes"/> ++ <operations> ++ <op id="FAKE36-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE36-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE36-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE37" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE37-instance_attributes"/> ++ <operations> ++ <op id="FAKE37-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE37-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE37-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE38" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE38-instance_attributes"/> ++ <operations> ++ <op id="FAKE38-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE38-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE38-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE39" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE39-instance_attributes"/> ++ <operations> ++ <op id="FAKE39-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE39-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE39-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE40" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE40-instance_attributes"/> ++ <operations> ++ <op id="FAKE40-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE40-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE40-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE41" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE41-instance_attributes"/> ++ <operations> ++ <op id="FAKE41-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE41-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE41-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE42" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE42-instance_attributes"/> ++ <operations> ++ <op id="FAKE42-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE42-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE42-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE43" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE43-instance_attributes"/> ++ <operations> ++ <op id="FAKE43-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE43-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE43-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE44" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE44-instance_attributes"/> ++ <operations> ++ <op id="FAKE44-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE44-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE44-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE45" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE45-instance_attributes"/> ++ <operations> ++ <op id="FAKE45-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE45-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE45-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE46" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE46-instance_attributes"/> ++ <operations> ++ <op id="FAKE46-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE46-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE46-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE47" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE47-instance_attributes"/> ++ <operations> ++ <op id="FAKE47-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE47-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE47-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE48" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE48-instance_attributes"/> ++ <operations> ++ <op id="FAKE48-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE48-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE48-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE49" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE49-instance_attributes"/> ++ <operations> ++ <op id="FAKE49-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE49-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE49-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE50" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE50-instance_attributes"/> ++ <operations> ++ <op id="FAKE50-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE50-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE50-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ </resources> ++ <constraints/> ++ </configuration> ++ <status> ++ <node_state id="2" uname="pcmk2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_docker_cts" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;67:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="211" rc-code="0" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="182" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;68:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="212" rc-code="0" op-status="0" interval="60000" last-rc-change="1418243795" exec-time="1068" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote1_last_0" operation_key="pcmk_remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;63:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="1" rc-code="7" op-status="0" interval="0" last-run="1418243793" last-rc-change="1418243793" exec-time="0" queue-time="0" op-digest="ef8bb6d8fee23eeb10cda8633b3634da" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote2" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote2_last_0" operation_key="pcmk_remote2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;64:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="2" rc-code="7" op-status="0" interval="0" last-run="1418243793" last-rc-change="1418243793" exec-time="0" queue-time="0" op-digest="6ba25fc444142a68b950347505d00b3e" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote3" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote3_last_0" operation_key="pcmk_remote3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;65:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="3" rc-code="7" op-status="0" interval="0" last-run="1418243793" last-rc-change="1418243793" exec-time="0" queue-time="0" op-digest="1d3716b912f4312b45dbe3ca420f177a" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote4_last_0" operation_key="pcmk_remote4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;66:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="4" rc-code="7" op-status="0" interval="0" last-run="1418243793" last-rc-change="1418243793" exec-time="0" queue-time="0" op-digest="26ba620744979fe6eb89940dac6aa339" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote5" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote5_last_0" operation_key="pcmk_remote5_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="2:47:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;2:47:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="7" rc-code="0" op-status="0" interval="0" last-run="1418243824" last-rc-change="1418243824" exec-time="0" queue-time="0" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a" on_node="pcmk2"/> ++ <lrm_rsc_op id="pcmk_remote5_last_failure_0" operation_key="pcmk_remote5_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="121:45:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="2:1;121:45:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="6" rc-code="1" op-status="2" interval="0" last-run="1418243814" last-rc-change="1418243814" exec-time="0" queue-time="0" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;68:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418243793" last-rc-change="1418243793" exec-time="36" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="69:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;69:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="70:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;70:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;71:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;72:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;73:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;74:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;75:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;76:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;77:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;78:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;79:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="58" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="18" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;80:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="62" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;81:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="66" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;82:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="70" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;83:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="84:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;84:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="78" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="117:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;117:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="213" rc-code="0" op-status="0" interval="0" last-run="1418243797" last-rc-change="1418243797" exec-time="75" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE18_monitor_10000" operation_key="FAKE18_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="118:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;118:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="214" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243797" exec-time="50" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="86:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;86:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="86" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;87:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="90" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;88:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="89:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;89:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="98" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;90:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;91:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="106" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;92:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="110" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="93:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;93:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;94:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="95:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;95:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="122" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="96:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;96:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="97:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;97:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="130" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="17" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="98:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;98:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="99:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;99:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="138" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="100:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;100:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="142" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="101:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;101:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="146" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="102:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;102:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="150" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="103:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;103:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="154" rc-code="7" op-status="0" interval="0" last-run="1418243794" last-rc-change="1418243794" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="104:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;104:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="158" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="105:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;105:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="162" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="106:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;106:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="166" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="107:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;107:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="108:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;108:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="174" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="109:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;109:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="110:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;110:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="111:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;111:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="186" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="112:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;112:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="113:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;113:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="194" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="114:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;114:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="198" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="115:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;115:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="202" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="116:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;116:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="206" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="117:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;117:40:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="210" rc-code="7" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-2-fail-count-pcmk_remote5" name="fail-count-pcmk_remote5" value="INFINITY"/> ++ <nvpair id="status-2-last-failure-pcmk_remote5" name="last-failure-pcmk_remote5" value="1418243823"/> ++ <nvpair id="status-2-fail-count-FAKE9" name="fail-count-FAKE9" value="INFINITY"/> ++ <nvpair id="status-2-last-failure-FAKE9" name="last-failure-FAKE9" value="1418244719"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="3" uname="pcmk3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_docker_cts" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="124:40:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;124:40:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="224" rc-code="0" op-status="0" interval="0" last-run="1418243795" last-rc-change="1418243795" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:20:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;68:20:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="212" rc-code="0" op-status="0" interval="60000" last-rc-change="1418243741" exec-time="1166" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote1_last_0" operation_key="pcmk_remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;64:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="1" rc-code="7" op-status="0" interval="0" last-run="1418243738" last-rc-change="1418243738" exec-time="0" queue-time="0" op-digest="ef8bb6d8fee23eeb10cda8633b3634da" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote2" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote2_last_0" operation_key="pcmk_remote2_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:21:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;65:21:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1418243749" last-rc-change="1418243749" exec-time="0" queue-time="0" op-digest="6ba25fc444142a68b950347505d00b3e" on_node="pcmk3"/> ++ <lrm_rsc_op id="pcmk_remote2_monitor_60000" operation_key="pcmk_remote2_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="100:22:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;100:22:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1418243750" exec-time="0" queue-time="0" op-digest="39ddc1db1343360514ad499c03600074" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote3" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote3_last_0" operation_key="pcmk_remote3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;66:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="3" rc-code="7" op-status="0" interval="0" last-run="1418243738" last-rc-change="1418243738" exec-time="0" queue-time="0" op-digest="1d3716b912f4312b45dbe3ca420f177a" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote4_last_0" operation_key="pcmk_remote4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="103:22:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;103:22:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="8" rc-code="0" op-status="0" interval="0" last-run="1418243750" last-rc-change="1418243750" exec-time="0" queue-time="0" op-digest="26ba620744979fe6eb89940dac6aa339" on_node="pcmk3"/> ++ <lrm_rsc_op id="pcmk_remote4_monitor_60000" operation_key="pcmk_remote4_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="155:23:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;155:23:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="9" rc-code="0" op-status="0" interval="60000" last-rc-change="1418243752" exec-time="0" queue-time="0" op-digest="bd07c2deb2e92be7c37c1532a12b386b" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote5" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote5_last_0" operation_key="pcmk_remote5_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="5:49:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;5:49:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="11" rc-code="0" op-status="0" interval="0" last-run="1418243834" last-rc-change="1418243834" exec-time="0" queue-time="0" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a" on_node="pcmk3"/> ++ <lrm_rsc_op id="pcmk_remote5_last_failure_0" operation_key="pcmk_remote5_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="120:47:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="2:1;120:47:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="10" rc-code="1" op-status="2" interval="0" last-run="1418243824" last-rc-change="1418243824" exec-time="0" queue-time="0" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="69:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;69:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="61" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="70:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;70:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="59" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;71:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="46" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;72:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;73:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;74:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;75:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;76:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;77:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;78:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;79:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;80:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="58" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;81:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="62" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;82:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="66" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;83:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="70" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="84:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;84:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="158:30:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;158:30:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="213" rc-code="0" op-status="0" interval="0" last-run="1418243761" last-rc-change="1418243761" exec-time="75" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE17_monitor_10000" operation_key="FAKE17_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="159:30:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;159:30:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="214" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243761" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="86:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;86:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="82" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;87:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="86" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;88:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="90" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="89:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;89:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;90:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="98" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;91:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="161:32:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;161:32:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="215" rc-code="0" op-status="0" interval="0" last-run="1418243764" last-rc-change="1418243764" exec-time="49" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE24_monitor_10000" operation_key="FAKE24_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:32:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;162:32:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="216" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243764" exec-time="59" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="93:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;93:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="110" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;94:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="95:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;95:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="96:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;96:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="122" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="18" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="97:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;97:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="98:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;98:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="130" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:34:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;164:34:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="217" rc-code="0" op-status="0" interval="0" last-run="1418243767" last-rc-change="1418243767" exec-time="53" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE31_monitor_10000" operation_key="FAKE31_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="165:34:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;165:34:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="218" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243767" exec-time="37" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="100:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;100:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="138" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="101:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;101:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="142" rc-code="7" op-status="0" interval="0" last-run="1418243739" last-rc-change="1418243739" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="102:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;102:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="146" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="103:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;103:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="150" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="104:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;104:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="154" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="105:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;105:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="158" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="167:36:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;167:36:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="219" rc-code="0" op-status="0" interval="0" last-run="1418243771" last-rc-change="1418243771" exec-time="42" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE38_monitor_10000" operation_key="FAKE38_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="168:36:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;168:36:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="220" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243771" exec-time="17" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="107:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;107:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="166" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="108:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;108:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="109:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;109:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="174" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="110:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;110:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="111:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;111:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="112:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;112:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="186" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="170:38:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;170:38:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="221" rc-code="0" op-status="0" interval="0" last-run="1418243774" last-rc-change="1418243774" exec-time="47" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE45_monitor_10000" operation_key="FAKE45_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="171:38:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;171:38:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="222" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243774" exec-time="36" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="114:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;114:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="194" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="115:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;115:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="198" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="116:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;116:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="202" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="117:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;117:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="206" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="118:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;118:19:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="210" rc-code="7" op-status="0" interval="0" last-run="1418243740" last-rc-change="1418243740" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-fail-count-pcmk_remote5" name="fail-count-pcmk_remote5" value="INFINITY"/> ++ <nvpair id="status-3-last-failure-pcmk_remote5" name="last-failure-pcmk_remote5" value="1418243833"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="1" uname="pcmk1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-1-last-failure-pcmk_remote3" name="last-failure-pcmk_remote3" value="1418243568"/> ++ <nvpair id="status-1-fail-count-pcmk_remote5" name="fail-count-pcmk_remote5" value="INFINITY"/> ++ <nvpair id="status-1-last-failure-pcmk_remote5" name="last-failure-pcmk_remote5" value="1418243813"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="85:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;85:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="86" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="102:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;102:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="154" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="143:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;143:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="219" rc-code="0" op-status="0" interval="0" last-run="1418243592" last-rc-change="1418243592" exec-time="18" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE37_monitor_10000" operation_key="FAKE37_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="144:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;144:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="220" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243592" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="100:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;100:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="146" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="101:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;101:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="150" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="97:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;97:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="104:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;104:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="162" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="105:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;105:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="166" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="67:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;67:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418243548" last-rc-change="1418243548" exec-time="36" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="68:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;68:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418243548" last-rc-change="1418243548" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="69:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;69:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418243548" last-rc-change="1418243548" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="70:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;70:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418243548" last-rc-change="1418243548" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="71:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;71:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418243548" last-rc-change="1418243548" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="72:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;72:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="73:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;73:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="74:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;74:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="75:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;75:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="116:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;116:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="210" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote1_last_0" operation_key="pcmk_remote1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="44:41:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;44:41:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="13" rc-code="0" op-status="0" interval="0" last-run="1418243637" last-rc-change="1418243637" exec-time="0" queue-time="0" op-digest="ef8bb6d8fee23eeb10cda8633b3634da" on_node="pcmk1"/> ++ <lrm_rsc_op id="pcmk_remote1_monitor_60000" operation_key="pcmk_remote1_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="97:42:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;97:42:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="14" rc-code="0" op-status="0" interval="60000" last-rc-change="1418243639" exec-time="0" queue-time="0" op-digest="38e994d2ee0156aa833adf6eafbdbbbd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote2" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote2_last_0" operation_key="pcmk_remote2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;63:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="2" rc-code="7" op-status="0" interval="0" last-run="1418243548" last-rc-change="1418243548" exec-time="0" queue-time="0" op-digest="6ba25fc444142a68b950347505d00b3e" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote3" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote3_last_0" operation_key="pcmk_remote3_migrate_to_0" operation="migrate_to" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:42:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;67:42:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="20" rc-code="0" op-status="0" interval="0" last-run="1418243802" last-rc-change="1418243802" exec-time="0" queue-time="0" op-digest="1d3716b912f4312b45dbe3ca420f177a" on_node="pcmk1" migrate_source="pcmk1" migrate_target="pcmk2"/> ++ <lrm_rsc_op id="pcmk_remote3_monitor_60000" operation_key="pcmk_remote3_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="127:39:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;127:39:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1418243608" exec-time="0" queue-time="0" op-digest="6d8c9ca142238d41ca7db26324753a2f" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="86:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;86:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="90" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="87:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;87:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="88:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;88:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="98" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="115:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;115:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="215" rc-code="0" op-status="0" interval="0" last-run="1418243592" last-rc-change="1418243592" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE23_monitor_10000" operation_key="FAKE23_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="116:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;116:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="216" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243592" exec-time="47" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="90:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;90:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="106" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="91:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;91:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="110" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote4_last_0" operation_key="pcmk_remote4_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="102:42:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;102:42:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="16" rc-code="0" op-status="0" interval="0" last-run="1418243639" last-rc-change="1418243639" exec-time="0" queue-time="0" op-digest="26ba620744979fe6eb89940dac6aa339" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote5" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote5_last_0" operation_key="pcmk_remote5_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="14:45:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;14:45:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="22" rc-code="0" op-status="0" interval="0" last-run="1418243814" last-rc-change="1418243814" exec-time="0" queue-time="0" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a" on_node="pcmk1"/> ++ <lrm_rsc_op id="pcmk_remote5_monitor_60000" operation_key="pcmk_remote5_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="156:44:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;156:44:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="18" rc-code="0" op-status="0" interval="60000" last-rc-change="1418243641" exec-time="0" queue-time="0" op-digest="097ac821a75a8a47ff3e1489f58e3bd3" on_node="pcmk1"/> ++ <lrm_rsc_op id="pcmk_remote5_last_failure_0" operation_key="pcmk_remote5_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="119:43:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="2:1;119:43:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="21" rc-code="1" op-status="2" interval="0" last-rc-change="1418243803" exec-time="0" queue-time="0" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a" on_node="pcmk1" last-run="1418243803"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="93:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;93:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="92:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;92:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="95:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;95:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="94:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;94:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="122" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="107:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;107:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="174" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="108:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;108:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="109:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;109:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="157:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;157:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="221" rc-code="0" op-status="0" interval="0" last-run="1418243592" last-rc-change="1418243592" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE44_monitor_10000" operation_key="FAKE44_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="158:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;158:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="222" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243592" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="shooter" type="fence_docker_cts" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="100:40:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;100:40:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="224" rc-code="0" op-status="0" interval="0" last-run="1418243634" last-rc-change="1418243634" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="112:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;112:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="194" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="113:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;113:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="198" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="114:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;114:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="202" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="115:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;115:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="206" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="111:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;111:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="106:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;106:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1418243550" last-rc-change="1418243550" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="76:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;76:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="77:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;77:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="78:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;78:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="58" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="99:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;99:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="228" rc-code="0" op-status="0" interval="0" last-run="1418243665" last-rc-change="1418243665" exec-time="45" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="80:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;80:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="66" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="81:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;81:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="70" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="155:9:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;155:9:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="231" rc-code="0" op-status="0" interval="0" last-run="1418243708" last-rc-change="1418243708" exec-time="64" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE16_monitor_10000" operation_key="FAKE16_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="156:9:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;156:9:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="232" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243708" exec-time="85" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="107:0:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;107:0:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="230" rc-code="0" op-status="0" interval="0" last-run="1418243692" last-rc-change="1418243692" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="84:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;84:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="82" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="98:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;98:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="138" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="99:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;99:28:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="142" rc-code="7" op-status="0" interval="0" last-run="1418243549" last-rc-change="1418243549" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="129:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;129:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="217" rc-code="0" op-status="0" interval="0" last-run="1418243592" last-rc-change="1418243592" exec-time="41" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE30_monitor_10000" operation_key="FAKE30_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="130:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;130:36:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="218" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243592" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote1" uname="pcmk_remote1" crm-debug-origin="do_update_resource"> ++ <lrm id="pcmk_remote1"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="39:44:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;39:44:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="362" rc-code="7" op-status="0" interval="0" last-run="1418243641" last-rc-change="1418243641" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_failure_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="40:44:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;40:44:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="364" rc-code="0" op-status="0" interval="0" last-run="1418243641" last-rc-change="1418243641" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="40:44:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;40:44:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="364" rc-code="0" op-status="0" interval="0" last-run="1418243641" last-rc-change="1418243641" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE2_monitor_10000" operation_key="FAKE2_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="157:45:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;157:45:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="365" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243642" exec-time="55" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="41:45:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;41:45:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="367" rc-code="7" op-status="0" interval="0" last-run="1418243642" last-rc-change="1418243642" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="42:46:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;42:46:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="369" rc-code="7" op-status="0" interval="0" last-run="1418243643" last-rc-change="1418243643" exec-time="21" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="43:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;43:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="371" rc-code="7" op-status="0" interval="0" last-run="1418243643" last-rc-change="1418243643" exec-time="19" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="44:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;44:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="373" rc-code="7" op-status="0" interval="0" last-run="1418243644" last-rc-change="1418243644" exec-time="131" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_failure_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="45:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;45:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="375" rc-code="0" op-status="0" interval="0" last-run="1418243644" last-rc-change="1418243644" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="45:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;45:47:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="375" rc-code="0" op-status="0" interval="0" last-run="1418243644" last-rc-change="1418243644" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE7_monitor_10000" operation_key="FAKE7_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="160:48:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;160:48:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="376" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243645" exec-time="43" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="43:48:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;43:48:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="378" rc-code="7" op-status="0" interval="0" last-run="1418243645" last-rc-change="1418243645" exec-time="18" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="44:48:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;44:48:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="380" rc-code="7" op-status="0" interval="0" last-run="1418243645" last-rc-change="1418243645" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="44:49:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;44:49:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="382" rc-code="7" op-status="0" interval="0" last-run="1418243646" last-rc-change="1418243646" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_failure_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="45:49:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;45:49:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="384" rc-code="0" op-status="0" interval="0" last-run="1418243646" last-rc-change="1418243646" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="45:49:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;45:49:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="384" rc-code="0" op-status="0" interval="0" last-run="1418243646" last-rc-change="1418243646" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE11_monitor_10000" operation_key="FAKE11_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="163:50:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;163:50:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="385" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243647" exec-time="121" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="45:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;45:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="387" rc-code="7" op-status="0" interval="0" last-run="1418243647" last-rc-change="1418243647" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="46:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;46:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="389" rc-code="7" op-status="0" interval="0" last-run="1418243647" last-rc-change="1418243647" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="47:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;47:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="391" rc-code="7" op-status="0" interval="0" last-run="1418243647" last-rc-change="1418243647" exec-time="45" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="48:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;48:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="393" rc-code="7" op-status="0" interval="0" last-run="1418243648" last-rc-change="1418243648" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;49:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="395" rc-code="7" op-status="0" interval="0" last-run="1418243648" last-rc-change="1418243648" exec-time="28" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;50:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="397" rc-code="7" op-status="0" interval="0" last-run="1418243648" last-rc-change="1418243648" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="116:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;116:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="482" rc-code="0" op-status="0" interval="0" last-run="1418243796" last-rc-change="1418243796" exec-time="120" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE18_monitor_10000" operation_key="FAKE18_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="112:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;112:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="465" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243666" exec-time="15" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_failure_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;52:50:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="401" rc-code="0" op-status="0" interval="0" last-run="1418243649" last-rc-change="1418243649" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="113:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;113:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="466" rc-code="0" op-status="0" interval="0" last-run="1418243666" last-rc-change="1418243666" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="46:51:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;46:51:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="403" rc-code="7" op-status="0" interval="0" last-run="1418243650" last-rc-change="1418243650" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="47:51:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;47:51:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="405" rc-code="7" op-status="0" interval="0" last-run="1418243650" last-rc-change="1418243650" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="48:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;48:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="407" rc-code="7" op-status="0" interval="0" last-run="1418243651" last-rc-change="1418243651" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;49:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="409" rc-code="7" op-status="0" interval="0" last-run="1418243651" last-rc-change="1418243651" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;50:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="411" rc-code="7" op-status="0" interval="0" last-run="1418243651" last-rc-change="1418243651" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="128:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;128:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="467" rc-code="0" op-status="0" interval="0" last-run="1418243667" last-rc-change="1418243667" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE25_monitor_10000" operation_key="FAKE25_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="129:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;129:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="468" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243667" exec-time="71" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_failure_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;52:52:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="415" rc-code="0" op-status="0" interval="0" last-run="1418243652" last-rc-change="1418243652" exec-time="52" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="130:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;130:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="469" rc-code="0" op-status="0" interval="0" last-run="1418243667" last-rc-change="1418243667" exec-time="54" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:53:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;49:53:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="417" rc-code="7" op-status="0" interval="0" last-run="1418243653" last-rc-change="1418243653" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:53:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;50:53:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="419" rc-code="7" op-status="0" interval="0" last-run="1418243653" last-rc-change="1418243653" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;50:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="421" rc-code="7" op-status="0" interval="0" last-run="1418243654" last-rc-change="1418243654" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;51:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="423" rc-code="7" op-status="0" interval="0" last-run="1418243655" last-rc-change="1418243655" exec-time="128" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;52:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="425" rc-code="7" op-status="0" interval="0" last-run="1418243655" last-rc-change="1418243655" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="145:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;145:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="470" rc-code="0" op-status="0" interval="0" last-run="1418243668" last-rc-change="1418243668" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE32_monitor_10000" operation_key="FAKE32_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="146:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;146:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="471" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243668" exec-time="72" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_failure_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;54:54:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="429" rc-code="0" op-status="0" interval="0" last-run="1418243656" last-rc-change="1418243656" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="147:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;147:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="472" rc-code="0" op-status="0" interval="0" last-run="1418243668" last-rc-change="1418243668" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:55:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;51:55:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="431" rc-code="7" op-status="0" interval="0" last-run="1418243657" last-rc-change="1418243657" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:55:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;52:55:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="433" rc-code="7" op-status="0" interval="0" last-run="1418243657" last-rc-change="1418243657" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;52:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="435" rc-code="7" op-status="0" interval="0" last-run="1418243658" last-rc-change="1418243658" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;53:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="437" rc-code="7" op-status="0" interval="0" last-run="1418243658" last-rc-change="1418243658" exec-time="32" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;54:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="439" rc-code="7" op-status="0" interval="0" last-run="1418243658" last-rc-change="1418243658" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;162:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="473" rc-code="0" op-status="0" interval="0" last-run="1418243668" last-rc-change="1418243668" exec-time="38" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE39_monitor_10000" operation_key="FAKE39_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="163:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;163:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="474" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243669" exec-time="24" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_failure_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;56:56:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="443" rc-code="0" op-status="0" interval="0" last-run="1418243659" last-rc-change="1418243659" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;164:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="475" rc-code="0" op-status="0" interval="0" last-run="1418243669" last-rc-change="1418243669" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:57:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;53:57:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="445" rc-code="7" op-status="0" interval="0" last-run="1418243660" last-rc-change="1418243660" exec-time="20" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:57:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;54:57:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="447" rc-code="7" op-status="0" interval="0" last-run="1418243660" last-rc-change="1418243660" exec-time="47" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;54:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="449" rc-code="7" op-status="0" interval="0" last-run="1418243661" last-rc-change="1418243661" exec-time="18" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;55:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="451" rc-code="7" op-status="0" interval="0" last-run="1418243661" last-rc-change="1418243661" exec-time="37" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;56:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="453" rc-code="7" op-status="0" interval="0" last-run="1418243662" last-rc-change="1418243662" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="179:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;179:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="476" rc-code="0" op-status="0" interval="0" last-run="1418243669" last-rc-change="1418243669" exec-time="30" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE46_monitor_10000" operation_key="FAKE46_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="180:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;180:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="477" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243669" exec-time="35" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_failure_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;58:58:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="457" rc-code="0" op-status="0" interval="0" last-run="1418243662" last-rc-change="1418243662" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="181:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;181:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="478" rc-code="0" op-status="0" interval="0" last-run="1418243670" last-rc-change="1418243670" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:59:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;55:59:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="459" rc-code="7" op-status="0" interval="0" last-run="1418243663" last-rc-change="1418243663" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:59:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;56:59:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="461" rc-code="7" op-status="0" interval="0" last-run="1418243664" last-rc-change="1418243664" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:61:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;56:61:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="463" rc-code="7" op-status="0" interval="0" last-run="1418243665" last-rc-change="1418243665" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote2" uname="pcmk_remote2" crm-debug-origin="do_update_resource"> ++ <lrm id="pcmk_remote2"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_failure_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="42:23:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;42:23:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="546" rc-code="0" op-status="0" interval="0" last-run="1418243752" last-rc-change="1418243752" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="42:23:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;42:23:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="546" rc-code="0" op-status="0" interval="0" last-run="1418243752" last-rc-change="1418243752" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE1_monitor_10000" operation_key="FAKE1_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="158:24:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;158:24:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="547" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243753" exec-time="174" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="43:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;43:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="549" rc-code="7" op-status="0" interval="0" last-run="1418243753" last-rc-change="1418243753" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="44:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;44:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="551" rc-code="7" op-status="0" interval="0" last-run="1418243754" last-rc-change="1418243754" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="45:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;45:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="553" rc-code="7" op-status="0" interval="0" last-run="1418243754" last-rc-change="1418243754" exec-time="33" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="46:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;46:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="555" rc-code="7" op-status="0" interval="0" last-run="1418243754" last-rc-change="1418243754" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_failure_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="47:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;47:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="557" rc-code="0" op-status="0" interval="0" last-run="1418243755" last-rc-change="1418243755" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="47:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;47:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="557" rc-code="0" op-status="0" interval="0" last-run="1418243755" last-rc-change="1418243755" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE6_monitor_10000" operation_key="FAKE6_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="160:26:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;160:26:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="558" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243755" exec-time="102" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="45:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;45:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="560" rc-code="7" op-status="0" interval="0" last-run="1418243755" last-rc-change="1418243755" exec-time="30" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="46:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;46:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="562" rc-code="7" op-status="0" interval="0" last-run="1418243756" last-rc-change="1418243756" exec-time="23" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="47:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;47:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="564" rc-code="7" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="48:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;48:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="566" rc-code="7" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;49:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="568" rc-code="7" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_failure_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;50:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="570" rc-code="0" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;50:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="570" rc-code="0" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE12_monitor_10000" operation_key="FAKE12_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:28:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;162:28:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="571" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243758" exec-time="100" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="47:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;47:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="573" rc-code="7" op-status="0" interval="0" last-run="1418243758" last-rc-change="1418243758" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="48:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;48:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="575" rc-code="7" op-status="0" interval="0" last-run="1418243759" last-rc-change="1418243759" exec-time="18" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;49:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="577" rc-code="7" op-status="0" interval="0" last-run="1418243759" last-rc-change="1418243759" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;50:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="579" rc-code="7" op-status="0" interval="0" last-run="1418243759" last-rc-change="1418243759" exec-time="47" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;51:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="581" rc-code="7" op-status="0" interval="0" last-run="1418243760" last-rc-change="1418243760" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;52:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="583" rc-code="7" op-status="0" interval="0" last-run="1418243760" last-rc-change="1418243760" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_failure_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;53:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="585" rc-code="0" op-status="0" interval="0" last-run="1418243760" last-rc-change="1418243760" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;53:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="585" rc-code="0" op-status="0" interval="0" last-run="1418243760" last-rc-change="1418243760" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE19_monitor_10000" operation_key="FAKE19_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:30:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;164:30:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="586" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243761" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;49:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="588" rc-code="7" op-status="0" interval="0" last-run="1418243761" last-rc-change="1418243761" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;51:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="590" rc-code="7" op-status="0" interval="0" last-run="1418243762" last-rc-change="1418243762" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;52:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="592" rc-code="7" op-status="0" interval="0" last-run="1418243762" last-rc-change="1418243762" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;53:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="594" rc-code="7" op-status="0" interval="0" last-run="1418243763" last-rc-change="1418243763" exec-time="47" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;54:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="596" rc-code="7" op-status="0" interval="0" last-run="1418243763" last-rc-change="1418243763" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;55:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="598" rc-code="7" op-status="0" interval="0" last-run="1418243763" last-rc-change="1418243763" exec-time="38" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_failure_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;56:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="600" rc-code="0" op-status="0" interval="0" last-run="1418243763" last-rc-change="1418243763" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="133:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;133:41:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="654" rc-code="0" op-status="0" interval="0" last-run="1418243797" last-rc-change="1418243797" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE26_monitor_10000" operation_key="FAKE26_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="167:32:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;167:32:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="601" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243764" exec-time="48" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;52:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="603" rc-code="7" op-status="0" interval="0" last-run="1418243764" last-rc-change="1418243764" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;54:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="605" rc-code="7" op-status="0" interval="0" last-run="1418243765" last-rc-change="1418243765" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;55:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="607" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;56:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="609" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;57:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="611" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="60" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;58:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="613" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_failure_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;59:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="615" rc-code="0" op-status="0" interval="0" last-run="1418243767" last-rc-change="1418243767" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;59:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="615" rc-code="0" op-status="0" interval="0" last-run="1418243767" last-rc-change="1418243767" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE33_monitor_10000" operation_key="FAKE33_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="170:34:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;170:34:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="616" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243768" exec-time="10" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;55:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="618" rc-code="7" op-status="0" interval="0" last-run="1418243768" last-rc-change="1418243768" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;57:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="620" rc-code="7" op-status="0" interval="0" last-run="1418243769" last-rc-change="1418243769" exec-time="20" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;58:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="622" rc-code="7" op-status="0" interval="0" last-run="1418243769" last-rc-change="1418243769" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;59:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="624" rc-code="7" op-status="0" interval="0" last-run="1418243769" last-rc-change="1418243769" exec-time="86" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;60:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="626" rc-code="7" op-status="0" interval="0" last-run="1418243770" last-rc-change="1418243770" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;61:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="628" rc-code="7" op-status="0" interval="0" last-run="1418243770" last-rc-change="1418243770" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_failure_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;62:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="630" rc-code="0" op-status="0" interval="0" last-run="1418243770" last-rc-change="1418243770" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;62:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="630" rc-code="0" op-status="0" interval="0" last-run="1418243770" last-rc-change="1418243770" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE40_monitor_10000" operation_key="FAKE40_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="173:36:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;173:36:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="631" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243771" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;58:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="633" rc-code="7" op-status="0" interval="0" last-run="1418243771" last-rc-change="1418243771" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;60:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="635" rc-code="7" op-status="0" interval="0" last-run="1418243772" last-rc-change="1418243772" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;61:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="637" rc-code="7" op-status="0" interval="0" last-run="1418243773" last-rc-change="1418243773" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;62:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="639" rc-code="7" op-status="0" interval="0" last-run="1418243773" last-rc-change="1418243773" exec-time="52" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;63:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="641" rc-code="7" op-status="0" interval="0" last-run="1418243773" last-rc-change="1418243773" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;64:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="643" rc-code="7" op-status="0" interval="0" last-run="1418243773" last-rc-change="1418243773" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_failure_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;65:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="645" rc-code="0" op-status="0" interval="0" last-run="1418243774" last-rc-change="1418243774" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;65:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="645" rc-code="0" op-status="0" interval="0" last-run="1418243774" last-rc-change="1418243774" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE47_monitor_10000" operation_key="FAKE47_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="176:38:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;176:38:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="646" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243774" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;61:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="648" rc-code="7" op-status="0" interval="0" last-run="1418243775" last-rc-change="1418243775" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:39:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;63:39:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="650" rc-code="7" op-status="0" interval="0" last-run="1418243776" last-rc-change="1418243776" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:39:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;64:39:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="652" rc-code="7" op-status="0" interval="0" last-run="1418243776" last-rc-change="1418243776" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote3" uname="pcmk_remote3" crm-debug-origin="do_update_resource"> ++ <lrm id="pcmk_remote3"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;67:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="6" rc-code="7" op-status="0" interval="0" last-run="1418243608" last-rc-change="1418243608" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;68:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="10" rc-code="7" op-status="0" interval="0" last-run="1418243609" last-rc-change="1418243609" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="69:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;69:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418243609" last-rc-change="1418243609" exec-time="67" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="70:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;70:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418243609" last-rc-change="1418243609" exec-time="33" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;82:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="203" rc-code="0" op-status="0" interval="0" last-run="1418243665" last-rc-change="1418243665" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE5_monitor_10000" operation_key="FAKE5_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;83:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="204" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243665" exec-time="55" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;72:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418243610" last-rc-change="1418243610" exec-time="66" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;73:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418243610" last-rc-change="1418243610" exec-time="57" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;74:39:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418243611" last-rc-change="1418243611" exec-time="114" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;91:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="205" rc-code="0" op-status="0" interval="0" last-run="1418243665" last-rc-change="1418243665" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE9_monitor_10000" operation_key="FAKE9_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;92:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="206" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243665" exec-time="52" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;57:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418243616" last-rc-change="1418243616" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;58:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1418243616" last-rc-change="1418243616" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;59:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418243616" last-rc-change="1418243616" exec-time="106" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="99:42:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;99:42:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="223" rc-code="0" op-status="0" interval="0" last-run="1418243797" last-rc-change="1418243797" exec-time="10" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE13_monitor_10000" operation_key="FAKE13_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="101:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;101:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="208" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243666" exec-time="130" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;61:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="58" rc-code="7" op-status="0" interval="0" last-run="1418243617" last-rc-change="1418243617" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;62:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="62" rc-code="7" op-status="0" interval="0" last-run="1418243617" last-rc-change="1418243617" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;63:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="66" rc-code="7" op-status="0" interval="0" last-run="1418243618" last-rc-change="1418243618" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;64:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="70" rc-code="7" op-status="0" interval="0" last-run="1418243618" last-rc-change="1418243618" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;65:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1418243618" last-rc-change="1418243618" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;66:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="78" rc-code="7" op-status="0" interval="0" last-run="1418243619" last-rc-change="1418243619" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="117:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;117:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="209" rc-code="0" op-status="0" interval="0" last-run="1418243666" last-rc-change="1418243666" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE20_monitor_10000" operation_key="FAKE20_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="118:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;118:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="210" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243667" exec-time="24" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;68:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="86" rc-code="7" op-status="0" interval="0" last-run="1418243619" last-rc-change="1418243619" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="69:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;69:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="90" rc-code="7" op-status="0" interval="0" last-run="1418243620" last-rc-change="1418243620" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="70:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;70:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1418243620" last-rc-change="1418243620" exec-time="36" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;71:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="98" rc-code="7" op-status="0" interval="0" last-run="1418243620" last-rc-change="1418243620" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;72:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1418243621" last-rc-change="1418243621" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;73:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="106" rc-code="7" op-status="0" interval="0" last-run="1418243621" last-rc-change="1418243621" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="134:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;134:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="211" rc-code="0" op-status="0" interval="0" last-run="1418243667" last-rc-change="1418243667" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE27_monitor_10000" operation_key="FAKE27_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="135:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;135:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="212" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243667" exec-time="27" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;75:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418243622" last-rc-change="1418243622" exec-time="94" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;76:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418243622" last-rc-change="1418243622" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;77:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="122" rc-code="7" op-status="0" interval="0" last-run="1418243623" last-rc-change="1418243623" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;78:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418243623" last-rc-change="1418243623" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;79:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="130" rc-code="7" op-status="0" interval="0" last-run="1418243623" last-rc-change="1418243623" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;80:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418243624" last-rc-change="1418243624" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="151:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;151:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="214" rc-code="0" op-status="0" interval="0" last-run="1418243668" last-rc-change="1418243668" exec-time="49" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE34_monitor_10000" operation_key="FAKE34_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="152:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;152:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="215" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243668" exec-time="27" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;82:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="142" rc-code="7" op-status="0" interval="0" last-run="1418243624" last-rc-change="1418243624" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;83:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="146" rc-code="7" op-status="0" interval="0" last-run="1418243625" last-rc-change="1418243625" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="84:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;84:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="150" rc-code="7" op-status="0" interval="0" last-run="1418243625" last-rc-change="1418243625" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="85:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;85:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="154" rc-code="7" op-status="0" interval="0" last-run="1418243625" last-rc-change="1418243625" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="86:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;86:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="158" rc-code="7" op-status="0" interval="0" last-run="1418243626" last-rc-change="1418243626" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;87:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="162" rc-code="7" op-status="0" interval="0" last-run="1418243626" last-rc-change="1418243626" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="168:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;168:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="216" rc-code="0" op-status="0" interval="0" last-run="1418243669" last-rc-change="1418243669" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE41_monitor_10000" operation_key="FAKE41_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="169:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;169:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="217" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243669" exec-time="34" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="89:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;89:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1418243627" last-rc-change="1418243627" exec-time="53" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;90:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="174" rc-code="7" op-status="0" interval="0" last-run="1418243627" last-rc-change="1418243627" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;91:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418243627" last-rc-change="1418243627" exec-time="106" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;92:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418243628" last-rc-change="1418243628" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="93:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;93:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="186" rc-code="7" op-status="0" interval="0" last-run="1418243628" last-rc-change="1418243628" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;94:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1418243628" last-rc-change="1418243628" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="185:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;185:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="218" rc-code="0" op-status="0" interval="0" last-run="1418243670" last-rc-change="1418243670" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE48_monitor_10000" operation_key="FAKE48_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="186:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:0;186:61:0:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="219" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243670" exec-time="34" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="96:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;96:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="198" rc-code="7" op-status="0" interval="0" last-run="1418243629" last-rc-change="1418243629" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="97:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" transition-magic="0:7;97:40:7:0c7a516d-5245-48f4-9bef-c40fca3df9d8" call-id="202" rc-code="7" op-status="0" interval="0" last-run="1418243629" last-rc-change="1418243629" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="pcmk_remote3"> ++ <instance_attributes id="status-pcmk_remote3"> ++ <nvpair id="status-pcmk_remote3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote4" uname="pcmk_remote4" crm-debug-origin="do_state_transition"> ++ <lrm id="pcmk_remote4"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:23:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;94:23:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="584" rc-code="7" op-status="0" interval="0" last-run="1418243752" last-rc-change="1418243752" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;94:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="586" rc-code="7" op-status="0" interval="0" last-run="1418243753" last-rc-change="1418243753" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_failure_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="95:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;95:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="588" rc-code="0" op-status="0" interval="0" last-run="1418243753" last-rc-change="1418243753" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="95:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;95:24:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="588" rc-code="0" op-status="0" interval="0" last-run="1418243753" last-rc-change="1418243753" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE3_monitor_10000" operation_key="FAKE3_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="160:25:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;160:25:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="589" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243754" exec-time="104" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;94:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="591" rc-code="7" op-status="0" interval="0" last-run="1418243754" last-rc-change="1418243754" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="95:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;95:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="593" rc-code="7" op-status="0" interval="0" last-run="1418243754" last-rc-change="1418243754" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="96:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;96:25:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="595" rc-code="7" op-status="0" interval="0" last-run="1418243754" last-rc-change="1418243754" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;91:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="597" rc-code="7" op-status="0" interval="0" last-run="1418243755" last-rc-change="1418243755" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_failure_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;92:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="599" rc-code="0" op-status="0" interval="0" last-run="1418243756" last-rc-change="1418243756" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;92:26:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="599" rc-code="0" op-status="0" interval="0" last-run="1418243756" last-rc-change="1418243756" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE8_monitor_10000" operation_key="FAKE8_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:27:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;162:27:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="600" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243756" exec-time="103" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;91:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="602" rc-code="7" op-status="0" interval="0" last-run="1418243756" last-rc-change="1418243756" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;92:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="604" rc-code="7" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="57" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="93:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;93:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="606" rc-code="7" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;94:27:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="608" rc-code="7" op-status="0" interval="0" last-run="1418243757" last-rc-change="1418243757" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;87:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="610" rc-code="7" op-status="0" interval="0" last-run="1418243758" last-rc-change="1418243758" exec-time="96" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_failure_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;88:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="612" rc-code="0" op-status="0" interval="0" last-run="1418243759" last-rc-change="1418243759" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;88:28:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="612" rc-code="0" op-status="0" interval="0" last-run="1418243759" last-rc-change="1418243759" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE14_monitor_10000" operation_key="FAKE14_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:29:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;164:29:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="613" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243759" exec-time="24" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;87:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="615" rc-code="7" op-status="0" interval="0" last-run="1418243759" last-rc-change="1418243759" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;88:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="617" rc-code="7" op-status="0" interval="0" last-run="1418243759" last-rc-change="1418243759" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="89:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;89:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="619" rc-code="7" op-status="0" interval="0" last-run="1418243760" last-rc-change="1418243760" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;90:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="621" rc-code="7" op-status="0" interval="0" last-run="1418243760" last-rc-change="1418243760" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;91:29:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="623" rc-code="7" op-status="0" interval="0" last-run="1418243760" last-rc-change="1418243760" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;82:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="625" rc-code="7" op-status="0" interval="0" last-run="1418243761" last-rc-change="1418243761" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_failure_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;83:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="627" rc-code="0" op-status="0" interval="0" last-run="1418243761" last-rc-change="1418243761" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;83:30:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="627" rc-code="0" op-status="0" interval="0" last-run="1418243761" last-rc-change="1418243761" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE21_monitor_10000" operation_key="FAKE21_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="167:31:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;167:31:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="628" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243762" exec-time="61" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;83:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="630" rc-code="7" op-status="0" interval="0" last-run="1418243762" last-rc-change="1418243762" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="84:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;84:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="632" rc-code="7" op-status="0" interval="0" last-run="1418243762" last-rc-change="1418243762" exec-time="32" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="85:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;85:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="634" rc-code="7" op-status="0" interval="0" last-run="1418243763" last-rc-change="1418243763" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="86:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;86:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="636" rc-code="7" op-status="0" interval="0" last-run="1418243763" last-rc-change="1418243763" exec-time="70" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;87:31:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="638" rc-code="7" op-status="0" interval="0" last-run="1418243763" last-rc-change="1418243763" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;78:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="640" rc-code="7" op-status="0" interval="0" last-run="1418243764" last-rc-change="1418243764" exec-time="28" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_failure_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;79:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="642" rc-code="0" op-status="0" interval="0" last-run="1418243765" last-rc-change="1418243765" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;79:32:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="642" rc-code="0" op-status="0" interval="0" last-run="1418243765" last-rc-change="1418243765" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE28_monitor_10000" operation_key="FAKE28_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="170:33:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;170:33:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="643" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243765" exec-time="161" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;79:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="645" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;80:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="647" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;81:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="649" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="61" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;82:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="651" rc-code="7" op-status="0" interval="0" last-run="1418243766" last-rc-change="1418243766" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;83:33:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="653" rc-code="7" op-status="0" interval="0" last-run="1418243767" last-rc-change="1418243767" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;74:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="655" rc-code="7" op-status="0" interval="0" last-run="1418243768" last-rc-change="1418243768" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_failure_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;75:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="657" rc-code="0" op-status="0" interval="0" last-run="1418243768" last-rc-change="1418243768" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;75:34:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="657" rc-code="0" op-status="0" interval="0" last-run="1418243768" last-rc-change="1418243768" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE35_monitor_10000" operation_key="FAKE35_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="173:35:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;173:35:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="658" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243768" exec-time="94" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;75:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="660" rc-code="7" op-status="0" interval="0" last-run="1418243769" last-rc-change="1418243769" exec-time="88" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;76:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="662" rc-code="7" op-status="0" interval="0" last-run="1418243769" last-rc-change="1418243769" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;77:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="664" rc-code="7" op-status="0" interval="0" last-run="1418243770" last-rc-change="1418243770" exec-time="123" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;78:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="666" rc-code="7" op-status="0" interval="0" last-run="1418243770" last-rc-change="1418243770" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;79:35:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="668" rc-code="7" op-status="0" interval="0" last-run="1418243770" last-rc-change="1418243770" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="70:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;70:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="670" rc-code="7" op-status="0" interval="0" last-run="1418243771" last-rc-change="1418243771" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_failure_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;71:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="672" rc-code="0" op-status="0" interval="0" last-run="1418243771" last-rc-change="1418243771" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;71:36:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="672" rc-code="0" op-status="0" interval="0" last-run="1418243771" last-rc-change="1418243771" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE42_monitor_10000" operation_key="FAKE42_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="176:37:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;176:37:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="673" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243772" exec-time="105" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;71:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="675" rc-code="7" op-status="0" interval="0" last-run="1418243772" last-rc-change="1418243772" exec-time="56" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;72:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="677" rc-code="7" op-status="0" interval="0" last-run="1418243773" last-rc-change="1418243773" exec-time="22" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;73:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="679" rc-code="7" op-status="0" interval="0" last-run="1418243773" last-rc-change="1418243773" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;74:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="681" rc-code="7" op-status="0" interval="0" last-run="1418243773" last-rc-change="1418243773" exec-time="28" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;75:37:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="683" rc-code="7" op-status="0" interval="0" last-run="1418243774" last-rc-change="1418243774" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;66:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="685" rc-code="7" op-status="0" interval="0" last-run="1418243775" last-rc-change="1418243775" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_failure_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;67:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="687" rc-code="0" op-status="0" interval="0" last-run="1418243775" last-rc-change="1418243775" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;67:38:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="687" rc-code="0" op-status="0" interval="0" last-run="1418243775" last-rc-change="1418243775" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE49_monitor_10000" operation_key="FAKE49_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="179:39:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:0;179:39:0:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="688" rc-code="0" op-status="0" interval="10000" last-rc-change="1418243775" exec-time="22" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:39:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" transition-magic="0:7;67:39:7:4a1ee24c-df85-4a70-af44-e7160ceadcc4" call-id="690" rc-code="7" op-status="0" interval="0" last-run="1418243776" last-rc-change="1418243776" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote5" uname="pcmk_remote5" crm-debug-origin="send_stonith_update"/> ++ </status> ++</cib> +diff --git a/pengine/test10/remote-partial-migrate2.dot b/pengine/test10/remote-partial-migrate2.dot +new file mode 100644 +index 0000000..a8bf29b +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate2.dot +@@ -0,0 +1,159 @@ ++ digraph "g" { ++"FAKE12_monitor_10000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE12_start_0 pcmk2" -> "FAKE12_monitor_10000 pcmk2" [ style = bold] ++"FAKE12_start_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE12_stop_0 pcmk1" -> "FAKE12_start_0 pcmk2" [ style = bold] ++"FAKE12_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE12_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE14_monitor_10000 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE14_start_0 pcmk_remote1" -> "FAKE14_monitor_10000 pcmk_remote1" [ style = bold] ++"FAKE14_start_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE14_stop_0 pcmk2" -> "FAKE14_start_0 pcmk_remote1" [ style = bold] ++"FAKE14_stop_0 pcmk2" -> "all_stopped" [ style = bold] ++"FAKE14_stop_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE17_monitor_10000 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE17_start_0 pcmk_remote4" -> "FAKE17_monitor_10000 pcmk_remote4" [ style = bold] ++"FAKE17_start_0 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE17_stop_0 pcmk_remote1" -> "FAKE17_start_0 pcmk_remote4" [ style = bold] ++"FAKE17_stop_0 pcmk_remote1" -> "all_stopped" [ style = bold] ++"FAKE17_stop_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE25_monitor_10000 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE25_start_0 pcmk_remote4" -> "FAKE25_monitor_10000 pcmk_remote4" [ style = bold] ++"FAKE25_start_0 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE25_stop_0 pcmk_remote1" -> "FAKE25_start_0 pcmk_remote4" [ style = bold] ++"FAKE25_stop_0 pcmk_remote1" -> "all_stopped" [ style = bold] ++"FAKE25_stop_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE28_monitor_10000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE28_start_0 pcmk1" -> "FAKE28_monitor_10000 pcmk1" [ style = bold] ++"FAKE28_start_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE28_stop_0 pcmk3" -> "FAKE28_start_0 pcmk1" [ style = bold] ++"FAKE28_stop_0 pcmk3" -> "all_stopped" [ style = bold] ++"FAKE28_stop_0 pcmk3" [ style=bold color="green" fontcolor="black"] ++"FAKE30_monitor_10000 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE30_start_0 pcmk_remote1" -> "FAKE30_monitor_10000 pcmk_remote1" [ style = bold] ++"FAKE30_start_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE30_stop_0 pcmk1" -> "FAKE30_start_0 pcmk_remote1" [ style = bold] ++"FAKE30_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE30_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE33_monitor_10000 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE33_start_0 pcmk_remote4" -> "FAKE33_monitor_10000 pcmk_remote4" [ style = bold] ++"FAKE33_start_0 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE33_stop_0 pcmk_remote1" -> "FAKE33_start_0 pcmk_remote4" [ style = bold] ++"FAKE33_stop_0 pcmk_remote1" -> "all_stopped" [ style = bold] ++"FAKE33_stop_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE38_monitor_10000 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE38_start_0 pcmk_remote1" -> "FAKE38_monitor_10000 pcmk_remote1" [ style = bold] ++"FAKE38_start_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE38_stop_0 pcmk2" -> "FAKE38_start_0 pcmk_remote1" [ style = bold] ++"FAKE38_stop_0 pcmk2" -> "all_stopped" [ style = bold] ++"FAKE38_stop_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"FAKE39_monitor_10000 pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"FAKE39_start_0 pcmk_remote2" -> "FAKE39_monitor_10000 pcmk_remote2" [ style = bold] ++"FAKE39_start_0 pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"FAKE39_stop_0 pcmk1" -> "FAKE39_start_0 pcmk_remote2" [ style = bold] ++"FAKE39_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE39_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE41_monitor_10000 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE41_start_0 pcmk_remote4" -> "FAKE41_monitor_10000 pcmk_remote4" [ style = bold] ++"FAKE41_start_0 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE41_stop_0 pcmk_remote2" -> "FAKE41_start_0 pcmk_remote4" [ style = bold] ++"FAKE41_stop_0 pcmk_remote2" -> "all_stopped" [ style = bold] ++"FAKE41_stop_0 pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"FAKE47_monitor_10000 pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"FAKE47_start_0 pcmk_remote2" -> "FAKE47_monitor_10000 pcmk_remote2" [ style = bold] ++"FAKE47_start_0 pcmk_remote2" [ style=bold color="green" fontcolor="black"] ++"FAKE47_stop_0 pcmk_remote1" -> "FAKE47_start_0 pcmk_remote2" [ style = bold] ++"FAKE47_stop_0 pcmk_remote1" -> "all_stopped" [ style = bold] ++"FAKE47_stop_0 pcmk_remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE48_monitor_10000 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"FAKE48_start_0 pcmk_remote3" -> "FAKE48_monitor_10000 pcmk_remote3" [ style = bold] ++"FAKE48_start_0 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"FAKE48_stop_0 pcmk1" -> "FAKE48_start_0 pcmk_remote3" [ style = bold] ++"FAKE48_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE48_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE49_monitor_10000 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE49_start_0 pcmk_remote4" -> "FAKE49_monitor_10000 pcmk_remote4" [ style = bold] ++"FAKE49_start_0 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE49_stop_0 pcmk_remote3" -> "FAKE49_start_0 pcmk_remote4" [ style = bold] ++"FAKE49_stop_0 pcmk_remote3" -> "all_stopped" [ style = bold] ++"FAKE49_stop_0 pcmk_remote3" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_10000 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE5_start_0 pcmk_remote4" -> "FAKE5_monitor_10000 pcmk_remote4" [ style = bold] ++"FAKE5_start_0 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE5_stop_0 pcmk1" -> "FAKE5_start_0 pcmk_remote4" [ style = bold] ++"FAKE5_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"FAKE5_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"FAKE9_monitor_10000 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE9_start_0 pcmk_remote4" -> "FAKE9_monitor_10000 pcmk_remote4" [ style = bold] ++"FAKE9_start_0 pcmk_remote4" [ style=bold color="green" fontcolor="black"] ++"FAKE9_stop_0 pcmk2" -> "FAKE9_start_0 pcmk_remote4" [ style = bold] ++"FAKE9_stop_0 pcmk2" -> "all_stopped" [ style = bold] ++"FAKE9_stop_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"pcmk_remote2_migrate_from_0 pcmk1" -> "pcmk_remote2_start_0 pcmk1" [ style = bold] ++"pcmk_remote2_migrate_from_0 pcmk1" -> "pcmk_remote2_stop_0 pcmk3" [ style = bold] ++"pcmk_remote2_migrate_from_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote2_monitor_60000 pcmk1" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote2_start_0 pcmk1" -> "FAKE39_monitor_10000 pcmk_remote2" [ style = bold] ++"pcmk_remote2_start_0 pcmk1" -> "FAKE39_start_0 pcmk_remote2" [ style = bold] ++"pcmk_remote2_start_0 pcmk1" -> "FAKE41_stop_0 pcmk_remote2" [ style = bold] ++"pcmk_remote2_start_0 pcmk1" -> "FAKE47_monitor_10000 pcmk_remote2" [ style = bold] ++"pcmk_remote2_start_0 pcmk1" -> "FAKE47_start_0 pcmk_remote2" [ style = bold] ++"pcmk_remote2_start_0 pcmk1" -> "pcmk_remote2_monitor_60000 pcmk1" [ style = bold] ++"pcmk_remote2_start_0 pcmk1" [ style=bold color="green" fontcolor="orange"] ++"pcmk_remote2_stop_0 pcmk3" -> "all_stopped" [ style = bold] ++"pcmk_remote2_stop_0 pcmk3" -> "pcmk_remote2_start_0 pcmk1" [ style = bold] ++"pcmk_remote2_stop_0 pcmk3" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote4_monitor_60000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE17_monitor_10000 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE17_start_0 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE25_monitor_10000 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE25_start_0 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE33_monitor_10000 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE33_start_0 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE41_monitor_10000 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE41_start_0 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE49_monitor_10000 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE49_start_0 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE5_monitor_10000 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE5_start_0 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE9_monitor_10000 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "FAKE9_start_0 pcmk_remote4" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" -> "pcmk_remote4_monitor_60000 pcmk2" [ style = bold] ++"pcmk_remote4_start_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote5_migrate_from_0 pcmk2" -> "pcmk_remote5_start_0 pcmk2" [ style = bold] ++"pcmk_remote5_migrate_from_0 pcmk2" -> "pcmk_remote5_stop_0 pcmk1" [ style = bold] ++"pcmk_remote5_migrate_from_0 pcmk2" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote5_migrate_to_0 pcmk1" -> "pcmk_remote5_migrate_from_0 pcmk2" [ style = bold] ++"pcmk_remote5_migrate_to_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote5_monitor_60000 pcmk2" [ style=bold color="green" fontcolor="black"] ++"pcmk_remote5_start_0 pcmk2" -> "pcmk_remote5_monitor_60000 pcmk2" [ style = bold] ++"pcmk_remote5_start_0 pcmk2" [ style=bold color="green" fontcolor="orange"] ++"pcmk_remote5_stop_0 pcmk1" -> "all_stopped" [ style = bold] ++"pcmk_remote5_stop_0 pcmk1" -> "pcmk_remote5_start_0 pcmk2" [ style = bold] ++"pcmk_remote5_stop_0 pcmk1" [ style=bold color="green" fontcolor="black"] ++"stonith 'reboot' pcmk4" -> "stonith_complete" [ style = bold] ++"stonith 'reboot' pcmk4" [ style=bold color="green" fontcolor="black"] ++"stonith_complete" -> "FAKE12_start_0 pcmk2" [ style = bold] ++"stonith_complete" -> "FAKE14_start_0 pcmk_remote1" [ style = bold] ++"stonith_complete" -> "FAKE17_start_0 pcmk_remote4" [ style = bold] ++"stonith_complete" -> "FAKE25_start_0 pcmk_remote4" [ style = bold] ++"stonith_complete" -> "FAKE28_start_0 pcmk1" [ style = bold] ++"stonith_complete" -> "FAKE30_start_0 pcmk_remote1" [ style = bold] ++"stonith_complete" -> "FAKE33_start_0 pcmk_remote4" [ style = bold] ++"stonith_complete" -> "FAKE38_start_0 pcmk_remote1" [ style = bold] ++"stonith_complete" -> "FAKE39_start_0 pcmk_remote2" [ style = bold] ++"stonith_complete" -> "FAKE41_start_0 pcmk_remote4" [ style = bold] ++"stonith_complete" -> "FAKE47_start_0 pcmk_remote2" [ style = bold] ++"stonith_complete" -> "FAKE48_start_0 pcmk_remote3" [ style = bold] ++"stonith_complete" -> "FAKE49_start_0 pcmk_remote4" [ style = bold] ++"stonith_complete" -> "FAKE5_start_0 pcmk_remote4" [ style = bold] ++"stonith_complete" -> "FAKE9_start_0 pcmk_remote4" [ style = bold] ++"stonith_complete" -> "all_stopped" [ style = bold] ++"stonith_complete" -> "pcmk_remote2_migrate_from_0 pcmk1" [ style = bold] ++"stonith_complete" -> "pcmk_remote2_start_0 pcmk1" [ style = bold] ++"stonith_complete" -> "pcmk_remote4_start_0 pcmk2" [ style = bold] ++"stonith_complete" -> "pcmk_remote5_migrate_to_0 pcmk1" [ style = bold] ++"stonith_complete" -> "pcmk_remote5_start_0 pcmk2" [ style = bold] ++"stonith_complete" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/remote-partial-migrate2.exp b/pengine/test10/remote-partial-migrate2.exp +new file mode 100644 +index 0000000..e3d7495 +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate2.exp +@@ -0,0 +1,866 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="73" operation="migrate_from" operation_key="pcmk_remote2_migrate_from_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="pcmk_remote2" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_migrate_source="pcmk3" CRM_meta_migrate_target="pcmk1" CRM_meta_timeout="20000" server="172.17.201.2"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="72" operation="monitor" operation_key="pcmk_remote2_monitor_60000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="pcmk_remote2" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="30000" server="172.17.201.2"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="71" operation="start" operation_key="pcmk_remote2_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <pseudo_event id="71" operation="start" operation_key="pcmk_remote2_start_0"> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="10000" server="172.17.201.2"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="70" operation="stop" operation_key="pcmk_remote2_stop_0" on_node="pcmk3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="73" operation="migrate_from" operation_key="pcmk_remote2_migrate_from_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="70" operation="stop" operation_key="pcmk_remote2_stop_0" on_node="pcmk3" on_node_uuid="3"> ++ <primitive id="pcmk_remote2" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="60000" server="172.17.201.2"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="73" operation="migrate_from" operation_key="pcmk_remote2_migrate_from_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="77" operation="monitor" operation_key="pcmk_remote4_monitor_60000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="pcmk_remote4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="30000" server="172.17.201.4"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="pcmk_remote4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="10000" server="172.17.201.4"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="82" operation="migrate_from" operation_key="pcmk_remote5_migrate_from_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="pcmk_remote5" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_migrate_source="pcmk1" CRM_meta_migrate_target="pcmk2" CRM_meta_timeout="20000" server="172.17.201.5"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="81" operation="migrate_to" operation_key="pcmk_remote5_migrate_to_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="81" operation="migrate_to" operation_key="pcmk_remote5_migrate_to_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="pcmk_remote5" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_migrate_source="pcmk1" CRM_meta_migrate_target="pcmk2" CRM_meta_timeout="20000" server="172.17.201.5"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="80" operation="monitor" operation_key="pcmk_remote5_monitor_60000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="pcmk_remote5" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="30000" server="172.17.201.5"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="79" operation="start" operation_key="pcmk_remote5_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <pseudo_event id="79" operation="start" operation_key="pcmk_remote5_start_0"> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="10000" server="172.17.201.5"/> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="78" operation="stop" operation_key="pcmk_remote5_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="82" operation="migrate_from" operation_key="pcmk_remote5_migrate_from_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="78" operation="stop" operation_key="pcmk_remote5_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="pcmk_remote5" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="60000" server="172.17.201.5"/> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="82" operation="migrate_from" operation_key="pcmk_remote5_migrate_from_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="93" operation="monitor" operation_key="FAKE5_monitor_10000" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="92" operation="start" operation_key="FAKE5_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="92" operation="start" operation_key="FAKE5_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="91" operation="stop" operation_key="FAKE5_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="91" operation="stop" operation_key="FAKE5_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="14"> ++ <action_set> ++ <rsc_op id="102" operation="monitor" operation_key="FAKE9_monitor_10000" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE9" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="101" operation="start" operation_key="FAKE9_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <rsc_op id="101" operation="start" operation_key="FAKE9_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE9" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="100" operation="stop" operation_key="FAKE9_stop_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <rsc_op id="100" operation="stop" operation_key="FAKE9_stop_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE9" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="17"> ++ <action_set> ++ <rsc_op id="109" operation="monitor" operation_key="FAKE12_monitor_10000" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE12" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="108" operation="start" operation_key="FAKE12_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="18"> ++ <action_set> ++ <rsc_op id="108" operation="start" operation_key="FAKE12_start_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE12" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="107" operation="stop" operation_key="FAKE12_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="19"> ++ <action_set> ++ <rsc_op id="107" operation="stop" operation_key="FAKE12_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE12" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="20"> ++ <action_set> ++ <rsc_op id="114" operation="monitor" operation_key="FAKE14_monitor_10000" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE14" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="113" operation="start" operation_key="FAKE14_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="21"> ++ <action_set> ++ <rsc_op id="113" operation="start" operation_key="FAKE14_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE14" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="112" operation="stop" operation_key="FAKE14_stop_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="22"> ++ <action_set> ++ <rsc_op id="112" operation="stop" operation_key="FAKE14_stop_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE14" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="23"> ++ <action_set> ++ <rsc_op id="121" operation="monitor" operation_key="FAKE17_monitor_10000" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE17" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="120" operation="start" operation_key="FAKE17_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="24"> ++ <action_set> ++ <rsc_op id="120" operation="start" operation_key="FAKE17_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE17" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="119" operation="stop" operation_key="FAKE17_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="25"> ++ <action_set> ++ <rsc_op id="119" operation="stop" operation_key="FAKE17_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE17" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="26"> ++ <action_set> ++ <rsc_op id="138" operation="monitor" operation_key="FAKE25_monitor_10000" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE25" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="137" operation="start" operation_key="FAKE25_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="27"> ++ <action_set> ++ <rsc_op id="137" operation="start" operation_key="FAKE25_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE25" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="136" operation="stop" operation_key="FAKE25_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="28"> ++ <action_set> ++ <rsc_op id="136" operation="stop" operation_key="FAKE25_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE25" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="29"> ++ <action_set> ++ <rsc_op id="145" operation="monitor" operation_key="FAKE28_monitor_10000" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE28" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="144" operation="start" operation_key="FAKE28_start_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="30"> ++ <action_set> ++ <rsc_op id="144" operation="start" operation_key="FAKE28_start_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE28" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="143" operation="stop" operation_key="FAKE28_stop_0" on_node="pcmk3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="31"> ++ <action_set> ++ <rsc_op id="143" operation="stop" operation_key="FAKE28_stop_0" on_node="pcmk3" on_node_uuid="3"> ++ <primitive id="FAKE28" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="32"> ++ <action_set> ++ <rsc_op id="150" operation="monitor" operation_key="FAKE30_monitor_10000" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE30" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="149" operation="start" operation_key="FAKE30_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="33"> ++ <action_set> ++ <rsc_op id="149" operation="start" operation_key="FAKE30_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE30" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="148" operation="stop" operation_key="FAKE30_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="34"> ++ <action_set> ++ <rsc_op id="148" operation="stop" operation_key="FAKE30_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE30" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="35"> ++ <action_set> ++ <rsc_op id="157" operation="monitor" operation_key="FAKE33_monitor_10000" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE33" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="156" operation="start" operation_key="FAKE33_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="36"> ++ <action_set> ++ <rsc_op id="156" operation="start" operation_key="FAKE33_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE33" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="155" operation="stop" operation_key="FAKE33_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="37"> ++ <action_set> ++ <rsc_op id="155" operation="stop" operation_key="FAKE33_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE33" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="38"> ++ <action_set> ++ <rsc_op id="168" operation="monitor" operation_key="FAKE38_monitor_10000" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE38" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="167" operation="start" operation_key="FAKE38_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="39"> ++ <action_set> ++ <rsc_op id="167" operation="start" operation_key="FAKE38_start_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE38" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="166" operation="stop" operation_key="FAKE38_stop_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="40"> ++ <action_set> ++ <rsc_op id="166" operation="stop" operation_key="FAKE38_stop_0" on_node="pcmk2" on_node_uuid="2"> ++ <primitive id="FAKE38" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="41"> ++ <action_set> ++ <rsc_op id="171" operation="monitor" operation_key="FAKE39_monitor_10000" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"> ++ <primitive id="FAKE39" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="71" operation="start" operation_key="pcmk_remote2_start_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="170" operation="start" operation_key="FAKE39_start_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="42"> ++ <action_set> ++ <rsc_op id="170" operation="start" operation_key="FAKE39_start_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"> ++ <primitive id="FAKE39" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="71" operation="start" operation_key="pcmk_remote2_start_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="169" operation="stop" operation_key="FAKE39_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="43"> ++ <action_set> ++ <rsc_op id="169" operation="stop" operation_key="FAKE39_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE39" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="44"> ++ <action_set> ++ <rsc_op id="176" operation="monitor" operation_key="FAKE41_monitor_10000" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE41" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="175" operation="start" operation_key="FAKE41_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="45"> ++ <action_set> ++ <rsc_op id="175" operation="start" operation_key="FAKE41_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE41" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="174" operation="stop" operation_key="FAKE41_stop_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="46"> ++ <action_set> ++ <rsc_op id="174" operation="stop" operation_key="FAKE41_stop_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"> ++ <primitive id="FAKE41" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="71" operation="start" operation_key="pcmk_remote2_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="47"> ++ <action_set> ++ <rsc_op id="189" operation="monitor" operation_key="FAKE47_monitor_10000" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"> ++ <primitive id="FAKE47" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="71" operation="start" operation_key="pcmk_remote2_start_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="188" operation="start" operation_key="FAKE47_start_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="48"> ++ <action_set> ++ <rsc_op id="188" operation="start" operation_key="FAKE47_start_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"> ++ <primitive id="FAKE47" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="71" operation="start" operation_key="pcmk_remote2_start_0"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="187" operation="stop" operation_key="FAKE47_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="49"> ++ <action_set> ++ <rsc_op id="187" operation="stop" operation_key="FAKE47_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"> ++ <primitive id="FAKE47" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="50"> ++ <action_set> ++ <rsc_op id="192" operation="monitor" operation_key="FAKE48_monitor_10000" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk3"> ++ <primitive id="FAKE48" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="191" operation="start" operation_key="FAKE48_start_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="51"> ++ <action_set> ++ <rsc_op id="191" operation="start" operation_key="FAKE48_start_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk3"> ++ <primitive id="FAKE48" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="190" operation="stop" operation_key="FAKE48_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="52"> ++ <action_set> ++ <rsc_op id="190" operation="stop" operation_key="FAKE48_stop_0" on_node="pcmk1" on_node_uuid="1"> ++ <primitive id="FAKE48" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="53"> ++ <action_set> ++ <rsc_op id="195" operation="monitor" operation_key="FAKE49_monitor_10000" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE49" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="194" operation="start" operation_key="FAKE49_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="54"> ++ <action_set> ++ <rsc_op id="194" operation="start" operation_key="FAKE49_start_0" on_node="pcmk_remote4" on_node_uuid="pcmk_remote4" router_node="pcmk2"> ++ <primitive id="FAKE49" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="pcmk_remote4_start_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="193" operation="stop" operation_key="FAKE49_stop_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="55"> ++ <action_set> ++ <rsc_op id="193" operation="stop" operation_key="FAKE49_stop_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk3"> ++ <primitive id="FAKE49" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="56"> ++ <action_set> ++ <crm_event id="199" operation="stonith" operation_key="stonith-pcmk4-reboot" on_node="pcmk4" on_node_uuid="4"> ++ <attributes CRM_meta_on_node="pcmk4" CRM_meta_on_node_uuid="4" CRM_meta_stonith_action="reboot" /> ++ </crm_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="57"> ++ <action_set> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="199" operation="stonith" operation_key="stonith-pcmk4-reboot" on_node="pcmk4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="58"> ++ <action_set> ++ <pseudo_event id="55" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="70" operation="stop" operation_key="pcmk_remote2_stop_0" on_node="pcmk3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="78" operation="stop" operation_key="pcmk_remote5_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="91" operation="stop" operation_key="FAKE5_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="100" operation="stop" operation_key="FAKE9_stop_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="107" operation="stop" operation_key="FAKE12_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="112" operation="stop" operation_key="FAKE14_stop_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="119" operation="stop" operation_key="FAKE17_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="136" operation="stop" operation_key="FAKE25_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="143" operation="stop" operation_key="FAKE28_stop_0" on_node="pcmk3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="148" operation="stop" operation_key="FAKE30_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="155" operation="stop" operation_key="FAKE33_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="166" operation="stop" operation_key="FAKE38_stop_0" on_node="pcmk2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="169" operation="stop" operation_key="FAKE39_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="174" operation="stop" operation_key="FAKE41_stop_0" on_node="pcmk_remote2" on_node_uuid="pcmk_remote2" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="187" operation="stop" operation_key="FAKE47_stop_0" on_node="pcmk_remote1" on_node_uuid="pcmk_remote1" router_node="pcmk1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="190" operation="stop" operation_key="FAKE48_stop_0" on_node="pcmk1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="193" operation="stop" operation_key="FAKE49_stop_0" on_node="pcmk_remote3" on_node_uuid="pcmk_remote3" router_node="pcmk3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="198" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/remote-partial-migrate2.scores b/pengine/test10/remote-partial-migrate2.scores +new file mode 100644 +index 0000000..6965507 +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate2.scores +@@ -0,0 +1,505 @@ ++Allocation scores: ++native_color: FAKE1 allocation score on pcmk1: -INFINITY ++native_color: FAKE1 allocation score on pcmk2: 0 ++native_color: FAKE1 allocation score on pcmk3: 0 ++native_color: FAKE1 allocation score on pcmk4: 0 ++native_color: FAKE1 allocation score on pcmk_remote1: 0 ++native_color: FAKE1 allocation score on pcmk_remote2: 0 ++native_color: FAKE1 allocation score on pcmk_remote3: 0 ++native_color: FAKE1 allocation score on pcmk_remote4: 0 ++native_color: FAKE1 allocation score on pcmk_remote5: 0 ++native_color: FAKE10 allocation score on pcmk1: 0 ++native_color: FAKE10 allocation score on pcmk2: 0 ++native_color: FAKE10 allocation score on pcmk3: 0 ++native_color: FAKE10 allocation score on pcmk4: 0 ++native_color: FAKE10 allocation score on pcmk_remote1: 0 ++native_color: FAKE10 allocation score on pcmk_remote2: 0 ++native_color: FAKE10 allocation score on pcmk_remote3: 0 ++native_color: FAKE10 allocation score on pcmk_remote4: 0 ++native_color: FAKE10 allocation score on pcmk_remote5: 0 ++native_color: FAKE11 allocation score on pcmk1: 0 ++native_color: FAKE11 allocation score on pcmk2: 0 ++native_color: FAKE11 allocation score on pcmk3: 0 ++native_color: FAKE11 allocation score on pcmk4: 0 ++native_color: FAKE11 allocation score on pcmk_remote1: 0 ++native_color: FAKE11 allocation score on pcmk_remote2: 0 ++native_color: FAKE11 allocation score on pcmk_remote3: 0 ++native_color: FAKE11 allocation score on pcmk_remote4: 0 ++native_color: FAKE11 allocation score on pcmk_remote5: 0 ++native_color: FAKE12 allocation score on pcmk1: 0 ++native_color: FAKE12 allocation score on pcmk2: 0 ++native_color: FAKE12 allocation score on pcmk3: 0 ++native_color: FAKE12 allocation score on pcmk4: 0 ++native_color: FAKE12 allocation score on pcmk_remote1: 0 ++native_color: FAKE12 allocation score on pcmk_remote2: 0 ++native_color: FAKE12 allocation score on pcmk_remote3: 0 ++native_color: FAKE12 allocation score on pcmk_remote4: 0 ++native_color: FAKE12 allocation score on pcmk_remote5: 0 ++native_color: FAKE13 allocation score on pcmk1: 0 ++native_color: FAKE13 allocation score on pcmk2: 0 ++native_color: FAKE13 allocation score on pcmk3: 0 ++native_color: FAKE13 allocation score on pcmk4: 0 ++native_color: FAKE13 allocation score on pcmk_remote1: 0 ++native_color: FAKE13 allocation score on pcmk_remote2: 0 ++native_color: FAKE13 allocation score on pcmk_remote3: 0 ++native_color: FAKE13 allocation score on pcmk_remote4: 0 ++native_color: FAKE13 allocation score on pcmk_remote5: 0 ++native_color: FAKE14 allocation score on pcmk1: 0 ++native_color: FAKE14 allocation score on pcmk2: 0 ++native_color: FAKE14 allocation score on pcmk3: 0 ++native_color: FAKE14 allocation score on pcmk4: 0 ++native_color: FAKE14 allocation score on pcmk_remote1: 0 ++native_color: FAKE14 allocation score on pcmk_remote2: 0 ++native_color: FAKE14 allocation score on pcmk_remote3: 0 ++native_color: FAKE14 allocation score on pcmk_remote4: 0 ++native_color: FAKE14 allocation score on pcmk_remote5: 0 ++native_color: FAKE15 allocation score on pcmk1: 0 ++native_color: FAKE15 allocation score on pcmk2: 0 ++native_color: FAKE15 allocation score on pcmk3: 0 ++native_color: FAKE15 allocation score on pcmk4: 0 ++native_color: FAKE15 allocation score on pcmk_remote1: 0 ++native_color: FAKE15 allocation score on pcmk_remote2: 0 ++native_color: FAKE15 allocation score on pcmk_remote3: 0 ++native_color: FAKE15 allocation score on pcmk_remote4: 0 ++native_color: FAKE15 allocation score on pcmk_remote5: 0 ++native_color: FAKE16 allocation score on pcmk1: 0 ++native_color: FAKE16 allocation score on pcmk2: 0 ++native_color: FAKE16 allocation score on pcmk3: 0 ++native_color: FAKE16 allocation score on pcmk4: 0 ++native_color: FAKE16 allocation score on pcmk_remote1: 0 ++native_color: FAKE16 allocation score on pcmk_remote2: 0 ++native_color: FAKE16 allocation score on pcmk_remote3: 0 ++native_color: FAKE16 allocation score on pcmk_remote4: 0 ++native_color: FAKE16 allocation score on pcmk_remote5: 0 ++native_color: FAKE17 allocation score on pcmk1: 0 ++native_color: FAKE17 allocation score on pcmk2: 0 ++native_color: FAKE17 allocation score on pcmk3: 0 ++native_color: FAKE17 allocation score on pcmk4: 0 ++native_color: FAKE17 allocation score on pcmk_remote1: 0 ++native_color: FAKE17 allocation score on pcmk_remote2: 0 ++native_color: FAKE17 allocation score on pcmk_remote3: 0 ++native_color: FAKE17 allocation score on pcmk_remote4: 0 ++native_color: FAKE17 allocation score on pcmk_remote5: 0 ++native_color: FAKE18 allocation score on pcmk1: 0 ++native_color: FAKE18 allocation score on pcmk2: 0 ++native_color: FAKE18 allocation score on pcmk3: 0 ++native_color: FAKE18 allocation score on pcmk4: 0 ++native_color: FAKE18 allocation score on pcmk_remote1: 0 ++native_color: FAKE18 allocation score on pcmk_remote2: 0 ++native_color: FAKE18 allocation score on pcmk_remote3: 0 ++native_color: FAKE18 allocation score on pcmk_remote4: 0 ++native_color: FAKE18 allocation score on pcmk_remote5: 0 ++native_color: FAKE19 allocation score on pcmk1: 0 ++native_color: FAKE19 allocation score on pcmk2: 0 ++native_color: FAKE19 allocation score on pcmk3: 0 ++native_color: FAKE19 allocation score on pcmk4: 0 ++native_color: FAKE19 allocation score on pcmk_remote1: 0 ++native_color: FAKE19 allocation score on pcmk_remote2: 0 ++native_color: FAKE19 allocation score on pcmk_remote3: 0 ++native_color: FAKE19 allocation score on pcmk_remote4: 0 ++native_color: FAKE19 allocation score on pcmk_remote5: 0 ++native_color: FAKE2 allocation score on pcmk1: 0 ++native_color: FAKE2 allocation score on pcmk2: 0 ++native_color: FAKE2 allocation score on pcmk3: 0 ++native_color: FAKE2 allocation score on pcmk4: 0 ++native_color: FAKE2 allocation score on pcmk_remote1: 0 ++native_color: FAKE2 allocation score on pcmk_remote2: 0 ++native_color: FAKE2 allocation score on pcmk_remote3: 0 ++native_color: FAKE2 allocation score on pcmk_remote4: 0 ++native_color: FAKE2 allocation score on pcmk_remote5: 0 ++native_color: FAKE20 allocation score on pcmk1: 0 ++native_color: FAKE20 allocation score on pcmk2: 0 ++native_color: FAKE20 allocation score on pcmk3: 0 ++native_color: FAKE20 allocation score on pcmk4: 0 ++native_color: FAKE20 allocation score on pcmk_remote1: 0 ++native_color: FAKE20 allocation score on pcmk_remote2: 0 ++native_color: FAKE20 allocation score on pcmk_remote3: 0 ++native_color: FAKE20 allocation score on pcmk_remote4: 0 ++native_color: FAKE20 allocation score on pcmk_remote5: 0 ++native_color: FAKE21 allocation score on pcmk1: 0 ++native_color: FAKE21 allocation score on pcmk2: 0 ++native_color: FAKE21 allocation score on pcmk3: 0 ++native_color: FAKE21 allocation score on pcmk4: 0 ++native_color: FAKE21 allocation score on pcmk_remote1: 0 ++native_color: FAKE21 allocation score on pcmk_remote2: 0 ++native_color: FAKE21 allocation score on pcmk_remote3: 0 ++native_color: FAKE21 allocation score on pcmk_remote4: 0 ++native_color: FAKE21 allocation score on pcmk_remote5: 0 ++native_color: FAKE22 allocation score on pcmk1: 0 ++native_color: FAKE22 allocation score on pcmk2: 0 ++native_color: FAKE22 allocation score on pcmk3: 0 ++native_color: FAKE22 allocation score on pcmk4: 0 ++native_color: FAKE22 allocation score on pcmk_remote1: 0 ++native_color: FAKE22 allocation score on pcmk_remote2: 0 ++native_color: FAKE22 allocation score on pcmk_remote3: 0 ++native_color: FAKE22 allocation score on pcmk_remote4: 0 ++native_color: FAKE22 allocation score on pcmk_remote5: 0 ++native_color: FAKE23 allocation score on pcmk1: 0 ++native_color: FAKE23 allocation score on pcmk2: 0 ++native_color: FAKE23 allocation score on pcmk3: 0 ++native_color: FAKE23 allocation score on pcmk4: 0 ++native_color: FAKE23 allocation score on pcmk_remote1: 0 ++native_color: FAKE23 allocation score on pcmk_remote2: 0 ++native_color: FAKE23 allocation score on pcmk_remote3: 0 ++native_color: FAKE23 allocation score on pcmk_remote4: 0 ++native_color: FAKE23 allocation score on pcmk_remote5: 0 ++native_color: FAKE24 allocation score on pcmk1: 0 ++native_color: FAKE24 allocation score on pcmk2: 0 ++native_color: FAKE24 allocation score on pcmk3: 0 ++native_color: FAKE24 allocation score on pcmk4: 0 ++native_color: FAKE24 allocation score on pcmk_remote1: 0 ++native_color: FAKE24 allocation score on pcmk_remote2: 0 ++native_color: FAKE24 allocation score on pcmk_remote3: 0 ++native_color: FAKE24 allocation score on pcmk_remote4: 0 ++native_color: FAKE24 allocation score on pcmk_remote5: 0 ++native_color: FAKE25 allocation score on pcmk1: 0 ++native_color: FAKE25 allocation score on pcmk2: 0 ++native_color: FAKE25 allocation score on pcmk3: 0 ++native_color: FAKE25 allocation score on pcmk4: 0 ++native_color: FAKE25 allocation score on pcmk_remote1: 0 ++native_color: FAKE25 allocation score on pcmk_remote2: 0 ++native_color: FAKE25 allocation score on pcmk_remote3: 0 ++native_color: FAKE25 allocation score on pcmk_remote4: 0 ++native_color: FAKE25 allocation score on pcmk_remote5: 0 ++native_color: FAKE26 allocation score on pcmk1: 0 ++native_color: FAKE26 allocation score on pcmk2: 0 ++native_color: FAKE26 allocation score on pcmk3: 0 ++native_color: FAKE26 allocation score on pcmk4: 0 ++native_color: FAKE26 allocation score on pcmk_remote1: 0 ++native_color: FAKE26 allocation score on pcmk_remote2: 0 ++native_color: FAKE26 allocation score on pcmk_remote3: 0 ++native_color: FAKE26 allocation score on pcmk_remote4: 0 ++native_color: FAKE26 allocation score on pcmk_remote5: 0 ++native_color: FAKE27 allocation score on pcmk1: 0 ++native_color: FAKE27 allocation score on pcmk2: 0 ++native_color: FAKE27 allocation score on pcmk3: 0 ++native_color: FAKE27 allocation score on pcmk4: 0 ++native_color: FAKE27 allocation score on pcmk_remote1: 0 ++native_color: FAKE27 allocation score on pcmk_remote2: 0 ++native_color: FAKE27 allocation score on pcmk_remote3: 0 ++native_color: FAKE27 allocation score on pcmk_remote4: 0 ++native_color: FAKE27 allocation score on pcmk_remote5: 0 ++native_color: FAKE28 allocation score on pcmk1: 0 ++native_color: FAKE28 allocation score on pcmk2: 0 ++native_color: FAKE28 allocation score on pcmk3: 0 ++native_color: FAKE28 allocation score on pcmk4: 0 ++native_color: FAKE28 allocation score on pcmk_remote1: 0 ++native_color: FAKE28 allocation score on pcmk_remote2: 0 ++native_color: FAKE28 allocation score on pcmk_remote3: 0 ++native_color: FAKE28 allocation score on pcmk_remote4: 0 ++native_color: FAKE28 allocation score on pcmk_remote5: 0 ++native_color: FAKE29 allocation score on pcmk1: 0 ++native_color: FAKE29 allocation score on pcmk2: 0 ++native_color: FAKE29 allocation score on pcmk3: 0 ++native_color: FAKE29 allocation score on pcmk4: 0 ++native_color: FAKE29 allocation score on pcmk_remote1: 0 ++native_color: FAKE29 allocation score on pcmk_remote2: 0 ++native_color: FAKE29 allocation score on pcmk_remote3: 0 ++native_color: FAKE29 allocation score on pcmk_remote4: 0 ++native_color: FAKE29 allocation score on pcmk_remote5: 0 ++native_color: FAKE3 allocation score on pcmk1: 0 ++native_color: FAKE3 allocation score on pcmk2: 0 ++native_color: FAKE3 allocation score on pcmk3: 0 ++native_color: FAKE3 allocation score on pcmk4: 0 ++native_color: FAKE3 allocation score on pcmk_remote1: 0 ++native_color: FAKE3 allocation score on pcmk_remote2: 0 ++native_color: FAKE3 allocation score on pcmk_remote3: 0 ++native_color: FAKE3 allocation score on pcmk_remote4: 0 ++native_color: FAKE3 allocation score on pcmk_remote5: 0 ++native_color: FAKE30 allocation score on pcmk1: 0 ++native_color: FAKE30 allocation score on pcmk2: 0 ++native_color: FAKE30 allocation score on pcmk3: 0 ++native_color: FAKE30 allocation score on pcmk4: 0 ++native_color: FAKE30 allocation score on pcmk_remote1: 0 ++native_color: FAKE30 allocation score on pcmk_remote2: 0 ++native_color: FAKE30 allocation score on pcmk_remote3: 0 ++native_color: FAKE30 allocation score on pcmk_remote4: 0 ++native_color: FAKE30 allocation score on pcmk_remote5: 0 ++native_color: FAKE31 allocation score on pcmk1: 0 ++native_color: FAKE31 allocation score on pcmk2: 0 ++native_color: FAKE31 allocation score on pcmk3: 0 ++native_color: FAKE31 allocation score on pcmk4: 0 ++native_color: FAKE31 allocation score on pcmk_remote1: 0 ++native_color: FAKE31 allocation score on pcmk_remote2: 0 ++native_color: FAKE31 allocation score on pcmk_remote3: 0 ++native_color: FAKE31 allocation score on pcmk_remote4: 0 ++native_color: FAKE31 allocation score on pcmk_remote5: 0 ++native_color: FAKE32 allocation score on pcmk1: 0 ++native_color: FAKE32 allocation score on pcmk2: 0 ++native_color: FAKE32 allocation score on pcmk3: 0 ++native_color: FAKE32 allocation score on pcmk4: 0 ++native_color: FAKE32 allocation score on pcmk_remote1: 0 ++native_color: FAKE32 allocation score on pcmk_remote2: 0 ++native_color: FAKE32 allocation score on pcmk_remote3: 0 ++native_color: FAKE32 allocation score on pcmk_remote4: 0 ++native_color: FAKE32 allocation score on pcmk_remote5: 0 ++native_color: FAKE33 allocation score on pcmk1: 0 ++native_color: FAKE33 allocation score on pcmk2: 0 ++native_color: FAKE33 allocation score on pcmk3: 0 ++native_color: FAKE33 allocation score on pcmk4: 0 ++native_color: FAKE33 allocation score on pcmk_remote1: 0 ++native_color: FAKE33 allocation score on pcmk_remote2: 0 ++native_color: FAKE33 allocation score on pcmk_remote3: 0 ++native_color: FAKE33 allocation score on pcmk_remote4: 0 ++native_color: FAKE33 allocation score on pcmk_remote5: 0 ++native_color: FAKE34 allocation score on pcmk1: 0 ++native_color: FAKE34 allocation score on pcmk2: 0 ++native_color: FAKE34 allocation score on pcmk3: 0 ++native_color: FAKE34 allocation score on pcmk4: 0 ++native_color: FAKE34 allocation score on pcmk_remote1: 0 ++native_color: FAKE34 allocation score on pcmk_remote2: 0 ++native_color: FAKE34 allocation score on pcmk_remote3: 0 ++native_color: FAKE34 allocation score on pcmk_remote4: 0 ++native_color: FAKE34 allocation score on pcmk_remote5: 0 ++native_color: FAKE35 allocation score on pcmk1: 0 ++native_color: FAKE35 allocation score on pcmk2: 0 ++native_color: FAKE35 allocation score on pcmk3: 0 ++native_color: FAKE35 allocation score on pcmk4: 0 ++native_color: FAKE35 allocation score on pcmk_remote1: 0 ++native_color: FAKE35 allocation score on pcmk_remote2: 0 ++native_color: FAKE35 allocation score on pcmk_remote3: 0 ++native_color: FAKE35 allocation score on pcmk_remote4: 0 ++native_color: FAKE35 allocation score on pcmk_remote5: 0 ++native_color: FAKE36 allocation score on pcmk1: 0 ++native_color: FAKE36 allocation score on pcmk2: 0 ++native_color: FAKE36 allocation score on pcmk3: 0 ++native_color: FAKE36 allocation score on pcmk4: 0 ++native_color: FAKE36 allocation score on pcmk_remote1: 0 ++native_color: FAKE36 allocation score on pcmk_remote2: 0 ++native_color: FAKE36 allocation score on pcmk_remote3: 0 ++native_color: FAKE36 allocation score on pcmk_remote4: 0 ++native_color: FAKE36 allocation score on pcmk_remote5: 0 ++native_color: FAKE37 allocation score on pcmk1: 0 ++native_color: FAKE37 allocation score on pcmk2: 0 ++native_color: FAKE37 allocation score on pcmk3: 0 ++native_color: FAKE37 allocation score on pcmk4: 0 ++native_color: FAKE37 allocation score on pcmk_remote1: 0 ++native_color: FAKE37 allocation score on pcmk_remote2: 0 ++native_color: FAKE37 allocation score on pcmk_remote3: 0 ++native_color: FAKE37 allocation score on pcmk_remote4: 0 ++native_color: FAKE37 allocation score on pcmk_remote5: 0 ++native_color: FAKE38 allocation score on pcmk1: 0 ++native_color: FAKE38 allocation score on pcmk2: 0 ++native_color: FAKE38 allocation score on pcmk3: 0 ++native_color: FAKE38 allocation score on pcmk4: 0 ++native_color: FAKE38 allocation score on pcmk_remote1: 0 ++native_color: FAKE38 allocation score on pcmk_remote2: 0 ++native_color: FAKE38 allocation score on pcmk_remote3: 0 ++native_color: FAKE38 allocation score on pcmk_remote4: 0 ++native_color: FAKE38 allocation score on pcmk_remote5: 0 ++native_color: FAKE39 allocation score on pcmk1: 0 ++native_color: FAKE39 allocation score on pcmk2: 0 ++native_color: FAKE39 allocation score on pcmk3: 0 ++native_color: FAKE39 allocation score on pcmk4: 0 ++native_color: FAKE39 allocation score on pcmk_remote1: 0 ++native_color: FAKE39 allocation score on pcmk_remote2: 0 ++native_color: FAKE39 allocation score on pcmk_remote3: 0 ++native_color: FAKE39 allocation score on pcmk_remote4: 0 ++native_color: FAKE39 allocation score on pcmk_remote5: 0 ++native_color: FAKE4 allocation score on pcmk1: 0 ++native_color: FAKE4 allocation score on pcmk2: 0 ++native_color: FAKE4 allocation score on pcmk3: 0 ++native_color: FAKE4 allocation score on pcmk4: 0 ++native_color: FAKE4 allocation score on pcmk_remote1: 0 ++native_color: FAKE4 allocation score on pcmk_remote2: 0 ++native_color: FAKE4 allocation score on pcmk_remote3: 0 ++native_color: FAKE4 allocation score on pcmk_remote4: 0 ++native_color: FAKE4 allocation score on pcmk_remote5: 0 ++native_color: FAKE40 allocation score on pcmk1: 0 ++native_color: FAKE40 allocation score on pcmk2: 0 ++native_color: FAKE40 allocation score on pcmk3: 0 ++native_color: FAKE40 allocation score on pcmk4: 0 ++native_color: FAKE40 allocation score on pcmk_remote1: 0 ++native_color: FAKE40 allocation score on pcmk_remote2: 0 ++native_color: FAKE40 allocation score on pcmk_remote3: 0 ++native_color: FAKE40 allocation score on pcmk_remote4: 0 ++native_color: FAKE40 allocation score on pcmk_remote5: 0 ++native_color: FAKE41 allocation score on pcmk1: 0 ++native_color: FAKE41 allocation score on pcmk2: 0 ++native_color: FAKE41 allocation score on pcmk3: 0 ++native_color: FAKE41 allocation score on pcmk4: 0 ++native_color: FAKE41 allocation score on pcmk_remote1: 0 ++native_color: FAKE41 allocation score on pcmk_remote2: 0 ++native_color: FAKE41 allocation score on pcmk_remote3: 0 ++native_color: FAKE41 allocation score on pcmk_remote4: 0 ++native_color: FAKE41 allocation score on pcmk_remote5: 0 ++native_color: FAKE42 allocation score on pcmk1: 0 ++native_color: FAKE42 allocation score on pcmk2: 0 ++native_color: FAKE42 allocation score on pcmk3: 0 ++native_color: FAKE42 allocation score on pcmk4: 0 ++native_color: FAKE42 allocation score on pcmk_remote1: 0 ++native_color: FAKE42 allocation score on pcmk_remote2: 0 ++native_color: FAKE42 allocation score on pcmk_remote3: 0 ++native_color: FAKE42 allocation score on pcmk_remote4: 0 ++native_color: FAKE42 allocation score on pcmk_remote5: 0 ++native_color: FAKE43 allocation score on pcmk1: 0 ++native_color: FAKE43 allocation score on pcmk2: 0 ++native_color: FAKE43 allocation score on pcmk3: 0 ++native_color: FAKE43 allocation score on pcmk4: 0 ++native_color: FAKE43 allocation score on pcmk_remote1: 0 ++native_color: FAKE43 allocation score on pcmk_remote2: 0 ++native_color: FAKE43 allocation score on pcmk_remote3: 0 ++native_color: FAKE43 allocation score on pcmk_remote4: 0 ++native_color: FAKE43 allocation score on pcmk_remote5: 0 ++native_color: FAKE44 allocation score on pcmk1: 0 ++native_color: FAKE44 allocation score on pcmk2: 0 ++native_color: FAKE44 allocation score on pcmk3: 0 ++native_color: FAKE44 allocation score on pcmk4: 0 ++native_color: FAKE44 allocation score on pcmk_remote1: 0 ++native_color: FAKE44 allocation score on pcmk_remote2: 0 ++native_color: FAKE44 allocation score on pcmk_remote3: 0 ++native_color: FAKE44 allocation score on pcmk_remote4: 0 ++native_color: FAKE44 allocation score on pcmk_remote5: 0 ++native_color: FAKE45 allocation score on pcmk1: 0 ++native_color: FAKE45 allocation score on pcmk2: 0 ++native_color: FAKE45 allocation score on pcmk3: 0 ++native_color: FAKE45 allocation score on pcmk4: 0 ++native_color: FAKE45 allocation score on pcmk_remote1: 0 ++native_color: FAKE45 allocation score on pcmk_remote2: 0 ++native_color: FAKE45 allocation score on pcmk_remote3: 0 ++native_color: FAKE45 allocation score on pcmk_remote4: 0 ++native_color: FAKE45 allocation score on pcmk_remote5: 0 ++native_color: FAKE46 allocation score on pcmk1: 0 ++native_color: FAKE46 allocation score on pcmk2: 0 ++native_color: FAKE46 allocation score on pcmk3: 0 ++native_color: FAKE46 allocation score on pcmk4: 0 ++native_color: FAKE46 allocation score on pcmk_remote1: 0 ++native_color: FAKE46 allocation score on pcmk_remote2: 0 ++native_color: FAKE46 allocation score on pcmk_remote3: 0 ++native_color: FAKE46 allocation score on pcmk_remote4: 0 ++native_color: FAKE46 allocation score on pcmk_remote5: 0 ++native_color: FAKE47 allocation score on pcmk1: 0 ++native_color: FAKE47 allocation score on pcmk2: 0 ++native_color: FAKE47 allocation score on pcmk3: 0 ++native_color: FAKE47 allocation score on pcmk4: 0 ++native_color: FAKE47 allocation score on pcmk_remote1: 0 ++native_color: FAKE47 allocation score on pcmk_remote2: 0 ++native_color: FAKE47 allocation score on pcmk_remote3: 0 ++native_color: FAKE47 allocation score on pcmk_remote4: 0 ++native_color: FAKE47 allocation score on pcmk_remote5: 0 ++native_color: FAKE48 allocation score on pcmk1: 0 ++native_color: FAKE48 allocation score on pcmk2: 0 ++native_color: FAKE48 allocation score on pcmk3: 0 ++native_color: FAKE48 allocation score on pcmk4: 0 ++native_color: FAKE48 allocation score on pcmk_remote1: 0 ++native_color: FAKE48 allocation score on pcmk_remote2: 0 ++native_color: FAKE48 allocation score on pcmk_remote3: 0 ++native_color: FAKE48 allocation score on pcmk_remote4: 0 ++native_color: FAKE48 allocation score on pcmk_remote5: 0 ++native_color: FAKE49 allocation score on pcmk1: 0 ++native_color: FAKE49 allocation score on pcmk2: 0 ++native_color: FAKE49 allocation score on pcmk3: 0 ++native_color: FAKE49 allocation score on pcmk4: 0 ++native_color: FAKE49 allocation score on pcmk_remote1: 0 ++native_color: FAKE49 allocation score on pcmk_remote2: 0 ++native_color: FAKE49 allocation score on pcmk_remote3: 0 ++native_color: FAKE49 allocation score on pcmk_remote4: 0 ++native_color: FAKE49 allocation score on pcmk_remote5: 0 ++native_color: FAKE5 allocation score on pcmk1: 0 ++native_color: FAKE5 allocation score on pcmk2: 0 ++native_color: FAKE5 allocation score on pcmk3: 0 ++native_color: FAKE5 allocation score on pcmk4: 0 ++native_color: FAKE5 allocation score on pcmk_remote1: 0 ++native_color: FAKE5 allocation score on pcmk_remote2: 0 ++native_color: FAKE5 allocation score on pcmk_remote3: 0 ++native_color: FAKE5 allocation score on pcmk_remote4: 0 ++native_color: FAKE5 allocation score on pcmk_remote5: 0 ++native_color: FAKE50 allocation score on pcmk1: 0 ++native_color: FAKE50 allocation score on pcmk2: 0 ++native_color: FAKE50 allocation score on pcmk3: 0 ++native_color: FAKE50 allocation score on pcmk4: 0 ++native_color: FAKE50 allocation score on pcmk_remote1: 0 ++native_color: FAKE50 allocation score on pcmk_remote2: 0 ++native_color: FAKE50 allocation score on pcmk_remote3: 0 ++native_color: FAKE50 allocation score on pcmk_remote4: 0 ++native_color: FAKE50 allocation score on pcmk_remote5: 0 ++native_color: FAKE6 allocation score on pcmk1: 0 ++native_color: FAKE6 allocation score on pcmk2: 0 ++native_color: FAKE6 allocation score on pcmk3: 0 ++native_color: FAKE6 allocation score on pcmk4: 0 ++native_color: FAKE6 allocation score on pcmk_remote1: 0 ++native_color: FAKE6 allocation score on pcmk_remote2: 0 ++native_color: FAKE6 allocation score on pcmk_remote3: 0 ++native_color: FAKE6 allocation score on pcmk_remote4: 0 ++native_color: FAKE6 allocation score on pcmk_remote5: 0 ++native_color: FAKE7 allocation score on pcmk1: 0 ++native_color: FAKE7 allocation score on pcmk2: 0 ++native_color: FAKE7 allocation score on pcmk3: 0 ++native_color: FAKE7 allocation score on pcmk4: 0 ++native_color: FAKE7 allocation score on pcmk_remote1: 0 ++native_color: FAKE7 allocation score on pcmk_remote2: 0 ++native_color: FAKE7 allocation score on pcmk_remote3: 0 ++native_color: FAKE7 allocation score on pcmk_remote4: 0 ++native_color: FAKE7 allocation score on pcmk_remote5: 0 ++native_color: FAKE8 allocation score on pcmk1: 0 ++native_color: FAKE8 allocation score on pcmk2: 0 ++native_color: FAKE8 allocation score on pcmk3: 0 ++native_color: FAKE8 allocation score on pcmk4: 0 ++native_color: FAKE8 allocation score on pcmk_remote1: 0 ++native_color: FAKE8 allocation score on pcmk_remote2: 0 ++native_color: FAKE8 allocation score on pcmk_remote3: 0 ++native_color: FAKE8 allocation score on pcmk_remote4: 0 ++native_color: FAKE8 allocation score on pcmk_remote5: 0 ++native_color: FAKE9 allocation score on pcmk1: 0 ++native_color: FAKE9 allocation score on pcmk2: 0 ++native_color: FAKE9 allocation score on pcmk3: 0 ++native_color: FAKE9 allocation score on pcmk4: 0 ++native_color: FAKE9 allocation score on pcmk_remote1: 0 ++native_color: FAKE9 allocation score on pcmk_remote2: 0 ++native_color: FAKE9 allocation score on pcmk_remote3: 0 ++native_color: FAKE9 allocation score on pcmk_remote4: 0 ++native_color: FAKE9 allocation score on pcmk_remote5: 0 ++native_color: pcmk_remote1 allocation score on pcmk1: 0 ++native_color: pcmk_remote1 allocation score on pcmk2: 0 ++native_color: pcmk_remote1 allocation score on pcmk3: 0 ++native_color: pcmk_remote1 allocation score on pcmk4: 0 ++native_color: pcmk_remote1 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote1 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk1: 0 ++native_color: pcmk_remote2 allocation score on pcmk2: 0 ++native_color: pcmk_remote2 allocation score on pcmk3: 0 ++native_color: pcmk_remote2 allocation score on pcmk4: 0 ++native_color: pcmk_remote2 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote2 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk1: 0 ++native_color: pcmk_remote3 allocation score on pcmk2: 0 ++native_color: pcmk_remote3 allocation score on pcmk3: 0 ++native_color: pcmk_remote3 allocation score on pcmk4: 0 ++native_color: pcmk_remote3 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote3 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk1: 0 ++native_color: pcmk_remote4 allocation score on pcmk2: 0 ++native_color: pcmk_remote4 allocation score on pcmk3: 0 ++native_color: pcmk_remote4 allocation score on pcmk4: 0 ++native_color: pcmk_remote4 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote4 allocation score on pcmk_remote5: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk1: 0 ++native_color: pcmk_remote5 allocation score on pcmk2: 0 ++native_color: pcmk_remote5 allocation score on pcmk3: 0 ++native_color: pcmk_remote5 allocation score on pcmk4: 0 ++native_color: pcmk_remote5 allocation score on pcmk_remote1: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote2: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote3: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote4: -INFINITY ++native_color: pcmk_remote5 allocation score on pcmk_remote5: -INFINITY ++native_color: shooter allocation score on pcmk1: 0 ++native_color: shooter allocation score on pcmk2: 0 ++native_color: shooter allocation score on pcmk3: 0 ++native_color: shooter allocation score on pcmk4: 0 ++native_color: shooter allocation score on pcmk_remote1: -INFINITY ++native_color: shooter allocation score on pcmk_remote2: -INFINITY ++native_color: shooter allocation score on pcmk_remote3: -INFINITY ++native_color: shooter allocation score on pcmk_remote4: -INFINITY ++native_color: shooter allocation score on pcmk_remote5: -INFINITY +diff --git a/pengine/test10/remote-partial-migrate2.summary b/pengine/test10/remote-partial-migrate2.summary +new file mode 100644 +index 0000000..6a65975 +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate2.summary +@@ -0,0 +1,207 @@ ++ ++Current cluster status: ++Node pcmk4 (4): UNCLEAN (offline) ++Online: [ pcmk1 pcmk2 pcmk3 ] ++RemoteOnline: [ pcmk_remote1 pcmk_remote2 pcmk_remote3 pcmk_remote5 ] ++RemoteOFFLINE: [ pcmk_remote4 ] ++ ++ shooter (stonith:fence_docker_cts): Started pcmk3 ++ pcmk_remote1 (ocf::pacemaker:remote): Started pcmk1 ++ pcmk_remote2 (ocf::pacemaker:remote): Started [ pcmk1 pcmk3 ] ++ pcmk_remote3 (ocf::pacemaker:remote): Started pcmk3 ++ pcmk_remote4 (ocf::pacemaker:remote): Stopped ++ pcmk_remote5 (ocf::pacemaker:remote): Started pcmk1 ++ FAKE1 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE2 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE3 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE4 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE5 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE6 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE7 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE8 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE9 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE10 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE11 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE12 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE13 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE14 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE15 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE16 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE17 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE18 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE19 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE20 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE21 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE22 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE23 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE24 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE25 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE26 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE27 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE28 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE29 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE30 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE31 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE32 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE33 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE34 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE35 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE36 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE37 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE38 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE39 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE40 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE41 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE42 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE43 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE44 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE45 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE46 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE47 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE48 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE49 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE50 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ ++Transition Summary: ++ * Migrate pcmk_remote2 (Started pcmk3 -> pcmk1) ++ * Start pcmk_remote4 (pcmk2) ++ * Migrate pcmk_remote5 (Started pcmk1 -> pcmk2) ++ * Move FAKE5 (Started pcmk1 -> pcmk_remote4) ++ * Move FAKE9 (Started pcmk2 -> pcmk_remote4) ++ * Move FAKE12 (Started pcmk1 -> pcmk2) ++ * Move FAKE14 (Started pcmk2 -> pcmk_remote1) ++ * Move FAKE17 (Started pcmk_remote1 -> pcmk_remote4) ++ * Move FAKE25 (Started pcmk_remote1 -> pcmk_remote4) ++ * Move FAKE28 (Started pcmk3 -> pcmk1) ++ * Move FAKE30 (Started pcmk1 -> pcmk_remote1) ++ * Move FAKE33 (Started pcmk_remote1 -> pcmk_remote4) ++ * Move FAKE38 (Started pcmk2 -> pcmk_remote1) ++ * Move FAKE39 (Started pcmk1 -> pcmk_remote2) ++ * Move FAKE41 (Started pcmk_remote2 -> pcmk_remote4) ++ * Move FAKE47 (Started pcmk_remote1 -> pcmk_remote2) ++ * Move FAKE48 (Started pcmk1 -> pcmk_remote3) ++ * Move FAKE49 (Started pcmk_remote3 -> pcmk_remote4) ++ ++Executing cluster transition: ++ * Resource action: FAKE5 stop on pcmk1 ++ * Resource action: FAKE9 stop on pcmk2 ++ * Resource action: FAKE12 stop on pcmk1 ++ * Resource action: FAKE14 stop on pcmk2 ++ * Resource action: FAKE17 stop on pcmk_remote1 ++ * Resource action: FAKE25 stop on pcmk_remote1 ++ * Resource action: FAKE28 stop on pcmk3 ++ * Resource action: FAKE30 stop on pcmk1 ++ * Resource action: FAKE33 stop on pcmk_remote1 ++ * Resource action: FAKE38 stop on pcmk2 ++ * Resource action: FAKE39 stop on pcmk1 ++ * Resource action: FAKE47 stop on pcmk_remote1 ++ * Resource action: FAKE48 stop on pcmk1 ++ * Resource action: FAKE49 stop on pcmk_remote3 ++ * Fencing pcmk4 (reboot) ++ * Pseudo action: stonith_complete ++ * Resource action: pcmk_remote2 migrate_from on pcmk1 ++ * Resource action: pcmk_remote2 stop on pcmk3 ++ * Resource action: pcmk_remote4 start on pcmk2 ++ * Resource action: pcmk_remote5 migrate_to on pcmk1 ++ * Resource action: FAKE5 start on pcmk_remote4 ++ * Resource action: FAKE9 start on pcmk_remote4 ++ * Resource action: FAKE12 start on pcmk2 ++ * Resource action: FAKE14 start on pcmk_remote1 ++ * Resource action: FAKE17 start on pcmk_remote4 ++ * Resource action: FAKE25 start on pcmk_remote4 ++ * Resource action: FAKE28 start on pcmk1 ++ * Resource action: FAKE30 start on pcmk_remote1 ++ * Resource action: FAKE33 start on pcmk_remote4 ++ * Resource action: FAKE38 start on pcmk_remote1 ++ * Resource action: FAKE48 start on pcmk_remote3 ++ * Resource action: FAKE49 start on pcmk_remote4 ++ * Pseudo action: pcmk_remote2_start_0 ++ * Resource action: pcmk_remote4 monitor=60000 on pcmk2 ++ * Resource action: pcmk_remote5 migrate_from on pcmk2 ++ * Resource action: pcmk_remote5 stop on pcmk1 ++ * Resource action: FAKE5 monitor=10000 on pcmk_remote4 ++ * Resource action: FAKE9 monitor=10000 on pcmk_remote4 ++ * Resource action: FAKE12 monitor=10000 on pcmk2 ++ * Resource action: FAKE14 monitor=10000 on pcmk_remote1 ++ * Resource action: FAKE17 monitor=10000 on pcmk_remote4 ++ * Resource action: FAKE25 monitor=10000 on pcmk_remote4 ++ * Resource action: FAKE28 monitor=10000 on pcmk1 ++ * Resource action: FAKE30 monitor=10000 on pcmk_remote1 ++ * Resource action: FAKE33 monitor=10000 on pcmk_remote4 ++ * Resource action: FAKE38 monitor=10000 on pcmk_remote1 ++ * Resource action: FAKE39 start on pcmk_remote2 ++ * Resource action: FAKE41 stop on pcmk_remote2 ++ * Resource action: FAKE47 start on pcmk_remote2 ++ * Resource action: FAKE48 monitor=10000 on pcmk_remote3 ++ * Resource action: FAKE49 monitor=10000 on pcmk_remote4 ++ * Pseudo action: all_stopped ++ * Resource action: pcmk_remote2 monitor=60000 on pcmk1 ++ * Pseudo action: pcmk_remote5_start_0 ++ * Resource action: FAKE39 monitor=10000 on pcmk_remote2 ++ * Resource action: FAKE41 start on pcmk_remote4 ++ * Resource action: FAKE47 monitor=10000 on pcmk_remote2 ++ * Resource action: pcmk_remote5 monitor=60000 on pcmk2 ++ * Resource action: FAKE41 monitor=10000 on pcmk_remote4 ++ ++Revised cluster status: ++Online: [ pcmk1 pcmk2 pcmk3 ] ++OFFLINE: [ pcmk4 ] ++RemoteOnline: [ pcmk_remote1 pcmk_remote2 pcmk_remote3 pcmk_remote4 pcmk_remote5 ] ++ ++ shooter (stonith:fence_docker_cts): Started pcmk3 ++ pcmk_remote1 (ocf::pacemaker:remote): Started pcmk1 ++ pcmk_remote2 (ocf::pacemaker:remote): Started pcmk1 ++ pcmk_remote3 (ocf::pacemaker:remote): Started pcmk3 ++ pcmk_remote4 (ocf::pacemaker:remote): Started pcmk2 ++ pcmk_remote5 (ocf::pacemaker:remote): Started pcmk2 ++ FAKE1 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE2 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE3 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE4 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE5 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE6 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE7 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE8 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE9 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE10 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE11 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE12 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE13 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE14 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE15 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE16 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE17 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE18 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE19 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE20 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE21 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE22 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE23 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE24 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE25 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE26 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE27 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE28 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE29 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE30 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE31 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE32 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE33 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE34 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE35 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE36 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE37 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE38 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE39 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE40 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE41 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE42 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ FAKE43 (ocf::heartbeat:Dummy): Started pcmk_remote1 ++ FAKE44 (ocf::heartbeat:Dummy): Started pcmk2 ++ FAKE45 (ocf::heartbeat:Dummy): Started pcmk3 ++ FAKE46 (ocf::heartbeat:Dummy): Started pcmk1 ++ FAKE47 (ocf::heartbeat:Dummy): Started pcmk_remote2 ++ FAKE48 (ocf::heartbeat:Dummy): Started pcmk_remote3 ++ FAKE49 (ocf::heartbeat:Dummy): Started pcmk_remote4 ++ FAKE50 (ocf::heartbeat:Dummy): Started pcmk_remote5 ++ +diff --git a/pengine/test10/remote-partial-migrate2.xml b/pengine/test10/remote-partial-migrate2.xml +new file mode 100644 +index 0000000..ed9299b +--- /dev/null ++++ b/pengine/test10/remote-partial-migrate2.xml +@@ -0,0 +1,1947 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.2" epoch="328" num_updates="54336" admin_epoch="0" cib-last-written="Fri Dec 12 03:38:23 2014" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-34341bd"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="mycluster"/> ++ <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1418355503"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="3" uname="pcmk3"/> ++ <node id="1" uname="pcmk1"/> ++ <node id="4" uname="pcmk4"/> ++ <node id="2" uname="pcmk2"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_docker_cts"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote1" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote1-instance_attributes"> ++ <nvpair id="pcmk_remote1-instance_attributes-server" name="server" value="172.17.201.1"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote1-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote1-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote1-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote2" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote2-instance_attributes"> ++ <nvpair id="pcmk_remote2-instance_attributes-server" name="server" value="172.17.201.2"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote2-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote2-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote2-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote3" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote3-instance_attributes"> ++ <nvpair id="pcmk_remote3-instance_attributes-server" name="server" value="172.17.201.3"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote3-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote3-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote3-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote4" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote4-instance_attributes"> ++ <nvpair id="pcmk_remote4-instance_attributes-server" name="server" value="172.17.201.4"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote4-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote4-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote4-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="pcmk_remote5" provider="pacemaker" type="remote"> ++ <instance_attributes id="pcmk_remote5-instance_attributes"> ++ <nvpair id="pcmk_remote5-instance_attributes-server" name="server" value="172.17.201.5"/> ++ </instance_attributes> ++ <operations> ++ <op id="pcmk_remote5-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="pcmk_remote5-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ <op id="pcmk_remote5-start-timeout-10s" interval="0s" name="start" timeout="10s"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE1" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE1-instance_attributes"/> ++ <operations> ++ <op id="FAKE1-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE1-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE1-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE2" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE2-instance_attributes"/> ++ <operations> ++ <op id="FAKE2-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE2-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE2-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE3" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE3-instance_attributes"/> ++ <operations> ++ <op id="FAKE3-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE3-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE3-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE4" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE4-instance_attributes"/> ++ <operations> ++ <op id="FAKE4-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE4-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE4-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE5" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE5-instance_attributes"/> ++ <operations> ++ <op id="FAKE5-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE5-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE5-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE6" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE6-instance_attributes"/> ++ <operations> ++ <op id="FAKE6-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE6-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE6-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE7" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE7-instance_attributes"/> ++ <operations> ++ <op id="FAKE7-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE7-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE7-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE8" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE8-instance_attributes"/> ++ <operations> ++ <op id="FAKE8-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE8-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE8-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE9" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE9-instance_attributes"/> ++ <operations> ++ <op id="FAKE9-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE9-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE9-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE10" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE10-instance_attributes"/> ++ <operations> ++ <op id="FAKE10-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE10-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE10-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE11" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE11-instance_attributes"/> ++ <operations> ++ <op id="FAKE11-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE11-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE11-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE12" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE12-instance_attributes"/> ++ <operations> ++ <op id="FAKE12-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE12-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE12-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE13" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE13-instance_attributes"/> ++ <operations> ++ <op id="FAKE13-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE13-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE13-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE14" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE14-instance_attributes"/> ++ <operations> ++ <op id="FAKE14-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE14-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE14-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE15" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE15-instance_attributes"/> ++ <operations> ++ <op id="FAKE15-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE15-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE15-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE16" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE16-instance_attributes"/> ++ <operations> ++ <op id="FAKE16-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE16-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE16-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE17" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE17-instance_attributes"/> ++ <operations> ++ <op id="FAKE17-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE17-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE17-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE18" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE18-instance_attributes"/> ++ <operations> ++ <op id="FAKE18-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE18-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE18-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE19" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE19-instance_attributes"/> ++ <operations> ++ <op id="FAKE19-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE19-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE19-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE20" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE20-instance_attributes"/> ++ <operations> ++ <op id="FAKE20-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE20-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE20-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE21" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE21-instance_attributes"/> ++ <operations> ++ <op id="FAKE21-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE21-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE21-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE22" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE22-instance_attributes"/> ++ <operations> ++ <op id="FAKE22-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE22-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE22-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE23" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE23-instance_attributes"/> ++ <operations> ++ <op id="FAKE23-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE23-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE23-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE24" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE24-instance_attributes"/> ++ <operations> ++ <op id="FAKE24-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE24-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE24-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE25" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE25-instance_attributes"/> ++ <operations> ++ <op id="FAKE25-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE25-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE25-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE26" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE26-instance_attributes"/> ++ <operations> ++ <op id="FAKE26-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE26-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE26-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE27" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE27-instance_attributes"/> ++ <operations> ++ <op id="FAKE27-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE27-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE27-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE28" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE28-instance_attributes"/> ++ <operations> ++ <op id="FAKE28-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE28-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE28-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE29" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE29-instance_attributes"/> ++ <operations> ++ <op id="FAKE29-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE29-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE29-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE30" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE30-instance_attributes"/> ++ <operations> ++ <op id="FAKE30-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE30-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE30-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE31" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE31-instance_attributes"/> ++ <operations> ++ <op id="FAKE31-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE31-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE31-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE32" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE32-instance_attributes"/> ++ <operations> ++ <op id="FAKE32-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE32-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE32-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE33" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE33-instance_attributes"/> ++ <operations> ++ <op id="FAKE33-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE33-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE33-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE34" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE34-instance_attributes"/> ++ <operations> ++ <op id="FAKE34-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE34-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE34-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE35" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE35-instance_attributes"/> ++ <operations> ++ <op id="FAKE35-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE35-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE35-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE36" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE36-instance_attributes"/> ++ <operations> ++ <op id="FAKE36-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE36-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE36-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE37" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE37-instance_attributes"/> ++ <operations> ++ <op id="FAKE37-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE37-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE37-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE38" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE38-instance_attributes"/> ++ <operations> ++ <op id="FAKE38-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE38-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE38-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE39" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE39-instance_attributes"/> ++ <operations> ++ <op id="FAKE39-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE39-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE39-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE40" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE40-instance_attributes"/> ++ <operations> ++ <op id="FAKE40-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE40-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE40-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE41" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE41-instance_attributes"/> ++ <operations> ++ <op id="FAKE41-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE41-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE41-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE42" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE42-instance_attributes"/> ++ <operations> ++ <op id="FAKE42-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE42-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE42-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE43" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE43-instance_attributes"/> ++ <operations> ++ <op id="FAKE43-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE43-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE43-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE44" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE44-instance_attributes"/> ++ <operations> ++ <op id="FAKE44-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE44-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE44-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE45" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE45-instance_attributes"/> ++ <operations> ++ <op id="FAKE45-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE45-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE45-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE46" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE46-instance_attributes"/> ++ <operations> ++ <op id="FAKE46-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE46-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE46-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE47" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE47-instance_attributes"/> ++ <operations> ++ <op id="FAKE47-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE47-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE47-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE48" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE48-instance_attributes"/> ++ <operations> ++ <op id="FAKE48-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE48-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE48-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE49" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE49-instance_attributes"/> ++ <operations> ++ <op id="FAKE49-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE49-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE49-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE50" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE50-instance_attributes"/> ++ <operations> ++ <op id="FAKE50-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE50-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE50-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ </resources> ++ <constraints/> ++ </configuration> ++ <status> ++ <node_state id="2" uname="pcmk2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-2-last-failure-pcmk_remote4" name="last-failure-pcmk_remote4" value="1418355450"/> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;64:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="88" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="72:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;72:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="164" rc-code="7" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="167:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;167:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="231" rc-code="0" op-status="0" interval="0" last-run="1418355550" last-rc-change="1418355550" exec-time="75" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE37_monitor_10000" operation_key="FAKE37_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="168:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;168:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="232" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355550" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="70:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;70:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="156" rc-code="7" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="49" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="71:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;71:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="160" rc-code="7" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="57" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="67:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;67:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="144" rc-code="7" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_failure_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="74:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;74:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="174" rc-code="0" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="185:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;185:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="172" rc-code="0" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE38_monitor_10000" operation_key="FAKE38_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="186:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;186:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="173" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355411" exec-time="38" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="44" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="68:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;68:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418355408" last-rc-change="1418355408" exec-time="41" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="69:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;69:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418355408" last-rc-change="1418355408" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="70:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;70:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418355408" last-rc-change="1418355408" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="71:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;71:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418355408" last-rc-change="1418355408" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="72:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;72:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418355408" last-rc-change="1418355408" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="73:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;73:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418355408" last-rc-change="1418355408" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="74:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;74:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418355408" last-rc-change="1418355408" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="75:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;75:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418355409" last-rc-change="1418355409" exec-time="79" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="87:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;87:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="225" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="89" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE9_monitor_10000" operation_key="FAKE9_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="88:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;88:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="226" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355484" exec-time="44" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:198:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:198:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="224" rc-code="7" op-status="0" interval="0" last-run="1418355425" last-rc-change="1418355425" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote1_last_0" operation_key="pcmk_remote1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;63:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="1" rc-code="7" op-status="0" interval="0" last-run="1418355407" last-rc-change="1418355407" exec-time="0" queue-time="0" op-digest="ef8bb6d8fee23eeb10cda8633b3634da" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote2" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote2_last_0" operation_key="pcmk_remote2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;64:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="2" rc-code="7" op-status="0" interval="0" last-run="1418355407" last-rc-change="1418355407" exec-time="0" queue-time="0" op-digest="6ba25fc444142a68b950347505d00b3e" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote3" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote3_last_0" operation_key="pcmk_remote3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="65:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;65:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="3" rc-code="7" op-status="0" interval="0" last-run="1418355407" last-rc-change="1418355407" exec-time="0" queue-time="0" op-digest="1d3716b912f4312b45dbe3ca420f177a" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_failure_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="65:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;65:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="94" rc-code="0" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="155:194:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;155:194:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="92" rc-code="0" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="11" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE20_monitor_10000" operation_key="FAKE20_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="156:194:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;156:194:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="93" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355410" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="98" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="44" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;58:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="53" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="106" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="60:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;60:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="110" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote4_last_0" operation_key="pcmk_remote4_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:46:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;77:46:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="21" rc-code="0" op-status="0" interval="0" last-run="1418355577" last-rc-change="1418355577" exec-time="0" queue-time="0" op-digest="26ba620744979fe6eb89940dac6aa339" on_node="pcmk2" migrate_source="pcmk2" migrate_target="pcmk4"/> ++ <lrm_rsc_op id="pcmk_remote4_monitor_60000" operation_key="pcmk_remote4_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="131:212:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;131:212:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="17" rc-code="0" op-status="0" interval="60000" last-rc-change="1418355506" exec-time="0" queue-time="0" op-digest="bd07c2deb2e92be7c37c1532a12b386b" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote5" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote5_last_0" operation_key="pcmk_remote5_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="116:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;116:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1418355538" last-rc-change="1418355538" exec-time="0" queue-time="0" migrate_source="pcmk2" migrate_target="pcmk1" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a" on_node="pcmk2"/> ++ <lrm_rsc_op id="pcmk_remote5_monitor_60000" operation_key="pcmk_remote5_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="123:203:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;123:203:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="14" rc-code="0" op-status="0" interval="60000" last-rc-change="1418355452" exec-time="0" queue-time="0" op-digest="097ac821a75a8a47ff3e1489f58e3bd3" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;63:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="122" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="62:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;62:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="167:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;167:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="139" rc-code="0" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE29_monitor_10000" operation_key="FAKE29_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="168:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;168:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="140" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355411" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;64:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="38" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="186" rc-code="7" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="60:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;60:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="194" rc-code="7" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_failure_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="62:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;62:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="200" rc-code="0" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="176:196:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;176:196:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="198" rc-code="0" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE44_monitor_10000" operation_key="FAKE44_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="177:196:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;177:196:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="199" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355412" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="shooter" type="fence_docker_cts" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="62:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;62:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1418355406" last-rc-change="1418355406" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:197:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;58:197:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="208" rc-code="7" op-status="0" interval="0" last-run="1418355413" last-rc-change="1418355413" exec-time="46" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:197:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:197:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="212" rc-code="7" op-status="0" interval="0" last-run="1418355413" last-rc-change="1418355413" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="55:198:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;55:198:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="216" rc-code="7" op-status="0" interval="0" last-run="1418355424" last-rc-change="1418355424" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="56:198:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;56:198:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="220" rc-code="7" op-status="0" interval="0" last-run="1418355424" last-rc-change="1418355424" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:197:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:197:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="204" rc-code="7" op-status="0" interval="0" last-run="1418355413" last-rc-change="1418355413" exec-time="41" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;58:196:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418355412" last-rc-change="1418355412" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="77:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;77:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418355409" last-rc-change="1418355409" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="91:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;91:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="228" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="43" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_failure_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="79:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;79:193:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="60" rc-code="0" op-status="0" interval="0" last-run="1418355409" last-rc-change="1418355409" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="132:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;132:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="136" rc-code="0" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;58:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="64" rc-code="7" op-status="0" interval="0" last-run="1418355409" last-rc-change="1418355409" exec-time="47" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="98:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;98:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="229" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE14_monitor_10000" operation_key="FAKE14_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="99:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;99:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="230" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355484" exec-time="26" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="60:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;60:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="72" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="76" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="62:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;62:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="80" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;63:194:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="84" rc-code="7" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="38" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="68:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;68:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="148" rc-code="7" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="69:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;69:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="152" rc-code="7" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="66:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;66:195:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="40" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="3" uname="pcmk3" in_ccm="true" crmd="online" crm-debug-origin="post_cache_update" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-3-last-failure-pcmk_remote5" name="last-failure-pcmk_remote5" value="1418354884"/> ++ <nvpair id="status-3-last-failure-pcmk_remote4" name="last-failure-pcmk_remote4" value="1418355472"/> ++ <nvpair id="status-3-last-failure-pcmk_remote1" name="last-failure-pcmk_remote1" value="1418355294"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="111:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;111:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="301" rc-code="0" op-status="0" interval="0" last-run="1418355307" last-rc-change="1418355307" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE19_monitor_10000" operation_key="FAKE19_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="112:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;112:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="302" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355307" exec-time="25" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="151:8:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;151:8:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="237" rc-code="0" op-status="0" interval="0" last-run="1418354425" last-rc-change="1418354425" exec-time="44" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE36_monitor_10000" operation_key="FAKE36_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="152:8:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;152:8:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="238" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354425" exec-time="39" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_failure_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="72:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:0;72:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="174" rc-code="0" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="153:0:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;153:0:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="232" rc-code="0" op-status="0" interval="0" last-run="1418354403" last-rc-change="1418354403" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="69:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;69:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="160" rc-code="7" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="70:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;70:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="164" rc-code="7" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="66:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;66:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="138" rc-code="7" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;58:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;59:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="69:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;69:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="66" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="70:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;70:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="71:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;71:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="72:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;72:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="73:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;73:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="36" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="93:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;93:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="266" rc-code="0" op-status="0" interval="0" last-run="1418354956" last-rc-change="1418354956" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="75:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;75:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="38" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="76:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;76:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="92:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;92:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="258" rc-code="0" op-status="0" interval="0" last-run="1418354676" last-rc-change="1418354676" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:33:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;57:33:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="228" rc-code="7" op-status="0" interval="0" last-run="1418354391" last-rc-change="1418354391" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote1_last_0" operation_key="pcmk_remote1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;64:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="56" rc-code="7" op-status="0" interval="0" last-run="1418355327" last-rc-change="1418355327" exec-time="0" queue-time="0" op-digest="ef8bb6d8fee23eeb10cda8633b3634da" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote2" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote2_last_0" operation_key="pcmk_remote2_migrate_to_0" operation="migrate_to" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="115:167:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;115:167:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="51" rc-code="0" op-status="0" interval="0" last-run="1418355284" last-rc-change="1418355284" exec-time="0" queue-time="0" migrate_source="pcmk3" migrate_target="pcmk1" op-digest="6ba25fc444142a68b950347505d00b3e" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote3" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote3_last_0" operation_key="pcmk_remote3_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="105:0:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;105:0:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="60" rc-code="0" op-status="0" interval="0" last-run="1418355536" last-rc-change="1418355536" exec-time="0" queue-time="0" op-digest="1d3716b912f4312b45dbe3ca420f177a" on_node="pcmk3"/> ++ <lrm_rsc_op id="pcmk_remote3_monitor_60000" operation_key="pcmk_remote3_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="113:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;113:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="61" rc-code="0" op-status="0" interval="60000" last-rc-change="1418355537" exec-time="0" queue-time="0" op-digest="6d8c9ca142238d41ca7db26324753a2f" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="118:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;118:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="306" rc-code="0" op-status="0" interval="0" last-run="1418355389" last-rc-change="1418355389" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_failure_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="67:29:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:0;67:29:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="98" rc-code="0" op-status="0" interval="0" last-run="1418354376" last-rc-change="1418354376" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="151:155:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;151:155:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="296" rc-code="0" op-status="0" interval="0" last-run="1418355234" last-rc-change="1418355234" exec-time="45" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;57:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1418354376" last-rc-change="1418354376" exec-time="47" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;58:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="106" rc-code="7" op-status="0" interval="0" last-run="1418354376" last-rc-change="1418354376" exec-time="55" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;59:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="110" rc-code="7" op-status="0" interval="0" last-run="1418354376" last-rc-change="1418354376" exec-time="46" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="131:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;131:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="292" rc-code="0" op-status="0" interval="0" last-run="1418355210" last-rc-change="1418355210" exec-time="17" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote4_last_0" operation_key="pcmk_remote4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;64:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="59" rc-code="7" op-status="0" interval="0" last-run="1418355505" last-rc-change="1418355505" exec-time="0" queue-time="0" op-digest="26ba620744979fe6eb89940dac6aa339" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote5" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote5_last_0" operation_key="pcmk_remote5_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="68:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;68:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="55" rc-code="0" op-status="0" interval="0" last-run="1418355307" last-rc-change="1418355307" exec-time="0" queue-time="0" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="125:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;125:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="309" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="44" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE27_monitor_10000" operation_key="FAKE27_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="126:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;126:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="310" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355485" exec-time="35" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;61:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="17" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="135:0:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;135:0:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="230" rc-code="0" op-status="0" interval="0" last-run="1418354403" last-rc-change="1418354403" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="140:7:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;140:7:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="235" rc-code="0" op-status="0" interval="0" last-run="1418354423" last-rc-change="1418354423" exec-time="43" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE28_monitor_10000" operation_key="FAKE28_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="141:7:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;141:7:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="236" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354423" exec-time="39" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;61:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="17" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="62:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;62:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="194" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;63:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="198" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;64:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="202" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="shooter" type="fence_docker_cts" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="46:176:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;46:176:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="303" rc-code="0" op-status="0" interval="0" last-run="1418355357" last-rc-change="1418355357" exec-time="1161" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="47:176:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;47:176:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="304" rc-code="0" op-status="0" interval="60000" last-rc-change="1418355360" exec-time="1194" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="66:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;66:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="210" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_failure_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="67:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:0;67:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="216" rc-code="0" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="178:0:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;178:0:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="234" rc-code="0" op-status="0" interval="0" last-run="1418354403" last-rc-change="1418354403" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:32:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;58:32:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="220" rc-code="7" op-status="0" interval="0" last-run="1418354379" last-rc-change="1418354379" exec-time="43" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="56:33:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;56:33:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="224" rc-code="7" op-status="0" interval="0" last-run="1418354390" last-rc-change="1418354390" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="163:10:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;163:10:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="239" rc-code="0" op-status="0" interval="0" last-run="1418354429" last-rc-change="1418354429" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE45_monitor_10000" operation_key="FAKE45_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="164:10:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;164:10:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="240" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354429" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="60:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;60:31:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="186" rc-code="7" op-status="0" interval="0" last-run="1418354378" last-rc-change="1418354378" exec-time="18" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="90:41:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;90:41:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="248" rc-code="0" op-status="0" interval="0" last-run="1418354596" last-rc-change="1418354596" exec-time="58" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="160:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;160:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="308" rc-code="0" op-status="0" interval="0" last-run="1418355406" last-rc-change="1418355406" exec-time="52" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_failure_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="80:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:0;80:28:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="60" rc-code="0" op-status="0" interval="0" last-run="1418354374" last-rc-change="1418354374" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="130:30:0:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:0;130:30:0:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="144" rc-code="0" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="131:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;131:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="311" rc-code="0" op-status="0" interval="0" last-run="1418355543" last-rc-change="1418355543" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE13_monitor_10000" operation_key="FAKE13_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="132:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;132:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="312" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355543" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="107:113:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;107:113:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="276" rc-code="0" op-status="0" interval="0" last-run="1418355022" last-rc-change="1418355022" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:29:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;61:29:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="72" rc-code="7" op-status="0" interval="0" last-run="1418354375" last-rc-change="1418354375" exec-time="49" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="62:29:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;62:29:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="76" rc-code="7" op-status="0" interval="0" last-run="1418354375" last-rc-change="1418354375" exec-time="45" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="118:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;118:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="270" rc-code="0" op-status="0" interval="0" last-run="1418354956" last-rc-change="1418354956" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="113:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;113:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="260" rc-code="0" op-status="0" interval="0" last-run="1418354677" last-rc-change="1418354677" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="67:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;67:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="142" rc-code="7" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="43" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="68:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;68:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="156" rc-code="7" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="18" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="65:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" transition-magic="0:7;65:30:7:d28aa942-47c3-42dd-bc84-7d5202f9016b" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418354377" last-rc-change="1418354377" exec-time="42" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="4" uname="pcmk4" in_ccm="false" crmd="offline" crm-debug-origin="post_cache_update" join="member" expected="member"> ++ <lrm id="4"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_docker_cts" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:38:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;62:38:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1418355568" last-rc-change="1418355568" exec-time="3" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk4"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote1_last_0" operation_key="pcmk_remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:39:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:39:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="1" rc-code="7" op-status="0" interval="0" last-run="1418355570" last-rc-change="1418355570" exec-time="0" queue-time="0" op-digest="ef8bb6d8fee23eeb10cda8633b3634da" on_node="pcmk4"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote2" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote2_last_0" operation_key="pcmk_remote2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:40:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:40:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="2" rc-code="7" op-status="0" interval="0" last-run="1418355570" last-rc-change="1418355570" exec-time="0" queue-time="0" op-digest="6ba25fc444142a68b950347505d00b3e" on_node="pcmk4"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote3" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote3_last_0" operation_key="pcmk_remote3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:41:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:41:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="3" rc-code="7" op-status="0" interval="0" last-run="1418355571" last-rc-change="1418355571" exec-time="0" queue-time="0" op-digest="1d3716b912f4312b45dbe3ca420f177a" on_node="pcmk4"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote4_last_0" operation_key="pcmk_remote4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:43:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:43:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="4" rc-code="7" op-status="0" interval="0" last-run="1418355572" last-rc-change="1418355572" exec-time="0" queue-time="0" op-digest="26ba620744979fe6eb89940dac6aa339" on_node="pcmk4"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="pcmk1" in_ccm="true" crmd="online" crm-debug-origin="post_cache_update" join="member" expected="member"> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-1-last-failure-pcmk_remote4" name="last-failure-pcmk_remote4" value="1418355461"/> ++ <nvpair id="status-1-last-failure-pcmk_remote1" name="last-failure-pcmk_remote1" value="1418355272"/> ++ <nvpair id="status-1-fail-count-FAKE1" name="fail-count-FAKE1" value="INFINITY"/> ++ <nvpair id="status-1-last-failure-FAKE1" name="last-failure-FAKE1" value="1418409729"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_failure_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;63:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="90" rc-code="0" op-status="0" interval="0" last-run="1418355068" last-rc-change="1418355068" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="145:155:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;145:155:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="292" rc-code="0" op-status="0" interval="0" last-run="1418355234" last-rc-change="1418355234" exec-time="41" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="55:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;55:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="172" rc-code="7" op-status="0" interval="0" last-run="1418355080" last-rc-change="1418355080" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="56:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;56:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="176" rc-code="7" op-status="0" interval="0" last-run="1418355080" last-rc-change="1418355080" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="53:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;53:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="164" rc-code="7" op-status="0" interval="0" last-run="1418355079" last-rc-change="1418355079" exec-time="55" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="163:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;163:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="385" rc-code="0" op-status="0" interval="0" last-run="1418355550" last-rc-change="1418355550" exec-time="69" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE35_monitor_10000" operation_key="FAKE35_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="164:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;164:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="386" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355550" exec-time="64" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="54:127:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;54:127:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="152" rc-code="7" op-status="0" interval="0" last-run="1418355071" last-rc-change="1418355071" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="162:157:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;162:157:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="300" rc-code="0" op-status="0" interval="0" last-run="1418355237" last-rc-change="1418355237" exec-time="45" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="150:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;150:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="377" rc-code="0" op-status="0" interval="0" last-run="1418355485" last-rc-change="1418355485" exec-time="48" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE39_monitor_10000" operation_key="FAKE39_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="151:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;151:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="378" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355485" exec-time="36" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="67:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;67:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418355066" last-rc-change="1418355066" exec-time="53" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="68:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;68:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418355066" last-rc-change="1418355066" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="69:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;69:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418355066" last-rc-change="1418355066" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="70:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;70:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418355067" last-rc-change="1418355067" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="83:201:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;83:201:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="365" rc-code="0" op-status="0" interval="0" last-run="1418355440" last-rc-change="1418355440" exec-time="296" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE5_monitor_10000" operation_key="FAKE5_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="80:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;80:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="366" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355484" exec-time="53" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="89:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;89:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="332" rc-code="0" op-status="0" interval="0" last-run="1418355389" last-rc-change="1418355389" exec-time="9" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="73:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;73:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418355067" last-rc-change="1418355067" exec-time="64" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="74:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;74:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418355067" last-rc-change="1418355067" exec-time="49" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="91:201:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;91:201:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="362" rc-code="0" op-status="0" interval="0" last-run="1418355432" last-rc-change="1418355432" exec-time="84" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="69:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;69:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="228" rc-code="7" op-status="0" interval="0" last-run="1418355083" last-rc-change="1418355083" exec-time="49" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote1_last_0" operation_key="pcmk_remote1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="125:174:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;125:174:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="31" rc-code="0" op-status="0" interval="0" last-run="1418355327" last-rc-change="1418355327" exec-time="0" queue-time="0" op-digest="ef8bb6d8fee23eeb10cda8633b3634da" on_node="pcmk1"/> ++ <lrm_rsc_op id="pcmk_remote1_monitor_60000" operation_key="pcmk_remote1_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="126:174:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;126:174:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="32" rc-code="0" op-status="0" interval="60000" last-rc-change="1418355328" exec-time="0" queue-time="0" op-digest="38e994d2ee0156aa833adf6eafbdbbbd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote2" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote2_last_0" operation_key="pcmk_remote2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;63:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="2" rc-code="7" op-status="0" interval="0" last-run="1418355065" last-rc-change="1418355065" exec-time="0" queue-time="0" op-digest="6ba25fc444142a68b950347505d00b3e" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote3" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote3_last_0" operation_key="pcmk_remote3_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="129:174:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;129:174:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="33" rc-code="0" op-status="0" interval="0" last-run="1418355328" last-rc-change="1418355328" exec-time="0" queue-time="0" op-digest="1d3716b912f4312b45dbe3ca420f177a" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="180:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;180:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="348" rc-code="0" op-status="0" interval="0" last-run="1418355406" last-rc-change="1418355406" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="112:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;112:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="369" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="40" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE21_monitor_10000" operation_key="FAKE21_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="113:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;113:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="370" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355484" exec-time="36" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="123:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;123:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="336" rc-code="0" op-status="0" interval="0" last-run="1418355389" last-rc-change="1418355389" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="58:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;58:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418355070" last-rc-change="1418355070" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418355070" last-rc-change="1418355070" exec-time="17" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="128:163:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;128:163:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="312" rc-code="0" op-status="0" interval="0" last-run="1418355256" last-rc-change="1418355256" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote4_last_0" operation_key="pcmk_remote4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="60:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;60:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="40" rc-code="7" op-status="0" interval="0" last-run="1418355505" last-rc-change="1418355505" exec-time="0" queue-time="0" op-digest="26ba620744979fe6eb89940dac6aa339" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="pcmk_remote5" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="pcmk_remote5_last_0" operation_key="pcmk_remote5_migrate_from_0" operation="migrate_from" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="120:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;120:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="41" rc-code="0" op-status="0" interval="0" last-run="1418355537" last-rc-change="1418355537" exec-time="0" queue-time="0" migrate_source="pcmk2" migrate_target="pcmk1" op-digest="ea8522d25650e62ca6ecefe8d7b2fe8a" on_node="pcmk1"/> ++ <lrm_rsc_op id="pcmk_remote5_monitor_60000" operation_key="pcmk_remote5_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="118:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;118:1:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="42" rc-code="0" op-status="0" interval="60000" last-rc-change="1418355538" exec-time="0" queue-time="0" op-digest="097ac821a75a8a47ff3e1489f58e3bd3" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="124:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;124:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="372" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418355070" last-rc-change="1418355070" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="200:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;200:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="352" rc-code="0" op-status="0" interval="0" last-run="1418355406" last-rc-change="1418355406" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="63:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;63:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418355070" last-rc-change="1418355070" exec-time="54" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="164:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;164:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="342" rc-code="0" op-status="0" interval="0" last-run="1418355390" last-rc-change="1418355390" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="196" rc-code="7" op-status="0" interval="0" last-run="1418355081" last-rc-change="1418355081" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="158:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;158:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="380" rc-code="0" op-status="0" interval="0" last-run="1418355485" last-rc-change="1418355485" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="233:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;233:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="356" rc-code="0" op-status="0" interval="0" last-run="1418355407" last-rc-change="1418355407" exec-time="56" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="shooter" type="fence_docker_cts" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="61:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1418355064" last-rc-change="1418355064" exec-time="2" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="182:8:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;182:8:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="387" rc-code="0" op-status="0" interval="0" last-run="1418355552" last-rc-change="1418355552" exec-time="67" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE46_monitor_10000" operation_key="FAKE46_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="183:8:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;183:8:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="388" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355553" exec-time="28" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="177:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;177:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="344" rc-code="0" op-status="0" interval="0" last-run="1418355390" last-rc-change="1418355390" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="169:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;169:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="381" rc-code="0" op-status="0" interval="0" last-run="1418355485" last-rc-change="1418355485" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE48_monitor_10000" operation_key="FAKE48_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="170:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;170:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="382" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355485" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="180:163:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;180:163:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="316" rc-code="0" op-status="0" interval="0" last-run="1418355256" last-rc-change="1418355256" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="64:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;64:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="208" rc-code="7" op-status="0" interval="0" last-run="1418355082" last-rc-change="1418355082" exec-time="55" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="188" rc-code="7" op-status="0" interval="0" last-run="1418355081" last-rc-change="1418355081" exec-time="47" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="76:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;76:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418355067" last-rc-change="1418355067" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="126:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;126:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="383" rc-code="0" op-status="0" interval="0" last-run="1418355543" last-rc-change="1418355543" exec-time="67" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE11_monitor_10000" operation_key="FAKE11_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="127:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;127:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="384" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355543" exec-time="14" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_failure_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="78:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;78:124:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="60" rc-code="0" op-status="0" interval="0" last-run="1418355067" last-rc-change="1418355067" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="94:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;94:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="367" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="62" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE12_monitor_10000" operation_key="FAKE12_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="95:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;95:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="368" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355484" exec-time="39" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="57:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="64" rc-code="7" op-status="0" interval="0" last-run="1418355068" last-rc-change="1418355068" exec-time="91" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="103:201:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;103:201:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="364" rc-code="0" op-status="0" interval="0" last-run="1418355432" last-rc-change="1418355432" exec-time="63" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="59:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="72" rc-code="7" op-status="0" interval="0" last-run="1418355068" last-rc-change="1418355068" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="60:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;60:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="76" rc-code="7" op-status="0" interval="0" last-run="1418355068" last-rc-change="1418355068" exec-time="56" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="110:163:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;110:163:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="310" rc-code="0" op-status="0" interval="0" last-run="1418355256" last-rc-change="1418355256" exec-time="54" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="62:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;62:125:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="84" rc-code="7" op-status="0" interval="0" last-run="1418355068" last-rc-change="1418355068" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="51:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;51:128:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="156" rc-code="7" op-status="0" interval="0" last-run="1418355079" last-rc-change="1418355079" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="147:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;147:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="340" rc-code="0" op-status="0" interval="0" last-run="1418355389" last-rc-change="1418355389" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_failure_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="65:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;65:126:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="144" rc-code="0" op-status="0" interval="0" last-run="1418355070" last-rc-change="1418355070" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="131:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;131:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="373" rc-code="0" op-status="0" interval="0" last-run="1418355484" last-rc-change="1418355484" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE30_monitor_10000" operation_key="FAKE30_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="132:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;132:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="374" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355485" exec-time="16" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote2" uname="pcmk_remote2" crm-debug-origin="post_cache_update"> ++ <lrm id="pcmk_remote2"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_failure_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="46:2:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;46:2:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="403" rc-code="0" op-status="0" interval="0" last-run="1418354414" last-rc-change="1418354414" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="46:2:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;46:2:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="403" rc-code="0" op-status="0" interval="0" last-run="1418354414" last-rc-change="1418354414" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE1_monitor_10000" operation_key="FAKE1_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="113:3:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;113:3:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="404" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354414" exec-time="14" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="47:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;47:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="406" rc-code="7" op-status="0" interval="0" last-run="1418354415" last-rc-change="1418354415" exec-time="16" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="48:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;48:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="408" rc-code="7" op-status="0" interval="0" last-run="1418354415" last-rc-change="1418354415" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;49:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="410" rc-code="7" op-status="0" interval="0" last-run="1418354415" last-rc-change="1418354415" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;50:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="412" rc-code="7" op-status="0" interval="0" last-run="1418354415" last-rc-change="1418354415" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;51:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="414" rc-code="7" op-status="0" interval="0" last-run="1418354415" last-rc-change="1418354415" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_failure_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;52:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="416" rc-code="0" op-status="0" interval="0" last-run="1418354415" last-rc-change="1418354415" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;52:3:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="416" rc-code="0" op-status="0" interval="0" last-run="1418354415" last-rc-change="1418354415" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE7_monitor_10000" operation_key="FAKE7_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="120:4:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;120:4:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="417" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354416" exec-time="72" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="48:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;48:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="419" rc-code="7" op-status="0" interval="0" last-run="1418354416" last-rc-change="1418354416" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;49:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="421" rc-code="7" op-status="0" interval="0" last-run="1418354416" last-rc-change="1418354416" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;50:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="423" rc-code="7" op-status="0" interval="0" last-run="1418354417" last-rc-change="1418354417" exec-time="27" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;51:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="425" rc-code="7" op-status="0" interval="0" last-run="1418354417" last-rc-change="1418354417" exec-time="48" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;52:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="427" rc-code="7" op-status="0" interval="0" last-run="1418354417" last-rc-change="1418354417" exec-time="36" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;53:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="429" rc-code="7" op-status="0" interval="0" last-run="1418354417" last-rc-change="1418354417" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;54:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="431" rc-code="7" op-status="0" interval="0" last-run="1418354417" last-rc-change="1418354417" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_failure_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;55:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="433" rc-code="0" op-status="0" interval="0" last-run="1418354418" last-rc-change="1418354418" exec-time="37" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;55:4:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="433" rc-code="0" op-status="0" interval="0" last-run="1418354418" last-rc-change="1418354418" exec-time="37" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE15_monitor_10000" operation_key="FAKE15_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="129:5:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;129:5:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="434" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354418" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="49:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;49:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="436" rc-code="7" op-status="0" interval="0" last-run="1418354419" last-rc-change="1418354419" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="50:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;50:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="438" rc-code="7" op-status="0" interval="0" last-run="1418354419" last-rc-change="1418354419" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;51:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="440" rc-code="7" op-status="0" interval="0" last-run="1418354419" last-rc-change="1418354419" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;52:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="442" rc-code="7" op-status="0" interval="0" last-run="1418354419" last-rc-change="1418354419" exec-time="106" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;53:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="444" rc-code="7" op-status="0" interval="0" last-run="1418354419" last-rc-change="1418354419" exec-time="117" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;54:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="446" rc-code="7" op-status="0" interval="0" last-run="1418354420" last-rc-change="1418354420" exec-time="19" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;55:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="448" rc-code="7" op-status="0" interval="0" last-run="1418354420" last-rc-change="1418354420" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="133:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;133:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="536" rc-code="0" op-status="0" interval="0" last-run="1418354960" last-rc-change="1418354960" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE23_monitor_10000" operation_key="FAKE23_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="134:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;134:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="538" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354961" exec-time="132" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_failure_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;57:5:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="452" rc-code="0" op-status="0" interval="0" last-run="1418354420" last-rc-change="1418354420" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="135:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;135:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="527" rc-code="0" op-status="0" interval="0" last-run="1418354957" last-rc-change="1418354957" exec-time="36" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE24_monitor_10000" operation_key="FAKE24_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="140:6:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;140:6:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="453" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354421" exec-time="13" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;51:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="455" rc-code="7" op-status="0" interval="0" last-run="1418354421" last-rc-change="1418354421" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;52:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="457" rc-code="7" op-status="0" interval="0" last-run="1418354421" last-rc-change="1418354421" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;53:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="459" rc-code="7" op-status="0" interval="0" last-run="1418354422" last-rc-change="1418354422" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;54:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="461" rc-code="7" op-status="0" interval="0" last-run="1418354422" last-rc-change="1418354422" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;55:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="463" rc-code="7" op-status="0" interval="0" last-run="1418354422" last-rc-change="1418354422" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;56:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="465" rc-code="7" op-status="0" interval="0" last-run="1418354422" last-rc-change="1418354422" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="153:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;153:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="540" rc-code="0" op-status="0" interval="0" last-run="1418354961" last-rc-change="1418354961" exec-time="201" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE31_monitor_10000" operation_key="FAKE31_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="154:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;154:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="541" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354961" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_failure_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;58:6:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="469" rc-code="0" op-status="0" interval="0" last-run="1418354423" last-rc-change="1418354423" exec-time="48" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="155:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;155:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="529" rc-code="0" op-status="0" interval="0" last-run="1418354958" last-rc-change="1418354958" exec-time="66" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE32_monitor_10000" operation_key="FAKE32_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="150:7:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;150:7:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="470" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354423" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;53:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="472" rc-code="7" op-status="0" interval="0" last-run="1418354424" last-rc-change="1418354424" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;54:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="474" rc-code="7" op-status="0" interval="0" last-run="1418354424" last-rc-change="1418354424" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;55:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="476" rc-code="7" op-status="0" interval="0" last-run="1418354424" last-rc-change="1418354424" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;56:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="478" rc-code="7" op-status="0" interval="0" last-run="1418354424" last-rc-change="1418354424" exec-time="68" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="480" rc-code="7" op-status="0" interval="0" last-run="1418354424" last-rc-change="1418354424" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;58:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="482" rc-code="7" op-status="0" interval="0" last-run="1418354424" last-rc-change="1418354424" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="222:153:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;222:153:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="566" rc-code="0" op-status="0" interval="0" last-run="1418355230" last-rc-change="1418355230" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE39_monitor_10000" operation_key="FAKE39_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;164:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="562" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355210" exec-time="25" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_failure_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;60:7:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="486" rc-code="0" op-status="0" interval="0" last-run="1418354425" last-rc-change="1418354425" exec-time="62" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="174:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;174:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="531" rc-code="0" op-status="0" interval="0" last-run="1418354959" last-rc-change="1418354959" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE40_monitor_10000" operation_key="FAKE40_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="161:8:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;161:8:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="487" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354426" exec-time="23" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="165:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;165:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="572" rc-code="0" op-status="0" interval="0" last-run="1418355390" last-rc-change="1418355390" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE41_monitor_10000" operation_key="FAKE41_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="166:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;166:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="573" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355390" exec-time="13" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="491" rc-code="7" op-status="0" interval="0" last-run="1418354426" last-rc-change="1418354426" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="230:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;230:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="577" rc-code="0" op-status="0" interval="0" last-run="1418355407" last-rc-change="1418355407" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE43_monitor_10000" operation_key="FAKE43_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="157:139:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;157:139:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="559" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355143" exec-time="29" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="495" rc-code="7" op-status="0" interval="0" last-run="1418354426" last-rc-change="1418354426" exec-time="50" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;60:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="497" rc-code="7" op-status="0" interval="0" last-run="1418354427" last-rc-change="1418354427" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="499" rc-code="7" op-status="0" interval="0" last-run="1418354427" last-rc-change="1418354427" exec-time="27" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="180:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;180:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="564" rc-code="0" op-status="0" interval="0" last-run="1418355211" last-rc-change="1418355211" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE47_monitor_10000" operation_key="FAKE47_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="192:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;192:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="547" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354962" exec-time="25" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="193:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;193:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="533" rc-code="0" op-status="0" interval="0" last-run="1418354960" last-rc-change="1418354960" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE48_monitor_10000" operation_key="FAKE48_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="178:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;178:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="517" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354679" exec-time="31" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="182:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;182:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="575" rc-code="0" op-status="0" interval="0" last-run="1418355390" last-rc-change="1418355390" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE49_monitor_10000" operation_key="FAKE49_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="173:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;173:171:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="570" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355307" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_failure_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;65:8:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="507" rc-code="0" op-status="0" interval="0" last-run="1418354428" last-rc-change="1418354428" exec-time="46" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="181:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;181:53:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="519" rc-code="0" op-status="0" interval="0" last-run="1418354679" last-rc-change="1418354679" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE50_monitor_10000" operation_key="FAKE50_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="175:10:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;175:10:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="508" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354429" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="pcmk_remote2"> ++ <instance_attributes id="status-pcmk_remote2"> ++ <nvpair id="status-pcmk_remote2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote1" uname="pcmk_remote1" crm-debug-origin="post_cache_update"> ++ <lrm id="pcmk_remote1"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;68:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="6" rc-code="7" op-status="0" interval="0" last-run="1418355329" last-rc-change="1418355329" exec-time="23" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="69:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;69:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="10" rc-code="7" op-status="0" interval="0" last-run="1418355329" last-rc-change="1418355329" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="112:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;112:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="220" rc-code="0" op-status="0" interval="0" last-run="1418355410" last-rc-change="1418355410" exec-time="149" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE3_monitor_10000" operation_key="FAKE3_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="113:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;113:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="221" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355410" exec-time="100" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;71:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418355330" last-rc-change="1418355330" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="116:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;116:195:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="223" rc-code="0" op-status="0" interval="0" last-run="1418355411" last-rc-change="1418355411" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE5_monitor_10000" operation_key="FAKE5_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;88:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="211" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355389" exec-time="17" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;90:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="212" rc-code="0" op-status="0" interval="0" last-run="1418355389" last-rc-change="1418355389" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE6_monitor_10000" operation_key="FAKE6_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;91:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="213" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355389" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;74:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418355331" last-rc-change="1418355331" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;75:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418355331" last-rc-change="1418355331" exec-time="27" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;76:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418355331" last-rc-change="1418355331" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;77:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418355332" last-rc-change="1418355332" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;78:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1418355332" last-rc-change="1418355332" exec-time="45" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;79:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418355332" last-rc-change="1418355332" exec-time="44" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;80:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1418355333" last-rc-change="1418355333" exec-time="131" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;81:174:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="58" rc-code="7" op-status="0" interval="0" last-run="1418355333" last-rc-change="1418355333" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;56:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="62" rc-code="7" op-status="0" interval="0" last-run="1418355338" last-rc-change="1418355338" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;57:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="66" rc-code="7" op-status="0" interval="0" last-run="1418355338" last-rc-change="1418355338" exec-time="76" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="160:185:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;160:185:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="203" rc-code="0" op-status="0" interval="0" last-run="1418355374" last-rc-change="1418355374" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE17_monitor_10000" operation_key="FAKE17_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="161:185:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;161:185:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="204" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355374" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;59:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1418355339" last-rc-change="1418355339" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;60:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="78" rc-code="7" op-status="0" interval="0" last-run="1418355339" last-rc-change="1418355339" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;61:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="82" rc-code="7" op-status="0" interval="0" last-run="1418355340" last-rc-change="1418355340" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;62:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="86" rc-code="7" op-status="0" interval="0" last-run="1418355340" last-rc-change="1418355340" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="146:5:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;146:5:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="228" rc-code="0" op-status="0" interval="0" last-run="1418355545" last-rc-change="1418355545" exec-time="80" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE22_monitor_10000" operation_key="FAKE22_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="147:5:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;147:5:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="229" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355545" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;64:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1418355341" last-rc-change="1418355341" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;65:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="98" rc-code="7" op-status="0" interval="0" last-run="1418355341" last-rc-change="1418355341" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="163:187:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;163:187:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="205" rc-code="0" op-status="0" interval="0" last-run="1418355379" last-rc-change="1418355379" exec-time="123" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE25_monitor_10000" operation_key="FAKE25_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="164:187:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;164:187:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="206" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355379" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;67:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="106" rc-code="7" op-status="0" interval="0" last-run="1418355342" last-rc-change="1418355342" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;68:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="110" rc-code="7" op-status="0" interval="0" last-run="1418355342" last-rc-change="1418355342" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="69:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;69:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418355343" last-rc-change="1418355343" exec-time="44" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="70:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;70:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418355343" last-rc-change="1418355343" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;71:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="122" rc-code="7" op-status="0" interval="0" last-run="1418355343" last-rc-change="1418355343" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;72:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418355344" last-rc-change="1418355344" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;73:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="130" rc-code="7" op-status="0" interval="0" last-run="1418355344" last-rc-change="1418355344" exec-time="134" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="148:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;148:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="214" rc-code="0" op-status="0" interval="0" last-run="1418355389" last-rc-change="1418355389" exec-time="13" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE33_monitor_10000" operation_key="FAKE33_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="149:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;149:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="215" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355390" exec-time="13" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;75:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="138" rc-code="7" op-status="0" interval="0" last-run="1418355345" last-rc-change="1418355345" exec-time="63" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;76:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="142" rc-code="7" op-status="0" interval="0" last-run="1418355345" last-rc-change="1418355345" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;77:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="146" rc-code="7" op-status="0" interval="0" last-run="1418355346" last-rc-change="1418355346" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;78:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="150" rc-code="7" op-status="0" interval="0" last-run="1418355346" last-rc-change="1418355346" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="219:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;219:193:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="219" rc-code="0" op-status="0" interval="0" last-run="1418355407" last-rc-change="1418355407" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE38_monitor_10000" operation_key="FAKE38_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="177:189:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;177:189:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="208" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355383" exec-time="16" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;80:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="158" rc-code="7" op-status="0" interval="0" last-run="1418355347" last-rc-change="1418355347" exec-time="33" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;81:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="162" rc-code="7" op-status="0" interval="0" last-run="1418355347" last-rc-change="1418355347" exec-time="37" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;82:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="166" rc-code="7" op-status="0" interval="0" last-run="1418355347" last-rc-change="1418355347" exec-time="56" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;83:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1418355348" last-rc-change="1418355348" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="159:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;159:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="225" rc-code="0" op-status="0" interval="0" last-run="1418355485" last-rc-change="1418355485" exec-time="11" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE43_monitor_10000" operation_key="FAKE43_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="160:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;160:209:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="226" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355485" exec-time="13" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="85:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;85:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418355348" last-rc-change="1418355348" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="86:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;86:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418355349" last-rc-change="1418355349" exec-time="28" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;87:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="186" rc-code="7" op-status="0" interval="0" last-run="1418355349" last-rc-change="1418355349" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="178:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;178:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="216" rc-code="0" op-status="0" interval="0" last-run="1418355390" last-rc-change="1418355390" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE47_monitor_10000" operation_key="FAKE47_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="179:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;179:192:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="217" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355390" exec-time="13" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="89:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;89:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="194" rc-code="7" op-status="0" interval="0" last-run="1418355350" last-rc-change="1418355350" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;90:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="198" rc-code="7" op-status="0" interval="0" last-run="1418355350" last-rc-change="1418355350" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;91:175:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="202" rc-code="7" op-status="0" interval="0" last-run="1418355350" last-rc-change="1418355350" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="pcmk_remote1"> ++ <instance_attributes id="status-pcmk_remote1"> ++ <nvpair id="status-pcmk_remote1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote3" uname="pcmk_remote3" crm-debug-origin="post_cache_update"> ++ <lrm id="pcmk_remote3"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="51:1:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;51:1:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="439" rc-code="7" op-status="0" interval="0" last-run="1418355538" last-rc-change="1418355538" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_failure_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:1:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;52:1:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="441" rc-code="0" op-status="0" interval="0" last-run="1418355538" last-rc-change="1418355538" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:1:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;52:1:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="441" rc-code="0" op-status="0" interval="0" last-run="1418355538" last-rc-change="1418355538" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE2_monitor_10000" operation_key="FAKE2_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="120:2:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;120:2:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="442" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355539" exec-time="95" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="52:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;52:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="444" rc-code="7" op-status="0" interval="0" last-run="1418355539" last-rc-change="1418355539" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;53:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="446" rc-code="7" op-status="0" interval="0" last-run="1418355539" last-rc-change="1418355539" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;54:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="448" rc-code="7" op-status="0" interval="0" last-run="1418355539" last-rc-change="1418355539" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;55:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="450" rc-code="7" op-status="0" interval="0" last-run="1418355539" last-rc-change="1418355539" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;56:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="452" rc-code="7" op-status="0" interval="0" last-run="1418355539" last-rc-change="1418355539" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_failure_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;57:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="454" rc-code="0" op-status="0" interval="0" last-run="1418355540" last-rc-change="1418355540" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;57:2:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="454" rc-code="0" op-status="0" interval="0" last-run="1418355540" last-rc-change="1418355540" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE8_monitor_10000" operation_key="FAKE8_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="128:3:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;128:3:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="455" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355540" exec-time="88" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="53:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;53:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="457" rc-code="7" op-status="0" interval="0" last-run="1418355541" last-rc-change="1418355541" exec-time="30" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;54:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="459" rc-code="7" op-status="0" interval="0" last-run="1418355541" last-rc-change="1418355541" exec-time="20" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;55:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="461" rc-code="7" op-status="0" interval="0" last-run="1418355541" last-rc-change="1418355541" exec-time="81" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;56:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="463" rc-code="7" op-status="0" interval="0" last-run="1418355541" last-rc-change="1418355541" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;57:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="465" rc-code="7" op-status="0" interval="0" last-run="1418355541" last-rc-change="1418355541" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;58:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="467" rc-code="7" op-status="0" interval="0" last-run="1418355542" last-rc-change="1418355542" exec-time="50" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;59:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="469" rc-code="7" op-status="0" interval="0" last-run="1418355542" last-rc-change="1418355542" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_failure_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;60:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="471" rc-code="0" op-status="0" interval="0" last-run="1418355542" last-rc-change="1418355542" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;60:3:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="471" rc-code="0" op-status="0" interval="0" last-run="1418355542" last-rc-change="1418355542" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE16_monitor_10000" operation_key="FAKE16_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="140:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;140:4:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="472" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355543" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="54:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;54:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="474" rc-code="7" op-status="0" interval="0" last-run="1418355543" last-rc-change="1418355543" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="55:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;55:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="476" rc-code="7" op-status="0" interval="0" last-run="1418355543" last-rc-change="1418355543" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="56:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;56:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="478" rc-code="7" op-status="0" interval="0" last-run="1418355544" last-rc-change="1418355544" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;57:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="480" rc-code="7" op-status="0" interval="0" last-run="1418355544" last-rc-change="1418355544" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;58:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="482" rc-code="7" op-status="0" interval="0" last-run="1418355544" last-rc-change="1418355544" exec-time="72" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;59:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="484" rc-code="7" op-status="0" interval="0" last-run="1418355544" last-rc-change="1418355544" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;60:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="486" rc-code="7" op-status="0" interval="0" last-run="1418355544" last-rc-change="1418355544" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_failure_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;61:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="488" rc-code="0" op-status="0" interval="0" last-run="1418355544" last-rc-change="1418355544" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;61:4:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="488" rc-code="0" op-status="0" interval="0" last-run="1418355544" last-rc-change="1418355544" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE24_monitor_10000" operation_key="FAKE24_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="152:5:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;152:5:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="489" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355545" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="57:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;57:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="491" rc-code="7" op-status="0" interval="0" last-run="1418355546" last-rc-change="1418355546" exec-time="14" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="58:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;58:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="493" rc-code="7" op-status="0" interval="0" last-run="1418355546" last-rc-change="1418355546" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;59:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="495" rc-code="7" op-status="0" interval="0" last-run="1418355546" last-rc-change="1418355546" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;60:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="497" rc-code="7" op-status="0" interval="0" last-run="1418355546" last-rc-change="1418355546" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;61:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="499" rc-code="7" op-status="0" interval="0" last-run="1418355546" last-rc-change="1418355546" exec-time="79" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;62:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="501" rc-code="7" op-status="0" interval="0" last-run="1418355547" last-rc-change="1418355547" exec-time="39" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="503" rc-code="7" op-status="0" interval="0" last-run="1418355547" last-rc-change="1418355547" exec-time="27" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_failure_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;64:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="505" rc-code="0" op-status="0" interval="0" last-run="1418355547" last-rc-change="1418355547" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;64:5:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="505" rc-code="0" op-status="0" interval="0" last-run="1418355547" last-rc-change="1418355547" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE32_monitor_10000" operation_key="FAKE32_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="165:6:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;165:6:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="506" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355548" exec-time="72" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;59:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="508" rc-code="7" op-status="0" interval="0" last-run="1418355548" last-rc-change="1418355548" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;60:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="510" rc-code="7" op-status="0" interval="0" last-run="1418355548" last-rc-change="1418355548" exec-time="66" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;61:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="512" rc-code="7" op-status="0" interval="0" last-run="1418355548" last-rc-change="1418355548" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;62:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="514" rc-code="7" op-status="0" interval="0" last-run="1418355548" last-rc-change="1418355548" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="516" rc-code="7" op-status="0" interval="0" last-run="1418355549" last-rc-change="1418355549" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;64:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="518" rc-code="7" op-status="0" interval="0" last-run="1418355549" last-rc-change="1418355549" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;65:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="520" rc-code="7" op-status="0" interval="0" last-run="1418355549" last-rc-change="1418355549" exec-time="33" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_failure_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;66:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="522" rc-code="0" op-status="0" interval="0" last-run="1418355549" last-rc-change="1418355549" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;66:6:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="522" rc-code="0" op-status="0" interval="0" last-run="1418355549" last-rc-change="1418355549" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE40_monitor_10000" operation_key="FAKE40_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="177:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;177:7:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="523" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355550" exec-time="17" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;60:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="525" rc-code="7" op-status="0" interval="0" last-run="1418355550" last-rc-change="1418355550" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;61:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="527" rc-code="7" op-status="0" interval="0" last-run="1418355550" last-rc-change="1418355550" exec-time="70" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;62:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="529" rc-code="7" op-status="0" interval="0" last-run="1418355551" last-rc-change="1418355551" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="531" rc-code="7" op-status="0" interval="0" last-run="1418355551" last-rc-change="1418355551" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;64:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="533" rc-code="7" op-status="0" interval="0" last-run="1418355551" last-rc-change="1418355551" exec-time="59" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;65:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="535" rc-code="7" op-status="0" interval="0" last-run="1418355551" last-rc-change="1418355551" exec-time="27" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;66:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="537" rc-code="7" op-status="0" interval="0" last-run="1418355551" last-rc-change="1418355551" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;67:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="539" rc-code="7" op-status="0" interval="0" last-run="1418355552" last-rc-change="1418355552" exec-time="62" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_failure_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;68:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="541" rc-code="0" op-status="0" interval="0" last-run="1418355552" last-rc-change="1418355552" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;68:7:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="541" rc-code="0" op-status="0" interval="0" last-run="1418355552" last-rc-change="1418355552" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE49_monitor_10000" operation_key="FAKE49_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="252:38:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:0;252:38:0:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="544" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355568" exec-time="42" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:8:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:8:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="543" rc-code="7" op-status="0" interval="0" last-run="1418355553" last-rc-change="1418355553" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="pcmk_remote3"> ++ <instance_attributes id="status-pcmk_remote3"> ++ <nvpair id="status-pcmk_remote3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote4" uname="pcmk_remote4" crm-debug-origin="post_cache_update"> ++ <lrm id="pcmk_remote4"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;71:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="6" rc-code="7" op-status="0" interval="0" last-run="1418355506" last-rc-change="1418355506" exec-time="30" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;72:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="10" rc-code="7" op-status="0" interval="0" last-run="1418355506" last-rc-change="1418355506" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;73:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="14" rc-code="7" op-status="0" interval="0" last-run="1418355507" last-rc-change="1418355507" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;74:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="18" rc-code="7" op-status="0" interval="0" last-run="1418355507" last-rc-change="1418355507" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;75:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="22" rc-code="7" op-status="0" interval="0" last-run="1418355507" last-rc-change="1418355507" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;76:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="26" rc-code="7" op-status="0" interval="0" last-run="1418355508" last-rc-change="1418355508" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;77:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="30" rc-code="7" op-status="0" interval="0" last-run="1418355508" last-rc-change="1418355508" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;78:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418355509" last-rc-change="1418355509" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;79:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418355509" last-rc-change="1418355509" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;80:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="42" rc-code="7" op-status="0" interval="0" last-run="1418355509" last-rc-change="1418355509" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;81:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="46" rc-code="7" op-status="0" interval="0" last-run="1418355510" last-rc-change="1418355510" exec-time="47" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;82:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="50" rc-code="7" op-status="0" interval="0" last-run="1418355510" last-rc-change="1418355510" exec-time="57" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;83:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="54" rc-code="7" op-status="0" interval="0" last-run="1418355510" last-rc-change="1418355510" exec-time="128" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="84:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;84:212:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="58" rc-code="7" op-status="0" interval="0" last-run="1418355511" last-rc-change="1418355511" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="59:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;59:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="62" rc-code="7" op-status="0" interval="0" last-run="1418355518" last-rc-change="1418355518" exec-time="38" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="60:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;60:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="66" rc-code="7" op-status="0" interval="0" last-run="1418355518" last-rc-change="1418355518" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="61:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;61:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="70" rc-code="7" op-status="0" interval="0" last-run="1418355518" last-rc-change="1418355518" exec-time="36" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="62:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;62:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="74" rc-code="7" op-status="0" interval="0" last-run="1418355519" last-rc-change="1418355519" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="63:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;63:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="78" rc-code="7" op-status="0" interval="0" last-run="1418355519" last-rc-change="1418355519" exec-time="36" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="64:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;64:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="82" rc-code="7" op-status="0" interval="0" last-run="1418355519" last-rc-change="1418355519" exec-time="36" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="65:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;65:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="86" rc-code="7" op-status="0" interval="0" last-run="1418355520" last-rc-change="1418355520" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="66:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;66:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="90" rc-code="7" op-status="0" interval="0" last-run="1418355520" last-rc-change="1418355520" exec-time="36" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="67:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;67:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="94" rc-code="7" op-status="0" interval="0" last-run="1418355520" last-rc-change="1418355520" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="68:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;68:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="98" rc-code="7" op-status="0" interval="0" last-run="1418355521" last-rc-change="1418355521" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="69:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;69:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1418355521" last-rc-change="1418355521" exec-time="135" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="70:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;70:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="106" rc-code="7" op-status="0" interval="0" last-run="1418355522" last-rc-change="1418355522" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="71:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;71:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="110" rc-code="7" op-status="0" interval="0" last-run="1418355522" last-rc-change="1418355522" exec-time="21" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;72:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="114" rc-code="7" op-status="0" interval="0" last-run="1418355522" last-rc-change="1418355522" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;73:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="118" rc-code="7" op-status="0" interval="0" last-run="1418355523" last-rc-change="1418355523" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;74:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="122" rc-code="7" op-status="0" interval="0" last-run="1418355523" last-rc-change="1418355523" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;75:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="126" rc-code="7" op-status="0" interval="0" last-run="1418355523" last-rc-change="1418355523" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;76:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="130" rc-code="7" op-status="0" interval="0" last-run="1418355524" last-rc-change="1418355524" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;77:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="134" rc-code="7" op-status="0" interval="0" last-run="1418355524" last-rc-change="1418355524" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;78:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="138" rc-code="7" op-status="0" interval="0" last-run="1418355524" last-rc-change="1418355524" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;79:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="142" rc-code="7" op-status="0" interval="0" last-run="1418355525" last-rc-change="1418355525" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;80:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="146" rc-code="7" op-status="0" interval="0" last-run="1418355525" last-rc-change="1418355525" exec-time="24" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;81:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="150" rc-code="7" op-status="0" interval="0" last-run="1418355525" last-rc-change="1418355525" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;82:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="154" rc-code="7" op-status="0" interval="0" last-run="1418355526" last-rc-change="1418355526" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;83:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="158" rc-code="7" op-status="0" interval="0" last-run="1418355526" last-rc-change="1418355526" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="84:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;84:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="162" rc-code="7" op-status="0" interval="0" last-run="1418355526" last-rc-change="1418355526" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="85:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;85:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="166" rc-code="7" op-status="0" interval="0" last-run="1418355527" last-rc-change="1418355527" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="86:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;86:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="170" rc-code="7" op-status="0" interval="0" last-run="1418355527" last-rc-change="1418355527" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;87:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="174" rc-code="7" op-status="0" interval="0" last-run="1418355527" last-rc-change="1418355527" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;88:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="178" rc-code="7" op-status="0" interval="0" last-run="1418355528" last-rc-change="1418355528" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="89:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;89:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="182" rc-code="7" op-status="0" interval="0" last-run="1418355528" last-rc-change="1418355528" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;90:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="186" rc-code="7" op-status="0" interval="0" last-run="1418355529" last-rc-change="1418355529" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;91:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="190" rc-code="7" op-status="0" interval="0" last-run="1418355529" last-rc-change="1418355529" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;92:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="194" rc-code="7" op-status="0" interval="0" last-run="1418355529" last-rc-change="1418355529" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="93:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;93:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="198" rc-code="7" op-status="0" interval="0" last-run="1418355530" last-rc-change="1418355530" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" transition-magic="0:7;94:0:7:551c89ca-c0cf-4f08-bf7e-996ff49d40a8" call-id="202" rc-code="7" op-status="0" interval="0" last-run="1418355530" last-rc-change="1418355530" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="pcmk_remote4"> ++ <instance_attributes id="status-pcmk_remote4"> ++ <nvpair id="status-pcmk_remote4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state remote_node="true" id="pcmk_remote5" uname="pcmk_remote5" crm-debug-origin="post_cache_update"> ++ <lrm id="pcmk_remote5"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="106:97:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;106:97:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="59" rc-code="7" op-status="0" interval="0" last-run="1418354929" last-rc-change="1418354929" exec-time="17" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="107:97:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;107:97:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="61" rc-code="7" op-status="0" interval="0" last-run="1418354929" last-rc-change="1418354929" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="108:97:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;108:97:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="63" rc-code="7" op-status="0" interval="0" last-run="1418354929" last-rc-change="1418354929" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:131:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;81:131:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="253" rc-code="0" op-status="0" interval="0" last-run="1418355098" last-rc-change="1418355098" exec-time="305" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE4_monitor_10000" operation_key="FAKE4_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:139:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;76:139:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="256" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355143" exec-time="90" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:151:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;88:151:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="260" rc-code="0" op-status="0" interval="0" last-run="1418355207" last-rc-change="1418355207" exec-time="12" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE5_monitor_10000" operation_key="FAKE5_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;92:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="233" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354956" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="104:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;104:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="69" rc-code="7" op-status="0" interval="0" last-run="1418354931" last-rc-change="1418354931" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE7" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE7_last_0" operation_key="FAKE7_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="105:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;105:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="71" rc-code="7" op-status="0" interval="0" last-run="1418354931" last-rc-change="1418354931" exec-time="35" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE8" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE8_last_0" operation_key="FAKE8_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="106:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;106:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="73" rc-code="7" op-status="0" interval="0" last-run="1418354932" last-rc-change="1418354932" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE9" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE9_last_0" operation_key="FAKE9_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="107:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;107:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="75" rc-code="7" op-status="0" interval="0" last-run="1418354932" last-rc-change="1418354932" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE10" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE10_last_0" operation_key="FAKE10_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="98:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;98:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="264" rc-code="0" op-status="0" interval="0" last-run="1418355209" last-rc-change="1418355209" exec-time="81" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE10_monitor_10000" operation_key="FAKE10_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="99:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;99:152:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="265" rc-code="0" op-status="0" interval="10000" last-rc-change="1418355209" exec-time="147" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE11" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE11_last_0" operation_key="FAKE11_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="109:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;109:98:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="79" rc-code="7" op-status="0" interval="0" last-run="1418354932" last-rc-change="1418354932" exec-time="124" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE12" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE12_last_0" operation_key="FAKE12_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="97:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;97:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="81" rc-code="7" op-status="0" interval="0" last-run="1418354934" last-rc-change="1418354934" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE13" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE13_last_0" operation_key="FAKE13_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="98:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;98:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="83" rc-code="7" op-status="0" interval="0" last-run="1418354934" last-rc-change="1418354934" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE14" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE14_last_0" operation_key="FAKE14_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="99:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;99:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="87" rc-code="7" op-status="0" interval="0" last-run="1418354934" last-rc-change="1418354934" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE15" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE15_last_0" operation_key="FAKE15_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="100:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;100:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="91" rc-code="7" op-status="0" interval="0" last-run="1418354935" last-rc-change="1418354935" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE16" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE16_last_0" operation_key="FAKE16_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="101:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;101:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="95" rc-code="7" op-status="0" interval="0" last-run="1418354935" last-rc-change="1418354935" exec-time="26" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE17" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE17_last_0" operation_key="FAKE17_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="102:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;102:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="99" rc-code="7" op-status="0" interval="0" last-run="1418354936" last-rc-change="1418354936" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE18" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE18_last_0" operation_key="FAKE18_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="122:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;122:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="236" rc-code="0" op-status="0" interval="0" last-run="1418354957" last-rc-change="1418354957" exec-time="38" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE18_monitor_10000" operation_key="FAKE18_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="123:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;123:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="237" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354957" exec-time="25" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE19" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE19_last_0" operation_key="FAKE19_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="104:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;104:99:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="107" rc-code="7" op-status="0" interval="0" last-run="1418354937" last-rc-change="1418354937" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE20" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE20_last_0" operation_key="FAKE20_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="90:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;90:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="111" rc-code="7" op-status="0" interval="0" last-run="1418354938" last-rc-change="1418354938" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE21" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE21_last_0" operation_key="FAKE21_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;91:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="115" rc-code="7" op-status="0" interval="0" last-run="1418354938" last-rc-change="1418354938" exec-time="131" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE22" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE22_last_0" operation_key="FAKE22_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="92:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;92:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="119" rc-code="7" op-status="0" interval="0" last-run="1418354939" last-rc-change="1418354939" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE23" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE23_last_0" operation_key="FAKE23_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="93:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;93:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="123" rc-code="7" op-status="0" interval="0" last-run="1418354939" last-rc-change="1418354939" exec-time="34" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE24" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE24_last_0" operation_key="FAKE24_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="94:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;94:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="127" rc-code="7" op-status="0" interval="0" last-run="1418354940" last-rc-change="1418354940" exec-time="27" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE25" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE25_last_0" operation_key="FAKE25_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="95:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;95:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="131" rc-code="7" op-status="0" interval="0" last-run="1418354940" last-rc-change="1418354940" exec-time="99" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE26" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE26_last_0" operation_key="FAKE26_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="142:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;142:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="238" rc-code="0" op-status="0" interval="0" last-run="1418354958" last-rc-change="1418354958" exec-time="56" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE26_monitor_10000" operation_key="FAKE26_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="143:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;143:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="239" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354958" exec-time="59" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE27" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE27_last_0" operation_key="FAKE27_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="97:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;97:100:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="139" rc-code="7" op-status="0" interval="0" last-run="1418354941" last-rc-change="1418354941" exec-time="25" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE28" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE28_last_0" operation_key="FAKE28_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="84:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;84:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="143" rc-code="7" op-status="0" interval="0" last-run="1418354942" last-rc-change="1418354942" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE29" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE29_last_0" operation_key="FAKE29_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="85:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;85:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="147" rc-code="7" op-status="0" interval="0" last-run="1418354943" last-rc-change="1418354943" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE30" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE30_last_0" operation_key="FAKE30_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="86:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;86:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="151" rc-code="7" op-status="0" interval="0" last-run="1418354943" last-rc-change="1418354943" exec-time="44" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE31" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE31_last_0" operation_key="FAKE31_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="87:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;87:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="155" rc-code="7" op-status="0" interval="0" last-run="1418354944" last-rc-change="1418354944" exec-time="150" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE32" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE32_last_0" operation_key="FAKE32_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="88:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;88:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="159" rc-code="7" op-status="0" interval="0" last-run="1418354944" last-rc-change="1418354944" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE33" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE33_last_0" operation_key="FAKE33_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="89:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;89:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="163" rc-code="7" op-status="0" interval="0" last-run="1418354945" last-rc-change="1418354945" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE34" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE34_last_0" operation_key="FAKE34_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="162:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;162:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="240" rc-code="0" op-status="0" interval="0" last-run="1418354959" last-rc-change="1418354959" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE34_monitor_10000" operation_key="FAKE34_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="163:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;163:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="241" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354959" exec-time="27" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE35" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE35_last_0" operation_key="FAKE35_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="91:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;91:101:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="171" rc-code="7" op-status="0" interval="0" last-run="1418354946" last-rc-change="1418354946" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE36" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE36_last_0" operation_key="FAKE36_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="78:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;78:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="175" rc-code="7" op-status="0" interval="0" last-run="1418354947" last-rc-change="1418354947" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE37" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE37_last_0" operation_key="FAKE37_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="79:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;79:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="179" rc-code="7" op-status="0" interval="0" last-run="1418354947" last-rc-change="1418354947" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE38" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE38_last_0" operation_key="FAKE38_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="80:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;80:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="183" rc-code="7" op-status="0" interval="0" last-run="1418354948" last-rc-change="1418354948" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE39" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE39_last_0" operation_key="FAKE39_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="81:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;81:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="187" rc-code="7" op-status="0" interval="0" last-run="1418354948" last-rc-change="1418354948" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE40" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE40_last_0" operation_key="FAKE40_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="82:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;82:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="191" rc-code="7" op-status="0" interval="0" last-run="1418354949" last-rc-change="1418354949" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE41" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE41_last_0" operation_key="FAKE41_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="83:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;83:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="195" rc-code="7" op-status="0" interval="0" last-run="1418354949" last-rc-change="1418354949" exec-time="162" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE42" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE42_last_0" operation_key="FAKE42_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="181:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;181:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="242" rc-code="0" op-status="0" interval="0" last-run="1418354959" last-rc-change="1418354959" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE42_monitor_10000" operation_key="FAKE42_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="182:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;182:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="243" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354959" exec-time="25" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE43" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE43_last_0" operation_key="FAKE43_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="85:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;85:102:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="203" rc-code="7" op-status="0" interval="0" last-run="1418354950" last-rc-change="1418354950" exec-time="42" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE44" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE44_last_0" operation_key="FAKE44_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="72:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;72:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="207" rc-code="7" op-status="0" interval="0" last-run="1418354952" last-rc-change="1418354952" exec-time="10" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE45" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE45_last_0" operation_key="FAKE45_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="73:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;73:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="211" rc-code="7" op-status="0" interval="0" last-run="1418354952" last-rc-change="1418354952" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE46" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE46_last_0" operation_key="FAKE46_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="74:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;74:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="215" rc-code="7" op-status="0" interval="0" last-run="1418354952" last-rc-change="1418354952" exec-time="47" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE47" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE47_last_0" operation_key="FAKE47_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="75:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;75:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="219" rc-code="7" op-status="0" interval="0" last-run="1418354953" last-rc-change="1418354953" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE48" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE48_last_0" operation_key="FAKE48_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="76:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;76:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="223" rc-code="7" op-status="0" interval="0" last-run="1418354953" last-rc-change="1418354953" exec-time="131" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE49" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE49_last_0" operation_key="FAKE49_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="77:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:7;77:103:7:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="227" rc-code="7" op-status="0" interval="0" last-run="1418354954" last-rc-change="1418354954" exec-time="24" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE50" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE50_last_0" operation_key="FAKE50_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="200:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;200:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="244" rc-code="0" op-status="0" interval="0" last-run="1418354964" last-rc-change="1418354964" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="pcmk2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE50_monitor_10000" operation_key="FAKE50_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="201:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" transition-magic="0:0;201:104:0:b25085e3-1f7b-4427-9a9d-553b1a9993e3" call-id="245" rc-code="0" op-status="0" interval="10000" last-rc-change="1418354964" exec-time="25" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="pcmk2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="pcmk_remote5"> ++ <instance_attributes id="status-pcmk_remote5"> ++ <nvpair id="status-pcmk_remote5-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/remote-recover-fail.dot b/pengine/test10/remote-recover-fail.dot +new file mode 100644 +index 0000000..a920089 +--- /dev/null ++++ b/pengine/test10/remote-recover-fail.dot +@@ -0,0 +1,36 @@ ++ digraph "g" { ++"FAKE1_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"FAKE1_start_0 rhel7-auto2" -> "FAKE1_monitor_10000 rhel7-auto2" [ style = bold] ++"FAKE1_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"FAKE2_start_0 rhel7-auto3" -> "FAKE2_monitor_10000 rhel7-auto3" [ style = bold] ++"FAKE2_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"FAKE2_stop_0 rhel7-auto4" -> "FAKE2_start_0 rhel7-auto3" [ style = bold] ++"FAKE2_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold] ++"FAKE2_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="orange"] ++"FAKE3_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"FAKE4_monitor_10000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"FAKE6_monitor_10000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"FAKE6_start_0 rhel7-auto2" -> "FAKE6_monitor_10000 rhel7-auto2" [ style = bold] ++"FAKE6_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"FAKE6_stop_0 rhel7-auto4" -> "FAKE6_start_0 rhel7-auto2" [ style = bold] ++"FAKE6_stop_0 rhel7-auto4" -> "all_stopped" [ style = bold] ++"FAKE6_stop_0 rhel7-auto4" [ style=bold color="green" fontcolor="orange"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"rhel7-auto4_monitor_60000 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"rhel7-auto4_start_0 rhel7-auto2" -> "rhel7-auto4_monitor_60000 rhel7-auto2" [ style = bold] ++"rhel7-auto4_start_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"rhel7-auto4_stop_0 rhel7-auto2" -> "all_stopped" [ style = bold] ++"rhel7-auto4_stop_0 rhel7-auto2" -> "rhel7-auto4_start_0 rhel7-auto2" [ style = bold] ++"rhel7-auto4_stop_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++"stonith 'reboot' rhel7-auto4" -> "FAKE2_stop_0 rhel7-auto4" [ style = bold] ++"stonith 'reboot' rhel7-auto4" -> "FAKE6_stop_0 rhel7-auto4" [ style = bold] ++"stonith 'reboot' rhel7-auto4" -> "stonith_complete" [ style = bold] ++"stonith 'reboot' rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"stonith_complete" -> "FAKE1_start_0 rhel7-auto2" [ style = bold] ++"stonith_complete" -> "FAKE2_start_0 rhel7-auto3" [ style = bold] ++"stonith_complete" -> "FAKE6_start_0 rhel7-auto2" [ style = bold] ++"stonith_complete" -> "all_stopped" [ style = bold] ++"stonith_complete" -> "rhel7-auto4_start_0 rhel7-auto2" [ style = bold] ++"stonith_complete" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/remote-recover-fail.exp b/pengine/test10/remote-recover-fail.exp +new file mode 100644 +index 0000000..dee4acf +--- /dev/null ++++ b/pengine/test10/remote-recover-fail.exp +@@ -0,0 +1,207 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="12" operation="monitor" operation_key="rhel7-auto4_monitor_60000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="start" operation_key="rhel7-auto4_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="11" operation="start" operation_key="rhel7-auto4_start_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="3" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="3" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="14" operation="monitor" operation_key="FAKE1_monitor_10000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="13" operation="start" operation_key="FAKE1_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="13" operation="start" operation_key="FAKE1_start_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="29" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="17" operation="monitor" operation_key="FAKE2_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="16" operation="start" operation_key="FAKE2_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="16" operation="start" operation_key="FAKE2_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="15" operation="stop" operation_key="FAKE2_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <pseudo_event id="15" operation="stop" operation_key="FAKE2_stop_0"> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="30" operation="stonith" operation_key="stonith-rhel7-auto4-reboot" on_node="rhel7-auto4" on_node_uuid="rhel7-auto4" router_node="rhel7-auto2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="20" operation="monitor" operation_key="FAKE3_monitor_10000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="23" operation="monitor" operation_key="FAKE4_monitor_10000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="28" operation="monitor" operation_key="FAKE6_monitor_10000" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="FAKE6" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="27" operation="start" operation_key="FAKE6_start_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="27" operation="start" operation_key="FAKE6_start_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="FAKE6" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="26" operation="stop" operation_key="FAKE6_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <pseudo_event id="26" operation="stop" operation_key="FAKE6_stop_0"> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="30" operation="stonith" operation_key="stonith-rhel7-auto4-reboot" on_node="rhel7-auto4" on_node_uuid="rhel7-auto4" router_node="rhel7-auto2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <crm_event id="30" operation="stonith" operation_key="stonith-rhel7-auto4-reboot" on_node="rhel7-auto4" on_node_uuid="rhel7-auto4" router_node="rhel7-auto2"> ++ <attributes CRM_meta_on_node="rhel7-auto4" CRM_meta_on_node_uuid="rhel7-auto4" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" /> ++ </crm_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="14"> ++ <action_set> ++ <pseudo_event id="29" operation="stonith_complete" operation_key="stonith_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="30" operation="stonith" operation_key="stonith-rhel7-auto4-reboot" on_node="rhel7-auto4" on_node_uuid="rhel7-auto4" router_node="rhel7-auto2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <pseudo_event id="4" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="3" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="15" operation="stop" operation_key="FAKE2_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="26" operation="stop" operation_key="FAKE6_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="29" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/remote-recover-fail.scores b/pengine/test10/remote-recover-fail.scores +new file mode 100644 +index 0000000..8fc7805 +--- /dev/null ++++ b/pengine/test10/remote-recover-fail.scores +@@ -0,0 +1,33 @@ ++Allocation scores: ++native_color: FAKE1 allocation score on rhel7-auto1: 0 ++native_color: FAKE1 allocation score on rhel7-auto2: 0 ++native_color: FAKE1 allocation score on rhel7-auto3: 0 ++native_color: FAKE1 allocation score on rhel7-auto4: 0 ++native_color: FAKE2 allocation score on rhel7-auto1: 0 ++native_color: FAKE2 allocation score on rhel7-auto2: 0 ++native_color: FAKE2 allocation score on rhel7-auto3: 0 ++native_color: FAKE2 allocation score on rhel7-auto4: 0 ++native_color: FAKE3 allocation score on rhel7-auto1: 0 ++native_color: FAKE3 allocation score on rhel7-auto2: 0 ++native_color: FAKE3 allocation score on rhel7-auto3: 0 ++native_color: FAKE3 allocation score on rhel7-auto4: 0 ++native_color: FAKE4 allocation score on rhel7-auto1: 0 ++native_color: FAKE4 allocation score on rhel7-auto2: 0 ++native_color: FAKE4 allocation score on rhel7-auto3: 0 ++native_color: FAKE4 allocation score on rhel7-auto4: 0 ++native_color: FAKE5 allocation score on rhel7-auto1: 0 ++native_color: FAKE5 allocation score on rhel7-auto2: 0 ++native_color: FAKE5 allocation score on rhel7-auto3: 0 ++native_color: FAKE5 allocation score on rhel7-auto4: 0 ++native_color: FAKE6 allocation score on rhel7-auto1: 0 ++native_color: FAKE6 allocation score on rhel7-auto2: 0 ++native_color: FAKE6 allocation score on rhel7-auto3: 0 ++native_color: FAKE6 allocation score on rhel7-auto4: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto1: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto2: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto3: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: -INFINITY +diff --git a/pengine/test10/remote-recover-fail.summary b/pengine/test10/remote-recover-fail.summary +new file mode 100644 +index 0000000..2811fdc +--- /dev/null ++++ b/pengine/test10/remote-recover-fail.summary +@@ -0,0 +1,53 @@ ++ ++Current cluster status: ++RemoteNode rhel7-auto4: UNCLEAN (offline) ++Online: [ rhel7-auto2 rhel7-auto3 ] ++OFFLINE: [ rhel7-auto1 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto3 ++ rhel7-auto4 (ocf::pacemaker:remote): FAILED rhel7-auto2 ++ FAKE1 (ocf::heartbeat:Dummy): Stopped ++ FAKE2 (ocf::heartbeat:Dummy): Started rhel7-auto4 ++ FAKE3 (ocf::heartbeat:Dummy): Started rhel7-auto2 ++ FAKE4 (ocf::heartbeat:Dummy): Started rhel7-auto3 ++ FAKE5 (ocf::heartbeat:Dummy): Started rhel7-auto3 ++ FAKE6 (ocf::heartbeat:Dummy): Started rhel7-auto4 ++ ++Transition Summary: ++ * Recover rhel7-auto4 (Started rhel7-auto2) ++ * Start FAKE1 (rhel7-auto2) ++ * Move FAKE2 (Started rhel7-auto4 -> rhel7-auto3) ++ * Move FAKE6 (Started rhel7-auto4 -> rhel7-auto2) ++ ++Executing cluster transition: ++ * Resource action: rhel7-auto4 stop on rhel7-auto2 ++ * Resource action: FAKE3 monitor=10000 on rhel7-auto2 ++ * Resource action: FAKE4 monitor=10000 on rhel7-auto3 ++ * Fencing rhel7-auto4 (reboot) ++ * Pseudo action: stonith_complete ++ * Resource action: rhel7-auto4 start on rhel7-auto2 ++ * Resource action: FAKE1 start on rhel7-auto2 ++ * Pseudo action: FAKE2_stop_0 ++ * Pseudo action: FAKE6_stop_0 ++ * Pseudo action: all_stopped ++ * Resource action: rhel7-auto4 monitor=60000 on rhel7-auto2 ++ * Resource action: FAKE1 monitor=10000 on rhel7-auto2 ++ * Resource action: FAKE2 start on rhel7-auto3 ++ * Resource action: FAKE6 start on rhel7-auto2 ++ * Resource action: FAKE2 monitor=10000 on rhel7-auto3 ++ * Resource action: FAKE6 monitor=10000 on rhel7-auto2 ++ ++Revised cluster status: ++Online: [ rhel7-auto2 rhel7-auto3 ] ++OFFLINE: [ rhel7-auto1 ] ++RemoteOnline: [ rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto3 ++ rhel7-auto4 (ocf::pacemaker:remote): Started rhel7-auto2 ++ FAKE1 (ocf::heartbeat:Dummy): Started rhel7-auto2 ++ FAKE2 (ocf::heartbeat:Dummy): Started rhel7-auto3 ++ FAKE3 (ocf::heartbeat:Dummy): Started rhel7-auto2 ++ FAKE4 (ocf::heartbeat:Dummy): Started rhel7-auto3 ++ FAKE5 (ocf::heartbeat:Dummy): Started rhel7-auto3 ++ FAKE6 (ocf::heartbeat:Dummy): Started rhel7-auto2 ++ +diff --git a/pengine/test10/remote-recover-fail.xml b/pengine/test10/remote-recover-fail.xml +new file mode 100644 +index 0000000..8703e75 +--- /dev/null ++++ b/pengine/test10/remote-recover-fail.xml +@@ -0,0 +1,198 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.2" epoch="18" num_updates="27" admin_epoch="0" cib-last-written="Wed Dec 10 14:37:19 2014" have-quorum="1" dc-uuid="3"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-6b19349"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1418240206"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="rhel7-auto4" provider="pacemaker" type="remote"> ++ <instance_attributes id="rhel7-auto4-instance_attributes"/> ++ <operations> ++ <op id="rhel7-auto4-start-timeout-60" interval="0s" name="start" timeout="60"/> ++ <op id="rhel7-auto4-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="rhel7-auto4-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ </operations> ++ <meta_attributes id="rhel7-auto4-meta_attributes"/> ++ </primitive> ++ <primitive class="ocf" id="FAKE1" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE1-instance_attributes"/> ++ <operations> ++ <op id="FAKE1-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE1-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE1-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE2" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE2-instance_attributes"/> ++ <operations> ++ <op id="FAKE2-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE2-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE2-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE3" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE3-instance_attributes"/> ++ <operations> ++ <op id="FAKE3-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE3-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE3-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE4" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE4-instance_attributes"/> ++ <operations> ++ <op id="FAKE4-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE4-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE4-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE5" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE5-instance_attributes"/> ++ <operations> ++ <op id="FAKE5-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE5-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE5-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE6" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE6-instance_attributes"/> ++ <operations> ++ <op id="FAKE6-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE6-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE6-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ </resources> ++ <constraints/> ++ </configuration> ++ <status> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-3-last-failure-rhel7-auto4" name="last-failure-rhel7-auto4" value="1418237396"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="14:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="0:0;14:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="37" rc-code="0" op-status="0" interval="0" last-run="1418240446" last-rc-change="1418240446" exec-time="45" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="15:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="0:0;15:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="38" rc-code="0" op-status="0" interval="60000" last-rc-change="1418240447" exec-time="1133" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="19:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="0:0;19:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="36" rc-code="0" op-status="0" interval="0" last-run="1418240446" last-rc-change="1418240446" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE1_monitor_10000" operation_key="FAKE1_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="19:28:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;19:28:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="12" rc-code="0" op-status="0" interval="10000" last-rc-change="1418240227" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="13:30:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;13:30:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="20" rc-code="7" op-status="0" interval="0" last-run="1418240232" last-rc-change="1418240232" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="28:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="0:0;28:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="39" rc-code="0" op-status="0" interval="0" last-run="1418240448" last-rc-change="1418240448" exec-time="26" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="30:32:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;30:32:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1418240237" last-rc-change="1418240237" exec-time="25" queue-time="16" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE5_monitor_10000" operation_key="FAKE5_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="31:32:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;31:32:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="30" rc-code="0" op-status="0" interval="10000" last-rc-change="1418240237" exec-time="20" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="16:33:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;16:33:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418240240" last-rc-change="1418240240" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="12:29:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;12:29:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="16" rc-code="7" op-status="0" interval="0" last-run="1418240230" last-rc-change="1418240230" exec-time="22" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:25:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;10:25:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="4" rc-code="7" op-status="0" interval="0" last-run="1418240206" last-rc-change="1418240206" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="false" crmd="offline" crm-debug-origin="send_stonith_update" join="down" expected="down"/> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-2-last-failure-rhel7-auto4" name="last-failure-rhel7-auto4" value="1418237340"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="0:0;13:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="40" rc-code="0" op-status="0" interval="0" last-run="1418240444" last-rc-change="1418240444" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:26:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;10:26:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1418240205" exec-time="11" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="9:28:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;9:28:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="16" rc-code="7" op-status="0" interval="0" last-run="1418240226" last-rc-change="1418240226" exec-time="80" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="25:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="0:0;25:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="43" rc-code="0" op-status="0" interval="0" last-run="1418240447" last-rc-change="1418240447" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="27:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="0:0;27:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="42" rc-code="0" op-status="0" interval="0" last-run="1418240444" last-rc-change="1418240444" exec-time="25" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE4_monitor_10000" operation_key="FAKE4_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="28:31:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;28:31:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="30" rc-code="0" op-status="0" interval="10000" last-rc-change="1418240233" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="13:32:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;13:32:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1418240235" last-rc-change="1418240235" exec-time="23" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="14:33:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;14:33:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="38" rc-code="7" op-status="0" interval="0" last-run="1418240238" last-rc-change="1418240238" exec-time="20" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="10:29:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;10:29:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="20" rc-code="7" op-status="0" interval="0" last-run="1418240228" last-rc-change="1418240228" exec-time="21" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="17:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="2:1;17:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="5" rc-code="1" op-status="2" interval="0" last-run="1418240447" last-rc-change="1418240447" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ <lrm_rsc_op id="rhel7-auto4_last_failure_0" operation_key="rhel7-auto4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="17:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" transition-magic="2:1;17:0:0:694ed93a-eab4-462e-a68d-84b5e397634d" call-id="5" rc-code="1" op-status="2" interval="0" last-run="1418240447" last-rc-change="1418240447" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="rhel7-auto4" remote_node="true" uname="rhel7-auto4" crm-debug-origin="do_update_resource"> ++ <transient_attributes id="rhel7-auto4"> ++ <instance_attributes id="status-rhel7-auto4"> ++ <nvpair id="status-rhel7-auto4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="rhel7-auto4"> ++ <lrm_resources> ++ <lrm_resource id="FAKE1" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE1_last_0" operation_key="FAKE1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:28:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;13:28:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="6" rc-code="7" op-status="0" interval="0" last-run="1418240226" last-rc-change="1418240226" exec-time="83" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="21:29:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;21:29:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="11" rc-code="0" op-status="0" interval="0" last-run="1418240228" last-rc-change="1418240228" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE2_monitor_10000" operation_key="FAKE2_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="22:29:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;22:29:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="12" rc-code="0" op-status="0" interval="10000" last-rc-change="1418240228" exec-time="26" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="15:30:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;15:30:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="16" rc-code="7" op-status="0" interval="0" last-run="1418240230" last-rc-change="1418240230" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="16:31:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;16:31:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="20" rc-code="7" op-status="0" interval="0" last-run="1418240233" last-rc-change="1418240233" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE5" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE5_last_0" operation_key="FAKE5_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="17:32:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;17:32:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="24" rc-code="7" op-status="0" interval="0" last-run="1418240235" last-rc-change="1418240235" exec-time="27" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE6" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE6_last_0" operation_key="FAKE6_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="33:33:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;33:33:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="29" rc-code="0" op-status="0" interval="0" last-run="1418240238" last-rc-change="1418240238" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE6_monitor_10000" operation_key="FAKE6_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="34:33:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;34:33:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="30" rc-code="0" op-status="0" interval="10000" last-rc-change="1418240238" exec-time="26" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/remote-recover.dot b/pengine/test10/remote-recover.dot +index 1da6a7b..22e0cc7 100644 +--- a/pengine/test10/remote-recover.dot ++++ b/pengine/test10/remote-recover.dot +@@ -9,6 +9,7 @@ + "rhel7-alt4_monitor_60000 rhel7-alt1" [ style=bold color="green" fontcolor="black"] + "rhel7-alt4_start_0 rhel7-alt1" -> "fake_monitor_10000 rhel7-alt4" [ style = bold] + "rhel7-alt4_start_0 rhel7-alt1" -> "fake_start_0 rhel7-alt4" [ style = bold] ++"rhel7-alt4_start_0 rhel7-alt1" -> "fake_stop_0 rhel7-alt4" [ style = bold] + "rhel7-alt4_start_0 rhel7-alt1" -> "rhel7-alt4_monitor_60000 rhel7-alt1" [ style = bold] + "rhel7-alt4_start_0 rhel7-alt1" [ style=bold color="green" fontcolor="black"] + "shooter_monitor_60000 rhel7-alt1" [ style=bold color="green" fontcolor="black"] +diff --git a/pengine/test10/remote-recover.exp b/pengine/test10/remote-recover.exp +index 37e4f71..6386740 100644 +--- a/pengine/test10/remote-recover.exp ++++ b/pengine/test10/remote-recover.exp +@@ -82,7 +82,11 @@ + <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs/> ++ <inputs> ++ <trigger> ++ <rsc_op id="9" operation="start" operation_key="rhel7-alt4_start_0" on_node="rhel7-alt1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> + </synapse> + <synapse id="7"> + <action_set> +diff --git a/pengine/test10/remote-start-fail.dot b/pengine/test10/remote-start-fail.dot +new file mode 100644 +index 0000000..26c9f33 +--- /dev/null ++++ b/pengine/test10/remote-start-fail.dot +@@ -0,0 +1,9 @@ ++ digraph "g" { ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"rhel7-auto4_monitor_60000 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"rhel7-auto4_start_0 rhel7-auto3" -> "rhel7-auto4_monitor_60000 rhel7-auto3" [ style = bold] ++"rhel7-auto4_start_0 rhel7-auto3" [ style=bold color="green" fontcolor="black"] ++"rhel7-auto4_stop_0 rhel7-auto2" -> "all_stopped" [ style = bold] ++"rhel7-auto4_stop_0 rhel7-auto2" -> "rhel7-auto4_start_0 rhel7-auto3" [ style = bold] ++"rhel7-auto4_stop_0 rhel7-auto2" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/remote-start-fail.exp b/pengine/test10/remote-start-fail.exp +new file mode 100644 +index 0000000..6e2ce8b +--- /dev/null ++++ b/pengine/test10/remote-start-fail.exp +@@ -0,0 +1,49 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="13" operation="monitor" operation_key="rhel7-auto4_monitor_60000" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="12" operation="start" operation_key="rhel7-auto4_start_0" on_node="rhel7-auto3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="12" operation="start" operation_key="rhel7-auto4_start_0" on_node="rhel7-auto3" on_node_uuid="3"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="2" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="2" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto2" on_node_uuid="2"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <pseudo_event id="3" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="2" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/remote-start-fail.scores b/pengine/test10/remote-start-fail.scores +new file mode 100644 +index 0000000..d36577f +--- /dev/null ++++ b/pengine/test10/remote-start-fail.scores +@@ -0,0 +1,9 @@ ++Allocation scores: ++native_color: rhel7-auto4 allocation score on rhel7-auto1: -INFINITY ++native_color: rhel7-auto4 allocation score on rhel7-auto2: -INFINITY ++native_color: rhel7-auto4 allocation score on rhel7-auto3: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: -INFINITY +diff --git a/pengine/test10/remote-start-fail.summary b/pengine/test10/remote-start-fail.summary +new file mode 100644 +index 0000000..4f64c75 +--- /dev/null ++++ b/pengine/test10/remote-start-fail.summary +@@ -0,0 +1,24 @@ ++ ++Current cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++RemoteOFFLINE: [ rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ rhel7-auto4 (ocf::pacemaker:remote): FAILED rhel7-auto2 ++ ++Transition Summary: ++ * Recover rhel7-auto4 (Started rhel7-auto2 -> rhel7-auto3) ++ ++Executing cluster transition: ++ * Resource action: rhel7-auto4 stop on rhel7-auto2 ++ * Pseudo action: all_stopped ++ * Resource action: rhel7-auto4 start on rhel7-auto3 ++ * Resource action: rhel7-auto4 monitor=60000 on rhel7-auto3 ++ ++Revised cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++RemoteOnline: [ rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto1 ++ rhel7-auto4 (ocf::pacemaker:remote): Started rhel7-auto3 ++ +diff --git a/pengine/test10/remote-start-fail.xml b/pengine/test10/remote-start-fail.xml +new file mode 100644 +index 0000000..7f92eaf +--- /dev/null ++++ b/pengine/test10/remote-start-fail.xml +@@ -0,0 +1,107 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.2" epoch="9" num_updates="10" admin_epoch="0" cib-last-written="Wed Dec 10 13:47:05 2014" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-6b19349"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="rhel7-auto4" provider="pacemaker" type="remote"> ++ <instance_attributes id="rhel7-auto4-instance_attributes"/> ++ <operations> ++ <op id="rhel7-auto4-start-timeout-60" interval="0s" name="start" timeout="60"/> ++ <op id="rhel7-auto4-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="rhel7-auto4-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ </operations> ++ <meta_attributes id="rhel7-auto4-meta_attributes"/> ++ </primitive> ++ </resources> ++ <constraints/> ++ </configuration> ++ <status> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="8:3:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;8:3:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1418235622" last-rc-change="1418235622" exec-time="989" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="10:5:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;10:5:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="1" rc-code="7" op-status="0" interval="0" last-run="1418237103" last-rc-change="1418237103" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="11:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;11:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="11" rc-code="0" op-status="0" interval="0" last-run="1418237282" last-rc-change="1418237282" exec-time="13" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="12:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;12:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1418237283" exec-time="9" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="1:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;1:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="9" rc-code="0" op-status="0" interval="0" last-run="1418237282" last-rc-change="1418237282" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="rhel7-auto4_monitor_60000" operation_key="rhel7-auto4_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:10:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;13:10:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="6" rc-code="0" op-status="0" interval="60000" last-rc-change="1418237175" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="rhel7-auto4_last_failure_0" operation_key="rhel7-auto4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="11:13:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="2:1;11:13:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="8" rc-code="1" op-status="2" interval="0" last-rc-change="1418237225" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1" last-run="1418237225"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-1-fail-count-rhel7-auto4" name="fail-count-rhel7-auto4" value="INFINITY"/> ++ <nvpair id="status-1-last-failure-rhel7-auto4" name="last-failure-rhel7-auto4" value="1418237282"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="10:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;10:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1418237281" last-rc-change="1418237281" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="10:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;10:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="8" rc-code="0" op-status="0" interval="60000" last-rc-change="1418237103" exec-time="12" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="2:1;13:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="2" rc-code="1" op-status="2" interval="0" last-run="1418237281" last-rc-change="1418237281" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ <lrm_rsc_op id="rhel7-auto4_last_failure_0" operation_key="rhel7-auto4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="2:1;13:15:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="2" rc-code="1" op-status="2" interval="0" last-run="1418237281" last-rc-change="1418237281" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-2-fail-count-rhel7-auto4" name="fail-count-rhel7-auto4" value="INFINITY"/> ++ <nvpair id="status-2-last-failure-rhel7-auto4" name="last-failure-rhel7-auto4" value="1418237340"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="rhel7-auto4" remote_node="true" uname="rhel7-auto4" crm-debug-origin="remote_node_init_status"> ++ <transient_attributes id="rhel7-auto4"> ++ <instance_attributes id="status-rhel7-auto4"> ++ <nvpair id="status-rhel7-auto4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/remote-unclean2.dot b/pengine/test10/remote-unclean2.dot +new file mode 100644 +index 0000000..3f8981b +--- /dev/null ++++ b/pengine/test10/remote-unclean2.dot +@@ -0,0 +1,14 @@ ++ digraph "g" { ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"rhel7-auto4_monitor_60000 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"rhel7-auto4_start_0 rhel7-auto1" -> "rhel7-auto4_monitor_60000 rhel7-auto1" [ style = bold] ++"rhel7-auto4_start_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"rhel7-auto4_stop_0 rhel7-auto1" -> "all_stopped" [ style = bold] ++"rhel7-auto4_stop_0 rhel7-auto1" -> "rhel7-auto4_start_0 rhel7-auto1" [ style = bold] ++"rhel7-auto4_stop_0 rhel7-auto1" [ style=bold color="green" fontcolor="black"] ++"stonith 'reboot' rhel7-auto4" -> "stonith_complete" [ style = bold] ++"stonith 'reboot' rhel7-auto4" [ style=bold color="green" fontcolor="black"] ++"stonith_complete" -> "all_stopped" [ style = bold] ++"stonith_complete" -> "rhel7-auto4_start_0 rhel7-auto1" [ style = bold] ++"stonith_complete" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/remote-unclean2.exp b/pengine/test10/remote-unclean2.exp +new file mode 100644 +index 0000000..19d5863 +--- /dev/null ++++ b/pengine/test10/remote-unclean2.exp +@@ -0,0 +1,75 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="12" operation="start" operation_key="rhel7-auto4_start_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="13" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="11" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="60000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="1" operation="monitor" operation_key="rhel7-auto4_monitor_60000" on_node="rhel7-auto1" on_node_uuid="1"> ++ <primitive id="rhel7-auto4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="12" operation="start" operation_key="rhel7-auto4_start_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <crm_event id="14" operation="stonith" operation_key="stonith-rhel7-auto4-reboot" on_node="rhel7-auto4" on_node_uuid="rhel7-auto4" router_node="rhel7-auto1"> ++ <attributes CRM_meta_on_node="rhel7-auto4" CRM_meta_on_node_uuid="rhel7-auto4" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" /> ++ </crm_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <pseudo_event id="13" operation="stonith_complete" operation_key="stonith_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="14" operation="stonith" operation_key="stonith-rhel7-auto4-reboot" on_node="rhel7-auto4" on_node_uuid="rhel7-auto4" router_node="rhel7-auto1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <pseudo_event id="3" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="stop" operation_key="rhel7-auto4_stop_0" on_node="rhel7-auto1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="13" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/remote-unclean2.scores b/pengine/test10/remote-unclean2.scores +new file mode 100644 +index 0000000..72a5953 +--- /dev/null ++++ b/pengine/test10/remote-unclean2.scores +@@ -0,0 +1,9 @@ ++Allocation scores: ++native_color: rhel7-auto4 allocation score on rhel7-auto1: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto2: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto3: 0 ++native_color: rhel7-auto4 allocation score on rhel7-auto4: -INFINITY ++native_color: shooter allocation score on rhel7-auto1: 0 ++native_color: shooter allocation score on rhel7-auto2: 0 ++native_color: shooter allocation score on rhel7-auto3: 0 ++native_color: shooter allocation score on rhel7-auto4: -INFINITY +diff --git a/pengine/test10/remote-unclean2.summary b/pengine/test10/remote-unclean2.summary +new file mode 100644 +index 0000000..0a73cbd +--- /dev/null ++++ b/pengine/test10/remote-unclean2.summary +@@ -0,0 +1,26 @@ ++ ++Current cluster status: ++RemoteNode rhel7-auto4: UNCLEAN (offline) ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto2 ++ rhel7-auto4 (ocf::pacemaker:remote): FAILED rhel7-auto1 ++ ++Transition Summary: ++ * Recover rhel7-auto4 (Started rhel7-auto1) ++ ++Executing cluster transition: ++ * Resource action: rhel7-auto4 stop on rhel7-auto1 ++ * Fencing rhel7-auto4 (reboot) ++ * Pseudo action: stonith_complete ++ * Pseudo action: all_stopped ++ * Resource action: rhel7-auto4 start on rhel7-auto1 ++ * Resource action: rhel7-auto4 monitor=60000 on rhel7-auto1 ++ ++Revised cluster status: ++Online: [ rhel7-auto1 rhel7-auto2 rhel7-auto3 ] ++RemoteOnline: [ rhel7-auto4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-auto2 ++ rhel7-auto4 (ocf::pacemaker:remote): Started rhel7-auto1 ++ +diff --git a/pengine/test10/remote-unclean2.xml b/pengine/test10/remote-unclean2.xml +new file mode 100644 +index 0000000..616b482 +--- /dev/null ++++ b/pengine/test10/remote-unclean2.xml +@@ -0,0 +1,103 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.2" epoch="7" num_updates="16" admin_epoch="0" cib-last-written="Wed Dec 10 13:45:02 2014" have-quorum="1" dc-uuid="1"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-have-watchdog" name="have-watchdog" value="false"/> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-6b19349"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-auto1"/> ++ <node id="2" uname="rhel7-auto2"/> ++ <node id="3" uname="rhel7-auto3"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="rhel7-auto4" provider="pacemaker" type="remote"> ++ <instance_attributes id="rhel7-auto4-instance_attributes"/> ++ <operations> ++ <op id="rhel7-auto4-start-timeout-60" interval="0s" name="start" timeout="60"/> ++ <op id="rhel7-auto4-stop-timeout-60" interval="0s" name="stop" timeout="60"/> ++ <op id="rhel7-auto4-monitor-timeout-30" interval="60s" name="monitor" timeout="30"/> ++ </operations> ++ </primitive> ++ </resources> ++ <constraints/> ++ </configuration> ++ <status> ++ <node_state id="3" uname="rhel7-auto3" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="3"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="8:3:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;8:3:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1418235622" last-rc-change="1418235622" exec-time="989" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="10:5:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;10:5:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="1" rc-code="7" op-status="0" interval="0" last-run="1418237103" last-rc-change="1418237103" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="3"> ++ <instance_attributes id="status-3"> ++ <nvpair id="status-3-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="1" uname="rhel7-auto1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="12:5:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;12:5:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="10" rc-code="0" op-status="0" interval="0" last-run="1418237103" last-rc-change="1418237103" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="10:3:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;10:3:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="7" rc-code="0" op-status="0" interval="60000" last-rc-change="1418235623" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="15:5:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;15:5:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="2" rc-code="0" op-status="0" interval="0" last-run="1418237103" last-rc-change="1418237103" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="rhel7-auto4_monitor_60000" operation_key="rhel7-auto4_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;13:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="3" rc-code="0" op-status="0" interval="60000" last-rc-change="1418237104" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="rhel7-auto1"/> ++ <lrm_rsc_op id="rhel7-auto4_last_failure_0" operation_key="rhel7-auto4_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="4:1;13:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="3" rc-code="1" op-status="4" interval="60000" last-rc-change="1418237129" exec-time="0" queue-time="0" op-digest="02a5bcf940fc8d3239701acb11438d6a" on_node="rhel7-auto1"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-1-fail-count-rhel7-auto4" name="fail-count-rhel7-auto4" value="1"/> ++ <nvpair id="status-1-last-failure-rhel7-auto4" name="last-failure-rhel7-auto4" value="1418237129"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="2" uname="rhel7-auto2" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="13:5:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;13:5:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="7" rc-code="0" op-status="0" interval="0" last-run="1418237102" last-rc-change="1418237102" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="10:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:0;10:6:0:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="8" rc-code="0" op-status="0" interval="60000" last-rc-change="1418237103" exec-time="12" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-auto4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-auto4_last_0" operation_key="rhel7-auto4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="8:5:7:d38b5504-008d-47e7-b5e6-d85f9c599954" transition-magic="0:7;8:5:7:d38b5504-008d-47e7-b5e6-d85f9c599954" call-id="1" rc-code="7" op-status="0" interval="0" last-run="1418237101" last-rc-change="1418237101" exec-time="0" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-auto2"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="rhel7-auto4" remote_node="true" uname="rhel7-auto4" crm-debug-origin="remote_node_init_status"> ++ <transient_attributes id="rhel7-auto4"> ++ <instance_attributes id="status-rhel7-auto4"> ++ <nvpair id="status-rhel7-auto4-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/whitebox-migrate1.exp b/pengine/test10/whitebox-migrate1.exp +index 0a2b5ac..ce77eb1 100644 +--- a/pengine/test10/whitebox-migrate1.exp ++++ b/pengine/test10/whitebox-migrate1.exp +@@ -152,7 +152,7 @@ + <action_set> + <rsc_op id="42" operation="migrate_to" operation_key="rhel7-node1_migrate_to_0" on_node="rhel7-node2" on_node_uuid="2"> + <primitive id="rhel7-node1" class="ocf" provider="pacemaker" type="remote"/> +- <attributes CRM_meta_container="remote-rsc" CRM_meta_migrate_source="rhel7-node2" CRM_meta_migrate_target="rhel7-node3" CRM_meta_record_pending="true" CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_container="remote-rsc" CRM_meta_migrate_source="rhel7-node2" CRM_meta_migrate_target="rhel7-node3" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> diff --git a/SOURCES/pacemaker-3414f1cd3ebcc2e6f787ea14d8e31510f36fbe4a-update-membership.patch b/SOURCES/pacemaker-3414f1cd3ebcc2e6f787ea14d8e31510f36fbe4a-update-membership.patch new file mode 100644 index 0000000..2b4c369 --- /dev/null +++ b/SOURCES/pacemaker-3414f1cd3ebcc2e6f787ea14d8e31510f36fbe4a-update-membership.patch @@ -0,0 +1,36 @@ +From 3414f1cd3ebcc2e6f787ea14d8e31510f36fbe4a Mon Sep 17 00:00:00 2001 +From: Hideo Yamauchi <renayama19661014@ybb.ne.jp> +Date: Tue, 6 Jan 2015 16:05:34 +0900 +Subject: [PATCH] Update membership.c + +--- + crmd/membership.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +diff --git a/crmd/membership.c b/crmd/membership.c +index 946cde0..e1414df 100644 +--- a/crmd/membership.c ++++ b/crmd/membership.c +@@ -378,17 +378,13 @@ populate_cib_nodes(enum node_update_flags flags, const char *source) + + g_hash_table_iter_init(&iter, crm_peer_cache); + while (g_hash_table_iter_next(&iter, NULL, (gpointer *) &node)) { +- xmlNode *update = NULL; +- update = do_update_node_cib(node, flags, node_list, source); +- free_xml(update); ++ do_update_node_cib(node, flags, node_list, source); + } + + if (crm_remote_peer_cache) { + g_hash_table_iter_init(&iter, crm_remote_peer_cache); + while (g_hash_table_iter_next(&iter, NULL, (gpointer *) &node)) { +- xmlNode *update = NULL; +- update = do_update_node_cib(node, flags, node_list, source); +- free_xml(update); ++ do_update_node_cib(node, flags, node_list, source); + } + } + +-- +1.8.4.2 + diff --git a/SOURCES/pacemaker-5147bbf46b81708a1ac544a4cfd204b50938c67c-crmd-memleak.patch b/SOURCES/pacemaker-5147bbf46b81708a1ac544a4cfd204b50938c67c-crmd-memleak.patch new file mode 100644 index 0000000..c3a9967 --- /dev/null +++ b/SOURCES/pacemaker-5147bbf46b81708a1ac544a4cfd204b50938c67c-crmd-memleak.patch @@ -0,0 +1,61 @@ +From 5147bbf46b81708a1ac544a4cfd204b50938c67c Mon Sep 17 00:00:00 2001 +From: Hideo Yamauchi <renayama19661014@ybb.ne.jp> +Date: Tue, 6 Jan 2015 13:45:19 +0900 +Subject: [PATCH] Fix: crmd: resolves memory leak in crmd. + +--- + crmd/membership.c | 10 ++++++++-- + crmd/pengine.c | 1 + + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/crmd/membership.c b/crmd/membership.c +index 9a58339..946cde0 100644 +--- a/crmd/membership.c ++++ b/crmd/membership.c +@@ -215,9 +215,11 @@ search_conflicting_node_callback(xmlNode * msg, int call_id, int rc, + crm_notice("Searching conflicting nodes for %s failed: %s (%d)", + new_node_uuid, pcmk_strerror(rc), rc); + } ++ free(new_node_uuid); + return; + + } else if (output == NULL) { ++ free(new_node_uuid); + return; + } + +@@ -376,13 +378,17 @@ populate_cib_nodes(enum node_update_flags flags, const char *source) + + g_hash_table_iter_init(&iter, crm_peer_cache); + while (g_hash_table_iter_next(&iter, NULL, (gpointer *) &node)) { +- do_update_node_cib(node, flags, node_list, source); ++ xmlNode *update = NULL; ++ update = do_update_node_cib(node, flags, node_list, source); ++ free_xml(update); + } + + if (crm_remote_peer_cache) { + g_hash_table_iter_init(&iter, crm_remote_peer_cache); + while (g_hash_table_iter_next(&iter, NULL, (gpointer *) &node)) { +- do_update_node_cib(node, flags, node_list, source); ++ xmlNode *update = NULL; ++ update = do_update_node_cib(node, flags, node_list, source); ++ free_xml(update); + } + } + +diff --git a/crmd/pengine.c b/crmd/pengine.c +index 2f7513f..35f35c6 100644 +--- a/crmd/pengine.c ++++ b/crmd/pengine.c +@@ -277,6 +277,7 @@ force_local_option(xmlNode *xml, const char *attr_name, const char *attr_value) + + free(attr_id); + } ++ freeXpathObject(xpathObj); + } + + void +-- +1.8.4.2 + diff --git a/SOURCES/pacemaker-6d482cf1c1226f75e59569b930cf916ccb0d350f-pcmk-remote-timer-fix.patch b/SOURCES/pacemaker-6d482cf1c1226f75e59569b930cf916ccb0d350f-pcmk-remote-timer-fix.patch new file mode 100644 index 0000000..701b54f --- /dev/null +++ b/SOURCES/pacemaker-6d482cf1c1226f75e59569b930cf916ccb0d350f-pcmk-remote-timer-fix.patch @@ -0,0 +1,25 @@ +From 6d482cf1c1226f75e59569b930cf916ccb0d350f Mon Sep 17 00:00:00 2001 +From: Hideo Yamauchi <renayama19661014@ybb.ne.jp> +Date: Fri, 10 Oct 2014 13:11:01 +0900 +Subject: [PATCH] Mistake of the set of the variable. + +--- + crmd/remote_lrmd_ra.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/crmd/remote_lrmd_ra.c b/crmd/remote_lrmd_ra.c +index f3dedeb..929b3f8 100644 +--- a/crmd/remote_lrmd_ra.c ++++ b/crmd/remote_lrmd_ra.c +@@ -573,7 +573,7 @@ handle_remote_ra_exec(gpointer user_data) + * cleared which will require all the resources running in the remote-node + * to be explicitly re-detected via probe actions. If the takeover does occur + * successfully, then we can leave the status section intact. */ +- cmd->monitor_timeout_id = g_timeout_add((cmd->timeout/2), connection_takeover_timeout_cb, cmd); ++ cmd->takeover_timeout_id = g_timeout_add((cmd->timeout/2), connection_takeover_timeout_cb, cmd); + ra_data->cur_cmd = cmd; + return TRUE; + } +-- +1.8.4.2 + diff --git a/SOURCES/pacemaker-7170ed-fix-acl-correctly-implement-the-reference-acl-direct.patch b/SOURCES/pacemaker-7170ed-fix-acl-correctly-implement-the-reference-acl-direct.patch new file mode 100644 index 0000000..4489278 --- /dev/null +++ b/SOURCES/pacemaker-7170ed-fix-acl-correctly-implement-the-reference-acl-direct.patch @@ -0,0 +1,26 @@ +From 7170ed6129d7381f3adab964d8295f00f7c4b776 Mon Sep 17 00:00:00 2001 +From: Andrew Beekhof <andrew@beekhof.net> +Date: Mon, 12 Jan 2015 13:45:17 +1100 +Subject: [PATCH] Fix: acl: Correctly implement the 'reference' acl directive + +--- + lib/common/xml.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/lib/common/xml.c b/lib/common/xml.c +index 54f1aa7..2c476dc 100644 +--- a/lib/common/xml.c ++++ b/lib/common/xml.c +@@ -653,8 +653,7 @@ __xml_acl_create(xmlNode * xml, xmlNode *target, enum xml_private_flags mode) + if(tag) { + offset += snprintf(buffer + offset, XML_BUFFER_SIZE - offset, "//%s", tag); + } else { +- /* Is this even legal xpath syntax? */ +- offset += snprintf(buffer + offset, XML_BUFFER_SIZE - offset, "*"); ++ offset += snprintf(buffer + offset, XML_BUFFER_SIZE - offset, "//*"); + } + + if(ref || attr) { +-- +1.8.4.2 + diff --git a/SOURCES/pacemaker-8ffcf86bcab8bf98d5477a68b73e5062eb0c0fad-pacemakerd-memleak.patch b/SOURCES/pacemaker-8ffcf86bcab8bf98d5477a68b73e5062eb0c0fad-pacemakerd-memleak.patch new file mode 100644 index 0000000..234331d --- /dev/null +++ b/SOURCES/pacemaker-8ffcf86bcab8bf98d5477a68b73e5062eb0c0fad-pacemakerd-memleak.patch @@ -0,0 +1,28 @@ +From 8ffcf86bcab8bf98d5477a68b73e5062eb0c0fad Mon Sep 17 00:00:00 2001 +From: Hideo Yamauchi <renayama19661014@ybb.ne.jp> +Date: Wed, 24 Dec 2014 09:37:52 +0900 +Subject: [PATCH] Fix: pacemakerd: resolves memory leak of xml structure in + pacemakerd + +--- + mcp/pacemaker.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/mcp/pacemaker.c b/mcp/pacemaker.c +index fa2c707..5235ba6 100644 +--- a/mcp/pacemaker.c ++++ b/mcp/pacemaker.c +@@ -828,6 +828,10 @@ mcp_cpg_deliver(cpg_handle_t handle, + name = crm_element_value(xml, XML_ATTR_UNAME); + reap_crm_member(id, name); + } ++ ++ if (xml != NULL) { ++ free_xml(xml); ++ } + } + + static void +-- +1.8.4.2 + diff --git a/SOURCES/pacemaker-add-RemoteLXC-cts-test.patch b/SOURCES/pacemaker-add-RemoteLXC-cts-test.patch deleted file mode 100644 index e693975..0000000 --- a/SOURCES/pacemaker-add-RemoteLXC-cts-test.patch +++ /dev/null @@ -1,581 +0,0 @@ -commit c8136d5f0abe785223f4ea809073d6566aa36b58 -Author: David Vossel <dvossel@redhat.com> -Date: Wed Sep 25 18:14:13 2013 -0400 - - RemoteLXC port - -diff --git a/configure.ac b/configure.ac -index 6c80891..cfc1b1f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1084,6 +1084,10 @@ CRM_CONFIG_DIR="${localstatedir}/lib/pacemaker/cib" - AC_DEFINE_UNQUOTED(CRM_CONFIG_DIR,"$CRM_CONFIG_DIR", Where to keep configuration files) - AC_SUBST(CRM_CONFIG_DIR) - -+CRM_CONFIG_CTS="${localstatedir}/lib/pacemaker/cts" -+AC_DEFINE_UNQUOTED(CRM_CONFIG_CTS,"$CRM_CONFIG_CTS", Where to keep cts stateful data) -+AC_SUBST(CRM_CONFIG_CTS) -+ - CRM_LEGACY_CONFIG_DIR="${localstatedir}/lib/heartbeat/crm" - AC_DEFINE_UNQUOTED(CRM_LEGACY_CONFIG_DIR,"$CRM_LEGACY_CONFIG_DIR", Where Pacemaker used to keep configuration files) - AC_SUBST(CRM_LEGACY_CONFIG_DIR) -@@ -1790,7 +1794,8 @@ cts/Makefile \ - cts/CTSvars.py \ - cts/LSBDummy \ - cts/benchmark/Makefile \ -- cts/benchmark/clubench \ -+ cts/benchmark/clubench \ -+ cts/lxc_autogen.sh \ - cib/Makefile \ - crmd/Makefile \ - pengine/Makefile \ -diff --git a/cts/CTSlab.py b/cts/CTSlab.py -index 58506c3..f7e183c 100755 ---- a/cts/CTSlab.py -+++ b/cts/CTSlab.py -@@ -95,6 +95,7 @@ class LabEnvironment(CtsLab): - #self["valgrind-opts"] = """--trace-children=no --num-callers=25 --gen-suppressions=all --suppressions="""+CTSvars.CTS_home+"""/cts.supp""" - - self["experimental-tests"] = 0 -+ self["container-tests"] = 0 - self["valgrind-tests"] = 0 - self["unsafe-tests"] = 1 - self["loop-tests"] = 1 -@@ -148,6 +149,7 @@ def usage(arg, status=1): - print "\t [--no-unsafe-tests] dont run tests that are unsafe for use with ocfs2/drbd" - print "\t [--valgrind-tests] include tests using valgrind" - print "\t [--experimental-tests] include experimental tests" -+ print "\t [--container-tests] include pacemaker_remote tests that run in lxc container resources" - print "\t [--oprofile 'node list'] list of cluster nodes to run oprofile on]" - print "\t [--qarsh] use the QARSH backdoor to access nodes instead of SSH" - print "\t [--seed random_seed]" -@@ -427,6 +429,9 @@ if __name__ == '__main__': - elif args[i] == "--experimental-tests": - Environment["experimental-tests"] = 1 - -+ elif args[i] == "--container-tests": -+ Environment["container-tests"] = 1 -+ - elif args[i] == "--set": - skipthis=1 - (name, value) = args[i+1].split('=') -diff --git a/cts/CTStests.py b/cts/CTStests.py -index b5dd69a..19f6ef4 100644 ---- a/cts/CTStests.py -+++ b/cts/CTStests.py -@@ -73,6 +73,7 @@ class CTSTest: - self.is_loop = 0 - self.is_unsafe = 0 - self.is_experimental = 0 -+ self.is_container = 0 - self.is_valgrind = 0 - self.benchmark = 0 # which tests to benchmark - self.timer = {} # timers -@@ -205,6 +206,8 @@ class CTSTest: - return 0 - elif self.is_experimental and not self.CM.Env["experimental-tests"]: - return 0 -+ elif self.is_container and not self.CM.Env["container-tests"]: -+ return 0 - elif self.CM.Env["benchmark"] and self.benchmark == 0: - return 0 - -@@ -2473,4 +2476,118 @@ def TestList(cm, audits): - result.append(bound_test) - return result - -+################################################################### -+class RemoteLXC(CTSTest): -+################################################################### -+ def __init__(self, cm): -+ CTSTest.__init__(self,cm) -+ self.name="RemoteLXC" -+ self.start = StartTest(cm) -+ self.startall = SimulStartLite(cm) -+ self.num_containers = 2 -+ self.is_container = 1 -+ self.failed = 0 -+ self.fail_string = "" -+ -+ def start_lxc_simple(self, node): -+ -+ rc = self.CM.rsh(node, "/usr/share/pacemaker/tests/cts/lxc_autogen.sh -v &>/dev/null") -+ if rc == 1: -+ return self.skipped() -+ -+ # restore any artifacts laying around from a previous test. -+ self.CM.rsh(node, "/usr/share/pacemaker/tests/cts/lxc_autogen.sh -R &>/dev/null") -+ -+ # generate the containers, put them in the config, add some resources to them -+ pats = [ ] -+ watch = self.create_watch(pats, 120) -+ watch.setwatch() -+ pats.append("process_lrm_event: LRM operation lxc1_start_0.*confirmed.*ok") -+ pats.append("process_lrm_event: LRM operation lxc2_start_0.*confirmed.*ok") -+ pats.append("process_lrm_event: LRM operation lxc-ms_start_0.*confirmed.*ok") -+ pats.append("process_lrm_event: LRM operation lxc-ms_promote_0.*confirmed.*ok") -+ -+ self.CM.rsh(node, "/usr/share/pacemaker/tests/cts/lxc_autogen.sh -g -a -m -s -c %d &>/dev/null" % self.num_containers) -+ self.set_timer("remoteSimpleInit") -+ watch.lookforall() -+ self.log_timer("remoteSimpleInit") -+ if watch.unmatched: -+ self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) -+ self.failed = 1 -+ -+ def cleanup_lxc_simple(self, node): -+ -+ pats = [ ] -+ # if the test failed, attempt to clean up the cib and libvirt environment -+ # as best as possible -+ if self.failed == 1: -+ # restore libvirt and cib -+ self.CM.rsh(node, "/usr/share/pacemaker/tests/cts/lxc_autogen.sh -R &>/dev/null") -+ self.CM.rsh(node, "crm_resource -C -r container1 &>/dev/null") -+ self.CM.rsh(node, "crm_resource -C -r container2 &>/dev/null") -+ self.CM.rsh(node, "crm_resource -C -r lxc1 &>/dev/null") -+ self.CM.rsh(node, "crm_resource -C -r lxc2 &>/dev/null") -+ self.CM.rsh(node, "crm_resource -C -r lxc-ms &>/dev/null") -+ time.sleep(20) -+ return -+ -+ watch = self.create_watch(pats, 120) -+ watch.setwatch() -+ -+ pats.append("process_lrm_event: LRM operation container1_stop_0.*confirmed.*ok") -+ pats.append("process_lrm_event: LRM operation container2_stop_0.*confirmed.*ok") -+ -+ self.CM.rsh(node, "/usr/share/pacemaker/tests/cts/lxc_autogen.sh -p &>/dev/null") -+ self.set_timer("remoteSimpleCleanup") -+ watch.lookforall() -+ self.log_timer("remoteSimpleCleanup") -+ -+ if watch.unmatched: -+ self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) -+ self.failed = 1 -+ -+ # cleanup libvirt -+ self.CM.rsh(node, "/usr/share/pacemaker/tests/cts/lxc_autogen.sh -R &>/dev/null") -+ -+ def __call__(self, node): -+ '''Perform the 'RemoteLXC' test. ''' -+ self.incr("calls") -+ -+ ret = self.startall(None) -+ if not ret: -+ return self.failure("Setup failed, start all nodes failed.") -+ -+ self.start_lxc_simple(node) -+ self.cleanup_lxc_simple(node) -+ -+ self.CM.debug("Waiting for the cluster to recover") -+ self.CM.cluster_stable() -+ -+ if self.failed == 1: -+ return self.failure(self.fail_string) -+ -+ return self.success() -+ -+ def errorstoignore(self): -+ '''Return list of errors which should be ignored''' -+ return [ """Updating failcount for ping""", -+ """LogActions: Recover ping""", -+ """LogActions: Recover lxc-ms""", -+ """LogActions: Recover container""", -+ # The orphaned lxc-ms resource causes an expected transition error -+ # that is a result of the pengine not having knowledge that the -+ # ms resource used to be a clone. As a result it looks like that -+ # resource is running in multiple locations when it shouldn't... But in -+ # this instance we know why this error is occurring and that it is expected. -+ """Calculated Transition .* /var/lib/pacemaker/pengine/pe-error""", -+ """Resource lxc-ms .* is active on 2 nodes attempting recovery""", -+ """Unknown operation: fail""", -+ """notice: operation_finished: ping-""", -+ """notice: operation_finished: container""", -+ """notice: operation_finished: .*_monitor_0:.*:stderr""", -+ """(ERROR|error): sending stonithRA op to stonithd failed.""", -+ ] -+ -+AllTestClasses.append(RemoteLXC) -+ - # vim:ts=4:sw=4:et: -diff --git a/cts/Makefile.am b/cts/Makefile.am -index e01ac10..cb86db8 100644 ---- a/cts/Makefile.am -+++ b/cts/Makefile.am -@@ -40,6 +40,7 @@ cts_DATA = README cts.supp - - cts_SCRIPTS = cluster_test \ - CTSlab.py \ -+ lxc_autogen.sh \ - LSBDummy \ - $(top_srcdir)/fencing/fence_dummy - -diff --git a/cts/lxc_autogen.sh.in b/cts/lxc_autogen.sh.in -new file mode 100644 -index 0000000..1d334c4 ---- /dev/null -+++ b/cts/lxc_autogen.sh.in -@@ -0,0 +1,362 @@ -+#!/bin/bash -+ -+containers="2" -+download=0 -+share_configs=0 -+# different than default libvirt network in case this is run nested in a KVM instance -+addr="192.168.123.1" -+restore=0 -+restore_pcmk=0 -+restore_all=0 -+generate=0 -+key_gen=0 -+cib=0 -+add_master=0 -+verify=0 -+working_dir="@CRM_CONFIG_CTS@/lxc" -+curdir=$(pwd) -+ -+function helptext() { -+ echo "lxc_autogen.sh - A tool for generating libvirt lxc containers for testing purposes." -+ echo "" -+ echo "Usage: lxc-autogen [options]" -+ echo "" -+ echo "Options:" -+ echo "-g, --generate Generate libvirt lxc environment in the directory this script is run from." -+ echo "-k, --key-gen Generate local pacemaker remote key only." -+ echo "-r, --restore-libvirt Restore the default network, and libvirt config to before this script ran." -+ echo "-p, --restore-cib Remove cib entries this script generated." -+ echo "-R, --restore-all Restore both libvirt and cib plus clean working directory. This will leave libvirt xml files though so rsc can be stopped properly." -+ echo "" -+ echo "-a, --add-cib Add remote-node entries for each lxc instance into the cib" -+ echo "-m, --add-master Add master resource shared between remote-nodes" -+ echo "-d, --download-agent Download and install the latest VirtualDomain agent." -+ echo "-s, --share-configs Copy container configs to all other known cluster nodes, (crm_node -l)" -+ echo "-c, --containers Specify the number of containers to generate, defaults to $containers. Used with -g" -+ echo "-n, --network What network to override default libvirt network to. Example: -n 192.168.123.1. Used with -g" -+ echo "-v, --verify Verify environment is capable of running lxc" -+ echo "" -+ exit $1 -+} -+ -+while true ; do -+ case "$1" in -+ --help|-h|-\?) helptext 0;; -+ -c|--containers) containers="$2"; shift; shift;; -+ -d|--download-agent) download=1; shift;; -+ -s|--share-configs) share_configs=1; shift;; -+ -n|--network) addr="$2"; shift; shift;; -+ -r|--restore-libvirt) restore=1; shift;; -+ -p|--restore-cib) restore_pcmk=1; shift;; -+ -R|--restore-all) -+ restore_all=1 -+ restore=1 -+ restore_pcmk=1 -+ shift;; -+ -g|--generate) generate=1; shift;; -+ -k|--key-gen) key_gen=1; shift;; -+ -a|--add-cib) cib=1; shift;; -+ -m|--add-master) add_master=1; shift;; -+ -v|--verify) verify=1; shift;; -+ "") break;; -+ *) helptext 1;; -+ esac -+done -+ -+if [ $verify -eq 1 ]; then -+ # verify virsh tool is available and that -+ # we can connect to lxc driver. -+ virsh -c lxc:/// list --all > /dev/null 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "Could not connect 'virsh -c lxc:///' check that libvirt lxc driver is installed" -+ exit 1 -+ fi -+ -+ cat /etc/selinux/config | grep -e "SELINUX.*=.*permissive" -e "SELINUX.*=.*enforcing" > /dev/null 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "/etc/selinux/config must have SELINUX set to permissive or enforcing mode." -+ exit 1 -+ fi -+ -+ ps x > /tmp/lxc-autogen-libvirt-test.txt -+ grep "libvirtd" /tmp/lxc-autogen-libvirt-test.txt -+ if [ $? -ne 0 ]; then -+ rm -f /tmp/lxc-autogen-libvirt-test.txt -+ echo "libvirtd isn't up." -+ exit 1 -+ fi -+ rm -f /tmp/lxc-autogen-libvirt-test.txt -+ -+ which rsync > /dev/null 2>&1 -+ if [ $? -ne 0 ]; then -+ echo "rsync is required" -+ fi -+ -+fi -+ -+#strip last digits off addr -+tmp="s/\.$(echo "$addr" | tr '.' ' ' | awk '{print $4}')$//g" -+addr=$(echo $addr | sed -e ${tmp}) -+ -+set_network() -+{ -+ rm -f cur_network.xml -+ cat << END >> cur_network.xml -+<network> -+ <name>default</name> -+ <uuid>41ebdb84-7134-1111-a136-91f0f1119225</uuid> -+ <forward mode='nat'/> -+ <bridge name='virbr0' stp='on' delay='0' /> -+ <mac address='52:54:00:A8:12:35'/> -+ <ip address='$addr.1' netmask='255.255.255.0'> -+ <dhcp> -+ <range start='$addr.2' end='$addr.254' /> -+ </dhcp> -+ </ip> -+</network> -+END -+ -+ ls restore_default.xml > /dev/null 2>&1 -+ if [ $? -ne 0 ]; then -+ virsh net-dumpxml default > restore_default.xml -+ fi -+ virsh net-destroy default -+ virsh net-undefine default -+ virsh net-define cur_network.xml -+ virsh net-start default -+} -+ -+generate_key() -+{ -+ #generate pacemaker remote key -+ ls /etc/pacemaker/authkey > /dev/null 2>&1 -+ if [ $? != 0 ]; then -+ mkdir -p /etc/pacemaker -+ dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1 -+ fi -+} -+ -+generate() -+{ -+ set_network -+ -+ # Generate libvirt domains in xml -+ for (( c=1; c <= $containers; c++ )) -+ do -+ rm -rf lxc$c-filesystem -+ mkdir -p lxc$c-filesystem/var/run/ -+ mkdir -p lxc$c-filesystem/usr/var/run -+ rm -f lxc$c.xml -+ cat << END >> lxc$c.xml -+<domain type='lxc'> -+ <name>lxc$c</name> -+ <memory>102400</memory> -+ <os> -+ <type>exe</type> -+ <init>$working_dir/lxc$c-filesystem/launch-helper</init> -+ </os> -+ <devices> -+ <console type='pty'/> -+ <filesystem type='mount'> -+ <source dir='$working_dir/lxc$c-filesystem/var/run'/> -+ <target dir='/var/run'/> -+ </filesystem> -+ <filesystem type='mount'> -+ <source dir='$working_dir/lxc$c-filesystem/usr/var/run'/> -+ <target dir='/usr/var/run'/> -+ </filesystem> -+ <interface type='network'> -+ <mac address='52:54:00:$c$c:$(($RANDOM % 9))$(($RANDOM % 9)):$(($RANDOM % 9))$c'/> -+ <source network='default'/> -+ </interface> -+ </devices> -+</domain> -+END -+ rm -f container$c.cib -+ cat << END >> container$c.cib -+ <primitive class="ocf" id="container$c" provider="heartbeat" type="VirtualDomain"> -+ <instance_attributes id="container$c-instance_attributes"> -+ <nvpair id="container$c-instance_attributes-force_stop" name="force_stop" value="true"/> -+ <nvpair id="container$c-instance_attributes-hypervisor" name="hypervisor" value="lxc:///"/> -+ <nvpair id="container$c-instance_attributes-config" name="config" value="$working_dir/lxc$c.xml"/> -+ <nvpair id="container$c-instance_attributes-remote-node" name="remote-node" value="lxc$c"/> -+ </instance_attributes> -+ <utilization id="container$c-utilization"> -+ <nvpair id="container$c-utilization-cpu" name="cpu" value="1"/> -+ <nvpair id="container$c-utilization-hv_memory" name="hv_memory" value="100"/> -+ </utilization> -+ <meta_attributes id="container$c-meta_attributes"> -+ <nvpair id="container$c-meta_attributes-remote-node" name="remote-node" value="lxc$c"/> -+ </meta_attributes> -+ </primitive> -+END -+ -+ rm -f lxc-ms$c.cib -+ cat << END >> lxc-ms.cib -+ <master id="lxc-ms-master"> -+ <primitive class="ocf" id="lxc-ms" provider="pacemaker" type="Stateful"> -+ <instance_attributes id="lxc-ms-instance_attributes"/> -+ <operations> -+ <op id="lxc-ms-monitor-interval-10s" interval="10s" name="monitor"/> -+ </operations> -+ </primitive> -+ <meta_attributes id="lxc-ms-meta_attributes"> -+ <nvpair id="lxc-ms-meta_attributes-master-max" name="master-max" value="1"/> -+ <nvpair id="lxc-ms-meta_attributes-clone-max" name="clone-max" value="$containers"/> -+ </meta_attributes> -+ </master> -+END -+ -+ rm -f lxc$c-filesystem/launch-helper -+ cat << END >> lxc$c-filesystem/launch-helper -+#!/bin/bash -+ifconfig eth0 $addr.10$c -+route add 0.0.0.0 gw $addr.1 eth0 -+hostname lxc$c -+/usr/sbin/pacemaker_remoted -+END -+ chmod 711 lxc$c-filesystem/launch-helper -+ -+ cat << END >> /etc/hosts -+$addr.10$c lxc$c -+END -+ done -+} -+ -+apply_cib_master() -+{ -+ cibadmin -Q > cur.cib -+ export CIB_file=cur.cib -+ -+ cibadmin -o resources -C -x lxc-ms.cib -+ for tmp in $(ls lxc*.xml); do -+ tmp=$(echo $tmp | sed -e 's/\.xml//g') -+ echo "<rsc_location id=\"lxc-ms-location-${tmp}\" node=\"${tmp}\" rsc=\"lxc-ms\" score=\"INFINITY\"/>" > tmp_constraint -+ cibadmin -o constraints -C -x tmp_constraint -+ echo "<rsc_location id=\"lxc-ping-location-${tmp}\" node=\"${tmp}\" rsc=\"ping-1\" score=\"-INFINITY\"/>" > tmp_constraint -+ cibadmin -o constraints -C -x tmp_constraint > /dev/null 2>&1 -+ rm -f tmp_constraint -+ done -+ unset CIB_file -+ -+ cibadmin --replace --xml-file cur.cib -+ rm -f cur.cib -+} -+ -+apply_cib_entries() -+{ -+ node=$(crm_node -n) -+ -+ cibadmin -Q > cur.cib -+ export CIB_file=cur.cib -+ for tmp in $(ls container*.cib); do -+ cibadmin -o resources -C -x $tmp -+ -+ tmp=$(echo $tmp | sed -e 's/\.cib//g') -+ crm_resource -M -r $tmp -H $node -+ done -+ unset CIB_file -+ -+ cibadmin --replace --xml-file cur.cib -+ rm -f cur.cib -+} -+ -+restore_cib() -+{ -+ node=$(crm_node -n) -+ cibadmin -Q > cur.cib -+ export CIB_file=cur.cib -+ -+ for tmp in $(ls lxc*.xml); do -+ tmp=$(echo $tmp | sed -e 's/\.xml//g') -+ echo "<rsc_location id=\"lxc-ms-location-${tmp}\" node=\"${tmp}\" rsc=\"lxc-ms\" score=\"INFINITY\"/>" > tmp_constraint -+ cibadmin -o constraints -D -x tmp_constraint -+ echo "<rsc_location id=\"lxc-ping-location-${tmp}\" node=\"${tmp}\" rsc=\"ping-1\" score=\"-INFINITY\"/>" > tmp_constraint -+ cibadmin -o constraints -D -x tmp_constraint -+ rm -f tmp_constraint -+ done -+ cibadmin -o resources -D -x lxc-ms.cib -+ -+ for tmp in $(ls container*.cib); do -+ tmp=$(echo $tmp | sed -e 's/\.cib//g') -+ crm_resource -U -r $tmp -H $node -+ crm_resource -D -r $tmp -t primitive -+ done -+ unset CIB_file -+ -+ cibadmin --replace --xml-file cur.cib -+ rm -f cur.cib -+} -+ -+restore_libvirt() -+{ -+ for tmp in $(ls lxc*.xml); do -+ tmp=$(echo $tmp | sed -e 's/\.xml//g') -+ virsh -c lxc:/// destroy $tmp > /dev/null 2>&1 -+ virsh -c lxc:/// undefine $tmp > /dev/null 2>&1 -+ -+ sed -i.bak "/...\....\....\..* ${tmp}/d" /etc/hosts -+ echo "$tmp destroyed" -+ done -+ -+ ls restore_default.xml > /dev/null 2>&1 -+ if [ $? -eq 0 ]; then -+ virsh net-destroy default > /dev/null 2>&1 -+ virsh net-undefine default > /dev/null 2>&1 -+ virsh net-define restore_default.xml -+ virsh net-start default -+ if [ $? -eq 0 ]; then -+ echo "default network restored" -+ fi -+ fi -+ rm -f restore_default.xml > /dev/null 2>&1 -+} -+ -+distribute_configs() -+{ -+ local node -+ local id -+ while read id node -+ do -+ rsync -ave 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' $working_dir/lxc*.xml $node:/$working_dir -+ rsync -ave 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no' $working_dir/lxc*-filesystem $node:/$working_dir -+ done < <(crm_node -l) -+} -+ -+mkdir -p $working_dir -+cd $working_dir -+ -+if [ $download -eq 1 ]; then -+ wget https://raw.github.com/ClusterLabs/resource-agents/master/heartbeat/VirtualDomain -+ chmod 755 VirtualDomain -+ mv -f VirtualDomain /usr/lib/ocf/resource.d/heartbeat/VirtualDomain -+fi -+if [ $restore_pcmk -eq 1 ]; then -+ restore_cib -+fi -+if [ $restore -eq 1 ]; then -+ restore_libvirt -+fi -+if [ $key_gen -eq 1 ]; then -+ generate_key -+fi -+if [ $generate -eq 1 ]; then -+ if [ $key_gen -eq 0]; then -+ generate_key -+ fi -+ generate -+fi -+if [ $cib -eq 1 ]; then -+ apply_cib_entries -+fi -+if [ $add_master -eq 1 ]; then -+ apply_cib_master -+fi -+if [ $share_configs -eq 1 ]; then -+ distribute_configs -+fi -+if [ $restore_all -eq 1 ]; then -+ ls | grep -v "lxc.\.xml" | xargs rm -rf -+fi -+ -+cd $curdir diff --git a/SOURCES/pacemaker-async-systemd-reload.patch b/SOURCES/pacemaker-async-systemd-reload.patch new file mode 100644 index 0000000..6398fc0 --- /dev/null +++ b/SOURCES/pacemaker-async-systemd-reload.patch @@ -0,0 +1,665 @@ +diff --git a/include/crm/common/logging.h b/include/crm/common/logging.h +index 5b8e47f..642fa92 100644 +--- a/include/crm/common/logging.h ++++ b/include/crm/common/logging.h +@@ -157,7 +157,7 @@ unsigned int get_crm_log_level(void); + } \ + } while(0) + +-# define do_crm_log_always(level, fmt, args...) qb_log(level, "%s: " fmt, __FUNCTION__ , ##args) ++# define do_crm_log_always(level, fmt, args...) qb_log(level, fmt , ##args) + + # define crm_perror(level, fmt, args...) do { \ + const char *err = strerror(errno); \ +diff --git a/include/crm/services.h b/include/crm/services.h +index 5310709..1a02656 100644 +--- a/include/crm/services.h ++++ b/include/crm/services.h +@@ -262,8 +262,9 @@ enum nagios_exitcode { + */ + svc_action_t *services_action_create_generic(const char *exec, const char *args[]); + +- void +- services_action_free(svc_action_t * op); ++ void services_action_cleanup(svc_action_t * op); ++ ++ void services_action_free(svc_action_t * op); + + gboolean services_action_sync(svc_action_t * op); + +diff --git a/lib/cib/cib_utils.c b/lib/cib/cib_utils.c +index 15b354b..ea37c4b 100644 +--- a/lib/cib/cib_utils.c ++++ b/lib/cib/cib_utils.c +@@ -112,8 +112,13 @@ get_cib_copy(cib_t * cib) + { + xmlNode *xml_cib; + int options = cib_scope_local | cib_sync_call; +- int rc = cib->cmds->query(cib, NULL, &xml_cib, options); ++ int rc = pcmk_ok; ++ ++ if (cib->state == cib_disconnected) { ++ return NULL; ++ } + ++ rc = cib->cmds->query(cib, NULL, &xml_cib, options); + if (rc == -EACCES) { + return NULL; + +diff --git a/lib/services/dbus.c b/lib/services/dbus.c +index c0153b5..f44b590 100644 +--- a/lib/services/dbus.c ++++ b/lib/services/dbus.c +@@ -145,7 +145,7 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, D + return reply; + } + +-bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, ++DBusPendingCall* pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, + void(*done)(DBusPendingCall *pending, void *user_data), void *user_data) + { + DBusError error; +@@ -161,27 +161,30 @@ bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, + // send message and get a handle for a reply + if (!dbus_connection_send_with_reply (connection, msg, &pending, -1/* aka. DBUS_TIMEOUT_USE_DEFAULT */)) { // -1 is default timeout + crm_err("Send with reply failed for %s", method); +- return FALSE; ++ return NULL; + + } else if (pending == NULL) { + crm_err("No pending call found for %s", method); +- return FALSE; +- ++ return NULL; + } + ++ crm_trace("DBus %s call sent", method); + if (dbus_pending_call_get_completed(pending)) { +- crm_info("DBus %s call completed too soon"); +-#if 1 ++ crm_info("DBus %s call completed too soon", method); ++ if(done) { ++#if 0 + /* This sounds like a good idea, but allegedly it breaks things */ + done(pending, user_data); ++ pending = NULL; + #else + CRM_ASSERT(dbus_pending_call_set_notify(pending, done, user_data, NULL)); + #endif ++ } + +- } else { ++ } else if(done) { + CRM_ASSERT(dbus_pending_call_set_notify(pending, done, user_data, NULL)); + } +- return TRUE; ++ return pending; + } + + bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, const char *function, int line) +@@ -286,6 +289,11 @@ pcmk_dbus_lookup_result(DBusMessage *reply, struct db_getall_data *data) + dbus_message_iter_next (&dict); + } + ++ if(data->name && data->callback) { ++ crm_trace("No value for property %s[%s]", data->object, data->name); ++ data->callback(data->name, NULL, data->userdata); ++ } ++ + cleanup: + free(data->target); + free(data->object); +@@ -306,6 +314,9 @@ pcmk_dbus_lookup_cb(DBusPendingCall *pending, void *user_data) + + pcmk_dbus_lookup_result(reply, user_data); + ++ if(pending) { ++ dbus_pending_call_unref(pending); ++ } + if(reply) { + dbus_message_unref(reply); + } +@@ -375,20 +386,59 @@ static void pcmk_dbus_connection_dispatch(DBusConnection *connection, DBusDispat + crm_trace("status %d for %p", new_status, data); + if (new_status == DBUS_DISPATCH_DATA_REMAINS){ + dbus_connection_dispatch(connection); ++ ++ while (dbus_connection_get_dispatch_status(connection) == DBUS_DISPATCH_DATA_REMAINS) { ++ dbus_connection_dispatch(connection); ++ } + } + } + ++/* Copied from dbus-watch.c */ ++ ++static const char* ++dbus_watch_flags_to_string (int flags) ++{ ++ const char *watch_type; ++ ++ if ((flags & DBUS_WATCH_READABLE) && ++ (flags & DBUS_WATCH_WRITABLE)) ++ watch_type = "readwrite"; ++ else if (flags & DBUS_WATCH_READABLE) ++ watch_type = "read"; ++ else if (flags & DBUS_WATCH_WRITABLE) ++ watch_type = "write"; ++ else ++ watch_type = "not read or write"; ++ return watch_type; ++} ++ + static int + pcmk_dbus_watch_dispatch(gpointer userdata) + { ++ bool oom = FALSE; + DBusWatch *watch = userdata; + int flags = dbus_watch_get_flags(watch); ++ bool enabled = dbus_watch_get_enabled (watch); ++ mainloop_io_t *client = dbus_watch_get_data(watch); + +- crm_trace("Dispatching %p with flags %d", watch, flags); +- if(flags & DBUS_WATCH_READABLE) { +- dbus_watch_handle(watch, DBUS_WATCH_READABLE); +- } else { +- dbus_watch_handle(watch, DBUS_WATCH_ERROR); ++ crm_trace("Dispatching client %p: %s", client, dbus_watch_flags_to_string(flags)); ++ if (enabled && is_set(flags, DBUS_WATCH_READABLE)) { ++ oom = !dbus_watch_handle(watch, flags); ++ ++ } else if (enabled && is_set(flags, DBUS_WATCH_READABLE)) { ++ oom = !dbus_watch_handle(watch, flags); ++ ++ } else if(enabled) { ++ oom = !dbus_watch_handle(watch, DBUS_WATCH_ERROR); ++ } ++ ++ if(flags != dbus_watch_get_flags(watch)) { ++ flags = dbus_watch_get_flags(watch); ++ crm_trace("Dispatched client %p: %s (%d)", client, dbus_watch_flags_to_string(flags), flags); ++ } ++ ++ if(oom) { ++ crm_err("DBus encountered OOM while attempting to dispatch %p (%s)", client, dbus_watch_flags_to_string(flags)); + } + return 0; + } +@@ -396,7 +446,8 @@ pcmk_dbus_watch_dispatch(gpointer userdata) + static void + pcmk_dbus_watch_destroy(gpointer userdata) + { +- crm_trace("Destroyed %p", userdata); ++ mainloop_io_t *client = dbus_watch_get_data(userdata); ++ crm_trace("Destroyed %p", client); + } + + +@@ -412,7 +463,7 @@ pcmk_dbus_watch_add(DBusWatch *watch, void *data){ + mainloop_io_t *client = mainloop_add_fd( + "dbus", G_PRIORITY_DEFAULT, fd, watch, &pcmk_dbus_cb); + +- crm_trace("Added %p with fd=%d", watch, fd); ++ crm_trace("Added watch %p with fd=%d to client %p", watch, fd, client); + dbus_watch_set_data(watch, client, NULL); + return TRUE; + } +@@ -429,14 +480,14 @@ static void + pcmk_dbus_watch_remove(DBusWatch *watch, void *data){ + mainloop_io_t *client = dbus_watch_get_data(watch); + +- crm_trace("Removed %p", watch); ++ crm_trace("Removed client %p (%p)", client, data); + mainloop_del_fd(client); + } + + static gboolean + pcmk_dbus_timeout_dispatch(gpointer data) + { +- crm_trace("Timeout for %p"); ++ crm_info("Timeout %p expired", data); + dbus_timeout_handle(data); + return FALSE; + } +@@ -445,6 +496,8 @@ static dbus_bool_t + pcmk_dbus_timeout_add(DBusTimeout *timeout, void *data){ + guint id = g_timeout_add(dbus_timeout_get_interval(timeout), pcmk_dbus_timeout_dispatch, timeout); + ++ crm_trace("Adding timeout %p (%ld)", timeout, dbus_timeout_get_interval(timeout)); ++ + if(id) { + dbus_timeout_set_data(timeout, GUINT_TO_POINTER(id), NULL); + } +@@ -456,6 +509,8 @@ pcmk_dbus_timeout_remove(DBusTimeout *timeout, void *data){ + void *vid = dbus_timeout_get_data(timeout); + guint id = GPOINTER_TO_UINT(vid); + ++ crm_trace("Removing timeout %p (%p)", timeout, data); ++ + if(id) { + g_source_remove(id); + dbus_timeout_set_data(timeout, 0, NULL); +@@ -464,7 +519,11 @@ pcmk_dbus_timeout_remove(DBusTimeout *timeout, void *data){ + + static void + pcmk_dbus_timeout_toggle(DBusTimeout *timeout, void *data){ +- if(dbus_timeout_get_enabled(timeout)) { ++ bool enabled = dbus_timeout_get_enabled(timeout); ++ ++ crm_trace("Toggling timeout for %p to %s", timeout, enabled?"off":"on"); ++ ++ if(enabled) { + pcmk_dbus_timeout_add(timeout, data); + } else { + pcmk_dbus_timeout_remove(timeout, data); +diff --git a/lib/services/pcmk-dbus.h b/lib/services/pcmk-dbus.h +index ed80c5f..468020e 100644 +--- a/lib/services/pcmk-dbus.h ++++ b/lib/services/pcmk-dbus.h +@@ -2,7 +2,7 @@ DBusConnection *pcmk_dbus_connect(void); + void pcmk_dbus_connection_setup_with_select(DBusConnection *c); + void pcmk_dbus_disconnect(DBusConnection *connection); + +-bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, ++DBusPendingCall *pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, + void(*done)(DBusPendingCall *pending, void *user_data), void *user_data); + DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, DBusError *error); + bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected, const char *function, int line); +diff --git a/lib/services/services.c b/lib/services/services.c +index 9936c72..582fbe1 100644 +--- a/lib/services/services.c ++++ b/lib/services/services.c +@@ -303,18 +303,24 @@ services_action_create_generic(const char *exec, const char *args[]) + } + + void +-services_action_free(svc_action_t * op) ++services_action_cleanup(svc_action_t * op) + { +- unsigned int i; +- +- if (op == NULL) { +- return; ++ if(op->opaque->timerid != 0) { ++ crm_trace("Removing timer for call %s to %s", op->action, op->rsc); ++ g_source_remove(op->opaque->timerid); ++ op->opaque->timerid = 0; + } + +- if (op->opaque->repeat_timer) { +- g_source_remove(op->opaque->repeat_timer); +- op->opaque->repeat_timer = 0; ++ if(op->opaque->pending) { ++ crm_trace("Cleaning up pending dbus call %p %s for %s", op->opaque->pending, op->action, op->rsc); ++ if(dbus_pending_call_get_completed(op->opaque->pending)) { ++ crm_warn("Pending dbus call %s for %s did not complete", op->action, op->rsc); ++ } ++ dbus_pending_call_cancel(op->opaque->pending); ++ dbus_pending_call_unref(op->opaque->pending); ++ op->opaque->pending = NULL; + } ++ + if (op->opaque->stderr_gsource) { + mainloop_del_fd(op->opaque->stderr_gsource); + op->opaque->stderr_gsource = NULL; +@@ -324,6 +330,23 @@ services_action_free(svc_action_t * op) + mainloop_del_fd(op->opaque->stdout_gsource); + op->opaque->stdout_gsource = NULL; + } ++} ++ ++void ++services_action_free(svc_action_t * op) ++{ ++ unsigned int i; ++ ++ if (op == NULL) { ++ return; ++ } ++ ++ services_action_cleanup(op); ++ ++ if (op->opaque->repeat_timer) { ++ g_source_remove(op->opaque->repeat_timer); ++ op->opaque->repeat_timer = 0; ++ } + + free(op->id); + free(op->opaque->exec); +diff --git a/lib/services/services_linux.c b/lib/services/services_linux.c +index 2279e4e..8d6f450 100644 +--- a/lib/services/services_linux.c ++++ b/lib/services/services_linux.c +@@ -264,6 +264,8 @@ operation_finalize(svc_action_t * op) + services_action_free(op); + return TRUE; + } ++ ++ services_action_cleanup(op); + return FALSE; + } + +diff --git a/lib/services/services_private.h b/lib/services/services_private.h +index dd759e3..bcf882c 100644 +--- a/lib/services/services_private.h ++++ b/lib/services/services_private.h +@@ -19,6 +19,10 @@ + #ifndef __MH_SERVICES_PRIVATE_H__ + # define __MH_SERVICES_PRIVATE_H__ + ++#if SUPPORT_DBUS ++# include <dbus/dbus.h> ++#endif ++ + struct svc_action_private_s { + char *exec; + char *args[255]; +@@ -31,6 +35,10 @@ struct svc_action_private_s { + + int stdout_fd; + mainloop_io_t *stdout_gsource; ++#if SUPPORT_DBUS ++ DBusPendingCall* pending; ++ unsigned timerid; ++#endif + }; + + GList *services_os_get_directory_list(const char *root, gboolean files, gboolean executable); +diff --git a/lib/services/systemd.c b/lib/services/systemd.c +index 9a7b078..51ade44 100644 +--- a/lib/services/systemd.c ++++ b/lib/services/systemd.c +@@ -110,20 +110,48 @@ systemd_service_name(const char *name) + return g_strdup_printf("%s.service", name); + } + +-static bool +-systemd_daemon_reload(void) ++static void ++systemd_daemon_reload_complete(DBusPendingCall *pending, void *user_data) + { +- /* TODO: Make this asynchronous */ +- const char *method = "Reload"; ++ DBusError error; + DBusMessage *reply = NULL; +- DBusMessage *msg = systemd_new_method(BUS_NAME".Manager", method); ++ unsigned int reload_count = GPOINTER_TO_UINT(user_data); + +- CRM_ASSERT(msg != NULL); +- reply = pcmk_dbus_send_recv(msg, systemd_proxy, NULL); +- dbus_message_unref(msg); ++ dbus_error_init(&error); ++ if(pending) { ++ reply = dbus_pending_call_steal_reply(pending); ++ } ++ ++ if(pcmk_dbus_find_error("Reload", pending, reply, &error)) { ++ crm_err("Could not issue systemd reload %d: %s", reload_count, error.message); ++ ++ } else { ++ crm_trace("Reload %d complete", reload_count); ++ } ++ ++ if(pending) { ++ dbus_pending_call_unref(pending); ++ } + if(reply) { + dbus_message_unref(reply); + } ++} ++ ++static bool ++systemd_daemon_reload(void) ++{ ++ static unsigned int reload_count = 0; ++ const char *method = "Reload"; ++ ++ ++ reload_count++; ++ if(reload_count % 10 == 0) { ++ DBusMessage *msg = systemd_new_method(BUS_NAME".Manager", method); ++ ++ CRM_ASSERT(msg != NULL); ++ pcmk_dbus_send(msg, systemd_proxy, systemd_daemon_reload_complete, GUINT_TO_POINTER(reload_count)); ++ dbus_message_unref(msg); ++ } + return TRUE; + } + +@@ -155,13 +183,22 @@ static void + systemd_loadunit_cb(DBusPendingCall *pending, void *user_data) + { + DBusMessage *reply = NULL; ++ svc_action_t * op = user_data; + + if(pending) { + reply = dbus_pending_call_steal_reply(pending); + } + ++ if(op) { ++ crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); ++ } else { ++ crm_trace("Got result: %p for %p", reply, pending); ++ } + systemd_loadunit_result(reply, user_data); + ++ if(pending) { ++ dbus_pending_call_unref(pending); ++ } + if(reply) { + dbus_message_unref(reply); + } +@@ -213,6 +250,7 @@ systemd_unit_by_name(const gchar * arg_name, svc_action_t *op) + } + + pcmk_dbus_send(msg, systemd_proxy, systemd_loadunit_cb, op); ++ dbus_message_unref(msg); + return NULL; + } + +@@ -421,6 +459,12 @@ systemd_async_dispatch(DBusPendingCall *pending, void *user_data) + reply = dbus_pending_call_steal_reply(pending); + } + ++ if(op) { ++ crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); ++ } else { ++ crm_trace("Got result: %p for %p", reply, pending); ++ } ++ op->opaque->pending = NULL; + systemd_exec_result(reply, op); + + if(pending) { +@@ -437,10 +481,13 @@ static void + systemd_unit_check(const char *name, const char *state, void *userdata) + { + svc_action_t * op = userdata; +- +- CRM_ASSERT(state != NULL); + +- if (g_strcmp0(state, "active") == 0) { ++ crm_trace("Resource %s has %s='%s'", op->rsc, name, state); ++ ++ if(state == NULL) { ++ op->rc = PCMK_OCF_NOT_RUNNING; ++ ++ } else if (g_strcmp0(state, "active") == 0) { + op->rc = PCMK_OCF_OK; + } else if (g_strcmp0(state, "activating") == 0) { + op->rc = PCMK_OCF_PENDING; +@@ -449,6 +496,7 @@ systemd_unit_check(const char *name, const char *state, void *userdata) + } + + if (op->synchronous == FALSE) { ++ op->opaque->pending = NULL; + operation_finalize(op); + } + } +@@ -539,28 +587,29 @@ systemd_unit_exec_with_unit(svc_action_t * op, const char *unit) + } + + if (op->synchronous == FALSE) { +- return pcmk_dbus_send(msg, systemd_proxy, systemd_async_dispatch, op); ++ DBusPendingCall* pending = pcmk_dbus_send(msg, systemd_proxy, systemd_async_dispatch, op); ++ ++ dbus_message_unref(msg); ++ if(pending) { ++ dbus_pending_call_ref(pending); ++ op->opaque->pending = pending; ++ return TRUE; ++ } ++ return FALSE; + + } else { + DBusError error; + + reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); ++ dbus_message_unref(msg); + systemd_exec_result(reply, op); + + if(reply) { + dbus_message_unref(reply); + } +- if(msg) { +- dbus_message_unref(msg); +- } +- + return FALSE; + } + +- if(msg) { +- dbus_message_unref(msg); +- } +- + cleanup: + if (op->synchronous == FALSE) { + operation_finalize(op); +@@ -570,6 +619,18 @@ systemd_unit_exec_with_unit(svc_action_t * op, const char *unit) + return op->rc == PCMK_OCF_OK; + } + ++static gboolean ++systemd_timeout_callback(gpointer p) ++{ ++ svc_action_t * op = p; ++ ++ op->opaque->timerid = 0; ++ crm_warn("%s operation on systemd unit %s named '%s' timed out", op->action, op->agent, op->rsc); ++ operation_finalize(op); ++ ++ return FALSE; ++} ++ + gboolean + systemd_unit_exec(svc_action_t * op) + { +@@ -596,6 +657,7 @@ systemd_unit_exec(svc_action_t * op) + free(unit); + + if (op->synchronous == FALSE) { ++ op->opaque->timerid = g_timeout_add(op->timeout + 5000, systemd_timeout_callback, op); + return TRUE; + } + +diff --git a/lib/services/upstart.c b/lib/services/upstart.c +index 4c7211d..01ff817 100644 +--- a/lib/services/upstart.c ++++ b/lib/services/upstart.c +@@ -513,8 +513,15 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) + CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, &arg_wait, DBUS_TYPE_INVALID)); + + if (op->synchronous == FALSE) { ++ DBusPendingCall* pending = pcmk_dbus_send(msg, upstart_proxy, upstart_async_dispatch, op); + free(job); +- return pcmk_dbus_send(msg, upstart_proxy, upstart_async_dispatch, op); ++ ++ if(pending) { ++ dbus_pending_call_ref(pending); ++ op->opaque->pending = pending; ++ return TRUE; ++ } ++ return FALSE; + } + + dbus_error_init(&error); +diff --git a/lrmd/regression.py.in b/lrmd/regression.py.in +index a9a32ef..649c984 100755 +--- a/lrmd/regression.py.in ++++ b/lrmd/regression.py.in +@@ -27,12 +27,12 @@ build_dir="@abs_top_builddir@" + test_dir=sys.path[0] + + new_path=os.environ['PATH'] +- + if os.path.exists("%s/regression.py.in" % test_dir): + print "Running tests from the source tree: %s (%s)" % (build_dir, test_dir) + new_path = "%s/lrmd:%s" % (build_dir, new_path) # For lrmd, lrmd_test and pacemaker_remoted + new_path = "%s/tools:%s" % (build_dir, new_path) # For crm_resource + new_path = "%s/fencing:%s" % (build_dir, new_path) # For stonithd ++ + else: + print "Running tests from the install tree: @CRM_DAEMON_DIR@ (not %s)" % test_dir + new_path = "@CRM_DAEMON_DIR@:%s" % (new_path) # For stonithd, lrmd, lrmd_test and pacemaker_remoted +@@ -434,13 +434,15 @@ if __name__ == "__main__": + for ra in [ "Dummy", "Stateful", "ping" ]: + os.system("cp %s/extra/resources/%s @OCF_RA_DIR@/pacemaker/%s" % (build_dir, ra, ra)) + os.system("chmod a+x @OCF_RA_DIR@/pacemaker/%s" % (ra)) +- else: +- # Assume it's installed +- print "Using @datadir@/@PACKAGE@/tests/cts/LSBDummy" +- os.system("cp @datadir@/@PACKAGE@/tests/cts/LSBDummy /etc/init.d/LSBDummy") + +- os.system("chmod a+x /etc/init.d/LSBDummy") +- os.system("ls -al /etc/init.d/LSBDummy") ++ else: ++ # Assume it's installed ++ print "Using @datadir@/@PACKAGE@/tests/cts/LSBDummy" ++ os.system("cp @datadir@/@PACKAGE@/tests/cts/LSBDummy /etc/init.d/LSBDummy") ++ ++ os.system("chmod a+x /etc/init.d/LSBDummy") ++ os.system("ls -al /etc/init.d/LSBDummy") ++ + os.system("mkdir -p @CRM_CORE_DIR@/root") + + if os.path.exists("/bin/systemctl"): +@@ -747,6 +749,33 @@ if __name__ == "__main__": + test.add_cmd("-c unregister_rsc -r \"test_rsc\" "+self.action_timeout+ + "-l \"NEW_EVENT event_type:unregister rsc_id:test_rsc action:none rc:ok op_status:complete\" ") + ++ ### stress tests ### ++ def build_stress_tests(self): ++ timeout = "-t 20000" ++ iterations = 25 ++ ++ test = self.new_test("ocf_stress", "Verify systemd dbus connection works under load") ++ for i in range(iterations): ++ test.add_cmd("-c register_rsc -r rsc_%s %s -C ocf -P heartbeat -T Dummy -l \"NEW_EVENT event_type:register rsc_id:rsc_%s action:none rc:ok op_status:complete\"" % (i, timeout, i)) ++ test.add_cmd("-c exec -r rsc_%s -a start %s -l \"NEW_EVENT event_type:exec_complete rsc_id:rsc_%s action:start rc:ok op_status:complete\"" % (i, timeout, i)) ++ test.add_cmd("-c exec -r rsc_%s -a monitor %s -i 1000 -l \"NEW_EVENT event_type:exec_complete rsc_id:rsc_%s action:monitor rc:ok op_status:complete\"" % (i, timeout, i)) ++ for i in range(iterations): ++ test.add_cmd("-c exec -r rsc_%s -a stop %s -l \"NEW_EVENT event_type:exec_complete rsc_id:rsc_%s action:stop rc:ok op_status:complete\"" % (i, timeout, i)) ++ test.add_cmd("-c unregister_rsc -r rsc_%s %s -l \"NEW_EVENT event_type:unregister rsc_id:rsc_%s action:none rc:ok op_status:complete\"" % (i, timeout, i)) ++ ++ ++ if "systemd" in self.rsc_classes: ++ test = self.new_test("systemd_stress", "Verify systemd dbus connection works under load") ++ for i in range(iterations): ++ test.add_cmd("-c register_rsc -r rsc_%s %s -C systemd -T lrmd_dummy_daemon -l \"NEW_EVENT event_type:register rsc_id:rsc_%s action:none rc:ok op_status:complete\"" % (i, timeout, i)) ++ test.add_cmd("-c exec -r rsc_%s -a start %s -l \"NEW_EVENT event_type:exec_complete rsc_id:rsc_%s action:start rc:ok op_status:complete\"" % (i, timeout, i)) ++ test.add_cmd("-c exec -r rsc_%s -a monitor %s -i 1000 -l \"NEW_EVENT event_type:exec_complete rsc_id:rsc_%s action:monitor rc:ok op_status:complete\"" % (i, timeout, i)) ++ ++ for i in range(iterations): ++ test.add_cmd("-c exec -r rsc_%s -a stop %s -l \"NEW_EVENT event_type:exec_complete rsc_id:rsc_%s action:stop rc:ok op_status:complete\"" % (i, timeout, i)) ++ test.add_cmd("-c unregister_rsc -r rsc_%s %s -l \"NEW_EVENT event_type:unregister rsc_id:rsc_%s action:none rc:ok op_status:complete\"" % (i, timeout, i)) ++ ++ + ### These are tests that target specific cases ### + def build_custom_tests(self): + +@@ -1016,6 +1045,7 @@ def main(argv): + tests.build_multi_rsc_tests() + tests.build_negative_tests() + tests.build_custom_tests() ++ tests.build_stress_tests() + + tests.setup_test_environment() + diff --git a/SOURCES/pacemaker-attrd-updater-other-nodes.patch b/SOURCES/pacemaker-attrd-updater-other-nodes.patch new file mode 100644 index 0000000..91df385 --- /dev/null +++ b/SOURCES/pacemaker-attrd-updater-other-nodes.patch @@ -0,0 +1,45 @@ +commit 7652cce56196ee039245c21f8a7f8d5e55149358 +Author: Andrew Beekhof <andrew@beekhof.net> +Date: Wed Jan 14 12:05:38 2015 +1100 + + Feature: attrd_updater: Allow attributes to be set for other nodes + +diff --git a/tools/attrd_updater.c b/tools/attrd_updater.c +index 54b2c60..703f7f9 100644 +--- a/tools/attrd_updater.c ++++ b/tools/attrd_updater.c +@@ -32,6 +32,7 @@ + + #include <crm/attrd.h> + ++const char *attr_node = NULL; + const char *attr_name = NULL; + const char *attr_value = NULL; + const char *attr_set = NULL; +@@ -59,6 +60,7 @@ static struct crm_option long_options[] = { + {"lifetime",1, 0, 'l', "Lifetime of the node attribute. Allowed values: forever, reboot"}, + {"delay", 1, 0, 'd', "The time to wait (dampening) in seconds further changes occur"}, + {"set", 1, 0, 's', "(Advanced) The attribute set in which to place the value"}, ++ {"node", 1, 0, 'N', "Set the attribute for the named node (instead of the local one)"}, + + /* Legacy options */ + {"update", 1, 0, 'v', NULL, 1}, +@@ -108,6 +110,9 @@ main(int argc, char **argv) + case 'S': + attr_section = strdup(optarg); + break; ++ case 'N': ++ attr_node = strdup(optarg); ++ break; + case 'q': + break; + case 'Q': +@@ -141,7 +146,7 @@ main(int argc, char **argv) + crm_help('?', EX_USAGE); + + } else { +- int rc = attrd_update_delegate(NULL, command, NULL, attr_name, attr_value, attr_section, ++ int rc = attrd_update_delegate(NULL, command, attr_node, attr_name, attr_value, attr_section, + attr_set, attr_dampen, NULL, FALSE); + if (rc != pcmk_ok) { + fprintf(stderr, "Could not update %s=%s: %s (%d)\n", attr_name, attr_value, pcmk_strerror(rc), rc); diff --git a/SOURCES/pacemaker-coverity-fixes.patch b/SOURCES/pacemaker-coverity-fixes.patch new file mode 100644 index 0000000..4ca19cd --- /dev/null +++ b/SOURCES/pacemaker-coverity-fixes.patch @@ -0,0 +1,80 @@ +diff --git a/crmd/control.c b/crmd/control.c +index 8989859..0332f10 100644 +--- a/crmd/control.c ++++ b/crmd/control.c +@@ -951,7 +951,6 @@ config_query_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void + value = crmd_pref(config_hash, "stonith-watchdog-timeout"); + } + +- value = crmd_pref(config_hash, "stonith-watchdog-timeout"); + if(crm_get_msec(value) > 0 && !daemon_option_enabled(crm_system_name, "watchdog")) { + do_crm_log_always(LOG_EMERG, "Shutting down pacemaker, no watchdog device configured"); + crmd_exit(DAEMON_RESPAWN_STOP); +diff --git a/crmd/lrm.c b/crmd/lrm.c +index 44634fb..b68f657 100644 +--- a/crmd/lrm.c ++++ b/crmd/lrm.c +@@ -1377,7 +1377,6 @@ do_lrm_invoke(long long action, + } else if (safe_str_eq(operation, CRM_OP_REPROBE) || safe_str_eq(crm_op, CRM_OP_REPROBE)) { + GHashTableIter gIter; + rsc_history_t *entry = NULL; +- gboolean unregister = is_remote_lrmd_ra(NULL, NULL, entry->id) ? FALSE : TRUE; + + crm_notice("Forcing the status of all resources to be redetected"); + +@@ -1386,6 +1385,8 @@ do_lrm_invoke(long long action, + /* only unregister the resource during a reprobe if it is not a remote connection + * resource. otherwise unregistering the connection will terminate remote-node + * membership */ ++ gboolean unregister = is_remote_lrmd_ra(NULL, NULL, entry->id) ? FALSE : TRUE; ++ + delete_resource(lrm_state, entry->id, &entry->rsc, &gIter, from_sys, from_host, + user_name, NULL, unregister); + } +diff --git a/lib/services/dbus.c b/lib/services/dbus.c +index f4632f2..c0153b5 100644 +--- a/lib/services/dbus.c ++++ b/lib/services/dbus.c +@@ -338,6 +338,11 @@ pcmk_dbus_get_property( + CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &iface, DBUS_TYPE_INVALID)); + + query_data = malloc(sizeof(struct db_getall_data)); ++ if(query_data == NULL) { ++ crm_err("Call to %s failed: malloc failed", method); ++ return NULL; ++ } ++ + query_data->target = strdup(target); + query_data->object = strdup(obj); + query_data->callback = callback; +@@ -355,10 +360,6 @@ pcmk_dbus_get_property( + DBusMessage *reply = pcmk_dbus_send_recv(msg, connection, NULL); + + output = pcmk_dbus_lookup_result(reply, query_data); +- free(query_data->target); +- free(query_data->object); +- free(query_data->name); +- free(query_data); + + if(reply) { + dbus_message_unref(reply); +diff --git a/lib/services/services.c b/lib/services/services.c +index 753e257..9936c72 100644 +--- a/lib/services/services.c ++++ b/lib/services/services.c +@@ -506,12 +506,13 @@ services_action_sync(svc_action_t * op) + { + gboolean rc = TRUE; + +- op->synchronous = true; + if (op == NULL) { + crm_trace("No operation to execute"); + return FALSE; ++ } + +- } else if (op->standard && strcasecmp(op->standard, "upstart") == 0) { ++ op->synchronous = true; ++ if (op->standard && strcasecmp(op->standard, "upstart") == 0) { + #if SUPPORT_UPSTART + rc = upstart_job_exec(op, TRUE); + #endif diff --git a/SOURCES/pacemaker-doc_controld_update_the_description.patch b/SOURCES/pacemaker-doc_controld_update_the_description.patch deleted file mode 100644 index ccdb1be..0000000 --- a/SOURCES/pacemaker-doc_controld_update_the_description.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit 41d245c28c5144423073e4fffa543a744c2ec321 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 09:11:31 2013 +1000 - - Doc: controld: Update the description - -diff --git a/extra/resources/controld b/extra/resources/controld -index 2122ff8..bacf0e9 100644 ---- a/extra/resources/controld -+++ b/extra/resources/controld -@@ -42,11 +42,11 @@ meta_data() { - <version>1.0</version> - - <longdesc lang="en"> --This Resource Agent can control the dlm_controld services needed by ocfs2. -+This Resource Agent can control the dlm_controld services needed by cluster-aware file systems. - It assumes that dlm_controld is in your default PATH. - In most cases, it should be run as an anonymous clone. - </longdesc> --<shortdesc lang="en">DLM Agent for OCFS2</shortdesc> -+<shortdesc lang="en">DLM Agent for cluster file systems</shortdesc> - - <parameters> - diff --git a/SOURCES/pacemaker-f43678b-to-fe1ef5c-acl-fix.patch b/SOURCES/pacemaker-f43678b-to-fe1ef5c-acl-fix.patch new file mode 100644 index 0000000..649da8d --- /dev/null +++ b/SOURCES/pacemaker-f43678b-to-fe1ef5c-acl-fix.patch @@ -0,0 +1,1186 @@ +diff --git a/lib/cib/cib_file.c b/lib/cib/cib_file.c +index 5562e9e..aa68679 100644 +--- a/lib/cib/cib_file.c ++++ b/lib/cib/cib_file.c +@@ -310,6 +310,12 @@ cib_file_perform_op_delegate(cib_t * cib, const char *op, const char *host, cons + } + crm_trace("Performing %s operation as %s", op, user_name); + #endif ++ ++ /* Mirror the logic in cib_prepare_common() */ ++ if (section != NULL && data != NULL && crm_str_eq(crm_element_name(data), XML_TAG_CIB, TRUE)) { ++ data = get_object_root(section, data); ++ } ++ + rc = cib_perform_op(op, call_options, fn, query, + section, request, data, TRUE, &changed, in_mem_cib, &result_cib, &cib_diff, + &output); +diff --git a/lib/common/xml.c b/lib/common/xml.c +index f7779f5..54f1aa7 100644 +--- a/lib/common/xml.c ++++ b/lib/common/xml.c +@@ -4848,8 +4848,13 @@ replace_xml_child(xmlNode * parent, xmlNode * child, xmlNode * update, gboolean + + xml_accept_changes(tmp); + old = xmlReplaceNode(child, tmp); +- xml_calculate_changes(old, tmp); + ++ if(xml_tracking_changes(tmp)) { ++ /* Replaced sections may have included relevant ACLs */ ++ __xml_acl_apply(tmp); ++ } ++ ++ xml_calculate_changes(old, tmp); + xmlDocSetRootElement(doc, old); + free_xml(old); + } +diff --git a/tools/regression.acls.exp b/tools/regression.acls.exp +index 2cea125..e05e339 100644 +--- a/tools/regression.acls.exp ++++ b/tools/regression.acls.exp +@@ -17,11 +17,18 @@ A new shadow instance was created. To begin using it paste the following into y + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + </acls> + </configuration> + <status/> +@@ -47,11 +54,18 @@ A new shadow instance was created. To begin using it paste the following into y + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + </acls> + </configuration> + <status/> +@@ -78,11 +92,18 @@ A new shadow instance was created. To begin using it paste the following into y + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + </acls> + </configuration> + <status/> +@@ -109,11 +130,18 @@ A new shadow instance was created. To begin using it paste the following into y + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -143,11 +171,18 @@ A new shadow instance was created. To begin using it paste the following into y + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -180,11 +215,18 @@ A new shadow instance was created. To begin using it paste the following into y + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -255,11 +297,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -301,11 +350,18 @@ __xml_acl_post_process: Creation of nvpair=cib-bootstrap-options-stonith-enable + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -345,11 +401,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -384,11 +447,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -425,11 +495,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -486,11 +563,18 @@ __xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -535,11 +619,18 @@ Stopped + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -582,11 +673,18 @@ Deleted dummy option: id=dummy-meta_attributes-target-role name=target-role + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -631,11 +729,18 @@ __xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -730,11 +835,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -778,11 +890,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -794,12 +913,12 @@ Call failed: Permission denied + </configuration> + <status/> + </cib> +-=#=#=#= Begin test: niceguy: Replace - modify attribute =#=#=#= ++=#=#=#= Begin test: niceguy: Replace - modify attribute (deny) =#=#=#= + __xml_acl_check: 400 access denied to /cib[@epoch]: default + __xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default + Call failed: Permission denied +-=#=#=#= End test: niceguy: Replace - modify attribute - Permission denied (13) =#=#=#= +-* Passed: cibadmin - niceguy: Replace - modify attribute ++=#=#=#= End test: niceguy: Replace - modify attribute (deny) - Permission denied (13) =#=#=#= ++* Passed: cibadmin - niceguy: Replace - modify attribute (deny) + <cib epoch="13" num_updates="0" admin_epoch="0"> + <configuration> + <crm_config> +@@ -825,11 +944,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -841,12 +967,12 @@ Call failed: Permission denied + </configuration> + <status/> + </cib> +-=#=#=#= Begin test: niceguy: Replace - delete attribute =#=#=#= ++=#=#=#= Begin test: niceguy: Replace - delete attribute (deny) =#=#=#= + __xml_acl_check: 400 access denied to /cib[@epoch]: default + __xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl']: default + Call failed: Permission denied +-=#=#=#= End test: niceguy: Replace - delete attribute - Permission denied (13) =#=#=#= +-* Passed: cibadmin - niceguy: Replace - delete attribute ++=#=#=#= End test: niceguy: Replace - delete attribute (deny) - Permission denied (13) =#=#=#= ++* Passed: cibadmin - niceguy: Replace - delete attribute (deny) + <cib epoch="13" num_updates="0" admin_epoch="0"> + <configuration> + <crm_config> +@@ -872,11 +998,18 @@ Call failed: Permission denied + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + <acl_user id="badidea"> + <read id="badidea-resources" xpath="//meta_attributes"/> + </acl_user> +@@ -888,12 +1021,161 @@ Call failed: Permission denied + </configuration> + <status/> + </cib> +-=#=#=#= Begin test: niceguy: Replace - create attribute =#=#=#= ++=#=#=#= Begin test: niceguy: Replace - create attribute (deny) =#=#=#= + __xml_acl_check: 400 access denied to /cib[@epoch]: default + __xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy'][@description]: default + Call failed: Permission denied +-=#=#=#= End test: niceguy: Replace - create attribute - Permission denied (13) =#=#=#= +-* Passed: cibadmin - niceguy: Replace - create attribute ++=#=#=#= End test: niceguy: Replace - create attribute (deny) - Permission denied (13) =#=#=#= ++* Passed: cibadmin - niceguy: Replace - create attribute (deny) ++<cib epoch="13" num_updates="0" admin_epoch="0"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-enable-acl" name="enable-acl" value="true"/> ++ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> ++ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes/> ++ <resources> ++ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy" description="nothing interesting"> ++ <meta_attributes id="dummy-meta_attributes"> ++ <nvpair id="dummy-meta_attributes-target-role" name="target-role" value="Started"/> ++ </meta_attributes> ++ </primitive> ++ </resources> ++ <constraints/> ++ <acls> ++ <acl_user id="l33t-haxor"> ++ <deny id="crook-nothing" xpath="/cib"/> ++ </acl_user> ++ <acl_user id="niceguy"> ++ <role_ref id="observer"/> ++ </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> ++ <acl_role id="observer"> ++ <read id="observer-read-1" xpath="/cib"/> ++ <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> ++ <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> ++ </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> ++ <acl_user id="badidea"> ++ <read id="badidea-resources" xpath="//meta_attributes"/> ++ </acl_user> ++ <acl_user id="betteridea"> ++ <deny id="betteridea-nothing" xpath="/cib"/> ++ <read id="betteridea-resources" xpath="//meta_attributes"/> ++ </acl_user> ++ </acls> ++ </configuration> ++ <status/> ++</cib> ++=#=#=#= Begin test: bob: Replace - create attribute (allow) =#=#=#= ++=#=#=#= End test: bob: Replace - create attribute (allow) - OK (0) =#=#=#= ++* Passed: cibadmin - bob: Replace - create attribute (allow) ++<cib epoch="14" num_updates="0" admin_epoch="0"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-enable-acl" name="enable-acl" value="true"/> ++ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> ++ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes/> ++ <resources> ++ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy" description="something interesting"> ++ <meta_attributes id="dummy-meta_attributes"> ++ <nvpair id="dummy-meta_attributes-target-role" name="target-role" value="Started"/> ++ </meta_attributes> ++ </primitive> ++ </resources> ++ <constraints/> ++ <acls> ++ <acl_user id="l33t-haxor"> ++ <deny id="crook-nothing" xpath="/cib"/> ++ </acl_user> ++ <acl_user id="niceguy"> ++ <role_ref id="observer"/> ++ </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> ++ <acl_role id="observer"> ++ <read id="observer-read-1" xpath="/cib"/> ++ <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> ++ <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> ++ </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> ++ <acl_user id="badidea"> ++ <read id="badidea-resources" xpath="//meta_attributes"/> ++ </acl_user> ++ <acl_user id="betteridea"> ++ <deny id="betteridea-nothing" xpath="/cib"/> ++ <read id="betteridea-resources" xpath="//meta_attributes"/> ++ </acl_user> ++ </acls> ++ </configuration> ++ <status/> ++</cib> ++=#=#=#= Begin test: bob: Replace - modify attribute (allow) =#=#=#= ++=#=#=#= End test: bob: Replace - modify attribute (allow) - OK (0) =#=#=#= ++* Passed: cibadmin - bob: Replace - modify attribute (allow) ++<cib epoch="15" num_updates="0" admin_epoch="0"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-enable-acl" name="enable-acl" value="true"/> ++ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> ++ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes/> ++ <resources> ++ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> ++ </resources> ++ <constraints/> ++ <acls> ++ <acl_user id="l33t-haxor"> ++ <deny id="crook-nothing" xpath="/cib"/> ++ </acl_user> ++ <acl_user id="niceguy"> ++ <role_ref id="observer"/> ++ </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> ++ <acl_role id="observer"> ++ <read id="observer-read-1" xpath="/cib"/> ++ <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> ++ <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> ++ </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> ++ <acl_user id="badidea"> ++ <read id="badidea-resources" xpath="//meta_attributes"/> ++ </acl_user> ++ <acl_user id="betteridea"> ++ <deny id="betteridea-nothing" xpath="/cib"/> ++ <read id="betteridea-resources" xpath="//meta_attributes"/> ++ </acl_user> ++ </acls> ++ </configuration> ++ <status/> ++</cib> ++=#=#=#= Begin test: bob: Replace - delete attribute (allow) =#=#=#= ++=#=#=#= End test: bob: Replace - delete attribute (allow) - OK (0) =#=#=#= ++* Passed: cibadmin - bob: Replace - delete attribute (allow) + + + !#!#!#!#! Upgrading to pacemaker-2.0 and retesting !#!#!#!#! +@@ -901,6 +1183,8 @@ Call failed: Permission denied + __xml_acl_post_process: Creation of acl_permission=observer-read-1 is allowed + __xml_acl_post_process: Creation of acl_permission=observer-write-1 is allowed + __xml_acl_post_process: Creation of acl_permission=observer-write-2 is allowed ++__xml_acl_post_process: Creation of acl_permission=admin-read-1 is allowed ++__xml_acl_post_process: Creation of acl_permission=admin-write-1 is allowed + __xml_acl_post_process: Creation of acl_permission=crook-nothing is allowed + __xml_acl_post_process: Creation of acl_permission=badidea-resources is allowed + __xml_acl_post_process: Creation of acl_permission=betteridea-nothing is allowed +@@ -917,11 +1201,7 @@ __xml_acl_post_process: Creation of acl_permission=betteridea-resources is allo + </crm_config> + <nodes/> + <resources> +- <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"> +- <meta_attributes id="dummy-meta_attributes"> +- <nvpair id="dummy-meta_attributes-target-role" name="target-role" value="Started"/> +- </meta_attributes> +- </primitive> ++ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> + </resources> + <constraints/> + <acls> +@@ -934,11 +1214,18 @@ __xml_acl_post_process: Creation of acl_permission=betteridea-resources is allo + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1019,11 +1306,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1073,11 +1367,18 @@ Error setting enable-acl=false (section=crm_config, set=<null>): Permission deni + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1126,11 +1427,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1174,11 +1482,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1224,11 +1539,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1294,11 +1616,18 @@ __xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1352,11 +1681,18 @@ Stopped + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1408,11 +1744,18 @@ Deleted dummy option: id=dummy-meta_attributes-target-role name=target-role + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1466,11 +1809,18 @@ __xml_acl_post_process: Creation of nvpair=dummy-meta_attributes-target-role is + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1574,11 +1924,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1631,11 +1988,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1653,12 +2017,12 @@ Call failed: Permission denied + </configuration> + <status/> + </cib> +-=#=#=#= Begin test: niceguy: Replace - modify attribute =#=#=#= ++=#=#=#= Begin test: niceguy: Replace - modify attribute (deny) =#=#=#= + __xml_acl_check: 400 access denied to /cib[@epoch]: default + __xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl'][@value]: default + Call failed: Permission denied +-=#=#=#= End test: niceguy: Replace - modify attribute - Permission denied (13) =#=#=#= +-* Passed: cibadmin - niceguy: Replace - modify attribute ++=#=#=#= End test: niceguy: Replace - modify attribute (deny) - Permission denied (13) =#=#=#= ++* Passed: cibadmin - niceguy: Replace - modify attribute (deny) + <cib epoch="14" num_updates="0" admin_epoch="0"> + <configuration> + <crm_config> +@@ -1687,11 +2051,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1709,12 +2080,12 @@ Call failed: Permission denied + </configuration> + <status/> + </cib> +-=#=#=#= Begin test: niceguy: Replace - delete attribute =#=#=#= ++=#=#=#= Begin test: niceguy: Replace - delete attribute (deny) =#=#=#= + __xml_acl_check: 400 access denied to /cib[@epoch]: default + __xml_acl_check: 400 access denied to /cib/configuration/crm_config/cluster_property_set[@id='cib-bootstrap-options']/nvpair[@id='cib-bootstrap-options-enable-acl']: default + Call failed: Permission denied +-=#=#=#= End test: niceguy: Replace - delete attribute - Permission denied (13) =#=#=#= +-* Passed: cibadmin - niceguy: Replace - delete attribute ++=#=#=#= End test: niceguy: Replace - delete attribute (deny) - Permission denied (13) =#=#=#= ++* Passed: cibadmin - niceguy: Replace - delete attribute (deny) + <cib epoch="14" num_updates="0" admin_epoch="0"> + <configuration> + <crm_config> +@@ -1743,11 +2114,18 @@ Call failed: Permission denied + <acl_target id="niceguy"> + <role id="observer"/> + </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> + <acl_role id="observer"> + <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> + <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> + <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> + <acl_target id="badidea"> + <role id="auto-badidea"/> + </acl_target> +@@ -1765,9 +2143,185 @@ Call failed: Permission denied + </configuration> + <status/> + </cib> +-=#=#=#= Begin test: niceguy: Replace - create attribute =#=#=#= ++=#=#=#= Begin test: niceguy: Replace - create attribute (deny) =#=#=#= + __xml_acl_check: 400 access denied to /cib[@epoch]: default + __xml_acl_check: 400 access denied to /cib/configuration/resources/primitive[@id='dummy'][@description]: default + Call failed: Permission denied +-=#=#=#= End test: niceguy: Replace - create attribute - Permission denied (13) =#=#=#= +-* Passed: cibadmin - niceguy: Replace - create attribute ++=#=#=#= End test: niceguy: Replace - create attribute (deny) - Permission denied (13) =#=#=#= ++* Passed: cibadmin - niceguy: Replace - create attribute (deny) ++<cib epoch="14" num_updates="0" admin_epoch="0"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-enable-acl" name="enable-acl" value="true"/> ++ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> ++ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes/> ++ <resources> ++ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy" description="nothing interesting"> ++ <meta_attributes id="dummy-meta_attributes"> ++ <nvpair id="dummy-meta_attributes-target-role" name="target-role" value="Started"/> ++ </meta_attributes> ++ </primitive> ++ </resources> ++ <constraints/> ++ <acls> ++ <acl_target id="l33t-haxor"> ++ <role id="auto-l33t-haxor"/> ++ </acl_target> ++ <acl_role id="auto-l33t-haxor"> ++ <acl_permission id="crook-nothing" kind="deny" xpath="/cib"/> ++ </acl_role> ++ <acl_target id="niceguy"> ++ <role id="observer"/> ++ </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> ++ <acl_role id="observer"> ++ <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> ++ <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> ++ </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> ++ <acl_target id="badidea"> ++ <role id="auto-badidea"/> ++ </acl_target> ++ <acl_role id="auto-badidea"> ++ <acl_permission id="badidea-resources" kind="read" xpath="//meta_attributes"/> ++ </acl_role> ++ <acl_target id="betteridea"> ++ <role id="auto-betteridea"/> ++ </acl_target> ++ <acl_role id="auto-betteridea"> ++ <acl_permission id="betteridea-nothing" kind="deny" xpath="/cib"/> ++ <acl_permission id="betteridea-resources" kind="read" xpath="//meta_attributes"/> ++ </acl_role> ++ </acls> ++ </configuration> ++ <status/> ++</cib> ++=#=#=#= Begin test: bob: Replace - create attribute (allow) =#=#=#= ++=#=#=#= End test: bob: Replace - create attribute (allow) - OK (0) =#=#=#= ++* Passed: cibadmin - bob: Replace - create attribute (allow) ++<cib epoch="15" num_updates="0" admin_epoch="0"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-enable-acl" name="enable-acl" value="true"/> ++ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> ++ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes/> ++ <resources> ++ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy" description="something interesting"> ++ <meta_attributes id="dummy-meta_attributes"> ++ <nvpair id="dummy-meta_attributes-target-role" name="target-role" value="Started"/> ++ </meta_attributes> ++ </primitive> ++ </resources> ++ <constraints/> ++ <acls> ++ <acl_target id="l33t-haxor"> ++ <role id="auto-l33t-haxor"/> ++ </acl_target> ++ <acl_role id="auto-l33t-haxor"> ++ <acl_permission id="crook-nothing" kind="deny" xpath="/cib"/> ++ </acl_role> ++ <acl_target id="niceguy"> ++ <role id="observer"/> ++ </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> ++ <acl_role id="observer"> ++ <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> ++ <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> ++ </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> ++ <acl_target id="badidea"> ++ <role id="auto-badidea"/> ++ </acl_target> ++ <acl_role id="auto-badidea"> ++ <acl_permission id="badidea-resources" kind="read" xpath="//meta_attributes"/> ++ </acl_role> ++ <acl_target id="betteridea"> ++ <role id="auto-betteridea"/> ++ </acl_target> ++ <acl_role id="auto-betteridea"> ++ <acl_permission id="betteridea-nothing" kind="deny" xpath="/cib"/> ++ <acl_permission id="betteridea-resources" kind="read" xpath="//meta_attributes"/> ++ </acl_role> ++ </acls> ++ </configuration> ++ <status/> ++</cib> ++=#=#=#= Begin test: bob: Replace - modify attribute (allow) =#=#=#= ++=#=#=#= End test: bob: Replace - modify attribute (allow) - OK (0) =#=#=#= ++* Passed: cibadmin - bob: Replace - modify attribute (allow) ++<cib epoch="16" num_updates="0" admin_epoch="0"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-enable-acl" name="enable-acl" value="true"/> ++ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> ++ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes/> ++ <resources> ++ <primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/> ++ </resources> ++ <constraints/> ++ <acls> ++ <acl_target id="l33t-haxor"> ++ <role id="auto-l33t-haxor"/> ++ </acl_target> ++ <acl_role id="auto-l33t-haxor"> ++ <acl_permission id="crook-nothing" kind="deny" xpath="/cib"/> ++ </acl_role> ++ <acl_target id="niceguy"> ++ <role id="observer"/> ++ </acl_target> ++ <acl_target id="bob"> ++ <role id="admin"/> ++ </acl_target> ++ <acl_role id="observer"> ++ <acl_permission id="observer-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="observer-write-1" kind="write" xpath="//nvpair[@name='stonith-enabled']"/> ++ <acl_permission id="observer-write-2" kind="write" xpath="//nvpair[@name='target-role']"/> ++ </acl_role> ++ <acl_role id="admin"> ++ <acl_permission id="admin-read-1" kind="read" xpath="/cib"/> ++ <acl_permission id="admin-write-1" kind="write" xpath="//resources"/> ++ </acl_role> ++ <acl_target id="badidea"> ++ <role id="auto-badidea"/> ++ </acl_target> ++ <acl_role id="auto-badidea"> ++ <acl_permission id="badidea-resources" kind="read" xpath="//meta_attributes"/> ++ </acl_role> ++ <acl_target id="betteridea"> ++ <role id="auto-betteridea"/> ++ </acl_target> ++ <acl_role id="auto-betteridea"> ++ <acl_permission id="betteridea-nothing" kind="deny" xpath="/cib"/> ++ <acl_permission id="betteridea-resources" kind="read" xpath="//meta_attributes"/> ++ </acl_role> ++ </acls> ++ </configuration> ++ <status/> ++</cib> ++=#=#=#= Begin test: bob: Replace - delete attribute (allow) =#=#=#= ++=#=#=#= End test: bob: Replace - delete attribute (allow) - OK (0) =#=#=#= ++* Passed: cibadmin - bob: Replace - delete attribute (allow) +diff --git a/tools/regression.sh b/tools/regression.sh +index 0c4896c..63f4445 100755 +--- a/tools/regression.sh ++++ b/tools/regression.sh +@@ -487,7 +487,7 @@ function test_acl_loop() { + CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" crm_attribute -n enable-acl -v false + CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin -Ql + +- desc="$CIB_user: Replace - modify attribute" ++ desc="$CIB_user: Replace - modify attribute (deny)" + cmd="cibadmin --replace --xml-file /tmp/$$.haxor.xml" + test_assert 13 0 + +@@ -495,7 +495,7 @@ function test_acl_loop() { + CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin --replace --xml-text '<nvpair id="cib-bootstrap-options-enable-acl" name="enable-acl"/>' + CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin -Ql + +- desc="$CIB_user: Replace - delete attribute" ++ desc="$CIB_user: Replace - delete attribute (deny)" + cmd="cibadmin --replace --xml-file /tmp/$$.haxor.xml" + test_assert 13 0 + +@@ -503,10 +503,36 @@ function test_acl_loop() { + CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin --modify --xml-text '<primitive id="dummy" description="nothing interesting"/>' + CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin -Ql + +- desc="$CIB_user: Replace - create attribute" ++ desc="$CIB_user: Replace - create attribute (deny)" + cmd="cibadmin --replace --xml-file /tmp/$$.haxor.xml" + test_assert 13 0 + rm -rf /tmp/$$.haxor.xml ++ ++ ++ CIB_user=bob ++ CIB_user=root cibadmin -Q > /tmp/$$.haxor.xml ++ CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin --modify --xml-text '<primitive id="dummy" description="nothing interesting"/>' ++ CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin -Ql ++ ++ desc="$CIB_user: Replace - create attribute (allow)" ++ cmd="cibadmin --replace -o resources --xml-file /tmp/$$.haxor.xml" ++ test_assert 0 0 ++ ++ CIB_user=root cibadmin -Q > /tmp/$$.haxor.xml ++ CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin --modify --xml-text '<primitive id="dummy" description="something interesting"/>' ++ CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin -Ql ++ ++ desc="$CIB_user: Replace - modify attribute (allow)" ++ cmd="cibadmin --replace -o resources --xml-file /tmp/$$.haxor.xml" ++ test_assert 0 0 ++ ++ CIB_user=root cibadmin -Q > /tmp/$$.haxor.xml ++ CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin --replace -o resources --xml-text '<primitive id="dummy" class="ocf" provider="pacemaker" type="Dummy"/>' ++ CIB_user=root CIB_file=/tmp/$$.haxor.xml CIB_shadow="" cibadmin -Ql ++ ++ desc="$CIB_user: Replace - delete attribute (allow)" ++ cmd="cibadmin --replace -o resources --xml-file /tmp/$$.haxor.xml" ++ test_assert 0 0 + } + + function test_acls() { +@@ -522,11 +548,18 @@ function test_acls() { + <acl_user id="niceguy"> + <role_ref id="observer"/> + </acl_user> ++ <acl_user id="bob"> ++ <role_ref id="admin"/> ++ </acl_user> + <acl_role id="observer"> + <read id="observer-read-1" xpath="/cib"/> + <write id="observer-write-1" xpath="//nvpair[@name='stonith-enabled']"/> + <write id="observer-write-2" xpath="//nvpair[@name='target-role']"/> + </acl_role> ++ <acl_role id="admin"> ++ <read id="admin-read-1" xpath="/cib"/> ++ <write id="admin-write-1" xpath="//resources"/> ++ </acl_role> + </acls> + EOF + diff --git a/SOURCES/pacemaker-fix-orphaned-connection-resources.patch b/SOURCES/pacemaker-fix-orphaned-connection-resources.patch deleted file mode 100644 index 01abbbb..0000000 --- a/SOURCES/pacemaker-fix-orphaned-connection-resources.patch +++ /dev/null @@ -1,2099 +0,0 @@ -commit 261c6b836e4a44c6d20d5abd7550ef1f0b25c17c -Author: David Vossel <dvossel@redhat.com> -Date: Wed Sep 25 17:47:04 2013 -0400 - - fix orphaned connection resources - -diff --git a/crmd/lrm.c b/crmd/lrm.c -index 7157e24..5f4d3bb 100644 ---- a/crmd/lrm.c -+++ b/crmd/lrm.c -@@ -729,6 +729,13 @@ build_active_RAs(lrm_state_t * lrm_state, xmlNode * rsc_list) - crm_xml_add(xml_rsc, XML_AGENT_ATTR_CLASS, entry->rsc.class); - crm_xml_add(xml_rsc, XML_AGENT_ATTR_PROVIDER, entry->rsc.provider); - -+ if (entry->last && entry->last->params) { -+ const char *container = g_hash_table_lookup(entry->last->params, CRM_META"_"XML_RSC_ATTR_CONTAINER); -+ if (container) { -+ crm_trace("Resource %s is a part of container resource %s", entry->id, container); -+ crm_xml_add(xml_rsc, XML_RSC_ATTR_CONTAINER, container); -+ } -+ } - build_operation_update(xml_rsc, &(entry->rsc), entry->last, __FUNCTION__); - build_operation_update(xml_rsc, &(entry->rsc), entry->failed, __FUNCTION__); - for (gIter = entry->recurring_op_list; gIter != NULL; gIter = gIter->next) { -@@ -1930,10 +1937,20 @@ do_update_resource(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, lrmd_event_da - build_operation_update(iter, rsc, op, __FUNCTION__); - - if (rsc) { -+ const char *container = NULL; -+ - crm_xml_add(iter, XML_ATTR_TYPE, rsc->type); - crm_xml_add(iter, XML_AGENT_ATTR_CLASS, rsc->class); - crm_xml_add(iter, XML_AGENT_ATTR_PROVIDER, rsc->provider); - -+ if (op->params) { -+ container = g_hash_table_lookup(op->params, CRM_META"_"XML_RSC_ATTR_CONTAINER); -+ } -+ if (container) { -+ crm_trace("Resource %s is a part of container resource %s", op->rsc_id, container); -+ crm_xml_add(iter, XML_RSC_ATTR_CONTAINER, container); -+ } -+ - CRM_CHECK(rsc->type != NULL, crm_err("Resource %s has no value for type", op->rsc_id)); - CRM_CHECK(rsc->class != NULL, crm_err("Resource %s has no value for class", op->rsc_id)); - -diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h -index bd3d923..8eb4a1d 100644 ---- a/include/crm/pengine/status.h -+++ b/include/crm/pengine/status.h -@@ -160,6 +160,7 @@ struct node_s { - # define pe_rsc_orphan 0x00000001ULL - # define pe_rsc_managed 0x00000002ULL - # define pe_rsc_block 0x00000004ULL /* Further operations are prohibited due to failure policy */ -+# define pe_rsc_orphan_container_filler 0x00000008ULL - - # define pe_rsc_notify 0x00000010ULL - # define pe_rsc_unique 0x00000020ULL -diff --git a/lib/cib/cib_attrs.c b/lib/cib/cib_attrs.c -index d1e1b74..5e21eef 100644 ---- a/lib/cib/cib_attrs.c -+++ b/lib/cib/cib_attrs.c -@@ -414,40 +414,54 @@ delete_attr_delegate(cib_t * the_cib, int options, - return rc; - } - --static int --get_remote_node_uuid(cib_t * the_cib, const char *uname, char **uuid) -+static gboolean -+found_remote_node_xpath(cib_t *the_cib, const char *xpath) - { --#define REMOTE_NODE_XPATH "//nvpair[@name='remote-node'][@value='%s']" --#define REMOTE_NODE_XPATH2 "//primitive[@type='remote'][@provider='pacemaker'][@id='%s']" - int rc = pcmk_ok; -- char *xpath_string = NULL; -- size_t len = strlen(REMOTE_NODE_XPATH) + strlen(uname) + 1; - xmlNode *xml_search = NULL; - -- xpath_string = calloc(1, len); -- sprintf(xpath_string, REMOTE_NODE_XPATH, uname); -- rc = cib_internal_op(the_cib, CIB_OP_QUERY, NULL, xpath_string, NULL, &xml_search, -+ rc = cib_internal_op(the_cib, CIB_OP_QUERY, NULL, xpath, NULL, &xml_search, - cib_sync_call | cib_scope_local | cib_xpath, NULL); -- free(xpath_string); - free(xml_search); -- xml_search = NULL; -- xpath_string = NULL; - -- if (rc != pcmk_ok) { -- len = strlen(REMOTE_NODE_XPATH2) + strlen(uname) + 1; -- xpath_string = calloc(1, len); -- sprintf(xpath_string, REMOTE_NODE_XPATH2, uname); -- rc = cib_internal_op(the_cib, CIB_OP_QUERY, NULL, xpath_string, NULL, &xml_search, -- cib_sync_call | cib_scope_local | cib_xpath, NULL); -+ return rc == pcmk_ok ? TRUE : FALSE; -+} - -- free(xpath_string); -- free(xml_search); -+static int -+get_remote_node_uuid(cib_t * the_cib, const char *uname, char **uuid) -+{ -+#define CONTAINER_REMOTE_NODE_XPATH "//" XML_CIB_TAG_NVPAIR "[@name='remote-node'][@value='%s']" -+#define BAREMETAL_REMOTE_NODE_XPATH "//" XML_CIB_TAG_RESOURCE "[@type='remote'][@provider='pacemaker'][@id='%s']" -+#define ORPHAN_REMOTE_NODE_XPATH "//" XML_CIB_TAG_STATUS "//" XML_CIB_TAG_STATE "[@id='%s'][@remote_node='true']" -+ int len = 128 + strlen(uname); -+ int rc = pcmk_ok; -+ char *xpath_string = calloc(1, len); -+ -+ sprintf(xpath_string, CONTAINER_REMOTE_NODE_XPATH, uname); -+ if (found_remote_node_xpath(the_cib, xpath_string)) { -+ goto found_remote; - } - -- if (rc == pcmk_ok) { -- *uuid = strdup(uname); -+ sprintf(xpath_string, BAREMETAL_REMOTE_NODE_XPATH, uname); -+ if (found_remote_node_xpath(the_cib, xpath_string)) { -+ goto found_remote; -+ } -+ -+ sprintf(xpath_string, ORPHAN_REMOTE_NODE_XPATH, uname); -+ if (found_remote_node_xpath(the_cib, xpath_string)) { -+ goto found_remote; - } - -+ rc = -1; -+found_remote: -+ if (rc == pcmk_ok) { -+ /* reuse allocation */ -+ *uuid = xpath_string; -+ strcpy(*uuid, uname); -+ } else { -+ *uuid = NULL; -+ free(xpath_string); -+ } - return rc; - } - -diff --git a/lib/pengine/complex.c b/lib/pengine/complex.c -index 5e2f4e0..8a6049d 100644 ---- a/lib/pengine/complex.c -+++ b/lib/pengine/complex.c -@@ -159,6 +159,10 @@ get_rsc_attributes(GHashTable * meta_hash, resource_t * rsc, - unpack_instance_attributes(data_set->input, rsc->xml, XML_TAG_ATTR_SETS, node_hash, - meta_hash, NULL, FALSE, data_set->now); - -+ if (rsc->container) { -+ g_hash_table_replace(meta_hash, strdup(CRM_META"_"XML_RSC_ATTR_CONTAINER), strdup(rsc->container->id)); -+ } -+ - /* set anything else based on the parent */ - if (rsc->parent != NULL) { - get_rsc_attributes(meta_hash, rsc->parent, node, data_set); -diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c -index b4986dd..26cecb2 100644 ---- a/lib/pengine/unpack.c -+++ b/lib/pengine/unpack.c -@@ -248,6 +248,7 @@ create_node(const char *id, const char *uname, const char *type, const char *sco - - if (safe_str_eq(type, "remote")) { - new_node->details->type = node_remote; -+ set_bit(data_set->flags, pe_flag_have_remote_nodes); - } else if (type == NULL || safe_str_eq(type, "member") - || safe_str_eq(type, NORMALNODE)) { - new_node->details->type = node_member; -@@ -612,7 +613,6 @@ unpack_remote_nodes(xmlNode * xml_resources, pe_working_set_t * data_set) - } - - if (new_node_id) { -- set_bit(data_set->flags, pe_flag_have_remote_nodes); - crm_trace("detected remote node %s", new_node_id); - create_node(new_node_id, new_node_id, "remote", NULL, data_set); - } -@@ -1399,6 +1399,22 @@ create_fake_resource(const char *rsc_id, xmlNode * rsc_entry, pe_working_set_t * - return NULL; - } - -+ if (is_remote_node(xml_rsc)) { -+ node_t *node; -+ -+ crm_debug("Detected orphaned remote node %s", rsc_id); -+ rsc->is_remote_node = TRUE; -+ node = create_node(rsc_id, rsc_id, "remote", NULL, data_set); -+ -+ CRM_ASSERT(node != NULL); -+ node->details->remote_rsc = rsc; -+ } -+ -+ if (crm_element_value(rsc_entry, XML_RSC_ATTR_CONTAINER)) { -+ /* This orphaned rsc needs to be mapped to a container. */ -+ crm_trace("Detected orphaned container filler %s", rsc_id); -+ set_bit(rsc->flags, pe_rsc_orphan_container_filler); -+ } - set_bit(rsc->flags, pe_rsc_orphan); - data_set->resources = g_list_append(data_set->resources, rsc); - return rsc; -@@ -1860,7 +1876,7 @@ calculate_active_ops(GListPtr sorted_op_list, int *start_index, int *stop_index) - } - } - --static void -+static resource_t * - unpack_lrm_rsc_state(node_t * node, xmlNode * rsc_entry, pe_working_set_t * data_set) - { - GListPtr gIter = NULL; -@@ -1896,7 +1912,7 @@ unpack_lrm_rsc_state(node_t * node, xmlNode * rsc_entry, pe_working_set_t * data - - if (op_list == NULL) { - /* if there are no operations, there is nothing to do */ -- return; -+ return NULL; - } - - /* find the resource */ -@@ -1949,12 +1965,55 @@ unpack_lrm_rsc_state(node_t * node, xmlNode * rsc_entry, pe_working_set_t * data - if (saved_role > rsc->role) { - rsc->role = saved_role; - } -+ -+ return rsc; -+} -+ -+static void -+handle_orphaned_container_fillers(xmlNode * lrm_rsc_list, pe_working_set_t * data_set) -+{ -+ xmlNode *rsc_entry = NULL; -+ for (rsc_entry = __xml_first_child(lrm_rsc_list); rsc_entry != NULL; -+ rsc_entry = __xml_next(rsc_entry)) { -+ -+ resource_t *rsc; -+ resource_t *container; -+ const char *rsc_id; -+ const char *container_id; -+ -+ if (safe_str_neq((const char *)rsc_entry->name, XML_LRM_TAG_RESOURCE)) { -+ continue; -+ } -+ -+ container_id = crm_element_value(rsc_entry, XML_RSC_ATTR_CONTAINER); -+ rsc_id = crm_element_value(rsc_entry, XML_ATTR_ID); -+ if (container_id == NULL || rsc_id == NULL) { -+ continue; -+ } -+ -+ container = pe_find_resource(data_set->resources, container_id); -+ if (container == NULL) { -+ continue; -+ } -+ -+ rsc = pe_find_resource(data_set->resources, rsc_id); -+ if (rsc == NULL || -+ is_set(rsc->flags, pe_rsc_orphan_container_filler) == FALSE || -+ rsc->container != NULL) { -+ continue; -+ } -+ -+ pe_rsc_trace(rsc, "Mapped orphaned rsc %s's container to %s", rsc->id, container_id); -+ rsc->container = container; -+ container->fillers = g_list_append(container->fillers, rsc); -+ } - } - - gboolean - unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * data_set) - { - xmlNode *rsc_entry = NULL; -+ gboolean found_orphaned_container_filler = FALSE; - - CRM_CHECK(node != NULL, return FALSE); - -@@ -1962,11 +2021,23 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d - - for (rsc_entry = __xml_first_child(lrm_rsc_list); rsc_entry != NULL; - rsc_entry = __xml_next(rsc_entry)) { -+ - if (crm_str_eq((const char *)rsc_entry->name, XML_LRM_TAG_RESOURCE, TRUE)) { -- unpack_lrm_rsc_state(node, rsc_entry, data_set); -+ resource_t *rsc; -+ rsc = unpack_lrm_rsc_state(node, rsc_entry, data_set); -+ if (rsc && is_set(rsc->flags, pe_rsc_orphan_container_filler)) { -+ found_orphaned_container_filler = TRUE; -+ } - } - } - -+ /* now that all the resource state has been unpacked for this node -+ * we have to go back and map any orphaned container fillers to their -+ * container resource */ -+ if (found_orphaned_container_filler) { -+ handle_orphaned_container_fillers(lrm_rsc_list, data_set); -+ } -+ - return TRUE; - } - -diff --git a/pengine/allocate.c b/pengine/allocate.c -index bfa8e7b..e535b84 100644 ---- a/pengine/allocate.c -+++ b/pengine/allocate.c -@@ -1576,10 +1576,10 @@ apply_remote_node_ordering(pe_working_set_t *data_set) - - remote_rsc = action->node->details->remote_rsc; - container = remote_rsc->container; -+ - if (safe_str_eq(action->task, "monitor") || - safe_str_eq(action->task, "start") || - safe_str_eq(action->task, "promote") || -- safe_str_eq(action->task, "demote") || - safe_str_eq(action->task, CRM_OP_LRM_REFRESH) || - safe_str_eq(action->task, CRM_OP_CLEAR_FAILCOUNT) || - safe_str_eq(action->task, "delete")) { -@@ -1593,6 +1593,39 @@ apply_remote_node_ordering(pe_working_set_t *data_set) - pe_order_implies_then | pe_order_runnable_left, - data_set); - -+ } else if (safe_str_eq(action->task, "demote")) { -+ -+ /* If the connection is being torn down, we don't want -+ * to build a constraint between a resource's demotion and -+ * the connection resource starting... because the connection -+ * resource can not start. The connection might already be up, -+ * but the START action would not be allowed which in turn would -+ * block the demotion of any resournces living in the remote-node. -+ * -+ * In this case, only build the constraint between the demotion and -+ * the connection's stop action. This allows the connection and all the -+ * resources within the remote-node to be torn down properly. */ -+ if (remote_rsc->next_role == RSC_ROLE_STOPPED) { -+ custom_action_order(action->rsc, -+ NULL, -+ action, -+ remote_rsc, -+ generate_op_key(remote_rsc->id, RSC_STOP, 0), -+ NULL, -+ pe_order_implies_first, -+ data_set); -+ } else { -+ -+ custom_action_order(remote_rsc, -+ generate_op_key(remote_rsc->id, RSC_START, 0), -+ NULL, -+ action->rsc, -+ NULL, -+ action, -+ pe_order_implies_then | pe_order_runnable_left, -+ data_set); -+ } -+ - } else if (safe_str_eq(action->task, "stop") && - container && - is_set(container->flags, pe_rsc_failed)) { -diff --git a/pengine/test10/container-1.exp b/pengine/test10/container-1.exp -index 1924ef8..522b0f1 100644 ---- a/pengine/test10/container-1.exp -+++ b/pengine/test10/container-1.exp -@@ -47,7 +47,7 @@ - <action_set> - <rsc_op id="10" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -60,7 +60,7 @@ - <action_set> - <rsc_op id="9" operation="start" operation_key="rsc1_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -73,7 +73,7 @@ - <action_set> - <rsc_op id="12" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -86,7 +86,7 @@ - <action_set> - <rsc_op id="11" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/container-2.exp b/pengine/test10/container-2.exp -index d699d28..c5f9e9e 100644 ---- a/pengine/test10/container-2.exp -+++ b/pengine/test10/container-2.exp -@@ -45,7 +45,7 @@ - <action_set> - <rsc_op id="11" operation="start" operation_key="rsc1_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -61,7 +61,7 @@ - <action_set> - <rsc_op id="10" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -70,7 +70,7 @@ - <action_set> - <rsc_op id="2" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -83,7 +83,7 @@ - <action_set> - <rsc_op id="13" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -99,7 +99,7 @@ - <action_set> - <rsc_op id="12" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -108,7 +108,7 @@ - <action_set> - <rsc_op id="4" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/container-3.exp b/pengine/test10/container-3.exp -index cc774da..3c2703a 100644 ---- a/pengine/test10/container-3.exp -+++ b/pengine/test10/container-3.exp -@@ -42,7 +42,7 @@ - <action_set> - <rsc_op id="10" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -55,7 +55,7 @@ - <action_set> - <rsc_op id="9" operation="start" operation_key="rsc1_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -68,7 +68,7 @@ - <action_set> - <rsc_op id="12" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -84,7 +84,7 @@ - <action_set> - <rsc_op id="11" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -93,7 +93,7 @@ - <action_set> - <rsc_op id="3" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/container-4.exp b/pengine/test10/container-4.exp -index 72f50cc..d1da381 100644 ---- a/pengine/test10/container-4.exp -+++ b/pengine/test10/container-4.exp -@@ -45,7 +45,7 @@ - <action_set> - <rsc_op id="13" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -58,7 +58,7 @@ - <action_set> - <rsc_op id="12" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -74,7 +74,7 @@ - <action_set> - <rsc_op id="11" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -83,7 +83,7 @@ - <action_set> - <rsc_op id="16" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -96,7 +96,7 @@ - <action_set> - <rsc_op id="15" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -112,7 +112,7 @@ - <action_set> - <rsc_op id="14" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -diff --git a/pengine/test10/container-group-1.exp b/pengine/test10/container-group-1.exp -index a007f84..b14aa4c 100644 ---- a/pengine/test10/container-group-1.exp -+++ b/pengine/test10/container-group-1.exp -@@ -79,7 +79,7 @@ - <action_set> - <rsc_op id="10" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -92,7 +92,7 @@ - <action_set> - <rsc_op id="9" operation="start" operation_key="rsc1_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -111,7 +111,7 @@ - <action_set> - <rsc_op id="12" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -124,7 +124,7 @@ - <action_set> - <rsc_op id="11" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/container-group-2.exp b/pengine/test10/container-group-2.exp -index 6d5e283..ce32cc3 100644 ---- a/pengine/test10/container-group-2.exp -+++ b/pengine/test10/container-group-2.exp -@@ -113,7 +113,7 @@ - <action_set> - <rsc_op id="11" operation="start" operation_key="rsc1_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -132,7 +132,7 @@ - <action_set> - <rsc_op id="10" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -148,7 +148,7 @@ - <action_set> - <rsc_op id="2" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -161,7 +161,7 @@ - <action_set> - <rsc_op id="13" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -183,7 +183,7 @@ - <action_set> - <rsc_op id="12" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -196,7 +196,7 @@ - <action_set> - <rsc_op id="4" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/container-group-3.exp b/pengine/test10/container-group-3.exp -index 4df7279..96d99c6 100644 ---- a/pengine/test10/container-group-3.exp -+++ b/pengine/test10/container-group-3.exp -@@ -101,7 +101,7 @@ - <action_set> - <rsc_op id="9" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -114,7 +114,7 @@ - <action_set> - <rsc_op id="8" operation="start" operation_key="rsc1_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -130,7 +130,7 @@ - <action_set> - <rsc_op id="11" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -143,7 +143,7 @@ - <action_set> - <rsc_op id="10" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/container-group-4.exp b/pengine/test10/container-group-4.exp -index dd5aad7..6128599 100644 ---- a/pengine/test10/container-group-4.exp -+++ b/pengine/test10/container-group-4.exp -@@ -113,7 +113,7 @@ - <action_set> - <rsc_op id="13" operation="monitor" operation_key="rsc1_monitor_10000" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -126,7 +126,7 @@ - <action_set> - <rsc_op id="12" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -145,7 +145,7 @@ - <action_set> - <rsc_op id="11" operation="stop" operation_key="rsc1_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc1" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -161,7 +161,7 @@ - <action_set> - <rsc_op id="16" operation="monitor" operation_key="rsc2_monitor_5000" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="5000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -174,7 +174,7 @@ - <action_set> - <rsc_op id="15" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="node2"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -196,7 +196,7 @@ - <action_set> - <rsc_op id="14" operation="stop" operation_key="rsc2_stop_0" on_node="node1" on_node_uuid="node1"> - <primitive id="rsc2" class="ocf" provider="pacemaker" type="Dummy"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/whitebox-asymmetric.exp b/pengine/test10/whitebox-asymmetric.exp -index 2c7e586..d60cffa 100644 ---- a/pengine/test10/whitebox-asymmetric.exp -+++ b/pengine/test10/whitebox-asymmetric.exp -@@ -32,7 +32,7 @@ - <action_set> - <rsc_op id="13" operation="monitor" operation_key="18node2_monitor_30000" on_node="18builder" on_node_uuid="5"> - <primitive id="18node2" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container2" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -45,7 +45,7 @@ - <action_set> - <rsc_op id="12" operation="start" operation_key="18node2_start_0" on_node="18builder" on_node_uuid="5"> - <primitive id="18node2" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container2" CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -diff --git a/pengine/test10/whitebox-fail1.exp b/pengine/test10/whitebox-fail1.exp -index 5741955..b298df5 100644 ---- a/pengine/test10/whitebox-fail1.exp -+++ b/pengine/test10/whitebox-fail1.exp -@@ -173,7 +173,7 @@ - <action_set> - <rsc_op id="46" operation="start" operation_key="lxc1_start_0" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -189,7 +189,7 @@ - <action_set> - <rsc_op id="45" operation="stop" operation_key="lxc1_stop_0" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -198,7 +198,7 @@ - <action_set> - <rsc_op id="6" operation="monitor" operation_key="lxc1_monitor_30000" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/whitebox-fail2.exp b/pengine/test10/whitebox-fail2.exp -index 5741955..b298df5 100644 ---- a/pengine/test10/whitebox-fail2.exp -+++ b/pengine/test10/whitebox-fail2.exp -@@ -173,7 +173,7 @@ - <action_set> - <rsc_op id="46" operation="start" operation_key="lxc1_start_0" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -189,7 +189,7 @@ - <action_set> - <rsc_op id="45" operation="stop" operation_key="lxc1_stop_0" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -@@ -198,7 +198,7 @@ - <action_set> - <rsc_op id="6" operation="monitor" operation_key="lxc1_monitor_30000" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/whitebox-fail3.exp b/pengine/test10/whitebox-fail3.exp -index 1b8d144..c5a6474 100644 ---- a/pengine/test10/whitebox-fail3.exp -+++ b/pengine/test10/whitebox-fail3.exp -@@ -151,7 +151,7 @@ - <action_set> - <rsc_op id="37" operation="monitor" operation_key="18builder_monitor_30000" on_node="dvossel-laptop2" on_node_uuid="24815808"> - <primitive id="18builder" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="vm" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -164,7 +164,7 @@ - <action_set> - <rsc_op id="36" operation="start" operation_key="18builder_start_0" on_node="dvossel-laptop2" on_node_uuid="24815808"> - <primitive id="18builder" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="vm" CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -180,7 +180,7 @@ - <action_set> - <rsc_op id="4" operation="monitor" operation_key="18builder_monitor_0" on_node="dvossel-laptop2" on_node_uuid="24815808"> - <primitive id="18builder" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="vm" CRM_meta_op_target_rc="7" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs/> -diff --git a/pengine/test10/whitebox-move.exp b/pengine/test10/whitebox-move.exp -index 8dbdda0..60262b6 100644 ---- a/pengine/test10/whitebox-move.exp -+++ b/pengine/test10/whitebox-move.exp -@@ -168,7 +168,7 @@ - <action_set> - <rsc_op id="38" operation="monitor" operation_key="lxc1_monitor_30000" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -181,7 +181,7 @@ - <action_set> - <rsc_op id="37" operation="start" operation_key="lxc1_start_0" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -197,7 +197,7 @@ - <action_set> - <rsc_op id="36" operation="stop" operation_key="lxc1_stop_0" on_node="18node1" on_node_uuid="1"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/whitebox-orphan-ms.dot b/pengine/test10/whitebox-orphan-ms.dot -new file mode 100644 -index 0000000..f037179 ---- /dev/null -+++ b/pengine/test10/whitebox-orphan-ms.dot -@@ -0,0 +1,69 @@ -+ digraph "g" { -+"FencingFail_start_0 18node1" [ style=bold color="green" fontcolor="black"] -+"FencingFail_stop_0 18node3" -> "FencingFail_start_0 18node1" [ style = bold] -+"FencingFail_stop_0 18node3" -> "all_stopped" [ style = bold] -+"FencingFail_stop_0 18node3" [ style=bold color="green" fontcolor="black"] -+"all_stopped" [ style=bold color="green" fontcolor="orange"] -+"container1_delete_0 18node1" -> "container1_start_0 <none>" [ style = dashed] -+"container1_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"container1_delete_0 18node2" -> "container1_start_0 <none>" [ style = dashed] -+"container1_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"container1_delete_0 18node3" -> "container1_start_0 <none>" [ style = dashed] -+"container1_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"container1_start_0 <none>" [ style=dashed color="red" fontcolor="black"] -+"container1_stop_0 18node1" -> "all_stopped" [ style = bold] -+"container1_stop_0 18node1" -> "container1_delete_0 18node1" [ style = bold] -+"container1_stop_0 18node1" -> "container1_delete_0 18node2" [ style = bold] -+"container1_stop_0 18node1" -> "container1_delete_0 18node3" [ style = bold] -+"container1_stop_0 18node1" -> "container1_start_0 <none>" [ style = dashed] -+"container1_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+"container2_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"container2_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"container2_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"container2_stop_0 18node1" -> "all_stopped" [ style = bold] -+"container2_stop_0 18node1" -> "container2_delete_0 18node1" [ style = bold] -+"container2_stop_0 18node1" -> "container2_delete_0 18node2" [ style = bold] -+"container2_stop_0 18node1" -> "container2_delete_0 18node3" [ style = bold] -+"container2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_demote_0 lxc1" -> "lxc-ms_stop_0 lxc1" [ style = bold] -+"lxc-ms_demote_0 lxc1" -> "lxc-ms_stop_0 lxc2" [ style = bold] -+"lxc-ms_demote_0 lxc1" -> "lxc1_stop_0 18node1" [ style = bold] -+"lxc-ms_demote_0 lxc1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_demote_0 lxc2" -> "lxc-ms_stop_0 lxc1" [ style = bold] -+"lxc-ms_demote_0 lxc2" -> "lxc-ms_stop_0 lxc2" [ style = bold] -+"lxc-ms_demote_0 lxc2" -> "lxc2_stop_0 18node1" [ style = bold] -+"lxc-ms_demote_0 lxc2" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_stop_0 lxc1" -> "all_stopped" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node2" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node3" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc1_stop_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_stop_0 lxc2" -> "all_stopped" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node2" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node3" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc2_stop_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc2" [ style=bold color="green" fontcolor="black"] -+"lxc1_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc1_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"lxc1_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"lxc1_stop_0 18node1" -> "all_stopped" [ style = bold] -+"lxc1_stop_0 18node1" -> "container1_stop_0 18node1" [ style = bold] -+"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node1" [ style = bold] -+"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node2" [ style = bold] -+"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node3" [ style = bold] -+"lxc1_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc2_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc2_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"lxc2_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"lxc2_stop_0 18node1" -> "all_stopped" [ style = bold] -+"lxc2_stop_0 18node1" -> "container2_stop_0 18node1" [ style = bold] -+"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node1" [ style = bold] -+"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node2" [ style = bold] -+"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node3" [ style = bold] -+"lxc2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+} -diff --git a/pengine/test10/whitebox-orphan-ms.exp b/pengine/test10/whitebox-orphan-ms.exp -new file mode 100644 -index 0000000..d36a9be ---- /dev/null -+++ b/pengine/test10/whitebox-orphan-ms.exp -@@ -0,0 +1,366 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="1" batch-limit="10" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <rsc_op id="45" operation="start" operation_key="FencingFail_start_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="FencingFail" class="stonith" type="fence_dummy"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7" delay="20" mode="fail" pcmk_host_list="18node1 18node3" random_sleep_range="30"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="44" operation="stop" operation_key="FencingFail_stop_0" on_node="18node3" on_node_uuid="3"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <rsc_op id="44" operation="stop" operation_key="FencingFail_stop_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="FencingFail" class="stonith" type="fence_dummy"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7" delay="20" mode="fail" pcmk_host_list="18node1 18node3" random_sleep_range="30"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <rsc_op id="92" operation="stop" operation_key="container2_stop_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="98" operation="stop" operation_key="lxc2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <rsc_op id="30" operation="delete" operation_key="container2_delete_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="92" operation="stop" operation_key="container2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="25" operation="delete" operation_key="container2_delete_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="92" operation="stop" operation_key="container2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="20" operation="delete" operation_key="container2_delete_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container2" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="92" operation="stop" operation_key="container2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="93" operation="stop" operation_key="lxc1_stop_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="94" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="96" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="31" operation="delete" operation_key="lxc1_delete_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="93" operation="stop" operation_key="lxc1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="26" operation="delete" operation_key="lxc1_delete_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="93" operation="stop" operation_key="lxc1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="21" operation="delete" operation_key="lxc1_delete_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="93" operation="stop" operation_key="lxc1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="97" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"> -+ <primitive id="lxc-ms" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="94" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="95" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="96" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> -+ <primitive id="lxc-ms" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="94" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="95" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <rsc_op id="95" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"> -+ <primitive id="lxc-ms" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <rsc_op id="94" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> -+ <primitive id="lxc-ms" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <rsc_op id="32" operation="delete" operation_key="lxc-ms_delete_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="lxc-ms" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="96" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="97" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="15"> -+ <action_set> -+ <rsc_op id="27" operation="delete" operation_key="lxc-ms_delete_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="lxc-ms" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="96" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="97" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <rsc_op id="22" operation="delete" operation_key="lxc-ms_delete_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc-ms" class="ocf" provider="pacemaker" type="Stateful"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="96" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="97" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="17"> -+ <action_set> -+ <rsc_op id="98" operation="stop" operation_key="lxc2_stop_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc2" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container2" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="95" operation="demote" operation_key="lxc-ms_demote_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="97" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="18"> -+ <action_set> -+ <rsc_op id="33" operation="delete" operation_key="lxc2_delete_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="lxc2" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container2" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="98" operation="stop" operation_key="lxc2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="19"> -+ <action_set> -+ <rsc_op id="28" operation="delete" operation_key="lxc2_delete_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="lxc2" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container2" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="98" operation="stop" operation_key="lxc2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="20"> -+ <action_set> -+ <rsc_op id="23" operation="delete" operation_key="lxc2_delete_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="lxc2" class="ocf" provider="pacemaker" type="remote"/> -+ <attributes CRM_meta_container="container2" CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="98" operation="stop" operation_key="lxc2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="21"> -+ <action_set> -+ <rsc_op id="99" operation="stop" operation_key="container1_stop_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="93" operation="stop" operation_key="lxc1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="22"> -+ <action_set> -+ <rsc_op id="34" operation="delete" operation_key="container1_delete_0" on_node="18node3" on_node_uuid="3"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="99" operation="stop" operation_key="container1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="23"> -+ <action_set> -+ <rsc_op id="29" operation="delete" operation_key="container1_delete_0" on_node="18node2" on_node_uuid="2"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="99" operation="stop" operation_key="container1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="24"> -+ <action_set> -+ <rsc_op id="24" operation="delete" operation_key="container1_delete_0" on_node="18node1" on_node_uuid="1"> -+ <primitive id="container1" class="ocf" provider="heartbeat" type="VirtualDomain"/> -+ <attributes CRM_meta_timeout="90000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="99" operation="stop" operation_key="container1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="25"> -+ <action_set> -+ <pseudo_event id="19" operation="all_stopped" operation_key="all_stopped"> -+ <attributes crm_feature_set="3.0.7"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="44" operation="stop" operation_key="FencingFail_stop_0" on_node="18node3" on_node_uuid="3"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="92" operation="stop" operation_key="container2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="93" operation="stop" operation_key="lxc1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="96" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="97" operation="stop" operation_key="lxc-ms_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="98" operation="stop" operation_key="lxc2_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="99" operation="stop" operation_key="container1_stop_0" on_node="18node1" on_node_uuid="1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/whitebox-orphan-ms.pe.dot b/pengine/test10/whitebox-orphan-ms.pe.dot -new file mode 100644 -index 0000000..81c37eb ---- /dev/null -+++ b/pengine/test10/whitebox-orphan-ms.pe.dot -@@ -0,0 +1,69 @@ -+digraph "g" { -+"FencingFail_start_0 18node1" [ style=bold color="green" fontcolor="black"] -+"FencingFail_stop_0 18node3" -> "FencingFail_start_0 18node1" [ style = bold] -+"FencingFail_stop_0 18node3" -> "all_stopped" [ style = bold] -+"FencingFail_stop_0 18node3" [ style=bold color="green" fontcolor="black"] -+"all_stopped" [ style=bold color="green" fontcolor="orange"] -+"container1_delete_0 18node1" -> "container1_start_0 <none>" [ style = dashed] -+"container1_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"container1_delete_0 18node2" -> "container1_start_0 <none>" [ style = dashed] -+"container1_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"container1_delete_0 18node3" -> "container1_start_0 <none>" [ style = dashed] -+"container1_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"container1_start_0 <none>" [ style=dashed color="red" fontcolor="black"] -+"container1_stop_0 18node1" -> "all_stopped" [ style = bold] -+"container1_stop_0 18node1" -> "container1_delete_0 18node1" [ style = bold] -+"container1_stop_0 18node1" -> "container1_delete_0 18node2" [ style = bold] -+"container1_stop_0 18node1" -> "container1_delete_0 18node3" [ style = bold] -+"container1_stop_0 18node1" -> "container1_start_0 <none>" [ style = dashed] -+"container1_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+"container2_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"container2_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"container2_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"container2_stop_0 18node1" -> "all_stopped" [ style = bold] -+"container2_stop_0 18node1" -> "container2_delete_0 18node1" [ style = bold] -+"container2_stop_0 18node1" -> "container2_delete_0 18node2" [ style = bold] -+"container2_stop_0 18node1" -> "container2_delete_0 18node3" [ style = bold] -+"container2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_demote_0 lxc1" -> "lxc-ms_stop_0 lxc1" [ style = bold] -+"lxc-ms_demote_0 lxc1" -> "lxc-ms_stop_0 lxc2" [ style = bold] -+"lxc-ms_demote_0 lxc1" -> "lxc1_stop_0 18node1" [ style = bold] -+"lxc-ms_demote_0 lxc1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_demote_0 lxc2" -> "lxc-ms_stop_0 lxc1" [ style = bold] -+"lxc-ms_demote_0 lxc2" -> "lxc-ms_stop_0 lxc2" [ style = bold] -+"lxc-ms_demote_0 lxc2" -> "lxc2_stop_0 18node1" [ style = bold] -+"lxc-ms_demote_0 lxc2" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_stop_0 lxc1" -> "all_stopped" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node2" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc-ms_delete_0 18node3" [ style = bold] -+"lxc-ms_stop_0 lxc1" -> "lxc1_stop_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc1" [ style=bold color="green" fontcolor="black"] -+"lxc-ms_stop_0 lxc2" -> "all_stopped" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node2" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc-ms_delete_0 18node3" [ style = bold] -+"lxc-ms_stop_0 lxc2" -> "lxc2_stop_0 18node1" [ style = bold] -+"lxc-ms_stop_0 lxc2" [ style=bold color="green" fontcolor="black"] -+"lxc1_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc1_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"lxc1_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"lxc1_stop_0 18node1" -> "all_stopped" [ style = bold] -+"lxc1_stop_0 18node1" -> "container1_stop_0 18node1" [ style = bold] -+"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node1" [ style = bold] -+"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node2" [ style = bold] -+"lxc1_stop_0 18node1" -> "lxc1_delete_0 18node3" [ style = bold] -+"lxc1_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc2_delete_0 18node1" [ style=bold color="green" fontcolor="black"] -+"lxc2_delete_0 18node2" [ style=bold color="green" fontcolor="black"] -+"lxc2_delete_0 18node3" [ style=bold color="green" fontcolor="black"] -+"lxc2_stop_0 18node1" -> "all_stopped" [ style = bold] -+"lxc2_stop_0 18node1" -> "container2_stop_0 18node1" [ style = bold] -+"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node1" [ style = bold] -+"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node2" [ style = bold] -+"lxc2_stop_0 18node1" -> "lxc2_delete_0 18node3" [ style = bold] -+"lxc2_stop_0 18node1" [ style=bold color="green" fontcolor="black"] -+} -diff --git a/pengine/test10/whitebox-orphan-ms.scores b/pengine/test10/whitebox-orphan-ms.scores -new file mode 100644 -index 0000000..d968052 ---- /dev/null -+++ b/pengine/test10/whitebox-orphan-ms.scores -@@ -0,0 +1,105 @@ -+Allocation scores: -+clone_color: Connectivity allocation score on 18node1: 0 -+clone_color: Connectivity allocation score on 18node2: 0 -+clone_color: Connectivity allocation score on 18node3: 0 -+clone_color: master-1 allocation score on 18node1: 0 -+clone_color: master-1 allocation score on 18node2: 0 -+clone_color: master-1 allocation score on 18node3: 0 -+clone_color: master-1 allocation score on lxc1: -INFINITY -+clone_color: master-1 allocation score on lxc2: -INFINITY -+clone_color: ping-1:0 allocation score on 18node1: 1 -+clone_color: ping-1:0 allocation score on 18node2: 0 -+clone_color: ping-1:0 allocation score on 18node3: 0 -+clone_color: ping-1:1 allocation score on 18node1: 0 -+clone_color: ping-1:1 allocation score on 18node2: 1 -+clone_color: ping-1:1 allocation score on 18node3: 0 -+clone_color: ping-1:2 allocation score on 18node1: 0 -+clone_color: ping-1:2 allocation score on 18node2: 0 -+clone_color: ping-1:2 allocation score on 18node3: 1 -+clone_color: stateful-1:0 allocation score on 18node1: 11 -+clone_color: stateful-1:0 allocation score on 18node2: 0 -+clone_color: stateful-1:0 allocation score on 18node3: 0 -+clone_color: stateful-1:0 allocation score on lxc1: -INFINITY -+clone_color: stateful-1:0 allocation score on lxc2: -INFINITY -+clone_color: stateful-1:1 allocation score on 18node1: 0 -+clone_color: stateful-1:1 allocation score on 18node2: 6 -+clone_color: stateful-1:1 allocation score on 18node3: 0 -+clone_color: stateful-1:1 allocation score on lxc1: -INFINITY -+clone_color: stateful-1:1 allocation score on lxc2: -INFINITY -+clone_color: stateful-1:2 allocation score on 18node1: 0 -+clone_color: stateful-1:2 allocation score on 18node2: 0 -+clone_color: stateful-1:2 allocation score on 18node3: 6 -+clone_color: stateful-1:2 allocation score on lxc1: -INFINITY -+clone_color: stateful-1:2 allocation score on lxc2: -INFINITY -+group_color: group-1 allocation score on 18node1: 0 -+group_color: group-1 allocation score on 18node2: 0 -+group_color: group-1 allocation score on 18node3: 0 -+group_color: r192.168.122.87 allocation score on 18node1: 0 -+group_color: r192.168.122.87 allocation score on 18node2: 0 -+group_color: r192.168.122.87 allocation score on 18node3: 0 -+group_color: r192.168.122.88 allocation score on 18node1: 0 -+group_color: r192.168.122.88 allocation score on 18node2: 0 -+group_color: r192.168.122.88 allocation score on 18node3: 0 -+group_color: r192.168.122.89 allocation score on 18node1: 0 -+group_color: r192.168.122.89 allocation score on 18node2: 0 -+group_color: r192.168.122.89 allocation score on 18node3: 0 -+native_color: Fencing allocation score on 18node1: 0 -+native_color: Fencing allocation score on 18node2: 0 -+native_color: Fencing allocation score on 18node3: 0 -+native_color: FencingFail allocation score on 18node1: 0 -+native_color: FencingFail allocation score on 18node2: 0 -+native_color: FencingFail allocation score on 18node3: 0 -+native_color: FencingPass allocation score on 18node1: 0 -+native_color: FencingPass allocation score on 18node2: 0 -+native_color: FencingPass allocation score on 18node3: 0 -+native_color: lsb-dummy allocation score on 18node1: 0 -+native_color: lsb-dummy allocation score on 18node2: -INFINITY -+native_color: lsb-dummy allocation score on 18node3: -INFINITY -+native_color: migrator allocation score on 18node1: 1 -+native_color: migrator allocation score on 18node2: 0 -+native_color: migrator allocation score on 18node3: 0 -+native_color: ping-1:0 allocation score on 18node1: 1 -+native_color: ping-1:0 allocation score on 18node2: -INFINITY -+native_color: ping-1:0 allocation score on 18node3: -INFINITY -+native_color: ping-1:1 allocation score on 18node1: 0 -+native_color: ping-1:1 allocation score on 18node2: 1 -+native_color: ping-1:1 allocation score on 18node3: 0 -+native_color: ping-1:2 allocation score on 18node1: 0 -+native_color: ping-1:2 allocation score on 18node2: -INFINITY -+native_color: ping-1:2 allocation score on 18node3: 1 -+native_color: r192.168.122.87 allocation score on 18node1: 11 -+native_color: r192.168.122.87 allocation score on 18node2: -INFINITY -+native_color: r192.168.122.87 allocation score on 18node3: -INFINITY -+native_color: r192.168.122.88 allocation score on 18node1: 0 -+native_color: r192.168.122.88 allocation score on 18node2: -INFINITY -+native_color: r192.168.122.88 allocation score on 18node3: -INFINITY -+native_color: r192.168.122.89 allocation score on 18node1: 0 -+native_color: r192.168.122.89 allocation score on 18node2: -INFINITY -+native_color: r192.168.122.89 allocation score on 18node3: -INFINITY -+native_color: rsc_18node1 allocation score on 18node1: 100 -+native_color: rsc_18node1 allocation score on 18node2: 0 -+native_color: rsc_18node1 allocation score on 18node3: 0 -+native_color: rsc_18node2 allocation score on 18node1: 0 -+native_color: rsc_18node2 allocation score on 18node2: 100 -+native_color: rsc_18node2 allocation score on 18node3: 0 -+native_color: rsc_18node3 allocation score on 18node1: 0 -+native_color: rsc_18node3 allocation score on 18node2: 0 -+native_color: rsc_18node3 allocation score on 18node3: 100 -+native_color: stateful-1:0 allocation score on 18node1: 11 -+native_color: stateful-1:0 allocation score on 18node2: -INFINITY -+native_color: stateful-1:0 allocation score on 18node3: -INFINITY -+native_color: stateful-1:0 allocation score on lxc1: -INFINITY -+native_color: stateful-1:0 allocation score on lxc2: -INFINITY -+native_color: stateful-1:1 allocation score on 18node1: 0 -+native_color: stateful-1:1 allocation score on 18node2: 6 -+native_color: stateful-1:1 allocation score on 18node3: 0 -+native_color: stateful-1:1 allocation score on lxc1: -INFINITY -+native_color: stateful-1:1 allocation score on lxc2: -INFINITY -+native_color: stateful-1:2 allocation score on 18node1: 0 -+native_color: stateful-1:2 allocation score on 18node2: -INFINITY -+native_color: stateful-1:2 allocation score on 18node3: 6 -+native_color: stateful-1:2 allocation score on lxc1: -INFINITY -+native_color: stateful-1:2 allocation score on lxc2: -INFINITY -+stateful-1:0 promotion score on 18node1: 10 -+stateful-1:1 promotion score on 18node2: 5 -+stateful-1:2 promotion score on 18node3: 5 -diff --git a/pengine/test10/whitebox-orphan-ms.summary b/pengine/test10/whitebox-orphan-ms.summary -new file mode 100644 -index 0000000..30c6a3b ---- /dev/null -+++ b/pengine/test10/whitebox-orphan-ms.summary -@@ -0,0 +1,85 @@ -+ -+Current cluster status: -+Online: [ 18node1 18node2 18node3 ] -+Containers: [ lxc1:container1 lxc2:container2 ] -+ -+ Fencing (stonith:fence_xvm): Started 18node2 -+ FencingPass (stonith:fence_dummy): Started 18node3 -+ FencingFail (stonith:fence_dummy): Started 18node3 -+ rsc_18node1 (ocf::heartbeat:IPaddr2): Started 18node1 -+ rsc_18node2 (ocf::heartbeat:IPaddr2): Started 18node2 -+ rsc_18node3 (ocf::heartbeat:IPaddr2): Started 18node3 -+ migrator (ocf::pacemaker:Dummy): Started 18node1 -+ Clone Set: Connectivity [ping-1] -+ Started: [ 18node1 18node2 18node3 ] -+ Master/Slave Set: master-1 [stateful-1] -+ Masters: [ 18node1 ] -+ Slaves: [ 18node2 18node3 ] -+ Resource Group: group-1 -+ r192.168.122.87 (ocf::heartbeat:IPaddr2): Started 18node1 -+ r192.168.122.88 (ocf::heartbeat:IPaddr2): Started 18node1 -+ r192.168.122.89 (ocf::heartbeat:IPaddr2): Started 18node1 -+ lsb-dummy (lsb:/usr/share/pacemaker/tests/cts/LSBDummy): Started 18node1 -+ container2 (ocf::heartbeat:VirtualDomain): ORPHANED Started 18node1 -+ lxc1 (ocf::pacemaker:remote): ORPHANED Started 18node1 -+ lxc-ms (ocf::pacemaker:Stateful): ORPHANED Master [ lxc1 lxc2 ] -+ lxc2 (ocf::pacemaker:remote): ORPHANED Started 18node1 -+ container1 (ocf::heartbeat:VirtualDomain): ORPHANED Started 18node1 -+ -+Transition Summary: -+ * Move FencingFail (Started 18node3 -> 18node1) -+ * Stop container2 (18node1) -+ * Stop lxc1 (18node1) -+ * Demote lxc-ms (Master -> Stopped lxc1) -+ * Stop lxc2 (18node1) -+ * Stop container1 (18node1) -+ -+Executing cluster transition: -+ * Resource action: FencingFail stop on 18node3 -+ * Resource action: lxc-ms demote on lxc2 -+ * Resource action: lxc-ms demote on lxc1 -+ * Resource action: FencingFail start on 18node1 -+ * Resource action: lxc-ms stop on lxc2 -+ * Resource action: lxc-ms stop on lxc1 -+ * Resource action: lxc-ms delete on 18node3 -+ * Resource action: lxc-ms delete on 18node2 -+ * Resource action: lxc-ms delete on 18node1 -+ * Resource action: lxc2 stop on 18node1 -+ * Resource action: lxc2 delete on 18node3 -+ * Resource action: lxc2 delete on 18node2 -+ * Resource action: lxc2 delete on 18node1 -+ * Resource action: container2 stop on 18node1 -+ * Resource action: container2 delete on 18node3 -+ * Resource action: container2 delete on 18node2 -+ * Resource action: container2 delete on 18node1 -+ * Resource action: lxc1 stop on 18node1 -+ * Resource action: lxc1 delete on 18node3 -+ * Resource action: lxc1 delete on 18node2 -+ * Resource action: lxc1 delete on 18node1 -+ * Resource action: container1 stop on 18node1 -+ * Resource action: container1 delete on 18node3 -+ * Resource action: container1 delete on 18node2 -+ * Resource action: container1 delete on 18node1 -+ * Pseudo action: all_stopped -+ -+Revised cluster status: -+Online: [ 18node1 18node2 18node3 ] -+ -+ Fencing (stonith:fence_xvm): Started 18node2 -+ FencingPass (stonith:fence_dummy): Started 18node3 -+ FencingFail (stonith:fence_dummy): Started 18node1 -+ rsc_18node1 (ocf::heartbeat:IPaddr2): Started 18node1 -+ rsc_18node2 (ocf::heartbeat:IPaddr2): Started 18node2 -+ rsc_18node3 (ocf::heartbeat:IPaddr2): Started 18node3 -+ migrator (ocf::pacemaker:Dummy): Started 18node1 -+ Clone Set: Connectivity [ping-1] -+ Started: [ 18node1 18node2 18node3 ] -+ Master/Slave Set: master-1 [stateful-1] -+ Masters: [ 18node1 ] -+ Slaves: [ 18node2 18node3 ] -+ Resource Group: group-1 -+ r192.168.122.87 (ocf::heartbeat:IPaddr2): Started 18node1 -+ r192.168.122.88 (ocf::heartbeat:IPaddr2): Started 18node1 -+ r192.168.122.89 (ocf::heartbeat:IPaddr2): Started 18node1 -+ lsb-dummy (lsb:/usr/share/pacemaker/tests/cts/LSBDummy): Started 18node1 -+ -diff --git a/pengine/test10/whitebox-orphan-ms.xml b/pengine/test10/whitebox-orphan-ms.xml -new file mode 100644 -index 0000000..c9a62fa ---- /dev/null -+++ b/pengine/test10/whitebox-orphan-ms.xml -@@ -0,0 +1,436 @@ -+<cib crm_feature_set="3.0.7" validate-with="pacemaker-1.2" admin_epoch="1" epoch="43" num_updates="9" cib-last-written="Fri Sep 6 18:43:56 2013" update-origin="18node1" update-client="cibadmin" have-quorum="1" dc-uuid="1"> -+ <configuration> -+ <crm_config> -+ <cluster_property_set id="cib-bootstrap-options"> -+ <nvpair id="cts-stonith-enabled" name="stonith-enabled" value="1"/> -+ <nvpair id="cts-start-failure-is-fatal" name="start-failure-is-fatal" value="false"/> -+ <nvpair id="cts-pe-input-series-max" name="pe-input-series-max" value="5000"/> -+ <nvpair id="cts-default-action-timeout" name="default-action-timeout" value="90s"/> -+ <nvpair id="cts-shutdown-escalation" name="shutdown-escalation" value="5min"/> -+ <nvpair id="cts-batch-limit" name="batch-limit" value="10"/> -+ <nvpair id="cts-dc-deadtime" name="dc-deadtime" value="5s"/> -+ <nvpair id="cts-no-quorum-policy" name="no-quorum-policy" value="stop"/> -+ <nvpair id="cts-expected-quorum-votes" name="expected-quorum-votes" value="3"/> -+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.11-1.fc18-fe384ed"/> -+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> -+ </cluster_property_set> -+ </crm_config> -+ <nodes> -+ <node id="1" uname="18node1"/> -+ <node id="2" uname="18node2"/> -+ <node id="3" uname="18node3"/> -+ </nodes> -+ <resources> -+ <primitive id="Fencing" class="stonith" type="fence_xvm"> -+ <meta_attributes id="Fencing-meta"> -+ <nvpair id="Fencing-migration-threshold" name="migration-threshold" value="5"/> -+ </meta_attributes> -+ <instance_attributes id="Fencing-params"> -+ <nvpair id="Fencing-delay" name="delay" value="0"/> -+ <nvpair id="Fencing-pcmk_arg_map" name="pcmk_arg_map" value="domain:uname"/> -+ </instance_attributes> -+ <operations> -+ <op id="Fencing-monitor-120s" interval="120s" name="monitor" timeout="120s"/> -+ <op id="Fencing-stop-0" interval="0" name="stop" timeout="60s"/> -+ <op id="Fencing-start-0" interval="0" name="start" timeout="60s"/> -+ </operations> -+ </primitive> -+ <primitive id="FencingPass" class="stonith" type="fence_dummy"> -+ <instance_attributes id="FencingPass-params"> -+ <nvpair id="FencingPass-delay" name="delay" value="20"/> -+ <nvpair id="FencingPass-random_sleep_range" name="random_sleep_range" value="10"/> -+ <nvpair id="FencingPass-pcmk_host_list" name="pcmk_host_list" value="18node2"/> -+ <nvpair id="FencingPass-mode" name="mode" value="pass"/> -+ </instance_attributes> -+ </primitive> -+ <primitive id="FencingFail" class="stonith" type="fence_dummy"> -+ <instance_attributes id="FencingFail-params"> -+ <nvpair id="FencingFail-delay" name="delay" value="20"/> -+ <nvpair id="FencingFail-random_sleep_range" name="random_sleep_range" value="30"/> -+ <nvpair id="FencingFail-pcmk_host_list" name="pcmk_host_list" value="18node1 18node3"/> -+ <nvpair id="FencingFail-mode" name="mode" value="fail"/> -+ </instance_attributes> -+ </primitive> -+ <primitive id="rsc_18node1" class="ocf" type="IPaddr2" provider="heartbeat"> -+ <instance_attributes id="rsc_18node1-params"> -+ <nvpair id="rsc_18node1-ip" name="ip" value="192.168.122.84"/> -+ <nvpair id="rsc_18node1-cidr_netmask" name="cidr_netmask" value="32"/> -+ </instance_attributes> -+ <operations> -+ <op id="rsc_18node1-monitor-5s" interval="5s" name="monitor"/> -+ </operations> -+ </primitive> -+ <primitive id="rsc_18node2" class="ocf" type="IPaddr2" provider="heartbeat"> -+ <instance_attributes id="rsc_18node2-params"> -+ <nvpair id="rsc_18node2-ip" name="ip" value="192.168.122.85"/> -+ <nvpair id="rsc_18node2-cidr_netmask" name="cidr_netmask" value="32"/> -+ </instance_attributes> -+ <operations> -+ <op id="rsc_18node2-monitor-5s" interval="5s" name="monitor"/> -+ </operations> -+ </primitive> -+ <primitive id="rsc_18node3" class="ocf" type="IPaddr2" provider="heartbeat"> -+ <instance_attributes id="rsc_18node3-params"> -+ <nvpair id="rsc_18node3-ip" name="ip" value="192.168.122.86"/> -+ <nvpair id="rsc_18node3-cidr_netmask" name="cidr_netmask" value="32"/> -+ </instance_attributes> -+ <operations> -+ <op id="rsc_18node3-monitor-5s" interval="5s" name="monitor"/> -+ </operations> -+ </primitive> -+ <primitive id="migrator" class="ocf" type="Dummy" provider="pacemaker"> -+ <meta_attributes id="migrator-meta"> -+ <nvpair id="migrator-allow-migrate" name="allow-migrate" value="1"/> -+ <nvpair id="migrator-resource-stickiness" name="resource-stickiness" value="1"/> -+ </meta_attributes> -+ <operations> -+ <op id="migrator-monitor-P10S" interval="P10S" name="monitor"/> -+ </operations> -+ </primitive> -+ <clone id="Connectivity"> -+ <meta_attributes id="Connectivity-meta"> -+ <nvpair id="Connectivity-globally-unique" name="globally-unique" value="false"/> -+ </meta_attributes> -+ <primitive id="ping-1" class="ocf" type="ping" provider="pacemaker"> -+ <instance_attributes id="ping-1-params"> -+ <nvpair id="ping-1-debug" name="debug" value="true"/> -+ <nvpair id="ping-1-host_list" name="host_list" value="192.168.122.80"/> -+ <nvpair id="ping-1-name" name="name" value="connected"/> -+ </instance_attributes> -+ <operations> -+ <op id="ping-1-monitor-60s" interval="60s" name="monitor"/> -+ </operations> -+ </primitive> -+ </clone> -+ <master id="master-1"> -+ <meta_attributes id="master-1-meta"> -+ <nvpair id="master-1-master-node-max" name="master-node-max" value="1"/> -+ <nvpair id="master-1-clone-max" name="clone-max" value="3"/> -+ <nvpair id="master-1-master-max" name="master-max" value="1"/> -+ <nvpair id="master-1-clone-node-max" name="clone-node-max" value="1"/> -+ </meta_attributes> -+ <primitive id="stateful-1" class="ocf" type="Stateful" provider="pacemaker"> -+ <operations> -+ <op id="stateful-1-monitor-15s" interval="15s" name="monitor" timeout="60s"/> -+ <op id="stateful-1-monitor-16s" interval="16s" role="Master" name="monitor" timeout="60s"/> -+ </operations> -+ </primitive> -+ </master> -+ <group id="group-1"> -+ <primitive id="r192.168.122.87" class="ocf" type="IPaddr2" provider="heartbeat"> -+ <instance_attributes id="r192.168.122.87-params"> -+ <nvpair id="r192.168.122.87-ip" name="ip" value="192.168.122.87"/> -+ <nvpair id="r192.168.122.87-cidr_netmask" name="cidr_netmask" value="32"/> -+ </instance_attributes> -+ <operations> -+ <op id="r192.168.122.87-monitor-5s" interval="5s" name="monitor"/> -+ </operations> -+ </primitive> -+ <primitive id="r192.168.122.88" class="ocf" type="IPaddr2" provider="heartbeat"> -+ <instance_attributes id="r192.168.122.88-params"> -+ <nvpair id="r192.168.122.88-ip" name="ip" value="192.168.122.88"/> -+ <nvpair id="r192.168.122.88-cidr_netmask" name="cidr_netmask" value="32"/> -+ </instance_attributes> -+ <operations> -+ <op id="r192.168.122.88-monitor-5s" interval="5s" name="monitor"/> -+ </operations> -+ </primitive> -+ <primitive id="r192.168.122.89" class="ocf" type="IPaddr2" provider="heartbeat"> -+ <instance_attributes id="r192.168.122.89-params"> -+ <nvpair id="r192.168.122.89-ip" name="ip" value="192.168.122.89"/> -+ <nvpair id="r192.168.122.89-cidr_netmask" name="cidr_netmask" value="32"/> -+ </instance_attributes> -+ <operations> -+ <op id="r192.168.122.89-monitor-5s" interval="5s" name="monitor"/> -+ </operations> -+ </primitive> -+ </group> -+ <primitive id="lsb-dummy" class="lsb" type="/usr/share/pacemaker/tests/cts/LSBDummy"> -+ <operations> -+ <op id="lsb-dummy-monitor-5s" interval="5s" name="monitor"/> -+ </operations> -+ </primitive> -+ </resources> -+ <constraints> -+ <rsc_location id="prefer-18node1" rsc="rsc_18node1"> -+ <rule id="prefer-18node1-r" score="100" boolean-op="and"> -+ <expression id="prefer-18node1-e" attribute="#uname" operation="eq" value="18node1"/> -+ </rule> -+ </rsc_location> -+ <rsc_location id="prefer-18node2" rsc="rsc_18node2"> -+ <rule id="prefer-18node2-r" score="100" boolean-op="and"> -+ <expression id="prefer-18node2-e" attribute="#uname" operation="eq" value="18node2"/> -+ </rule> -+ </rsc_location> -+ <rsc_location id="prefer-18node3" rsc="rsc_18node3"> -+ <rule id="prefer-18node3-r" score="100" boolean-op="and"> -+ <expression id="prefer-18node3-e" attribute="#uname" operation="eq" value="18node3"/> -+ </rule> -+ </rsc_location> -+ <rsc_location id="prefer-connected" rsc="master-1"> -+ <rule id="connected" score="-INFINITY" boolean-op="or"> -+ <expression id="m1-connected-1" attribute="connected" operation="lt" value="1"/> -+ <expression id="m1-connected-2" attribute="connected" operation="not_defined"/> -+ </rule> -+ </rsc_location> -+ <rsc_order id="group-1-after-master-1" first="master-1" then="group-1" kind="Mandatory" first-action="promote" then-action="start"/> -+ <rsc_colocation id="group-1-with-master-1" rsc="group-1" with-rsc="master-1" score="INFINITY" with-rsc-role="Master"/> -+ <rsc_order id="lsb-dummy-after-group-1" first="group-1" then="lsb-dummy" kind="Mandatory" first-action="start" then-action="start"/> -+ <rsc_colocation id="lsb-dummy-with-group-1" rsc="lsb-dummy" with-rsc="group-1" score="INFINITY"/> -+ </constraints> -+ <fencing-topology> -+ <fencing-level id="cts-18node1.1" index="1" target="18node1" devices="FencingFail"/> -+ <fencing-level id="cts-18node1.2" index="2" target="18node1" devices="Fencing"/> -+ <fencing-level id="cts-18node2.1" index="1" target="18node2" devices="FencingPass,Fencing"/> -+ <fencing-level id="cts-18node3.1" index="1" target="18node3" devices="FencingFail"/> -+ <fencing-level id="cts-18node3.2" index="2" target="18node3" devices="Fencing"/> -+ </fencing-topology> -+ </configuration> -+ <status> -+ <node_state id="1" uname="18node1" in_ccm="true" crmd="online" crm-debug-origin="do_state_transition" join="member" expected="member"> -+ <transient_attributes id="1"> -+ <instance_attributes id="status-1"> -+ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> -+ <nvpair id="status-1-connected" name="connected" value="1"/> -+ <nvpair id="status-1-master-stateful-1" name="master-stateful-1" value="10"/> -+ </instance_attributes> -+ </transient_attributes> -+ <lrm id="1"> -+ <lrm_resources> -+ <lrm_resource id="lsb-dummy" type="/usr/share/pacemaker/tests/cts/LSBDummy" class="lsb"> -+ <lrm_rsc_op id="lsb-dummy_last_0" operation_key="lsb-dummy_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="68:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;68:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="120" rc-code="0" op-status="0" interval="0" last-run="1378510922" last-rc-change="1378510922" exec-time="31" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="lsb-dummy_monitor_5000" operation_key="lsb-dummy_monitor_5000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="69:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;69:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="123" rc-code="0" op-status="0" interval="5000" last-rc-change="1378510922" exec-time="23" queue-time="1" op-digest="8f6a313464b7f9e3a31cb448458b700e"/> -+ </lrm_resource> -+ <lrm_resource id="container2" type="VirtualDomain" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="container2_last_0" operation_key="container2_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="91:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;91:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="150" rc-code="0" op-status="0" interval="0" last-run="1378510939" last-rc-change="1378510939" exec-time="1085" queue-time="120" op-digest="40012ba04db4a64fb6e5f441c00bcd14"/> -+ </lrm_resource> -+ <lrm_resource id="FencingFail" type="fence_dummy" class="stonith"> -+ <lrm_rsc_op id="FencingFail_last_0" operation_key="FencingFail_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="6:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;6:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="13" rc-code="7" op-status="0" interval="0" last-run="1378510873" last-rc-change="1378510873" exec-time="0" queue-time="0" op-digest="5e62ce197b9fbd863ed25f7e27cb1c52"/> -+ </lrm_resource> -+ <lrm_resource id="FencingPass" type="fence_dummy" class="stonith"> -+ <lrm_rsc_op id="FencingPass_last_0" operation_key="FencingPass_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="5:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;5:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="9" rc-code="7" op-status="0" interval="0" last-run="1378510873" last-rc-change="1378510873" exec-time="0" queue-time="0" op-digest="d61011437d4d28d16fbcbaa519c4c826"/> -+ </lrm_resource> -+ <lrm_resource id="Fencing" type="fence_xvm" class="stonith"> -+ <lrm_rsc_op id="Fencing_last_0" operation_key="Fencing_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="37:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;37:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="144" rc-code="0" op-status="0" interval="0" last-run="1378510938" last-rc-change="1378510938" exec-time="1" queue-time="0" op-digest="5452662a298cbcea2ffe496142e0789d"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.87" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.87_last_0" operation_key="r192.168.122.87_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="56:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;56:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="102" rc-code="0" op-status="0" interval="0" last-run="1378510922" last-rc-change="1378510922" exec-time="92" queue-time="0" op-digest="1f9cf34fdfbf3f26a102a160cbc32cee"/> -+ <lrm_rsc_op id="r192.168.122.87_monitor_5000" operation_key="r192.168.122.87_monitor_5000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="59:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;59:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="106" rc-code="0" op-status="0" interval="5000" last-rc-change="1378510922" exec-time="95" queue-time="0" op-digest="6d2f4d76c27ffeff21fcdee7a268e130"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.88" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.88_last_0" operation_key="r192.168.122.88_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="60:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;60:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="108" rc-code="0" op-status="0" interval="0" last-run="1378510922" last-rc-change="1378510922" exec-time="144" queue-time="0" op-digest="0ad87a820b9cba1ae10ab7f9e9221f43"/> -+ <lrm_rsc_op id="r192.168.122.88_monitor_5000" operation_key="r192.168.122.88_monitor_5000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="61:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;61:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="112" rc-code="0" op-status="0" interval="5000" last-rc-change="1378510922" exec-time="167" queue-time="0" op-digest="1f4490da6297c7cc6470ce31eeb4957a"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.89" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.89_last_0" operation_key="r192.168.122.89_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="62:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;62:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="114" rc-code="0" op-status="0" interval="0" last-run="1378510922" last-rc-change="1378510922" exec-time="189" queue-time="0" op-digest="c944796c1b514fc9ff85720a2686ea5b"/> -+ <lrm_rsc_op id="r192.168.122.89_monitor_5000" operation_key="r192.168.122.89_monitor_5000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="63:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;63:4:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="118" rc-code="0" op-status="0" interval="5000" last-rc-change="1378510922" exec-time="86" queue-time="0" op-digest="909846037fdae734796dab3967f9be98"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node1" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node1_last_0" operation_key="rsc_18node1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="36:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;36:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="72" rc-code="0" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="140" queue-time="0" op-digest="bf35e29e5fd031da0437b6dbc9ebb74b"/> -+ <lrm_rsc_op id="rsc_18node1_monitor_5000" operation_key="rsc_18node1_monitor_5000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="37:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;37:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="85" rc-code="0" op-status="0" interval="5000" last-rc-change="1378510890" exec-time="122" queue-time="0" op-digest="d9bbed54d4fa7eb5d6857c5d3dece704"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node2" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node2_last_0" operation_key="rsc_18node2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="8:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;8:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="21" rc-code="7" op-status="0" interval="0" last-run="1378510874" last-rc-change="1378510874" exec-time="201" queue-time="0" op-digest="5ab425702de20e415276371af97f8566"/> -+ </lrm_resource> -+ <lrm_resource id="ping-1" type="ping" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="ping-1_last_0" operation_key="ping-1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="48:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;48:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="76" rc-code="0" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="2115" queue-time="0" op-digest="a53fc9fb0118a43d3be0fceaf2348d38"/> -+ <lrm_rsc_op id="ping-1_monitor_60000" operation_key="ping-1_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="49:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;49:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="91" rc-code="0" op-status="0" interval="60000" last-rc-change="1378510891" exec-time="2053" queue-time="0" op-digest="6b1eba5fe19d16fa21bf0501bbe5c0cd"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node3" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node3_last_0" operation_key="rsc_18node3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="9:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;9:0:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="25" rc-code="7" op-status="0" interval="0" last-run="1378510874" last-rc-change="1378510874" exec-time="203" queue-time="1" op-digest="19b33c0194f91788ea954e69150d9178"/> -+ </lrm_resource> -+ <lrm_resource id="stateful-1" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="stateful-1_last_0" operation_key="stateful-1_promote_0" operation="promote" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="40:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;40:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="97" rc-code="0" op-status="0" interval="0" last-run="1378510922" last-rc-change="1378510922" exec-time="73" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="stateful-1_monitor_16000" operation_key="stateful-1_monitor_16000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="41:3:8:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:8;41:3:8:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="100" rc-code="8" op-status="0" interval="16000" last-rc-change="1378510922" exec-time="38" queue-time="0" op-digest="873ed4f07792aa8ff18f3254244675ea"/> -+ </lrm_resource> -+ <lrm_resource id="lxc1" type="remote" class="ocf" provider="pacemaker" container="container1"> -+ <lrm_rsc_op id="lxc1_last_0" operation_key="lxc1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="104:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;104:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="3" rc-code="0" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="lxc1_monitor_30000" operation_key="lxc1_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="105:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;105:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="5" rc-code="0" op-status="0" interval="30000" op-digest="02a5bcf940fc8d3239701acb11438d6a"/> -+ </lrm_resource> -+ <lrm_resource id="lxc-ms" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="lxc-ms_last_0" operation_key="lxc-ms_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="22:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;22:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="138" rc-code="7" op-status="0" interval="0" last-run="1378510938" last-rc-change="1378510938" exec-time="83" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="migrator" type="Dummy" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="migrator_last_0" operation_key="migrator_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="42:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;42:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="74" rc-code="0" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="82" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state op_sleep " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="migrator_monitor_10000" operation_key="migrator_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="43:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;43:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="83" rc-code="0" op-status="0" interval="10000" last-rc-change="1378510890" exec-time="63" queue-time="0" op-digest="8f6a313464b7f9e3a31cb448458b700e"/> -+ </lrm_resource> -+ <lrm_resource id="lxc2" type="remote" class="ocf" provider="pacemaker" container="container2"> -+ <lrm_rsc_op id="lxc2_last_0" operation_key="lxc2_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="106:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;106:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="4" rc-code="0" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="lxc2_monitor_30000" operation_key="lxc2_monitor_30000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="107:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;107:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="6" rc-code="0" op-status="0" interval="30000" op-digest="02a5bcf940fc8d3239701acb11438d6a"/> -+ </lrm_resource> -+ <lrm_resource id="container1" type="VirtualDomain" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="container1_last_0" operation_key="container1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="90:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;90:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="148" rc-code="0" op-status="0" interval="0" last-run="1378510939" last-rc-change="1378510939" exec-time="1004" queue-time="177" op-digest="a8ebdb28c67063f730e5838b43aa28a4"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="2" uname="18node2" crmd="online" crm-debug-origin="do_state_transition" in_ccm="true" join="member" expected="member"> -+ <transient_attributes id="2"> -+ <instance_attributes id="status-2"> -+ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> -+ <nvpair id="status-2-connected" name="connected" value="1"/> -+ <nvpair id="status-2-master-stateful-1" name="master-stateful-1" value="5"/> -+ </instance_attributes> -+ </transient_attributes> -+ <lrm id="2"> -+ <lrm_resources> -+ <lrm_resource id="lsb-dummy" type="/usr/share/pacemaker/tests/cts/LSBDummy" class="lsb"> -+ <lrm_rsc_op id="lsb-dummy_last_0" operation_key="lsb-dummy_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="17:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;17:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="64" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="72" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="container2" type="VirtualDomain" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="container2_last_0" operation_key="container2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="27:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;27:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="97" rc-code="7" op-status="0" interval="0" last-run="1378510939" last-rc-change="1378510939" exec-time="555" queue-time="0" op-digest="40012ba04db4a64fb6e5f441c00bcd14"/> -+ </lrm_resource> -+ <lrm_resource id="FencingFail" type="fence_dummy" class="stonith"> -+ <lrm_rsc_op id="FencingFail_last_0" operation_key="FencingFail_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="7:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;7:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="15" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="0" queue-time="0" op-digest="5e62ce197b9fbd863ed25f7e27cb1c52"/> -+ </lrm_resource> -+ <lrm_resource id="FencingPass" type="fence_dummy" class="stonith"> -+ <lrm_rsc_op id="FencingPass_last_0" operation_key="FencingPass_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="40:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;40:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="107" rc-code="0" op-status="0" interval="0" last-run="1378510940" last-rc-change="1378510940" exec-time="2" queue-time="0" op-digest="d61011437d4d28d16fbcbaa519c4c826"/> -+ </lrm_resource> -+ <lrm_resource id="Fencing" type="fence_xvm" class="stonith"> -+ <lrm_rsc_op id="Fencing_last_0" operation_key="Fencing_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="38:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;38:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="110" rc-code="0" op-status="0" interval="0" last-run="1378510940" last-rc-change="1378510940" exec-time="44" queue-time="0" op-digest="5452662a298cbcea2ffe496142e0789d"/> -+ <lrm_rsc_op id="Fencing_monitor_120000" operation_key="Fencing_monitor_120000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="39:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;39:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="115" rc-code="0" op-status="0" interval="120000" last-rc-change="1378510941" exec-time="22" queue-time="0" op-digest="dafcde691dfb68f35200a465fa339ecc"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.87" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.87_last_0" operation_key="r192.168.122.87_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="14:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;14:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="52" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="124" queue-time="0" op-digest="1f9cf34fdfbf3f26a102a160cbc32cee"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.88" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.88_last_0" operation_key="r192.168.122.88_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="15:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;15:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="56" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="126" queue-time="0" op-digest="0ad87a820b9cba1ae10ab7f9e9221f43"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.89" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.89_last_0" operation_key="r192.168.122.89_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="16:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;16:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="60" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="136" queue-time="0" op-digest="c944796c1b514fc9ff85720a2686ea5b"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node1" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node1_last_0" operation_key="rsc_18node1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="8:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;8:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="19" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="328" queue-time="0" op-digest="bf35e29e5fd031da0437b6dbc9ebb74b"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node2" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node2_last_0" operation_key="rsc_18node2_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="38:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;38:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="72" rc-code="0" op-status="0" interval="0" last-run="1378510890" last-rc-change="1378510890" exec-time="149" queue-time="0" op-digest="5ab425702de20e415276371af97f8566"/> -+ <lrm_rsc_op id="rsc_18node2_monitor_5000" operation_key="rsc_18node2_monitor_5000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="39:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;39:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="77" rc-code="0" op-status="0" interval="5000" last-rc-change="1378510891" exec-time="114" queue-time="0" op-digest="3c1c6f0057a1eeea9c65740335f392e6"/> -+ </lrm_resource> -+ <lrm_resource id="ping-1" type="ping" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="ping-1_last_0" operation_key="ping-1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="44:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;44:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="74" rc-code="0" op-status="0" interval="0" last-run="1378510890" last-rc-change="1378510890" exec-time="2123" queue-time="0" op-digest="a53fc9fb0118a43d3be0fceaf2348d38"/> -+ <lrm_rsc_op id="ping-1_monitor_60000" operation_key="ping-1_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="45:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;45:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="81" rc-code="0" op-status="0" interval="60000" last-rc-change="1378510892" exec-time="2089" queue-time="0" op-digest="6b1eba5fe19d16fa21bf0501bbe5c0cd"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node3" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node3_last_0" operation_key="rsc_18node3_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="10:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;10:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="27" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="313" queue-time="1" op-digest="19b33c0194f91788ea954e69150d9178"/> -+ </lrm_resource> -+ <lrm_resource id="stateful-1" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="stateful-1_last_0" operation_key="stateful-1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="38:2:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;38:2:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="85" rc-code="0" op-status="0" interval="0" last-run="1378510923" last-rc-change="1378510923" exec-time="92" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="stateful-1_monitor_15000" operation_key="stateful-1_monitor_15000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="44:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;44:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="88" rc-code="0" op-status="0" interval="15000" last-rc-change="1378510923" exec-time="22" queue-time="0" op-digest="873ed4f07792aa8ff18f3254244675ea"/> -+ </lrm_resource> -+ <lrm_resource id="lxc1" type="remote" class="ocf" provider="pacemaker" container="container1"> -+ <lrm_rsc_op id="lxc1_last_0" operation_key="lxc1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="29:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;29:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="lxc-ms" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="lxc-ms_last_0" operation_key="lxc-ms_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="28:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;28:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1378510939" last-rc-change="1378510939" exec-time="90" queue-time="4" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="migrator" type="Dummy" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="migrator_last_0" operation_key="migrator_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="11:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;11:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="31" rc-code="7" op-status="0" interval="0" last-run="1378510888" last-rc-change="1378510888" exec-time="136" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state op_sleep " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="lxc2" type="remote" class="ocf" provider="pacemaker" container="container2"> -+ <lrm_rsc_op id="lxc2_last_0" operation_key="lxc2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="30:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;30:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="2" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="container1" type="VirtualDomain" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="container1_last_0" operation_key="container1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="26:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;26:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="93" rc-code="7" op-status="0" interval="0" last-run="1378510939" last-rc-change="1378510939" exec-time="578" queue-time="0" op-digest="a8ebdb28c67063f730e5838b43aa28a4"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="3" uname="18node3" crmd="online" crm-debug-origin="do_state_transition" in_ccm="true" join="member" expected="member"> -+ <transient_attributes id="3"> -+ <instance_attributes id="status-3"> -+ <nvpair id="status-3-probe_complete" name="probe_complete" value="true"/> -+ <nvpair id="status-3-connected" name="connected" value="1"/> -+ <nvpair id="status-3-master-stateful-1" name="master-stateful-1" value="5"/> -+ </instance_attributes> -+ </transient_attributes> -+ <lrm id="3"> -+ <lrm_resources> -+ <lrm_resource id="lsb-dummy" type="/usr/share/pacemaker/tests/cts/LSBDummy" class="lsb"> -+ <lrm_rsc_op id="lsb-dummy_last_0" operation_key="lsb-dummy_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="31:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;31:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="66" rc-code="7" op-status="0" interval="0" last-run="1378492887" last-rc-change="1378492887" exec-time="30" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="container2" type="VirtualDomain" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="container2_last_0" operation_key="container2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="33:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;33:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="97" rc-code="7" op-status="0" interval="0" last-run="1378492938" last-rc-change="1378492938" exec-time="647" queue-time="0" op-digest="40012ba04db4a64fb6e5f441c00bcd14"/> -+ </lrm_resource> -+ <lrm_resource id="FencingFail" type="fence_dummy" class="stonith"> -+ <lrm_rsc_op id="FencingFail_last_0" operation_key="FencingFail_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="35:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;35:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="70" rc-code="0" op-status="0" interval="0" last-run="1378492887" last-rc-change="1378492887" exec-time="33176" queue-time="0" op-digest="5e62ce197b9fbd863ed25f7e27cb1c52"/> -+ </lrm_resource> -+ <lrm_resource id="FencingPass" type="fence_dummy" class="stonith"> -+ <lrm_rsc_op id="FencingPass_last_0" operation_key="FencingPass_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="41:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;41:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="107" rc-code="0" op-status="0" interval="0" last-run="1378492938" last-rc-change="1378492938" exec-time="22340" queue-time="0" op-digest="d61011437d4d28d16fbcbaa519c4c826"/> -+ </lrm_resource> -+ <lrm_resource id="Fencing" type="fence_xvm" class="stonith"> -+ <lrm_rsc_op id="Fencing_last_0" operation_key="Fencing_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="19:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;19:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1378492885" last-rc-change="1378492885" exec-time="6" queue-time="0" op-digest="5452662a298cbcea2ffe496142e0789d"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.87" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.87_last_0" operation_key="r192.168.122.87_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="28:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;28:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="51" rc-code="7" op-status="0" interval="0" last-run="1378492887" last-rc-change="1378492887" exec-time="102" queue-time="0" op-digest="1f9cf34fdfbf3f26a102a160cbc32cee"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.88" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.88_last_0" operation_key="r192.168.122.88_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="29:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;29:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="56" rc-code="7" op-status="0" interval="0" last-run="1378492887" last-rc-change="1378492887" exec-time="99" queue-time="0" op-digest="0ad87a820b9cba1ae10ab7f9e9221f43"/> -+ </lrm_resource> -+ <lrm_resource id="r192.168.122.89" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="r192.168.122.89_last_0" operation_key="r192.168.122.89_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="30:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;30:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="60" rc-code="7" op-status="0" interval="0" last-run="1378492887" last-rc-change="1378492887" exec-time="110" queue-time="0" op-digest="c944796c1b514fc9ff85720a2686ea5b"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node1" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node1_last_0" operation_key="rsc_18node1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="22:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;22:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="17" rc-code="7" op-status="0" interval="0" last-run="1378492885" last-rc-change="1378492885" exec-time="71" queue-time="0" op-digest="bf35e29e5fd031da0437b6dbc9ebb74b"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node2" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node2_last_0" operation_key="rsc_18node2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="23:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;23:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="21" rc-code="7" op-status="0" interval="0" last-run="1378492885" last-rc-change="1378492885" exec-time="70" queue-time="0" op-digest="5ab425702de20e415276371af97f8566"/> -+ </lrm_resource> -+ <lrm_resource id="ping-1" type="ping" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="ping-1_last_0" operation_key="ping-1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="46:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;46:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="74" rc-code="0" op-status="0" interval="0" last-run="1378492888" last-rc-change="1378492888" exec-time="2182" queue-time="0" op-digest="a53fc9fb0118a43d3be0fceaf2348d38"/> -+ <lrm_rsc_op id="ping-1_monitor_60000" operation_key="ping-1_monitor_60000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="47:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;47:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="81" rc-code="0" op-status="0" interval="60000" last-rc-change="1378492891" exec-time="2076" queue-time="0" op-digest="6b1eba5fe19d16fa21bf0501bbe5c0cd"/> -+ </lrm_resource> -+ <lrm_resource id="rsc_18node3" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="rsc_18node3_last_0" operation_key="rsc_18node3_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="40:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;40:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="72" rc-code="0" op-status="0" interval="0" last-run="1378492888" last-rc-change="1378492888" exec-time="182" queue-time="1" op-digest="19b33c0194f91788ea954e69150d9178"/> -+ <lrm_rsc_op id="rsc_18node3_monitor_5000" operation_key="rsc_18node3_monitor_5000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="41:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;41:1:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="77" rc-code="0" op-status="0" interval="5000" last-rc-change="1378492890" exec-time="183" queue-time="0" op-digest="b893d13b762f3758920817a68b61eef4"/> -+ </lrm_resource> -+ <lrm_resource id="stateful-1" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="stateful-1_last_0" operation_key="stateful-1_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="40:2:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;40:2:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="85" rc-code="0" op-status="0" interval="0" last-run="1378492922" last-rc-change="1378492922" exec-time="93" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="stateful-1_monitor_15000" operation_key="stateful-1_monitor_15000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="47:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;47:3:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="88" rc-code="0" op-status="0" interval="15000" last-rc-change="1378492922" exec-time="20" queue-time="0" op-digest="873ed4f07792aa8ff18f3254244675ea"/> -+ </lrm_resource> -+ <lrm_resource id="lxc1" type="remote" class="ocf" provider="pacemaker" container="container1"> -+ <lrm_rsc_op id="lxc1_last_0" operation_key="lxc1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="35:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;35:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="lxc-ms" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="lxc-ms_last_0" operation_key="lxc-ms_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="34:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;34:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="102" rc-code="7" op-status="0" interval="0" last-run="1378492938" last-rc-change="1378492938" exec-time="85" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="migrator" type="Dummy" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="migrator_last_0" operation_key="migrator_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="25:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;25:1:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="34" rc-code="7" op-status="0" interval="0" last-run="1378492887" last-rc-change="1378492887" exec-time="64" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state op_sleep " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="lxc2" type="remote" class="ocf" provider="pacemaker" container="container2"> -+ <lrm_rsc_op id="lxc2_last_0" operation_key="lxc2_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="36:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;36:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="2" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="container1" type="VirtualDomain" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="container1_last_0" operation_key="container1_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="32:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:7;32:5:7:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="93" rc-code="7" op-status="0" interval="0" last-run="1378492938" last-rc-change="1378492938" exec-time="648" queue-time="0" op-digest="a8ebdb28c67063f730e5838b43aa28a4"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state remote_node="true" id="lxc1" uname="lxc1" crm-debug-origin="do_state_transition"> -+ <lrm id="lxc1"> -+ <lrm_resources> -+ <lrm_resource id="lxc-ms" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="lxc-ms_last_failure_0" operation_key="lxc-ms_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="92:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="2:1;92:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="6" rc-code="1" op-status="2" interval="0" last-run="1378510942" last-rc-change="1378510942" exec-time="90009" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="lxc-ms_last_0" operation_key="lxc-ms_promote_0" operation="promote" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="83:7:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;83:7:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="36" rc-code="0" op-status="0" interval="0" last-run="1378511034" last-rc-change="1378511034" exec-time="421" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ <transient_attributes id="lxc1"> -+ <instance_attributes id="status-lxc1"> -+ <nvpair id="status-lxc1-fail-count-lxc-ms" name="fail-count-lxc-ms" value="2"/> -+ <nvpair id="status-lxc1-last-failure-lxc-ms" name="last-failure-lxc-ms" value="1378511033"/> -+ <nvpair id="status-lxc1-master-lxc-ms" name="master-lxc-ms" value="10"/> -+ </instance_attributes> -+ </transient_attributes> -+ </node_state> -+ <node_state remote_node="true" id="lxc2" uname="lxc2" crm-debug-origin="do_state_transition"> -+ <lrm id="lxc2"> -+ <lrm_resources> -+ <lrm_resource id="lxc-ms" type="Stateful" class="ocf" provider="pacemaker"> -+ <lrm_rsc_op id="lxc-ms_last_0" operation_key="lxc-ms_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="94:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;94:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="6" rc-code="0" op-status="0" interval="0" last-run="1378510943" last-rc-change="1378510943" exec-time="294" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="lxc-ms_monitor_10000" operation_key="lxc-ms_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="95:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" transition-magic="0:0;95:5:0:51d73458-5462-43a1-85f4-32a4324f2e57" call-id="14" rc-code="0" op-status="0" interval="10000" last-rc-change="1378510943" exec-time="17" queue-time="1" op-digest="8f6a313464b7f9e3a31cb448458b700e"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ </status> -+</cib> -diff --git a/pengine/test10/whitebox-start.exp b/pengine/test10/whitebox-start.exp -index 4dcfdc4..19cae49 100644 ---- a/pengine/test10/whitebox-start.exp -+++ b/pengine/test10/whitebox-start.exp -@@ -67,7 +67,7 @@ - <action_set> - <rsc_op id="43" operation="monitor" operation_key="lxc1_monitor_30000" on_node="18node1" on_node_uuid="1"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -@@ -80,7 +80,7 @@ - <action_set> - <rsc_op id="42" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_name="start" CRM_meta_timeout="60000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> -diff --git a/pengine/test10/whitebox-stop.exp b/pengine/test10/whitebox-stop.exp -index 643c94c..7720235 100644 ---- a/pengine/test10/whitebox-stop.exp -+++ b/pengine/test10/whitebox-stop.exp -@@ -87,7 +87,7 @@ - <action_set> - <rsc_op id="44" operation="stop" operation_key="lxc1_stop_0" on_node="18node2" on_node_uuid="2"> - <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> -- <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ <attributes CRM_meta_container="container1" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </rsc_op> - </action_set> - <inputs> diff --git a/SOURCES/pacemaker-fix-setting-remote-node-attributes.patch b/SOURCES/pacemaker-fix-setting-remote-node-attributes.patch deleted file mode 100644 index f87e9d3..0000000 --- a/SOURCES/pacemaker-fix-setting-remote-node-attributes.patch +++ /dev/null @@ -1,446 +0,0 @@ -commit d9b95435059189843e1fb7b1f7530fc163fdfc13 -Author: David Vossel <dvossel@redhat.com> -Date: Wed Sep 25 17:02:50 2013 -0400 - - properly set remote node attributes - -diff --git a/crmd/lrm.c b/crmd/lrm.c -index 0254a9f..7157e24 100644 ---- a/crmd/lrm.c -+++ b/crmd/lrm.c -@@ -367,7 +367,7 @@ lrm_state_verify_stopped(lrm_state_t * lrm_state, enum crmd_fsa_state cur_state, - } - - if (counter > 0) { -- do_crm_log(log_level, "%d pending LRM operations at %s%s", counter, when); -+ do_crm_log(log_level, "%d pending LRM operations at %s", counter, when); - - if (cur_state == S_TERMINATE || !is_set(fsa_input_register, R_SENT_RSC_STOP)) { - g_hash_table_iter_init(&gIter, lrm_state->pending_ops); -diff --git a/crmd/membership.c b/crmd/membership.c -index 370d1a2..e2bcd45 100644 ---- a/crmd/membership.c -+++ b/crmd/membership.c -@@ -260,6 +260,13 @@ populate_cib_nodes(enum node_update_flags flags, const char *source) - do_update_node_cib(node, flags, node_list, source); - } - -+ if (crm_remote_peer_cache) { -+ g_hash_table_iter_init(&iter, crm_remote_peer_cache); -+ while (g_hash_table_iter_next(&iter, NULL, (gpointer *) &node)) { -+ do_update_node_cib(node, flags, node_list, source); -+ } -+ } -+ - fsa_cib_update(XML_CIB_TAG_STATUS, node_list, call_options, call_id, NULL); - fsa_register_cib_callback(call_id, FALSE, NULL, crmd_node_update_complete); - last_peer_update = call_id; -diff --git a/crmd/messages.c b/crmd/messages.c -index 9aa69cc..057383a 100644 ---- a/crmd/messages.c -+++ b/crmd/messages.c -@@ -930,7 +930,7 @@ send_msg_via_ipc(xmlNode * msg, const char *sys) - crmd_proxy_send(sys, msg); - - } else { -- crm_err("Unknown Sub-system (%s)... discarding message.", crm_str(sys)); -+ crm_debug("Unknown Sub-system (%s)... discarding message.", crm_str(sys)); - send_ok = FALSE; - } - -diff --git a/crmd/pengine.c b/crmd/pengine.c -index 5546d7e..2f3eba8 100644 ---- a/crmd/pengine.c -+++ b/crmd/pengine.c -@@ -271,6 +271,9 @@ do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void - - CRM_LOG_ASSERT(output != NULL); - -+ /* refresh our remote-node cache when the pengine is invoked */ -+ crm_remote_peer_cache_refresh(output); -+ - crm_xml_add(output, XML_ATTR_DC_UUID, fsa_our_uuid); - crm_xml_add_int(output, XML_ATTR_HAVE_QUORUM, fsa_has_quorum); - -diff --git a/crmd/remote_lrmd_ra.c b/crmd/remote_lrmd_ra.c -index d38d7f0..42ea043 100644 ---- a/crmd/remote_lrmd_ra.c -+++ b/crmd/remote_lrmd_ra.c -@@ -333,7 +333,10 @@ remote_lrm_op_callback(lrmd_event_data_t * op) - - } else { - /* make sure we have a clean status section to start with */ -+ lrm_state_reset_tables(lrm_state); - remote_init_cib_status(lrm_state); -+ erase_status_tag(lrm_state->node_name, XML_CIB_TAG_LRM, cib_scope_local); -+ erase_status_tag(lrm_state->node_name, XML_TAG_TRANSIENT_NODEATTRS, cib_scope_local); - - cmd->rc = PCMK_EXECRA_OK; - cmd->op_status = PCMK_LRM_OP_DONE; -@@ -430,15 +433,6 @@ handle_remote_ra_exec(gpointer user_data) - g_list_free_1(first); - - if (!strcmp(cmd->action, "start") || !strcmp(cmd->action, "migrate_from")) { -- xmlNode *status = create_xml_node(NULL, XML_CIB_TAG_STATE); -- -- /* clear node status in cib */ -- crm_xml_add(status, XML_ATTR_ID, lrm_state->node_name); -- lrm_state_reset_tables(lrm_state); -- fsa_cib_delete(XML_CIB_TAG_STATUS, status, cib_quorum_override, rc, NULL); -- crm_info("Forced a remote LRM refresh before connection start: call=%d", rc); -- crm_log_xml_trace(status, "CLEAR LRM"); -- free_xml(status); - - rc = handle_remote_ra_start(lrm_state, cmd, cmd->timeout); - if (rc == 0) { -diff --git a/crmd/te_utils.c b/crmd/te_utils.c -index 54fae04..239af63 100644 ---- a/crmd/te_utils.c -+++ b/crmd/te_utils.c -@@ -390,16 +390,7 @@ abort_transition_graph(int abort_priority, enum transition_action abort_action, - if (safe_str_eq(XML_CIB_TAG_STATE, kind) - || safe_str_eq(XML_CIB_TAG_NODE, kind)) { - -- if (crm_is_true(crm_element_value(search, XML_NODE_IS_REMOTE))) { -- /* Remote node uname and uuids are the same. -- * We also don't want them to be present in the -- * peer cache, so we shouldn't look them up with -- * crm_peer_uname() -- */ -- uname = ID(search); -- } else { -- uname = crm_peer_uname(ID(search)); -- } -+ uname = crm_peer_uname(ID(search)); - break; - } - search = search->parent; -diff --git a/include/crm/cluster.h b/include/crm/cluster.h -index 54b7f58..960c3d0 100644 ---- a/include/crm/cluster.h -+++ b/include/crm/cluster.h -@@ -32,6 +32,7 @@ - - extern gboolean crm_have_quorum; - extern GHashTable *crm_peer_cache; -+extern GHashTable *crm_remote_peer_cache; - extern unsigned long long crm_peer_seq; - - # ifndef CRM_SERVICE -@@ -55,12 +56,16 @@ enum crm_join_phase - }; - - /* *INDENT-ON* */ -+enum crm_node_flags -+{ -+ crm_remote_node = 0x0001, -+}; - - typedef struct crm_peer_node_s { - uint32_t id; /* Only used by corosync derivatives */ - uint64_t born; /* Only used by heartbeat and the legacy plugin */ - uint64_t last_seen; -- uint64_t flags; /* Unused, but might be a good place to specify 'remote' */ -+ uint64_t flags; /* Specified by crm_node_flags enum */ - - int32_t votes; /* Only used by the legacy plugin */ - uint32_t processes; -@@ -124,11 +129,25 @@ enum crm_ais_msg_types { - crm_msg_pe = 8, - crm_msg_stonith_ng = 9, - }; -+ -+/* used with crm_get_peer_full */ -+enum crm_get_peer_flags { -+ CRM_GET_PEER_CLUSTER = 0x0001, -+ CRM_GET_PEER_REMOTE = 0x0002, -+}; - /* *INDENT-ON* */ - - gboolean send_cluster_message(crm_node_t * node, enum crm_ais_msg_types service, - xmlNode * data, gboolean ordered); - -+ -+/* Initialize and refresh the remote peer cache from a cib config */ -+void crm_remote_peer_cache_refresh(xmlNode *cib); -+ -+/* allows filtering of remote and cluster nodes using crm_get_peer_flags */ -+crm_node_t *crm_get_peer_full(unsigned int id, const char *uname, int flags); -+ -+/* only searches cluster nodes */ - crm_node_t *crm_get_peer(unsigned int id, const char *uname); - - guint crm_active_peers(void); -diff --git a/lib/cib/cib_attrs.c b/lib/cib/cib_attrs.c -index 4af077c..d1e1b74 100644 ---- a/lib/cib/cib_attrs.c -+++ b/lib/cib/cib_attrs.c -@@ -430,6 +430,8 @@ get_remote_node_uuid(cib_t * the_cib, const char *uname, char **uuid) - cib_sync_call | cib_scope_local | cib_xpath, NULL); - free(xpath_string); - free(xml_search); -+ xml_search = NULL; -+ xpath_string = NULL; - - if (rc != pcmk_ok) { - len = strlen(REMOTE_NODE_XPATH2) + strlen(uname) + 1; -diff --git a/lib/cluster/cluster.c b/lib/cluster/cluster.c -index 5820c8d..5b743f9 100644 ---- a/lib/cluster/cluster.c -+++ b/lib/cluster/cluster.c -@@ -361,6 +361,11 @@ crm_peer_uname(const char *uuid) - - CRM_CHECK(uuid != NULL, return NULL); - -+ /* remote nodes have the same uname and uuid */ -+ if (g_hash_table_lookup(crm_remote_peer_cache, uuid)) { -+ return uuid; -+ } -+ - /* avoid blocking calls where possible */ - g_hash_table_iter_init(&iter, crm_peer_cache); - while (g_hash_table_iter_next(&iter, NULL, (gpointer *) &node)) { -diff --git a/lib/cluster/membership.c b/lib/cluster/membership.c -index bc1684e..e3082b4 100644 ---- a/lib/cluster/membership.c -+++ b/lib/cluster/membership.c -@@ -33,9 +33,56 @@ - #include <crm/stonith-ng.h> - - GHashTable *crm_peer_cache = NULL; -+GHashTable *crm_remote_peer_cache = NULL; - unsigned long long crm_peer_seq = 0; - gboolean crm_have_quorum = FALSE; - -+static void -+remote_cache_refresh_helper(xmlNode *cib, const char *xpath, const char *field, int flags) -+{ -+ const char *remote = NULL; -+ crm_node_t *node = NULL; -+ xmlXPathObjectPtr xpathObj = NULL; -+ int max = 0; -+ int lpc = 0; -+ -+ xpathObj = xpath_search(cib, xpath); -+ max = numXpathResults(xpathObj); -+ for (lpc = 0; lpc < max; lpc++) { -+ xmlNode *xml = getXpathResult(xpathObj, lpc); -+ -+ CRM_CHECK(xml != NULL, continue); -+ -+ remote = crm_element_value(xml, field); -+ if (remote) { -+ crm_trace("added %s to remote cache", remote); -+ node = calloc(1, sizeof(crm_node_t)); -+ node->flags = flags; -+ CRM_ASSERT(node); -+ node->uname = strdup(remote); -+ node->uuid = strdup(remote); -+ node->state = strdup(CRM_NODE_MEMBER); -+ g_hash_table_replace(crm_remote_peer_cache, node->uname, node); -+ } -+ } -+ freeXpathObject(xpathObj); -+} -+ -+void crm_remote_peer_cache_refresh(xmlNode *cib) -+{ -+ const char *xpath = NULL; -+ -+ g_hash_table_remove_all(crm_remote_peer_cache); -+ -+ /* remote nodes associated with a cluster resource */ -+ xpath = "//" XML_TAG_CIB "//" XML_CIB_TAG_CONFIGURATION "//" XML_CIB_TAG_RESOURCE "//" XML_TAG_META_SETS "//" XML_CIB_TAG_NVPAIR "[@name='remote-node']"; -+ remote_cache_refresh_helper(cib, xpath, "value", crm_remote_node); -+ -+ /* remote nodes seen in the status section */ -+ xpath = "//" XML_TAG_CIB "//" XML_CIB_TAG_STATUS "//" XML_CIB_TAG_STATE "[@remote_node='true']"; -+ remote_cache_refresh_helper(cib, xpath, "id", crm_remote_node); -+} -+ - gboolean - crm_is_peer_active(const crm_node_t * node) - { -@@ -146,6 +193,10 @@ crm_peer_init(void) - if (crm_peer_cache == NULL) { - crm_peer_cache = g_hash_table_new_full(crm_str_hash, g_str_equal, free, destroy_crm_node); - } -+ -+ if (crm_remote_peer_cache == NULL) { -+ crm_remote_peer_cache = g_hash_table_new_full(crm_str_hash, g_str_equal, NULL, destroy_crm_node); -+ } - } - - void -@@ -156,6 +207,12 @@ crm_peer_destroy(void) - g_hash_table_destroy(crm_peer_cache); - crm_peer_cache = NULL; - } -+ -+ if (crm_remote_peer_cache != NULL) { -+ crm_trace("Destroying remote peer cache with %d members", g_hash_table_size(crm_remote_peer_cache)); -+ g_hash_table_destroy(crm_remote_peer_cache); -+ crm_remote_peer_cache = NULL; -+ } - } - - void (*crm_status_callback) (enum crm_status_type, crm_node_t *, const void *) = NULL; -@@ -186,6 +243,25 @@ static gboolean crm_hash_find_by_data(gpointer key, gpointer value, gpointer use - return FALSE; - } - -+crm_node_t * -+crm_get_peer_full(unsigned int id, const char *uname, int flags) -+{ -+ crm_node_t *node = NULL; -+ -+ CRM_ASSERT(id > 0 || uname != NULL); -+ -+ crm_peer_init(); -+ -+ if (flags & CRM_GET_PEER_REMOTE) { -+ node = g_hash_table_lookup(crm_remote_peer_cache, uname); -+ } -+ -+ if (node == NULL && (flags & CRM_GET_PEER_CLUSTER)) { -+ node = crm_get_peer(id, uname); -+ } -+ return node; -+} -+ - /* coverity[-alloc] Memory is referenced in one or both hashtables */ - crm_node_t * - crm_get_peer(unsigned int id, const char *uname) -diff --git a/lib/lrmd/lrmd_client.c b/lib/lrmd/lrmd_client.c -index bdaf18c..e577293 100644 ---- a/lib/lrmd/lrmd_client.c -+++ b/lib/lrmd/lrmd_client.c -@@ -89,6 +89,11 @@ typedef struct lrmd_private_s { - gnutls_psk_client_credentials_t psk_cred_c; - - int sock; -+ /* since tls requires a round trip across the network for a -+ * request/reply, there are times where we just want to be able -+ * to send a request from the client and not wait around (or even care -+ * about) what the reply is. */ -+ int expected_late_replies; - GList *pending_notify; - crm_trigger_t *process_notify; - #endif -@@ -241,9 +246,7 @@ lrmd_dispatch_internal(lrmd_t * lrmd, xmlNode * msg) - /* this is proxy business */ - lrmd_internal_proxy_dispatch(lrmd, msg); - return 1; -- } -- -- if (!native->callback) { -+ } else if (!native->callback) { - /* no callback set */ - crm_trace("notify event received but client has not set callback"); - return 1; -@@ -371,7 +374,19 @@ lrmd_tls_dispatch(gpointer userdata) - xml = crm_remote_parse_buffer(native->remote); - } - while (xml) { -- lrmd_dispatch_internal(lrmd, xml); -+ const char *msg_type = crm_element_value(xml, F_LRMD_REMOTE_MSG_TYPE); -+ if (safe_str_eq(msg_type, "notify")) { -+ lrmd_dispatch_internal(lrmd, xml); -+ } else if (safe_str_eq(msg_type, "reply")) { -+ if (native->expected_late_replies > 0) { -+ native->expected_late_replies--; -+ } else { -+ int reply_id = 0; -+ crm_element_value_int(xml, F_LRMD_CALLID, &reply_id); -+ /* if this happens, we want to know about it */ -+ crm_err("Got outdated reply %d", reply_id); -+ } -+ } - free_xml(xml); - xml = crm_remote_parse_buffer(native->remote); - } -@@ -617,7 +632,11 @@ lrmd_tls_recv_reply(lrmd_t * lrmd, int total_timeout, int expected_reply_id, int - free_xml(xml); - xml = NULL; - } else if (reply_id != expected_reply_id) { -- crm_err("Got outdated reply, expected id %d got id %d", expected_reply_id, reply_id); -+ if (native->expected_late_replies > 0) { -+ native->expected_late_replies--; -+ } else { -+ crm_err("Got outdated reply, expected id %d got id %d", expected_reply_id, reply_id); -+ } - free_xml(xml); - xml = NULL; - } -@@ -724,6 +743,12 @@ lrmd_send_xml_no_reply(lrmd_t * lrmd, xmlNode * msg) - #ifdef HAVE_GNUTLS_GNUTLS_H - case CRM_CLIENT_TLS: - rc = lrmd_tls_send(lrmd, msg); -+ if (rc == pcmk_ok) { -+ /* we don't want to wait around for the reply, but -+ * since the request/reply protocol needs to behave the same -+ * as libqb, a reply will eventually come later anyway. */ -+ native->expected_late_replies++; -+ } - break; - #endif - default: -diff --git a/lrmd/ipc_proxy.c b/lrmd/ipc_proxy.c -index bbf9b24..3a51a5b 100644 ---- a/lrmd/ipc_proxy.c -+++ b/lrmd/ipc_proxy.c -@@ -313,6 +313,8 @@ ipc_proxy_remove_provider(crm_client_t *ipc_proxy) - GHashTableIter iter; - crm_client_t *ipc_client = NULL; - char *key = NULL; -+ GList *remove_these = NULL; -+ GListPtr gIter = NULL; - - if (ipc_providers == NULL) { - return; -@@ -326,9 +328,19 @@ ipc_proxy_remove_provider(crm_client_t *ipc_proxy) - if (safe_str_eq(proxy_id, ipc_proxy->id)) { - crm_info("ipc proxy connection for client %s pid %d destroyed because cluster node disconnected.", - ipc_client->id, ipc_client->pid); -- qb_ipcs_disconnect(ipc_client->ipcs); -+ /* we can't remove during the iteration, so copy items -+ * to a list we can destroy later */ -+ remove_these = g_list_append(remove_these, ipc_client); - } - } -+ -+ for (gIter = remove_these; gIter != NULL; gIter = gIter->next) { -+ ipc_client = gIter->data; -+ qb_ipcs_disconnect(ipc_client->ipcs); -+ } -+ -+ /* just frees the list, not the elements in the list */ -+ g_list_free(remove_these); - } - - void -diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c -index a4747cb..b5bbea0 100644 ---- a/lrmd/lrmd.c -+++ b/lrmd/lrmd.c -@@ -1297,6 +1297,7 @@ process_lrmd_message(crm_client_t * client, uint32_t id, xmlNode * request) - do_reply = 1; - } else if (crm_str_eq(op, LRMD_OP_POKE, TRUE)) { - do_notify = 1; -+ do_reply = 1; - } else { - rc = -EOPNOTSUPP; - do_reply = 1; -diff --git a/pengine/allocate.c b/pengine/allocate.c -index cf8f4d4..bfa8e7b 100644 ---- a/pengine/allocate.c -+++ b/pengine/allocate.c -@@ -1578,6 +1578,8 @@ apply_remote_node_ordering(pe_working_set_t *data_set) - container = remote_rsc->container; - if (safe_str_eq(action->task, "monitor") || - safe_str_eq(action->task, "start") || -+ safe_str_eq(action->task, "promote") || -+ safe_str_eq(action->task, "demote") || - safe_str_eq(action->task, CRM_OP_LRM_REFRESH) || - safe_str_eq(action->task, CRM_OP_CLEAR_FAILCOUNT) || - safe_str_eq(action->task, "delete")) { diff --git a/SOURCES/pacemaker-fix_cib_correctly_log_short-form_xml_diffs.patch b/SOURCES/pacemaker-fix_cib_correctly_log_short-form_xml_diffs.patch deleted file mode 100644 index 92edab1..0000000 --- a/SOURCES/pacemaker-fix_cib_correctly_log_short-form_xml_diffs.patch +++ /dev/null @@ -1,41 +0,0 @@ -commit 5c055e09858a257d50f2669016da01b808557b08 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 13:32:18 2013 +1000 - - Fix: cib: Correctly log short-form xml diffs - -diff --git a/lib/common/xml.c b/lib/common/xml.c -index d467ce4..25096a6 100644 ---- a/lib/common/xml.c -+++ b/lib/common/xml.c -@@ -1063,14 +1063,6 @@ log_data_element(int log_level, const char *file, const char *function, int line - do_crm_log_alias(log_level, file, function, line, "%s: %s", prefix, - "No data to dump as XML"); - return; -- -- } else if (is_set(options, xml_log_option_diff_short) -- && is_not_set(options, xml_log_option_diff_all)) { -- /* Still searching for the actual change */ -- for (a_child = __xml_first_child(data); a_child != NULL; a_child = __xml_next(a_child)) { -- log_data_element(log_level, file, function, line, prefix, a_child, depth + 1, options); -- } -- return; - } - - name = crm_element_name(data); -@@ -1092,6 +1084,15 @@ log_data_element(int log_level, const char *file, const char *function, int line - } - } - -+ if (is_set(options, xml_log_option_diff_short) -+ && is_not_set(options, xml_log_option_diff_all)) { -+ /* Still searching for the actual change */ -+ for (a_child = __xml_first_child(data); a_child != NULL; a_child = __xml_next(a_child)) { -+ log_data_element(log_level, file, function, line, prefix, a_child, depth + 1, options); -+ } -+ return; -+ } -+ - insert_prefix(options, &buffer, &offset, &max, depth); - if(data->type == XML_COMMENT_NODE) { - buffer_print(buffer, max, offset, "<!--"); diff --git a/SOURCES/pacemaker-fix_crmd_correcty_update_the_history_cache_when_recurring_ops_change_their_return_code.patch b/SOURCES/pacemaker-fix_crmd_correcty_update_the_history_cache_when_recurring_ops_change_their_return_code.patch deleted file mode 100644 index 08b792f..0000000 --- a/SOURCES/pacemaker-fix_crmd_correcty_update_the_history_cache_when_recurring_ops_change_their_return_code.patch +++ /dev/null @@ -1,30 +0,0 @@ -commit 7a0a6f877a30397377cf3304519e0a9ae51980b7 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 13:50:52 2013 +1000 - - Fix: crmd: Correcty update the history cache when recurring ops change their return code - -diff --git a/crmd/lrm.c b/crmd/lrm.c -index d158973..2e17488 100644 ---- a/crmd/lrm.c -+++ b/crmd/lrm.c -@@ -200,6 +200,19 @@ update_history_cache(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, lrmd_event_ - } - - if (op->interval > 0) { -+ GListPtr iter = NULL; -+ -+ for(iter = entry->recurring_op_list; iter; iter = iter->next) { -+ lrmd_event_data_t *o = iter->data; -+ -+ /* op->rsc_id is implied */ -+ if(op->interval == o->interval && strcmp(op->op_type, o->op_type) == 0) { -+ crm_trace("Removing existing recurring op entry: %s_%s_%d", op->rsc_id, op->op_type, op->interval); -+ entry->recurring_op_list = g_list_remove(entry->recurring_op_list, o); -+ break; -+ } -+ } -+ - crm_trace("Adding recurring op: %s_%s_%d", op->rsc_id, op->op_type, op->interval); - entry->recurring_op_list = g_list_prepend(entry->recurring_op_list, lrmd_copy_event(op)); - diff --git a/SOURCES/pacemaker-fix_crmd_prevent_crash_by_passing_log_arguments_in_the_correct_order.patch b/SOURCES/pacemaker-fix_crmd_prevent_crash_by_passing_log_arguments_in_the_correct_order.patch deleted file mode 100644 index 42fd41c..0000000 --- a/SOURCES/pacemaker-fix_crmd_prevent_crash_by_passing_log_arguments_in_the_correct_order.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 84ca685d4d9cab5c9606a29b187082d31ec8488b -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Aug 1 20:20:46 2013 +1000 - - Fix: crmd: Prevent crash by passing log arguments in the correct order - -diff --git a/crmd/lrm.c b/crmd/lrm.c -index 4bce39a..d158973 100644 ---- a/crmd/lrm.c -+++ b/crmd/lrm.c -@@ -340,7 +340,7 @@ lrm_state_verify_stopped(lrm_state_t * lrm_state, enum crmd_fsa_state cur_state, - lrm_state->pending_ops, stop_recurring_actions, lrm_state); - - crm_notice("Stopped %u recurring operations at %s (%u ops remaining)", -- g_hash_table_size(lrm_state->pending_ops), removed, when); -+ g_hash_table_size(lrm_state->pending_ops), when, removed); - } - - if (lrm_state->pending_ops) { diff --git a/SOURCES/pacemaker-fix_crmd_prevent_recurring_monitors_being_cancelled_due_to_notify_operations.patch b/SOURCES/pacemaker-fix_crmd_prevent_recurring_monitors_being_cancelled_due_to_notify_operations.patch deleted file mode 100644 index 3c2d0d3..0000000 --- a/SOURCES/pacemaker-fix_crmd_prevent_recurring_monitors_being_cancelled_due_to_notify_operations.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 589623389c1df5301d18f13b0aa06adbc88fcae2 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Aug 1 15:42:00 2013 +1000 - - Fix: crmd: Prevent recurring monitors being cancelled due to notify operations - -diff --git a/crmd/lrm.c b/crmd/lrm.c -index d6b0dd0..4bce39a 100644 ---- a/crmd/lrm.c -+++ b/crmd/lrm.c -@@ -1744,7 +1744,9 @@ do_lrm_rsc_op(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *operat - CRM_CHECK(op != NULL, return); - - /* stop any previous monitor operations before changing the resource state */ -- if (op->interval == 0 && strcmp(operation, CRMD_ACTION_STATUS) != 0) { -+ if (op->interval == 0 -+ && strcmp(operation, CRMD_ACTION_STATUS) != 0 -+ && strcmp(operation, CRMD_ACTION_NOTIFY) != 0) { - guint removed = 0; - struct stop_recurring_action_s data; - diff --git a/SOURCES/pacemaker-fix_logging_glib_crit_messages_should_not_produce_core_files_by_default.patch b/SOURCES/pacemaker-fix_logging_glib_crit_messages_should_not_produce_core_files_by_default.patch deleted file mode 100644 index c877668..0000000 --- a/SOURCES/pacemaker-fix_logging_glib_crit_messages_should_not_produce_core_files_by_default.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 2fc7c2091ffd82a585352e34964af77ef67aa51a -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Aug 6 13:16:07 2013 +1000 - - Fix: logging: glib CRIT messages should not produce core files by default - -diff --git a/lib/common/logging.c b/lib/common/logging.c -index b4ca277..2b74d3f 100644 ---- a/lib/common/logging.c -+++ b/lib/common/logging.c -@@ -56,12 +56,21 @@ crm_glib_handler(const gchar * log_domain, GLogLevelFlags flags, const gchar * m - { - int log_level = LOG_WARNING; - GLogLevelFlags msg_level = (flags & G_LOG_LEVEL_MASK); -+ static struct qb_log_callsite *glib_cs = NULL; -+ -+ if (glib_cs == NULL) { -+ glib_cs = qb_log_callsite_get(__PRETTY_FUNCTION__, __FILE__, "glib-handler", LOG_DEBUG, __LINE__, crm_trace_nonlog); -+ } -+ - - switch (msg_level) { - case G_LOG_LEVEL_CRITICAL: -- /* log and record how we got here */ -- crm_abort(__FILE__, __PRETTY_FUNCTION__, __LINE__, message, TRUE, TRUE); -- return; -+ log_level = LOG_CRIT; -+ -+ if (crm_is_callsite_active(glib_cs, LOG_DEBUG, 0) == FALSE) { -+ /* log and record how we got here */ -+ crm_abort(__FILE__, __PRETTY_FUNCTION__, __LINE__, message, TRUE, TRUE); -+ } - - case G_LOG_LEVEL_ERROR: - log_level = LOG_ERR; diff --git a/SOURCES/pacemaker-fix_pe_correctly_account_for_the_location_preferences_of_things_colocated_with_a_group.patch b/SOURCES/pacemaker-fix_pe_correctly_account_for_the_location_preferences_of_things_colocated_with_a_group.patch deleted file mode 100644 index c4ee54e..0000000 --- a/SOURCES/pacemaker-fix_pe_correctly_account_for_the_location_preferences_of_things_colocated_with_a_group.patch +++ /dev/null @@ -1,77 +0,0 @@ -commit fab09782a337c492c62028a519df25ee316abee2 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 10:33:04 2013 +1000 - - Fix: PE: Correctly account for the location preferences of things colocated with a group - -diff --git a/pengine/group.c b/pengine/group.c -index 823ea08..7e8e026 100644 ---- a/pengine/group.c -+++ b/pengine/group.c -@@ -59,8 +59,8 @@ group_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) - g_list_concat(group_data->first_child->rsc_cons, rsc->rsc_cons); - rsc->rsc_cons = NULL; - -- group_data->first_child->rsc_cons_lhs = -- g_list_concat(group_data->first_child->rsc_cons_lhs, rsc->rsc_cons_lhs); -+ group_data->last_child->rsc_cons_lhs = -+ g_list_concat(group_data->last_child->rsc_cons_lhs, rsc->rsc_cons_lhs); - rsc->rsc_cons_lhs = NULL; - - dump_node_scores(show_scores ? 0 : scores_log_level, rsc, __PRETTY_FUNCTION__, -diff --git a/pengine/native.c b/pengine/native.c -index ef8ae0f..37f5211 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -364,6 +364,15 @@ rsc_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const c - } - clear_bit(flags, pe_weights_init); - -+ } else if (rsc->variant == pe_group && rsc->children) { -+ GListPtr iter = rsc->children; -+ -+ pe_rsc_trace(rsc, "%s: Combining scores from %d children of %s", rhs, g_list_length(iter), rsc->id); -+ work = node_hash_dup(nodes); -+ for(iter = rsc->children; iter->next != NULL; iter = iter->next) { -+ work = rsc_merge_weights(iter->data, rhs, work, attr, factor, flags); -+ } -+ - } else { - pe_rsc_trace(rsc, "%s: Combining scores from %s", rhs, rsc->id); - work = node_hash_dup(nodes); -@@ -383,8 +392,22 @@ rsc_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const c - - if (is_set(flags, pe_weights_forward)) { - gIter = rsc->rsc_cons; -+ crm_trace("Checking %d additional colocation constraints", g_list_length(gIter)); -+ -+ } else if(rsc->variant == pe_group && rsc->children) { -+ GListPtr last = rsc->children; -+ -+ while (last->next != NULL) { -+ last = last->next; -+ } -+ -+ gIter = ((resource_t*)last->data)->rsc_cons_lhs; -+ crm_trace("Checking %d additional optional group colocation constraints from %s", -+ g_list_length(gIter), ((resource_t*)last->data)->id); -+ - } else { - gIter = rsc->rsc_cons_lhs; -+ crm_trace("Checking %d additional optional colocation constraints %s", g_list_length(gIter), rsc->id); - } - - for (; gIter != NULL; gIter = gIter->next) { -diff --git a/pengine/test10/clone-anon-failcount.scores b/pengine/test10/clone-anon-failcount.scores -index fb98a30..012bfe9 100644 ---- a/pengine/test10/clone-anon-failcount.scores -+++ b/pengine/test10/clone-anon-failcount.scores -@@ -298,7 +298,7 @@ native_color: clnUMdummy01:1 allocation score on srv04: -INFINITY - native_color: clnUMdummy02:0 allocation score on srv01: -INFINITY - native_color: clnUMdummy02:0 allocation score on srv02: -INFINITY - native_color: clnUMdummy02:0 allocation score on srv03: -INFINITY --native_color: clnUMdummy02:0 allocation score on srv04: 100 -+native_color: clnUMdummy02:0 allocation score on srv04: 104 - native_color: clnUMdummy02:1 allocation score on srv01: -INFINITY - native_color: clnUMdummy02:1 allocation score on srv02: -INFINITY - native_color: clnUMdummy02:1 allocation score on srv03: -INFINITY diff --git a/SOURCES/pacemaker-fix_pe_do_not_allow_colocation_with_blocked_clone_instances.patch b/SOURCES/pacemaker-fix_pe_do_not_allow_colocation_with_blocked_clone_instances.patch deleted file mode 100644 index c638af1..0000000 --- a/SOURCES/pacemaker-fix_pe_do_not_allow_colocation_with_blocked_clone_instances.patch +++ /dev/null @@ -1,56 +0,0 @@ -commit 66a3ea6bf9024960736455022c8827a2fbb03bc6 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Aug 2 13:10:58 2013 +1000 - - Fix: PE: Do not allow colocation with blocked clone instances - -diff --git a/include/crm/pengine/internal.h b/include/crm/pengine/internal.h -index 20bb687..a6b9369 100644 ---- a/include/crm/pengine/internal.h -+++ b/include/crm/pengine/internal.h -@@ -234,6 +234,7 @@ char *clone_strip(const char *last_rsc_id); - char *clone_zero(const char *last_rsc_id); - - gint sort_node_uname(gconstpointer a, gconstpointer b); -+bool is_set_recursive(resource_t * rsc, long long flag, bool any); - - enum rsc_digest_cmp_val { - /*! Digests are the same */ -diff --git a/lib/pengine/clone.c b/lib/pengine/clone.c -index 7bccd65..c6c69e6 100644 ---- a/lib/pengine/clone.c -+++ b/lib/pengine/clone.c -@@ -349,7 +349,7 @@ clone_print_xml(resource_t * rsc, const char *pre_text, long options, void *prin - free(child_text); - } - --static bool is_set_recursive(resource_t * rsc, long long flag, bool any) -+bool is_set_recursive(resource_t * rsc, long long flag, bool any) - { - GListPtr gIter; - bool all = !any; -diff --git a/pengine/clone.c b/pengine/clone.c -index 8f340f4..b15f76f 100644 ---- a/pengine/clone.c -+++ b/pengine/clone.c -@@ -925,7 +925,10 @@ find_compatible_child_by_node(resource_t * local_child, node_t * local_node, res - resource_t *child_rsc = (resource_t *) gIter->data; - enum rsc_role_e next_role = child_rsc->fns->state(child_rsc, current); - -- node = child_rsc->fns->location(child_rsc, NULL, current); -+ if (is_set_recursive(child_rsc, pe_rsc_block, TRUE) == FALSE) { -+ /* We only want instances that haven't failed */ -+ node = child_rsc->fns->location(child_rsc, NULL, current); -+ } - - if (filter != RSC_ROLE_UNKNOWN && next_role != filter) { - crm_trace("Filtered %s", child_rsc->id); -@@ -1069,7 +1072,7 @@ clone_rsc_colocation_rh(resource_t * rsc_lh, resource_t * rsc_rh, rsc_colocation - resource_t *child_rsc = (resource_t *) gIter->data; - node_t *chosen = child_rsc->fns->location(child_rsc, NULL, FALSE); - -- if (chosen != NULL) { -+ if (chosen != NULL && is_set_recursive(child_rsc, pe_rsc_block, TRUE) == FALSE) { - rhs = g_list_prepend(rhs, chosen); - } - } diff --git a/SOURCES/pacemaker-fix_pe_do_not_re-allocate_clone_instances_that_are_blocked_in_the_stopped_state.patch b/SOURCES/pacemaker-fix_pe_do_not_re-allocate_clone_instances_that_are_blocked_in_the_stopped_state.patch deleted file mode 100644 index a240e06..0000000 --- a/SOURCES/pacemaker-fix_pe_do_not_re-allocate_clone_instances_that_are_blocked_in_the_stopped_state.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit b2c105b91ac6efe516e99f7b6b7e13d6443e6c93 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Aug 2 12:51:56 2013 +1000 - - Fix: PE: Do not re-allocate clone instances that are blocked in the Stopped state - -diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c -index c2e0ae9..b4986dd 100644 ---- a/lib/pengine/unpack.c -+++ b/lib/pengine/unpack.c -@@ -1461,6 +1461,11 @@ find_anonymous_clone(pe_working_set_t * data_set, node_t * node, resource_t * pa - GListPtr locations = NULL; - resource_t *child = rIter->data; - -+ if (is_set(child->flags, pe_rsc_block)) { -+ pe_rsc_trace(child, "Skip: blocked in stopped state"); -+ continue; -+ } -+ - child->fns->location(child, &locations, TRUE); - if (locations == NULL) { - /* ->find_rsc() because we might be a cloned group */ diff --git a/SOURCES/pacemaker-fix_pe_do_not_restart_resources_that_depend_on_unmanaged_resources.patch b/SOURCES/pacemaker-fix_pe_do_not_restart_resources_that_depend_on_unmanaged_resources.patch deleted file mode 100644 index edac887..0000000 --- a/SOURCES/pacemaker-fix_pe_do_not_restart_resources_that_depend_on_unmanaged_resources.patch +++ /dev/null @@ -1,21 +0,0 @@ -commit 0c996a1df48fc0067796c3c436117623963a5d7e -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Aug 1 16:25:36 2013 +1000 - - Fix: PE: Do not restart resources that depend on unmanaged resources - -diff --git a/pengine/native.c b/pengine/native.c -index 9d85a3e..ef8ae0f 100644 ---- a/pengine/native.c -+++ b/pengine/native.c -@@ -1715,7 +1715,9 @@ native_update_actions(action_t * first, action_t * then, node_t * node, enum pe_ - CRM_ASSERT(first->rsc && first->rsc->variant == pe_native); - CRM_ASSERT(then->rsc && then->rsc->variant == pe_native); - -- if ((filter & pe_action_runnable) && (then->flags & pe_action_runnable) == 0) { -+ if ((filter & pe_action_runnable) -+ && (then->flags & pe_action_runnable) == 0 -+ && (then->rsc->flags & pe_rsc_managed)) { - reason = "shutdown"; - } - diff --git a/SOURCES/pacemaker-fix_services_prevent_use-of-null_in_g_error_free.patch b/SOURCES/pacemaker-fix_services_prevent_use-of-null_in_g_error_free.patch deleted file mode 100644 index 29dbca9..0000000 --- a/SOURCES/pacemaker-fix_services_prevent_use-of-null_in_g_error_free.patch +++ /dev/null @@ -1,80 +0,0 @@ -commit 52146c384a606efb913ef932b23a34ca3105f878 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Thu Aug 8 12:50:29 2013 +1000 - - Fix: services: Prevent use-of-NULL in g_error_free - -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index b18f86f..74cf53e 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -264,7 +264,9 @@ systemd_unit_listall(void) - - if (error || _ret == NULL) { - crm_info("Call to ListUnits failed: %s", error ? error->message : "unknown"); -- g_error_free(error); -+ if(error) { -+ g_error_free(error); -+ } - return NULL; - } - -@@ -308,9 +310,11 @@ systemd_unit_exists(const char *name) - pass = systemd_unit_by_name(systemd_proxy, name, &path, NULL, &error); - - if (error || pass == FALSE) { -- crm_err("Call to ListUnits failed: %s", error ? error->message : "unknown"); -- g_error_free(error); - pass = FALSE; -+ crm_err("Call to ListUnits failed: %s", error ? error->message : "unknown"); -+ if(error) { -+ g_error_free(error); -+ } - - } else { - crm_trace("Got %s", path); -@@ -438,7 +442,9 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - if (error && strstr(error->message, "systemd1.NoSuchUnit")) { - op->rc = PCMK_EXECRA_NOT_INSTALLED; - } -- g_error_free(error); -+ if(error) { -+ g_error_free(error); -+ } - goto cleanup; - } - -@@ -480,7 +486,6 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - systemd_daemon_reload(systemd_proxy, &error); - if(error) { - g_error_free(error); -- error = NULL; - } - free(override_file); - free(override_dir); -@@ -492,7 +497,9 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - unlink(override_file); - free(override_file); - systemd_daemon_reload(systemd_proxy, &error); -- g_error_free(error); error = NULL; -+ if(error) { -+ g_error_free(error); -+ } - - } else if (g_strcmp0(action, "restart") == 0) { - action = "RestartUnit"; -diff --git a/lib/services/upstart.c b/lib/services/upstart.c -index 357152b..f5fa189 100644 ---- a/lib/services/upstart.c -+++ b/lib/services/upstart.c -@@ -317,7 +317,9 @@ upstart_job_running(const gchar * name) - pass = upstart_job_by_name(upstart_proxy, name, &job, NULL, &error); - if (error || pass == FALSE) { - crm_err("Call to ListUnits failed: %s", error ? error->message : "unknown"); -- g_error_free(error); -+ if(error) { -+ g_error_free(error); -+ } - - } else { - char *instance = get_first_instance(job); diff --git a/SOURCES/pacemaker-fix_systemd_prevent_glib_assertion_-_only_call_g_error_free_with_non-null_arguments.patch b/SOURCES/pacemaker-fix_systemd_prevent_glib_assertion_-_only_call_g_error_free_with_non-null_arguments.patch deleted file mode 100644 index 845f8e2..0000000 --- a/SOURCES/pacemaker-fix_systemd_prevent_glib_assertion_-_only_call_g_error_free_with_non-null_arguments.patch +++ /dev/null @@ -1,22 +0,0 @@ -commit 93d8690481f2a09904f528ea5f01099cdd5dfbed -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Aug 6 12:42:12 2013 +1000 - - Fix: systemd: Prevent glib assertion - only call g_error_free() with non-NULL arguments - -diff --git a/lib/services/systemd.c b/lib/services/systemd.c -index 2a66da5..b18f86f 100644 ---- a/lib/services/systemd.c -+++ b/lib/services/systemd.c -@@ -478,7 +478,10 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) - fclose(file_strm); - } - systemd_daemon_reload(systemd_proxy, &error); -- g_error_free(error); error = NULL; -+ if(error) { -+ g_error_free(error); -+ error = NULL; -+ } - free(override_file); - free(override_dir); - diff --git a/SOURCES/pacemaker-log_crm_mon_clean_up_the_output_for_failed_operations.patch b/SOURCES/pacemaker-log_crm_mon_clean_up_the_output_for_failed_operations.patch deleted file mode 100644 index 139d75a..0000000 --- a/SOURCES/pacemaker-log_crm_mon_clean_up_the_output_for_failed_operations.patch +++ /dev/null @@ -1,59 +0,0 @@ -commit a301734d5c3e0c16c96df02d83db074e68c6acf7 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 12:11:42 2013 +1000 - - Log: crm_mon: Clean up the output for failed operations - -diff --git a/tools/crm_mon.c b/tools/crm_mon.c -index a6a20c6..d3e43c4 100644 ---- a/tools/crm_mon.c -+++ b/tools/crm_mon.c -@@ -1383,31 +1383,35 @@ print_status(pe_working_set_t * data_set) - print_as("\nFailed actions:\n"); - for (xml_op = __xml_first_child(data_set->failed); xml_op != NULL; - xml_op = __xml_next(xml_op)) { -- int val = 0; -+ int status = 0; -+ int rc = 0; - const char *id = ID(xml_op); - const char *op_key = crm_element_value(xml_op, XML_LRM_ATTR_TASK_KEY); - const char *last = crm_element_value(xml_op, XML_RSC_OP_LAST_CHANGE); - const char *node = crm_element_value(xml_op, XML_ATTR_UNAME); - const char *call = crm_element_value(xml_op, XML_LRM_ATTR_CALLID); -- const char *rc = crm_element_value(xml_op, XML_LRM_ATTR_RC); -- const char *status = crm_element_value(xml_op, XML_LRM_ATTR_OPSTATUS); -+ const char *rc_s = crm_element_value(xml_op, XML_LRM_ATTR_RC); -+ const char *status_s = crm_element_value(xml_op, XML_LRM_ATTR_OPSTATUS); - -- val = crm_parse_int(status, "0"); -- print_as(" %s (node=%s, call=%s, rc=%s, status=%s", -- op_key ? op_key : id, node, call, rc, services_lrm_status_str(val)); -+ rc = crm_parse_int(rc_s, "0"); -+ status = crm_parse_int(status_s, "0"); - - if (last) { - time_t run_at = crm_parse_int(last, "0"); -+ char *run_at_s = ctime(&run_at); -+ if(run_at_s) { -+ run_at_s[24] = 0; /* Overwrite the newline */ -+ } - -- print_as(", last-rc-change=%s, queued=%sms, exec=%sms\n", -- ctime(&run_at), -- crm_element_value(xml_op, XML_RSC_OP_T_EXEC), -- crm_element_value(xml_op, XML_RSC_OP_T_QUEUE)); -+ print_as(" %s on %s '%s' (%d): call=%s, status=%s, last-rc-change='%s', queued=%sms, exec=%sms\n", -+ op_key ? op_key : id, node, lrmd_event_rc2str(rc), rc, call, services_lrm_status_str(status), -+ run_at_s, crm_element_value(xml_op, XML_RSC_OP_T_EXEC), crm_element_value(xml_op, XML_RSC_OP_T_QUEUE)); -+ } else { -+ print_as(" %s on %s '%s' (%d): call=%s, status=%s\n", -+ op_key ? op_key : id, node, lrmd_event_rc2str(rc), rc, call, services_lrm_status_str(status)); - } -- -- val = crm_parse_int(rc, "0"); -- print_as("): %s\n", lrmd_event_rc2str(val)); - } -+ print_as("\n"); - } - - if (print_tickets || print_neg_location_prefix) { diff --git a/SOURCES/pacemaker-log_pe_better_indicate_when_a_resource_has_failed.patch b/SOURCES/pacemaker-log_pe_better_indicate_when_a_resource_has_failed.patch deleted file mode 100644 index cdd7dd9..0000000 --- a/SOURCES/pacemaker-log_pe_better_indicate_when_a_resource_has_failed.patch +++ /dev/null @@ -1,35 +0,0 @@ -commit 65e481e7966d5144a0439d16ebb2a9bcffb26506 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 14:33:26 2013 +1000 - - Log: PE: Better indicate when a resource has failed - -diff --git a/lib/pengine/native.c b/lib/pengine/native.c -index c1fe89d..c81a218 100644 ---- a/lib/pengine/native.c -+++ b/lib/pengine/native.c -@@ -413,16 +413,20 @@ native_print(resource_t * rsc, const char *pre_text, long options, void *print_d - if(is_set(rsc->flags, pe_rsc_orphan)) { - offset += snprintf(buffer + offset, LINE_MAX - offset, " ORPHANED "); - } -- offset += snprintf(buffer + offset, LINE_MAX - offset, "%s ", role2text(rsc->role)); -+ if(rsc->role > RSC_ROLE_SLAVE && is_set(rsc->flags, pe_rsc_failed)) { -+ offset += snprintf(buffer + offset, LINE_MAX - offset, "FAILED %s ", role2text(rsc->role)); -+ } else if(is_set(rsc->flags, pe_rsc_failed)) { -+ offset += snprintf(buffer + offset, LINE_MAX - offset, "FAILED "); -+ } else { -+ offset += snprintf(buffer + offset, LINE_MAX - offset, "%s ", role2text(rsc->role)); -+ } -+ - if(node) { - offset += snprintf(buffer + offset, LINE_MAX - offset, "%s ", node->details->uname); - } - if(is_not_set(rsc->flags, pe_rsc_managed)) { - offset += snprintf(buffer + offset, LINE_MAX - offset, "(unmanaged) "); - } -- if(is_set(rsc->flags, pe_rsc_failed)) { -- offset += snprintf(buffer + offset, LINE_MAX - offset, "FAILED "); -- } - if(is_set(rsc->flags, pe_rsc_failure_ignored)) { - offset += snprintf(buffer + offset, LINE_MAX - offset, "(failure ignored)"); - } diff --git a/SOURCES/pacemaker-no-quorum-log.patch b/SOURCES/pacemaker-no-quorum-log.patch new file mode 100644 index 0000000..db5804f --- /dev/null +++ b/SOURCES/pacemaker-no-quorum-log.patch @@ -0,0 +1,19 @@ +commit af02935f3e53223d7ffc3413dcf1e38ce7f86915 +Author: Andrew Beekhof <andrew@beekhof.net> +Date: Fri Oct 24 14:23:39 2014 +1100 + + Log: PE: Reduce 'no quorum' logging severity + +diff --git a/lib/pengine/status.c b/lib/pengine/status.c +index a1c5630..b986987 100644 +--- a/lib/pengine/status.c ++++ b/lib/pengine/status.c +@@ -91,7 +91,7 @@ cluster_status(pe_working_set_t * data_set) + if (is_not_set(data_set->flags, pe_flag_quick_location) + && is_not_set(data_set->flags, pe_flag_have_quorum) + && data_set->no_quorum_policy != no_quorum_ignore) { +- crm_warn("We do not have quorum - fencing and resource management disabled"); ++ crm_notice("We do not have quorum - fencing and resource management disabled"); + } + + unpack_nodes(cib_nodes, data_set); diff --git a/SOURCES/pacemaker-resource-restart-segfault.patch b/SOURCES/pacemaker-resource-restart-segfault.patch new file mode 100644 index 0000000..a1ee40a --- /dev/null +++ b/SOURCES/pacemaker-resource-restart-segfault.patch @@ -0,0 +1,39 @@ +commit cbdcd47aa56dd4a1ad369b1fa403588261421f33 +Author: Andrew Beekhof <andrew@beekhof.net> +Date: Thu Jan 15 14:11:45 2015 +1100 + + Fix: crm_resource: Use-after-free when restarting a resource + +diff --git a/tools/crm_resource.c b/tools/crm_resource.c +index 968683a..3cb3fc3 100644 +--- a/tools/crm_resource.c ++++ b/tools/crm_resource.c +@@ -1415,6 +1415,9 @@ update_dataset(cib_t *cib, pe_working_set_t * data_set, bool simulate) + goto cleanup; + } + ++ if(data_set->input) { ++ free_xml(data_set->input); ++ } + set_working_set_defaults(data_set); + data_set->input = cib_xml_copy; + data_set->now = crm_time_new(NULL); +@@ -1452,8 +1455,8 @@ update_dataset(cib_t *cib, pe_working_set_t * data_set, bool simulate) + } + + cleanup: ++ /* Do not free 'cib_xml_copy' here, we need rsc->xml to be valid later on */ + cib_delete(shadow_cib); +- free_xml(cib_xml_copy); + free(pid); + + if(shadow_file) { +@@ -1782,7 +1785,7 @@ static struct crm_option long_options[] = { + {"-spacer-", 1, 0, '-', "\nAdvanced Commands:"}, + {"delete", 0, 0, 'D', "\t\t(Advanced) Delete a resource from the CIB"}, + {"fail", 0, 0, 'F', "\t\t(Advanced) Tell the cluster this resource has failed"}, +- {"restart", 0, 0, 0, NULL, 1}, ++ {"restart", 0, 0, 0, "\t\t(Advanced) Tell the cluster to restart this resource and anything that depends on it"}, + {"force-stop", 0, 0, 0, "\t(Advanced) Bypass the cluster and stop a resource on the local node. Additional detail with -V"}, + {"force-start",0, 0, 0, "\t(Advanced) Bypass the cluster and start a resource on the local node. Additional detail with -V"}, + {"force-check",0, 0, 0, "\t(Advanced) Bypass the cluster and check the state of a resource on the local node. Additional detail with -V\n"}, diff --git a/SOURCES/pacemaker-resource-restart.patch b/SOURCES/pacemaker-resource-restart.patch new file mode 100644 index 0000000..aa31e76 --- /dev/null +++ b/SOURCES/pacemaker-resource-restart.patch @@ -0,0 +1,4667 @@ +diff --git a/cts/patterns.py b/cts/patterns.py +index e734f40..13307e5 100644 +--- a/cts/patterns.py ++++ b/cts/patterns.py +@@ -180,6 +180,9 @@ class crm_cs_v0(BasePatterns): + r"error: log_operation:.*Operation 'reboot' .* with device 'FencingFail' returned:", + r"Child process .* terminated with signal 9", + r"getinfo response error: 1$", ++ "sbd.* error: inquisitor_child: DEBUG MODE IS ACTIVE", ++ "sbd.* pcmk: error: crm_ipc_read: Connection to cib_ro failed", ++ "sbd.* pcmk: error: mainloop_gio_callback: Connection to cib_ro.* closed .I/O condition=17", + ] + + self.BadNews = [ +diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c +index 7423af1..baf6cb9 100644 +--- a/lib/pengine/utils.c ++++ b/lib/pengine/utils.c +@@ -74,6 +74,7 @@ node_copy(node_t * this_node) + + crm_trace("Copying %p (%s) to %p", this_node, this_node->details->uname, new_node); + ++ new_node->rsc_discover_mode = this_node->rsc_discover_mode; + new_node->weight = this_node->weight; + new_node->fixed = this_node->fixed; + new_node->details = this_node->details; +diff --git a/lib/services/systemd.c b/lib/services/systemd.c +index 51ade44..a8bf1b4 100644 +--- a/lib/services/systemd.c ++++ b/lib/services/systemd.c +@@ -461,10 +461,10 @@ systemd_async_dispatch(DBusPendingCall *pending, void *user_data) + + if(op) { + crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); ++ op->opaque->pending = NULL; + } else { + crm_trace("Got result: %p for %p", reply, pending); + } +- op->opaque->pending = NULL; + systemd_exec_result(reply, op); + + if(pending) { +diff --git a/pengine/allocate.c b/pengine/allocate.c +index e708e26..45e2212 100644 +--- a/pengine/allocate.c ++++ b/pengine/allocate.c +@@ -948,6 +948,28 @@ probe_resources(pe_working_set_t * data_set) + return TRUE; + } + ++static void ++rsc_discover_filter(resource_t *rsc, node_t *node) ++{ ++ GListPtr gIter = rsc->children; ++ resource_t *top = uber_parent(rsc); ++ node_t *match; ++ ++ if (rsc->exclusive_discover == FALSE && top->exclusive_discover == FALSE) { ++ return; ++ } ++ ++ for (; gIter != NULL; gIter = gIter->next) { ++ resource_t *child_rsc = (resource_t *) gIter->data; ++ rsc_discover_filter(child_rsc, node); ++ } ++ ++ match = g_hash_table_lookup(rsc->allowed_nodes, node->details->id); ++ if (match && match->rsc_discover_mode != discover_exclusive) { ++ match->weight = -INFINITY; ++ } ++} ++ + /* + * Count how many valid nodes we have (so we know the maximum number of + * colors we can resolve). +@@ -986,6 +1008,7 @@ stage2(pe_working_set_t * data_set) + resource_t *rsc = (resource_t *) gIter2->data; + + common_apply_stickiness(rsc, node, data_set); ++ rsc_discover_filter(rsc, node); + } + } + +diff --git a/pengine/native.c b/pengine/native.c +index 3dca702..6d62010 100644 +--- a/pengine/native.c ++++ b/pengine/native.c +@@ -2103,6 +2103,9 @@ native_rsc_location(resource_t * rsc, rsc_to_node_t * constraint) + } + + if (other_node->rsc_discover_mode < constraint->discover_mode) { ++ if (constraint->discover_mode == discover_exclusive) { ++ rsc->exclusive_discover = TRUE; ++ } + /* exclusive > never > always... always is default */ + other_node->rsc_discover_mode = constraint->discover_mode; + } +diff --git a/pengine/test10/resource-discovery.dot b/pengine/test10/resource-discovery.dot +index efb2434..5b1aab9 100644 +--- a/pengine/test10/resource-discovery.dot ++++ b/pengine/test10/resource-discovery.dot +@@ -1,41 +1,26 @@ + digraph "g" { +-"FAKE1_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] +-"FAKE1_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] +-"FAKE1_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] +-"FAKE1_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] +-"FAKE1_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] +-"FAKE1_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] +-"FAKE1_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] +-"FAKE1_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] + "FAKE1_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] + "FAKE1_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] +-"FAKE1_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] +-"FAKE1_start_0 18node2" -> "FAKE1_monitor_60000 18node2" [ style = bold] +-"FAKE1_start_0 18node2" [ style=bold color="green" fontcolor="black"] +-"FAKE2_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] +-"FAKE2_start_0 18node3" -> "FAKE2_monitor_60000 18node3" [ style = bold] +-"FAKE2_start_0 18node3" [ style=bold color="green" fontcolor="black"] +-"FAKE2_stop_0 18node2" -> "FAKE2_start_0 18node3" [ style = bold] +-"FAKE2_stop_0 18node2" -> "all_stopped" [ style = bold] +-"FAKE2_stop_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE1_start_0 18node4" -> "FAKE1_monitor_60000 18node4" [ style = bold] ++"FAKE1_start_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKE2_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKE2_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE2_start_0 18node2" -> "FAKE2_monitor_60000 18node2" [ style = bold] ++"FAKE2_start_0 18node2" [ style=bold color="green" fontcolor="black"] + "FAKE3_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] + "FAKE3_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] + "FAKE3_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] + "FAKE3_start_0 18node3" -> "FAKE3_monitor_60000 18node3" [ style = bold] + "FAKE3_start_0 18node3" [ style=bold color="green" fontcolor="black"] +-"FAKE3_stop_0 18builder" -> "FAKE3_start_0 18node3" [ style = bold] +-"FAKE3_stop_0 18builder" -> "all_stopped" [ style = bold] +-"FAKE3_stop_0 18builder" [ style=bold color="green" fontcolor="black"] + "FAKE4_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] + "FAKE4_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] + "FAKE4_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] + "FAKE4_start_0 18node4" -> "FAKE4_monitor_60000 18node4" [ style = bold] + "FAKE4_start_0 18node4" [ style=bold color="green" fontcolor="black"] +-"FAKE4_stop_0 18node1" -> "FAKE4_start_0 18node4" [ style = bold] +-"FAKE4_stop_0 18node1" -> "all_stopped" [ style = bold] +-"FAKE4_stop_0 18node1" [ style=bold color="green" fontcolor="black"] +-"FAKE5_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] +-"FAKE5_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] + "FAKE5_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] + "FAKE5_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] + "FAKE5_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] +@@ -49,56 +34,54 @@ + "FAKE5_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] + "FAKE5_start_0 remote1" -> "FAKE5_monitor_60000 remote1" [ style = bold] + "FAKE5_start_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE6_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKE6_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE6_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKE6_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE6_monitor_10000 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE6_start_0 18node1" -> "FAKE6_monitor_10000 18node1" [ style = bold] ++"FAKE6_start_0 18node1" -> "FAKE7_start_0 18node1" [ style = bold] ++"FAKE6_start_0 18node1" -> "FAKEGROUP_running_0" [ style = bold] ++"FAKE6_start_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE7_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKE7_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE7_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKE7_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE7_monitor_10000 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE7_start_0 18node1" -> "FAKE7_monitor_10000 18node1" [ style = bold] ++"FAKE7_start_0 18node1" -> "FAKEGROUP_running_0" [ style = bold] ++"FAKE7_start_0 18node1" [ style=bold color="green" fontcolor="black"] + "FAKECLONE1-clone_running_0" [ style=bold color="green" fontcolor="orange"] + "FAKECLONE1-clone_start_0" -> "FAKECLONE1-clone_running_0" [ style = bold] +-"FAKECLONE1-clone_start_0" -> "FAKECLONE1:0_start_0 18builder" [ style = bold] +-"FAKECLONE1-clone_start_0" -> "FAKECLONE1:1_start_0 18node1" [ style = bold] +-"FAKECLONE1-clone_start_0" -> "FAKECLONE1:2_start_0 18node2" [ style = bold] +-"FAKECLONE1-clone_start_0" -> "FAKECLONE1:3_start_0 18node4" [ style = bold] +-"FAKECLONE1-clone_start_0" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] +-"FAKECLONE1-clone_start_0" -> "FAKECLONE1:5_start_0 18node3" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:0_start_0 18node1" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:1_start_0 remote1" [ style = bold] + "FAKECLONE1-clone_start_0" [ style=bold color="green" fontcolor="orange"] +-"FAKECLONE1:0_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:0_start_0 18builder" -> "FAKECLONE1-clone_running_0" [ style = bold] +-"FAKECLONE1:0_start_0 18builder" -> "FAKECLONE1:0_monitor_60000 18builder" [ style = bold] +-"FAKECLONE1:0_start_0 18builder" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:1_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:1_start_0 18node1" -> "FAKECLONE1-clone_running_0" [ style = bold] +-"FAKECLONE1:1_start_0 18node1" -> "FAKECLONE1:1_monitor_60000 18node1" [ style = bold] +-"FAKECLONE1:1_start_0 18node1" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:2_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:2_start_0 18node2" -> "FAKECLONE1-clone_running_0" [ style = bold] +-"FAKECLONE1:2_start_0 18node2" -> "FAKECLONE1:2_monitor_60000 18node2" [ style = bold] +-"FAKECLONE1:2_start_0 18node2" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:3_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:3_start_0 18node4" -> "FAKECLONE1-clone_running_0" [ style = bold] +-"FAKECLONE1:3_start_0 18node4" -> "FAKECLONE1:3_monitor_60000 18node4" [ style = bold] +-"FAKECLONE1:3_start_0 18node4" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:4_monitor_0 remote1" -> "probe_complete remote1" [ style = bold] +-"FAKECLONE1:4_monitor_0 remote1" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:4_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:4_start_0 remote1" -> "FAKECLONE1-clone_running_0" [ style = bold] +-"FAKECLONE1:4_start_0 remote1" -> "FAKECLONE1:4_monitor_60000 remote1" [ style = bold] +-"FAKECLONE1:4_start_0 remote1" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:5_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE1:5_start_0 18node3" -> "FAKECLONE1-clone_running_0" [ style = bold] +-"FAKECLONE1:5_start_0 18node3" -> "FAKECLONE1:5_monitor_60000 18node3" [ style = bold] +-"FAKECLONE1:5_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:0_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKECLONE1:0_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:0_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:0_start_0 18node1" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:0_start_0 18node1" -> "FAKECLONE1:0_monitor_60000 18node1" [ style = bold] ++"FAKECLONE1:0_start_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_monitor_0 remote1" -> "probe_complete remote1" [ style = bold] ++"FAKECLONE1:1_monitor_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_start_0 remote1" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:1_start_0 remote1" -> "FAKECLONE1:1_monitor_60000 remote1" [ style = bold] ++"FAKECLONE1:1_start_0 remote1" [ style=bold color="green" fontcolor="black"] + "FAKECLONE2-clone_running_0" [ style=bold color="green" fontcolor="orange"] + "FAKECLONE2-clone_start_0" -> "FAKECLONE2-clone_running_0" [ style = bold] +-"FAKECLONE2-clone_start_0" -> "FAKECLONE2:0_start_0 18builder" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:0_start_0 18node3" [ style = bold] + "FAKECLONE2-clone_start_0" -> "FAKECLONE2:1_start_0 18node1" [ style = bold] + "FAKECLONE2-clone_start_0" -> "FAKECLONE2:2_start_0 18node2" [ style = bold] + "FAKECLONE2-clone_start_0" -> "FAKECLONE2:3_start_0 18node4" [ style = bold] + "FAKECLONE2-clone_start_0" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] +-"FAKECLONE2-clone_start_0" -> "FAKECLONE2:5_start_0 18node3" [ style = bold] + "FAKECLONE2-clone_start_0" [ style=bold color="green" fontcolor="orange"] +-"FAKECLONE2:0_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] +-"FAKECLONE2:0_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE2:0_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE2:0_start_0 18builder" -> "FAKECLONE2-clone_running_0" [ style = bold] +-"FAKECLONE2:0_start_0 18builder" -> "FAKECLONE2:0_monitor_60000 18builder" [ style = bold] +-"FAKECLONE2:0_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:0_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKECLONE2:0_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:0_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:0_start_0 18node3" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:0_start_0 18node3" -> "FAKECLONE2:0_monitor_60000 18node3" [ style = bold] ++"FAKECLONE2:0_start_0 18node3" [ style=bold color="green" fontcolor="black"] + "FAKECLONE2:1_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] + "FAKECLONE2:1_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] + "FAKECLONE2:1_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] +@@ -121,15 +104,11 @@ + "FAKECLONE2:4_start_0 remote1" -> "FAKECLONE2-clone_running_0" [ style = bold] + "FAKECLONE2:4_start_0 remote1" -> "FAKECLONE2:4_monitor_60000 remote1" [ style = bold] + "FAKECLONE2:4_start_0 remote1" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE2:5_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] +-"FAKECLONE2:5_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE2:5_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] +-"FAKECLONE2:5_start_0 18node3" -> "FAKECLONE2-clone_running_0" [ style = bold] +-"FAKECLONE2:5_start_0 18node3" -> "FAKECLONE2:5_monitor_60000 18node3" [ style = bold] +-"FAKECLONE2:5_start_0 18node3" [ style=bold color="green" fontcolor="black"] +-"all_stopped" [ style=bold color="green" fontcolor="orange"] +-"probe_complete 18builder" -> "probe_nodes_complete" [ style = bold] +-"probe_complete 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKEGROUP_running_0" [ style=bold color="green" fontcolor="orange"] ++"FAKEGROUP_start_0" -> "FAKE6_start_0 18node1" [ style = bold] ++"FAKEGROUP_start_0" -> "FAKE7_start_0 18node1" [ style = bold] ++"FAKEGROUP_start_0" -> "FAKEGROUP_running_0" [ style = bold] ++"FAKEGROUP_start_0" [ style=bold color="green" fontcolor="orange"] + "probe_complete 18node1" -> "probe_nodes_complete" [ style = bold] + "probe_complete 18node1" [ style=bold color="green" fontcolor="black"] + "probe_complete 18node2" -> "probe_nodes_complete" [ style = bold] +@@ -140,46 +119,53 @@ + "probe_complete 18node4" [ style=bold color="green" fontcolor="black"] + "probe_complete remote1" -> "probe_complete" [ style = bold] + "probe_complete remote1" [ style=bold color="green" fontcolor="black"] +-"probe_complete" -> "FAKE1_start_0 18node2" [ style = bold] +-"probe_complete" -> "FAKE2_stop_0 18node2" [ style = bold] ++"probe_complete" -> "FAKE1_start_0 18node4" [ style = bold] ++"probe_complete" -> "FAKE2_start_0 18node2" [ style = bold] + "probe_complete" -> "FAKE3_start_0 18node3" [ style = bold] +-"probe_complete" -> "FAKE3_stop_0 18builder" [ style = bold] + "probe_complete" -> "FAKE4_start_0 18node4" [ style = bold] +-"probe_complete" -> "FAKE4_stop_0 18node1" [ style = bold] + "probe_complete" -> "FAKE5_start_0 remote1" [ style = bold] +-"probe_complete" -> "FAKECLONE1:0_start_0 18builder" [ style = bold] +-"probe_complete" -> "FAKECLONE1:1_start_0 18node1" [ style = bold] +-"probe_complete" -> "FAKECLONE1:2_start_0 18node2" [ style = bold] +-"probe_complete" -> "FAKECLONE1:3_start_0 18node4" [ style = bold] +-"probe_complete" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] +-"probe_complete" -> "FAKECLONE1:5_start_0 18node3" [ style = bold] +-"probe_complete" -> "FAKECLONE2:0_start_0 18builder" [ style = bold] ++"probe_complete" -> "FAKE6_start_0 18node1" [ style = bold] ++"probe_complete" -> "FAKE7_start_0 18node1" [ style = bold] ++"probe_complete" -> "FAKECLONE1:0_start_0 18node1" [ style = bold] ++"probe_complete" -> "FAKECLONE1:1_start_0 remote1" [ style = bold] ++"probe_complete" -> "FAKECLONE2:0_start_0 18node3" [ style = bold] + "probe_complete" -> "FAKECLONE2:1_start_0 18node1" [ style = bold] + "probe_complete" -> "FAKECLONE2:2_start_0 18node2" [ style = bold] + "probe_complete" -> "FAKECLONE2:3_start_0 18node4" [ style = bold] + "probe_complete" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] +-"probe_complete" -> "FAKECLONE2:5_start_0 18node3" [ style = bold] ++"probe_complete" -> "shooter_start_0 18node2" [ style = bold] + "probe_complete" [ style=bold color="green" fontcolor="orange"] +-"probe_nodes_complete" -> "remote1_start_0 18builder" [ style = bold] ++"probe_nodes_complete" -> "remote1_start_0 18node1" [ style = bold] + "probe_nodes_complete" [ style=bold color="green" fontcolor="orange"] ++"remote1_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"remote1_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"remote1_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"remote1_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] + "remote1_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] + "remote1_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] + "remote1_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] + "remote1_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] +-"remote1_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] +-"remote1_start_0 18builder" -> "FAKE5_monitor_0 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKE5_monitor_60000 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKE5_start_0 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKECLONE1:4_monitor_0 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKECLONE1:4_monitor_60000 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKECLONE2:4_monitor_0 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKECLONE2:4_monitor_60000 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] +-"remote1_start_0 18builder" -> "remote1_monitor_60000 18builder" [ style = bold] +-"remote1_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"remote1_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] ++"remote1_start_0 18node1" -> "FAKE5_monitor_0 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKE5_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKE5_start_0 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKECLONE1:1_monitor_0 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKECLONE1:1_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKECLONE1:1_start_0 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKECLONE2:4_monitor_0 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKECLONE2:4_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] ++"remote1_start_0 18node1" -> "remote1_monitor_60000 18node1" [ style = bold] ++"remote1_start_0 18node1" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"shooter_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"shooter_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] + "shooter_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] + "shooter_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] + "shooter_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] + "shooter_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"shooter_start_0 18node2" -> "shooter_monitor_60000 18node2" [ style = bold] ++"shooter_start_0 18node2" [ style=bold color="green" fontcolor="black"] + } +diff --git a/pengine/test10/resource-discovery.exp b/pengine/test10/resource-discovery.exp +index 2770f4e..5459bd7 100644 +--- a/pengine/test10/resource-discovery.exp ++++ b/pengine/test10/resource-discovery.exp +@@ -1,52 +1,52 @@ + <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> + <synapse id="0"> + <action_set> +- <rsc_op id="27" operation="monitor" operation_key="shooter_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <rsc_op id="38" operation="monitor" operation_key="shooter_monitor_60000" on_node="18node2" on_node_uuid="2"> + <primitive id="shooter" class="stonith" type="fence_xvm"/> +- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs/> ++ <inputs> ++ <trigger> ++ <rsc_op id="37" operation="start" operation_key="shooter_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> + </synapse> + <synapse id="1"> + <action_set> +- <rsc_op id="20" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <rsc_op id="37" operation="start" operation_key="shooter_start_0" on_node="18node2" on_node_uuid="2"> + <primitive id="shooter" class="stonith" type="fence_xvm"/> +- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs/> ++ <inputs> ++ <trigger> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> + </synapse> + <synapse id="2"> + <action_set> +- <rsc_op id="40" operation="monitor" operation_key="remote1_monitor_60000" on_node="18builder" on_node_uuid="5"> +- <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> +- <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ <rsc_op id="27" operation="monitor" operation_key="shooter_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs> +- <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- </inputs> ++ <inputs/> + </synapse> + <synapse id="3"> + <action_set> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"> +- <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> +- <attributes CRM_meta_timeout="20000" /> ++ <rsc_op id="21" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs> +- <trigger> +- <pseudo_event id="7" operation="probe_nodes_complete" operation_key="probe_nodes_complete"/> +- </trigger> +- </inputs> ++ <inputs/> + </synapse> + <synapse id="4"> + <action_set> +- <rsc_op id="28" operation="monitor" operation_key="remote1_monitor_0" on_node="18node4" on_node_uuid="4"> +- <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <rsc_op id="14" operation="monitor" operation_key="shooter_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +@@ -54,8 +54,8 @@ + </synapse> + <synapse id="5"> + <action_set> +- <rsc_op id="21" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"> +- <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <rsc_op id="5" operation="monitor" operation_key="shooter_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +@@ -63,34 +63,34 @@ + </synapse> + <synapse id="6"> + <action_set> +- <rsc_op id="42" operation="monitor" operation_key="FAKE1_monitor_60000" on_node="18node2" on_node_uuid="2"> +- <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <rsc_op id="40" operation="monitor" operation_key="remote1_monitor_60000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="41" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> + <synapse id="7"> + <action_set> +- <rsc_op id="41" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"> +- <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="3" operation="probe_nodes_complete" operation_key="probe_nodes_complete"/> + </trigger> + </inputs> + </synapse> + <synapse id="8"> + <action_set> +- <rsc_op id="29" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <rsc_op id="28" operation="monitor" operation_key="remote1_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +@@ -98,8 +98,8 @@ + </synapse> + <synapse id="9"> + <action_set> +- <rsc_op id="22" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <rsc_op id="22" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +@@ -107,8 +107,8 @@ + </synapse> + <synapse id="10"> + <action_set> +- <rsc_op id="17" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node2" on_node_uuid="2"> +- <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <rsc_op id="15" operation="monitor" operation_key="remote1_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +@@ -116,8 +116,8 @@ + </synapse> + <synapse id="11"> + <action_set> +- <rsc_op id="13" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node1" on_node_uuid="1"> +- <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <rsc_op id="6" operation="monitor" operation_key="remote1_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +@@ -125,95 +125,110 @@ + </synapse> + <synapse id="12"> + <action_set> +- <rsc_op id="9" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <rsc_op id="42" operation="monitor" operation_key="FAKE1_monitor_60000" on_node="18node4" on_node_uuid="4"> + <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> +- </rsc_op> +- </action_set> +- <inputs/> +- </synapse> +- <synapse id="13"> +- <action_set> +- <rsc_op id="45" operation="monitor" operation_key="FAKE2_monitor_60000" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="44" operation="start" operation_key="FAKE2_start_0" on_node="18node3" on_node_uuid="3"/> ++ <rsc_op id="41" operation="start" operation_key="FAKE1_start_0" on_node="18node4" on_node_uuid="4"/> + </trigger> + </inputs> + </synapse> +- <synapse id="14"> ++ <synapse id="13"> + <action_set> +- <rsc_op id="44" operation="start" operation_key="FAKE2_start_0" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <rsc_op id="41" operation="start" operation_key="FAKE1_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="43" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + </inputs> + </synapse> ++ <synapse id="14"> ++ <action_set> ++ <rsc_op id="29" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> + <synapse id="15"> + <action_set> +- <rsc_op id="43" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"> ++ <rsc_op id="44" operation="monitor" operation_key="FAKE2_monitor_60000" on_node="18node2" on_node_uuid="2"> + <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <rsc_op id="43" operation="start" operation_key="FAKE2_start_0" on_node="18node2" on_node_uuid="2"/> + </trigger> + </inputs> + </synapse> + <synapse id="16"> + <action_set> +- <rsc_op id="48" operation="monitor" operation_key="FAKE3_monitor_60000" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ <rsc_op id="43" operation="start" operation_key="FAKE2_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="47" operation="start" operation_key="FAKE3_start_0" on_node="18node3" on_node_uuid="3"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + </inputs> + </synapse> + <synapse id="17"> + <action_set> +- <rsc_op id="47" operation="start" operation_key="FAKE3_start_0" on_node="18node3" on_node_uuid="3"> ++ <rsc_op id="16" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="18"> ++ <action_set> ++ <rsc_op id="7" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="19"> ++ <action_set> ++ <rsc_op id="46" operation="monitor" operation_key="FAKE3_monitor_60000" on_node="18node3" on_node_uuid="3"> + <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> +- </trigger> +- <trigger> +- <rsc_op id="46" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="45" operation="start" operation_key="FAKE3_start_0" on_node="18node3" on_node_uuid="3"/> + </trigger> + </inputs> + </synapse> +- <synapse id="18"> ++ <synapse id="20"> + <action_set> +- <rsc_op id="46" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"> ++ <rsc_op id="45" operation="start" operation_key="FAKE3_start_0" on_node="18node3" on_node_uuid="3"> + <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + </inputs> + </synapse> +- <synapse id="19"> ++ <synapse id="21"> + <action_set> + <rsc_op id="23" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node3" on_node_uuid="3"> + <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> +@@ -222,49 +237,33 @@ + </action_set> + <inputs/> + </synapse> +- <synapse id="20"> ++ <synapse id="22"> + <action_set> +- <rsc_op id="51" operation="monitor" operation_key="FAKE4_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <rsc_op id="48" operation="monitor" operation_key="FAKE4_monitor_60000" on_node="18node4" on_node_uuid="4"> + <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="50" operation="start" operation_key="FAKE4_start_0" on_node="18node4" on_node_uuid="4"/> ++ <rsc_op id="47" operation="start" operation_key="FAKE4_start_0" on_node="18node4" on_node_uuid="4"/> + </trigger> + </inputs> + </synapse> +- <synapse id="21"> +- <action_set> +- <rsc_op id="50" operation="start" operation_key="FAKE4_start_0" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_timeout="20000" /> +- </rsc_op> +- </action_set> +- <inputs> +- <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> +- </trigger> +- <trigger> +- <rsc_op id="49" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> +- </trigger> +- </inputs> +- </synapse> +- <synapse id="22"> ++ <synapse id="23"> + <action_set> +- <rsc_op id="49" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"> ++ <rsc_op id="47" operation="start" operation_key="FAKE4_start_0" on_node="18node4" on_node_uuid="4"> + <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + </inputs> + </synapse> +- <synapse id="23"> ++ <synapse id="24"> + <action_set> + <rsc_op id="30" operation="monitor" operation_key="FAKE4_monitor_0" on_node="18node4" on_node_uuid="4"> + <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> +@@ -273,63 +272,54 @@ + </action_set> + <inputs/> + </synapse> +- <synapse id="24"> ++ <synapse id="25"> + <action_set> +- <rsc_op id="53" operation="monitor" operation_key="FAKE5_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <rsc_op id="50" operation="monitor" operation_key="FAKE5_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> + <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="52" operation="start" operation_key="FAKE5_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="49" operation="start" operation_key="FAKE5_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="25"> ++ <synapse id="26"> + <action_set> +- <rsc_op id="52" operation="start" operation_key="FAKE5_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <rsc_op id="49" operation="start" operation_key="FAKE5_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> + <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="26"> ++ <synapse id="27"> + <action_set> +- <rsc_op id="34" operation="monitor" operation_key="FAKE5_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <rsc_op id="34" operation="monitor" operation_key="FAKE5_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> + <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="27"> +- <action_set> +- <rsc_op id="31" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> +- </rsc_op> +- </action_set> +- <inputs/> +- </synapse> + <synapse id="28"> + <action_set> +- <rsc_op id="24" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <rsc_op id="31" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node4" on_node_uuid="4"> + <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> +@@ -338,7 +328,7 @@ + </synapse> + <synapse id="29"> + <action_set> +- <rsc_op id="18" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <rsc_op id="24" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node3" on_node_uuid="3"> + <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> +@@ -347,7 +337,7 @@ + </synapse> + <synapse id="30"> + <action_set> +- <rsc_op id="14" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <rsc_op id="17" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"> + <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> +@@ -356,7 +346,7 @@ + </synapse> + <synapse id="31"> + <action_set> +- <rsc_op id="10" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <rsc_op id="8" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"> + <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> +@@ -365,517 +355,480 @@ + </synapse> + <synapse id="32"> + <action_set> +- <rsc_op id="55" operation="monitor" operation_key="FAKECLONE1:0_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <rsc_op id="52" operation="monitor" operation_key="FAKECLONE1:0_monitor_60000" on_node="18node1" on_node_uuid="1"> + <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="54" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="51" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> + <synapse id="33"> + <action_set> +- <rsc_op id="54" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18builder" on_node_uuid="5"> ++ <rsc_op id="51" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18node1" on_node_uuid="1"> + <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ <pseudo_event id="55" operation="start" operation_key="FAKECLONE1-clone_start_0"/> + </trigger> + </inputs> + </synapse> + <synapse id="34"> + <action_set> +- <rsc_op id="57" operation="monitor" operation_key="FAKECLONE1:1_monitor_60000" on_node="18node1" on_node_uuid="1"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="9" operation="monitor" operation_key="FAKECLONE1:0_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs> +- <trigger> +- <rsc_op id="56" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node1" on_node_uuid="1"/> +- </trigger> +- </inputs> ++ <inputs/> + </synapse> + <synapse id="35"> + <action_set> +- <rsc_op id="56" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node1" on_node_uuid="1"> ++ <rsc_op id="54" operation="monitor" operation_key="FAKECLONE1:1_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> + <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ <rsc_op id="53" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> + </trigger> + </inputs> + </synapse> + <synapse id="36"> + <action_set> +- <rsc_op id="59" operation="monitor" operation_key="FAKECLONE1:2_monitor_60000" on_node="18node2" on_node_uuid="2"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:2" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="53" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="58" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node2" on_node_uuid="2"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> +- </inputs> +- </synapse> +- <synapse id="37"> +- <action_set> +- <rsc_op id="58" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node2" on_node_uuid="2"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:2" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </rsc_op> +- </action_set> +- <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ <pseudo_event id="55" operation="start" operation_key="FAKECLONE1-clone_start_0"/> + </trigger> + </inputs> + </synapse> +- <synapse id="38"> ++ <synapse id="37"> + <action_set> +- <rsc_op id="61" operation="monitor" operation_key="FAKECLONE1:3_monitor_60000" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:3" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="35" operation="monitor" operation_key="FAKECLONE1:1_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="60" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="39"> ++ <synapse id="38" priority="1000000"> + <action_set> +- <rsc_op id="60" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:3" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </rsc_op> ++ <pseudo_event id="56" operation="running" operation_key="FAKECLONE1-clone_running_0"> ++ <attributes CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <rsc_op id="51" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ <rsc_op id="53" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="55" operation="start" operation_key="FAKECLONE1-clone_start_0"/> + </trigger> + </inputs> + </synapse> ++ <synapse id="39"> ++ <action_set> ++ <pseudo_event id="55" operation="start" operation_key="FAKECLONE1-clone_start_0"> ++ <attributes CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> + <synapse id="40"> + <action_set> +- <rsc_op id="63" operation="monitor" operation_key="FAKECLONE1:4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="60" operation="monitor" operation_key="FAKECLONE2:0_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- <trigger> +- <rsc_op id="62" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="59" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18node3" on_node_uuid="3"/> + </trigger> + </inputs> + </synapse> + <synapse id="41"> + <action_set> +- <rsc_op id="62" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="59" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- <trigger> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ <pseudo_event id="69" operation="start" operation_key="FAKECLONE2-clone_start_0"/> + </trigger> + </inputs> + </synapse> + <synapse id="42"> + <action_set> +- <rsc_op id="35" operation="monitor" operation_key="FAKECLONE1:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ <rsc_op id="25" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs> +- <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- </inputs> ++ <inputs/> + </synapse> + <synapse id="43"> + <action_set> +- <rsc_op id="65" operation="monitor" operation_key="FAKECLONE1:5_monitor_60000" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:5" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="62" operation="monitor" operation_key="FAKECLONE2:1_monitor_60000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="64" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18node3" on_node_uuid="3"/> ++ <rsc_op id="61" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> + <synapse id="44"> + <action_set> +- <rsc_op id="64" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKECLONE1" long-id="FAKECLONE1:5" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="61" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ <pseudo_event id="69" operation="start" operation_key="FAKECLONE2-clone_start_0"/> + </trigger> + </inputs> + </synapse> +- <synapse id="45" priority="1000000"> ++ <synapse id="45"> + <action_set> +- <pseudo_event id="67" operation="running" operation_key="FAKECLONE1-clone_running_0"> +- <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </pseudo_event> ++ <rsc_op id="10" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="46"> ++ <action_set> ++ <rsc_op id="64" operation="monitor" operation_key="FAKECLONE2:2_monitor_60000" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="54" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- <trigger> +- <rsc_op id="56" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node1" on_node_uuid="1"/> +- </trigger> +- <trigger> +- <rsc_op id="58" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node2" on_node_uuid="2"/> +- </trigger> +- <trigger> +- <rsc_op id="60" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"/> +- </trigger> +- <trigger> +- <rsc_op id="62" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="63" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"/> + </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="47"> ++ <action_set> ++ <rsc_op id="63" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> + <trigger> +- <rsc_op id="64" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18node3" on_node_uuid="3"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ <pseudo_event id="69" operation="start" operation_key="FAKECLONE2-clone_start_0"/> + </trigger> + </inputs> + </synapse> +- <synapse id="46"> +- <action_set> +- <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"> +- <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </pseudo_event> +- </action_set> +- <inputs/> +- </synapse> +- <synapse id="47"> ++ <synapse id="48"> + <action_set> +- <rsc_op id="71" operation="monitor" operation_key="FAKECLONE2:0_monitor_60000" on_node="18builder" on_node_uuid="5"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="66" operation="monitor" operation_key="FAKECLONE2:3_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="70" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="65" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> + </trigger> + </inputs> + </synapse> +- <synapse id="48"> ++ <synapse id="49"> + <action_set> +- <rsc_op id="70" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18builder" on_node_uuid="5"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="65" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ <pseudo_event id="69" operation="start" operation_key="FAKECLONE2-clone_start_0"/> + </trigger> + </inputs> + </synapse> +- <synapse id="49"> ++ <synapse id="50"> + <action_set> +- <rsc_op id="11" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18builder" on_node_uuid="5"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ <rsc_op id="32" operation="monitor" operation_key="FAKECLONE2:3_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs/> + </synapse> +- <synapse id="50"> ++ <synapse id="51"> + <action_set> +- <rsc_op id="73" operation="monitor" operation_key="FAKECLONE2:1_monitor_60000" on_node="18node1" on_node_uuid="1"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="68" operation="monitor" operation_key="FAKECLONE2:4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="72" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="67" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="51"> ++ <synapse id="52"> + <action_set> +- <rsc_op id="72" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="67" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ <pseudo_event id="69" operation="start" operation_key="FAKECLONE2-clone_start_0"/> + </trigger> + </inputs> + </synapse> +- <synapse id="52"> +- <action_set> +- <rsc_op id="15" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node1" on_node_uuid="1"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> +- </rsc_op> +- </action_set> +- <inputs/> +- </synapse> + <synapse id="53"> + <action_set> +- <rsc_op id="75" operation="monitor" operation_key="FAKECLONE2:2_monitor_60000" on_node="18node2" on_node_uuid="2"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="36" operation="monitor" operation_key="FAKECLONE2:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="74" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"/> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="54"> ++ <synapse id="54" priority="1000000"> + <action_set> +- <rsc_op id="74" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </rsc_op> ++ <pseudo_event id="70" operation="running" operation_key="FAKECLONE2-clone_running_0"> ++ <attributes CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <rsc_op id="59" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="61" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="63" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"/> + </trigger> + <trigger> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ <rsc_op id="65" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="67" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="69" operation="start" operation_key="FAKECLONE2-clone_start_0"/> + </trigger> + </inputs> + </synapse> + <synapse id="55"> + <action_set> +- <rsc_op id="77" operation="monitor" operation_key="FAKECLONE2:3_monitor_60000" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </rsc_op> ++ <pseudo_event id="69" operation="start" operation_key="FAKECLONE2-clone_start_0"> ++ <attributes CRM_meta_clone_max="5" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> + </action_set> +- <inputs> +- <trigger> +- <rsc_op id="76" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> +- </trigger> +- </inputs> ++ <inputs/> + </synapse> + <synapse id="56"> + <action_set> +- <rsc_op id="76" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </rsc_op> ++ <pseudo_event id="78" operation="running" operation_key="FAKEGROUP_running_0"> ++ <attributes CRM_meta_timeout="20000" /> ++ </pseudo_event> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ <rsc_op id="73" operation="start" operation_key="FAKE6_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="75" operation="start" operation_key="FAKE7_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ <pseudo_event id="77" operation="start" operation_key="FAKEGROUP_start_0"/> + </trigger> + </inputs> + </synapse> + <synapse id="57"> + <action_set> +- <rsc_op id="32" operation="monitor" operation_key="FAKECLONE2:3_monitor_0" on_node="18node4" on_node_uuid="4"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> +- </rsc_op> ++ <pseudo_event id="77" operation="start" operation_key="FAKEGROUP_start_0"> ++ <attributes CRM_meta_timeout="20000" /> ++ </pseudo_event> + </action_set> + <inputs/> + </synapse> + <synapse id="58"> + <action_set> +- <rsc_op id="79" operation="monitor" operation_key="FAKECLONE2:4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="74" operation="monitor" operation_key="FAKE6_monitor_10000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE6" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- <trigger> +- <rsc_op id="78" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="73" operation="start" operation_key="FAKE6_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> + <synapse id="59"> + <action_set> +- <rsc_op id="78" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="73" operation="start" operation_key="FAKE6_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE6" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> +- </trigger> +- <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ <pseudo_event id="77" operation="start" operation_key="FAKEGROUP_start_0"/> + </trigger> + </inputs> + </synapse> + <synapse id="60"> + <action_set> +- <rsc_op id="36" operation="monitor" operation_key="FAKECLONE2:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ <rsc_op id="18" operation="monitor" operation_key="FAKE6_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE6" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs> +- <trigger> +- <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- </inputs> ++ <inputs/> + </synapse> + <synapse id="61"> + <action_set> +- <rsc_op id="81" operation="monitor" operation_key="FAKECLONE2:5_monitor_60000" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="11" operation="monitor" operation_key="FAKE6_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE6" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs> +- <trigger> +- <rsc_op id="80" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18node3" on_node_uuid="3"/> +- </trigger> +- </inputs> ++ <inputs/> + </synapse> + <synapse id="62"> + <action_set> +- <rsc_op id="80" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ <rsc_op id="76" operation="monitor" operation_key="FAKE7_monitor_10000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE7" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> +- </trigger> +- <trigger> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ <rsc_op id="75" operation="start" operation_key="FAKE7_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> + <synapse id="63"> + <action_set> +- <rsc_op id="25" operation="monitor" operation_key="FAKECLONE2:5_monitor_0" on_node="18node3" on_node_uuid="3"> +- <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ <rsc_op id="75" operation="start" operation_key="FAKE7_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE7" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> + </rsc_op> + </action_set> +- <inputs/> +- </synapse> +- <synapse id="64" priority="1000000"> +- <action_set> +- <pseudo_event id="83" operation="running" operation_key="FAKECLONE2-clone_running_0"> +- <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </pseudo_event> +- </action_set> + <inputs> + <trigger> +- <rsc_op id="70" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- <trigger> +- <rsc_op id="72" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"/> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/> + </trigger> + <trigger> +- <rsc_op id="74" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"/> ++ <rsc_op id="73" operation="start" operation_key="FAKE6_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="76" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> +- </trigger> +- <trigger> +- <rsc_op id="78" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> +- </trigger> +- <trigger> +- <rsc_op id="80" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18node3" on_node_uuid="3"/> +- </trigger> +- <trigger> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ <pseudo_event id="77" operation="start" operation_key="FAKEGROUP_start_0"/> + </trigger> + </inputs> + </synapse> ++ <synapse id="64"> ++ <action_set> ++ <rsc_op id="19" operation="monitor" operation_key="FAKE7_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE7" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> + <synapse id="65"> + <action_set> +- <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"> +- <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> +- </pseudo_event> ++ <rsc_op id="12" operation="monitor" operation_key="FAKE7_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE7" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> + </action_set> + <inputs/> + </synapse> + <synapse id="66" priority="1000000"> + <action_set> +- <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18node1"> + <attributes CRM_meta_op_no_wait="true" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="34" operation="monitor" operation_key="FAKE5_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="34" operation="monitor" operation_key="FAKE5_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> + </trigger> + <trigger> +- <rsc_op id="35" operation="monitor" operation_key="FAKECLONE1:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="35" operation="monitor" operation_key="FAKECLONE1:1_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> + </trigger> + <trigger> +- <rsc_op id="36" operation="monitor" operation_key="FAKECLONE2:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="36" operation="monitor" operation_key="FAKECLONE2:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> + </trigger> + </inputs> + </synapse> +@@ -908,19 +861,16 @@ + </synapse> + <synapse id="68" priority="1000000"> + <action_set> +- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"> ++ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"> + <attributes CRM_meta_op_no_wait="true" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="20" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"/> +- </trigger> +- <trigger> +- <rsc_op id="21" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ <rsc_op id="21" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"/> + </trigger> + <trigger> +- <rsc_op id="22" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ <rsc_op id="22" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"/> + </trigger> + <trigger> + <rsc_op id="23" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node3" on_node_uuid="3"/> +@@ -929,112 +879,100 @@ + <rsc_op id="24" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node3" on_node_uuid="3"/> + </trigger> + <trigger> +- <rsc_op id="25" operation="monitor" operation_key="FAKECLONE2:5_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ <rsc_op id="25" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18node3" on_node_uuid="3"/> + </trigger> + </inputs> + </synapse> + <synapse id="69" priority="1000000"> + <action_set> +- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"> ++ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"> + <attributes CRM_meta_op_no_wait="true" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="17" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ <rsc_op id="14" operation="monitor" operation_key="shooter_monitor_0" on_node="18node2" on_node_uuid="2"/> + </trigger> + <trigger> +- <rsc_op id="18" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ <rsc_op id="15" operation="monitor" operation_key="remote1_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="16" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node2" on_node_uuid="2"/> + </trigger> +- </inputs> +- </synapse> +- <synapse id="70" priority="1000000"> +- <action_set> +- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"> +- <attributes CRM_meta_op_no_wait="true" /> +- </rsc_op> +- </action_set> +- <inputs> + <trigger> +- <rsc_op id="13" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="17" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"/> + </trigger> + <trigger> +- <rsc_op id="14" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="18" operation="monitor" operation_key="FAKE6_monitor_0" on_node="18node2" on_node_uuid="2"/> + </trigger> + <trigger> +- <rsc_op id="15" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="19" operation="monitor" operation_key="FAKE7_monitor_0" on_node="18node2" on_node_uuid="2"/> + </trigger> + </inputs> + </synapse> +- <synapse id="71" priority="1000000"> ++ <synapse id="70" priority="1000000"> + <action_set> +- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"> ++ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"> + <attributes CRM_meta_op_no_wait="true" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="9" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="5" operation="monitor" operation_key="shooter_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="10" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="6" operation="monitor" operation_key="remote1_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="11" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="7" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> +- </inputs> +- </synapse> +- <synapse id="72"> +- <action_set> +- <pseudo_event id="7" operation="probe_nodes_complete" operation_key="probe_nodes_complete"> +- <attributes /> +- </pseudo_event> +- </action_set> +- <inputs> + <trigger> +- <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"/> ++ <rsc_op id="8" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="9" operation="monitor" operation_key="FAKECLONE1:0_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"/> ++ <rsc_op id="10" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"/> ++ <rsc_op id="11" operation="monitor" operation_key="FAKE6_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + <trigger> +- <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-18node4" on_node="18node4" on_node_uuid="4"/> ++ <rsc_op id="12" operation="monitor" operation_key="FAKE7_monitor_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="73"> ++ <synapse id="71"> + <action_set> +- <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"> ++ <pseudo_event id="3" operation="probe_nodes_complete" operation_key="probe_nodes_complete"> + <attributes /> + </pseudo_event> + </action_set> + <inputs> + <trigger> +- <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ <rsc_op id="4" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="20" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-18node4" on_node="18node4" on_node_uuid="4"/> + </trigger> + </inputs> + </synapse> +- <synapse id="74"> ++ <synapse id="72"> + <action_set> +- <pseudo_event id="5" operation="all_stopped" operation_key="all_stopped"> ++ <pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"> + <attributes /> + </pseudo_event> + </action_set> + <inputs> + <trigger> +- <rsc_op id="43" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> +- </trigger> +- <trigger> +- <rsc_op id="46" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- <trigger> +- <rsc_op id="49" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18node1"/> + </trigger> + </inputs> + </synapse> +diff --git a/pengine/test10/resource-discovery.scores b/pengine/test10/resource-discovery.scores +index e1fa78e..9b56b96 100644 +--- a/pengine/test10/resource-discovery.scores ++++ b/pengine/test10/resource-discovery.scores +@@ -1,197 +1,169 @@ + Allocation scores: +-clone_color: FAKECLONE1-clone allocation score on 18builder: 0 + clone_color: FAKECLONE1-clone allocation score on 18node1: 0 +-clone_color: FAKECLONE1-clone allocation score on 18node2: 0 +-clone_color: FAKECLONE1-clone allocation score on 18node3: 0 +-clone_color: FAKECLONE1-clone allocation score on 18node4: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node2: -INFINITY ++clone_color: FAKECLONE1-clone allocation score on 18node3: -INFINITY ++clone_color: FAKECLONE1-clone allocation score on 18node4: -INFINITY + clone_color: FAKECLONE1-clone allocation score on remote1: 0 +-clone_color: FAKECLONE1:0 allocation score on 18builder: 0 + clone_color: FAKECLONE1:0 allocation score on 18node1: 0 +-clone_color: FAKECLONE1:0 allocation score on 18node2: 0 +-clone_color: FAKECLONE1:0 allocation score on 18node3: 0 +-clone_color: FAKECLONE1:0 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node2: -INFINITY ++clone_color: FAKECLONE1:0 allocation score on 18node3: -INFINITY ++clone_color: FAKECLONE1:0 allocation score on 18node4: -INFINITY + clone_color: FAKECLONE1:0 allocation score on remote1: 0 +-clone_color: FAKECLONE1:1 allocation score on 18builder: 0 + clone_color: FAKECLONE1:1 allocation score on 18node1: 0 +-clone_color: FAKECLONE1:1 allocation score on 18node2: 0 +-clone_color: FAKECLONE1:1 allocation score on 18node3: 0 +-clone_color: FAKECLONE1:1 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node2: -INFINITY ++clone_color: FAKECLONE1:1 allocation score on 18node3: -INFINITY ++clone_color: FAKECLONE1:1 allocation score on 18node4: -INFINITY + clone_color: FAKECLONE1:1 allocation score on remote1: 0 +-clone_color: FAKECLONE1:2 allocation score on 18builder: 0 + clone_color: FAKECLONE1:2 allocation score on 18node1: 0 +-clone_color: FAKECLONE1:2 allocation score on 18node2: 0 +-clone_color: FAKECLONE1:2 allocation score on 18node3: 0 +-clone_color: FAKECLONE1:2 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node2: -INFINITY ++clone_color: FAKECLONE1:2 allocation score on 18node3: -INFINITY ++clone_color: FAKECLONE1:2 allocation score on 18node4: -INFINITY + clone_color: FAKECLONE1:2 allocation score on remote1: 0 +-clone_color: FAKECLONE1:3 allocation score on 18builder: 0 + clone_color: FAKECLONE1:3 allocation score on 18node1: 0 +-clone_color: FAKECLONE1:3 allocation score on 18node2: 0 +-clone_color: FAKECLONE1:3 allocation score on 18node3: 0 +-clone_color: FAKECLONE1:3 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node2: -INFINITY ++clone_color: FAKECLONE1:3 allocation score on 18node3: -INFINITY ++clone_color: FAKECLONE1:3 allocation score on 18node4: -INFINITY + clone_color: FAKECLONE1:3 allocation score on remote1: 0 +-clone_color: FAKECLONE1:4 allocation score on 18builder: 0 + clone_color: FAKECLONE1:4 allocation score on 18node1: 0 +-clone_color: FAKECLONE1:4 allocation score on 18node2: 0 +-clone_color: FAKECLONE1:4 allocation score on 18node3: 0 +-clone_color: FAKECLONE1:4 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node2: -INFINITY ++clone_color: FAKECLONE1:4 allocation score on 18node3: -INFINITY ++clone_color: FAKECLONE1:4 allocation score on 18node4: -INFINITY + clone_color: FAKECLONE1:4 allocation score on remote1: 0 +-clone_color: FAKECLONE1:5 allocation score on 18builder: 0 +-clone_color: FAKECLONE1:5 allocation score on 18node1: 0 +-clone_color: FAKECLONE1:5 allocation score on 18node2: 0 +-clone_color: FAKECLONE1:5 allocation score on 18node3: 0 +-clone_color: FAKECLONE1:5 allocation score on 18node4: 0 +-clone_color: FAKECLONE1:5 allocation score on remote1: 0 +-clone_color: FAKECLONE2-clone allocation score on 18builder: 0 + clone_color: FAKECLONE2-clone allocation score on 18node1: 0 + clone_color: FAKECLONE2-clone allocation score on 18node2: 0 + clone_color: FAKECLONE2-clone allocation score on 18node3: 0 + clone_color: FAKECLONE2-clone allocation score on 18node4: 0 + clone_color: FAKECLONE2-clone allocation score on remote1: 0 +-clone_color: FAKECLONE2:0 allocation score on 18builder: 0 + clone_color: FAKECLONE2:0 allocation score on 18node1: 0 + clone_color: FAKECLONE2:0 allocation score on 18node2: 0 + clone_color: FAKECLONE2:0 allocation score on 18node3: 0 + clone_color: FAKECLONE2:0 allocation score on 18node4: 0 + clone_color: FAKECLONE2:0 allocation score on remote1: 0 +-clone_color: FAKECLONE2:1 allocation score on 18builder: 0 + clone_color: FAKECLONE2:1 allocation score on 18node1: 0 + clone_color: FAKECLONE2:1 allocation score on 18node2: 0 + clone_color: FAKECLONE2:1 allocation score on 18node3: 0 + clone_color: FAKECLONE2:1 allocation score on 18node4: 0 + clone_color: FAKECLONE2:1 allocation score on remote1: 0 +-clone_color: FAKECLONE2:2 allocation score on 18builder: 0 + clone_color: FAKECLONE2:2 allocation score on 18node1: 0 + clone_color: FAKECLONE2:2 allocation score on 18node2: 0 + clone_color: FAKECLONE2:2 allocation score on 18node3: 0 + clone_color: FAKECLONE2:2 allocation score on 18node4: 0 + clone_color: FAKECLONE2:2 allocation score on remote1: 0 +-clone_color: FAKECLONE2:3 allocation score on 18builder: 0 + clone_color: FAKECLONE2:3 allocation score on 18node1: 0 + clone_color: FAKECLONE2:3 allocation score on 18node2: 0 + clone_color: FAKECLONE2:3 allocation score on 18node3: 0 + clone_color: FAKECLONE2:3 allocation score on 18node4: 0 + clone_color: FAKECLONE2:3 allocation score on remote1: 0 +-clone_color: FAKECLONE2:4 allocation score on 18builder: 0 + clone_color: FAKECLONE2:4 allocation score on 18node1: 0 + clone_color: FAKECLONE2:4 allocation score on 18node2: 0 + clone_color: FAKECLONE2:4 allocation score on 18node3: 0 + clone_color: FAKECLONE2:4 allocation score on 18node4: 0 + clone_color: FAKECLONE2:4 allocation score on remote1: 0 +-clone_color: FAKECLONE2:5 allocation score on 18builder: 0 +-clone_color: FAKECLONE2:5 allocation score on 18node1: 0 +-clone_color: FAKECLONE2:5 allocation score on 18node2: 0 +-clone_color: FAKECLONE2:5 allocation score on 18node3: 0 +-clone_color: FAKECLONE2:5 allocation score on 18node4: 0 +-clone_color: FAKECLONE2:5 allocation score on remote1: 0 +-native_color: FAKE1 allocation score on 18builder: 0 +-native_color: FAKE1 allocation score on 18node1: 0 +-native_color: FAKE1 allocation score on 18node2: 0 +-native_color: FAKE1 allocation score on 18node3: 0 ++group_color: FAKE6 allocation score on 18node1: 0 ++group_color: FAKE6 allocation score on 18node2: 0 ++group_color: FAKE6 allocation score on 18node3: -INFINITY ++group_color: FAKE6 allocation score on 18node4: -INFINITY ++group_color: FAKE6 allocation score on remote1: -INFINITY ++group_color: FAKE7 allocation score on 18node1: 0 ++group_color: FAKE7 allocation score on 18node2: 0 ++group_color: FAKE7 allocation score on 18node3: -INFINITY ++group_color: FAKE7 allocation score on 18node4: -INFINITY ++group_color: FAKE7 allocation score on remote1: -INFINITY ++group_color: FAKEGROUP allocation score on 18node1: 0 ++group_color: FAKEGROUP allocation score on 18node2: 0 ++group_color: FAKEGROUP allocation score on 18node3: -INFINITY ++group_color: FAKEGROUP allocation score on 18node4: -INFINITY ++group_color: FAKEGROUP allocation score on remote1: -INFINITY ++native_color: FAKE1 allocation score on 18node1: -INFINITY ++native_color: FAKE1 allocation score on 18node2: -INFINITY ++native_color: FAKE1 allocation score on 18node3: -INFINITY + native_color: FAKE1 allocation score on 18node4: 0 + native_color: FAKE1 allocation score on remote1: -INFINITY +-native_color: FAKE2 allocation score on 18builder: 0 +-native_color: FAKE2 allocation score on 18node1: 0 +-native_color: FAKE2 allocation score on 18node2: -INFINITY +-native_color: FAKE2 allocation score on 18node3: 0 +-native_color: FAKE2 allocation score on 18node4: 0 +-native_color: FAKE2 allocation score on remote1: 0 +-native_color: FAKE3 allocation score on 18builder: 0 +-native_color: FAKE3 allocation score on 18node1: 0 +-native_color: FAKE3 allocation score on 18node2: 0 ++native_color: FAKE2 allocation score on 18node1: 10 ++native_color: FAKE2 allocation score on 18node2: 100 ++native_color: FAKE2 allocation score on 18node3: -INFINITY ++native_color: FAKE2 allocation score on 18node4: -INFINITY ++native_color: FAKE2 allocation score on remote1: -INFINITY ++native_color: FAKE3 allocation score on 18node1: -INFINITY ++native_color: FAKE3 allocation score on 18node2: -INFINITY + native_color: FAKE3 allocation score on 18node3: INFINITY +-native_color: FAKE3 allocation score on 18node4: 0 +-native_color: FAKE3 allocation score on remote1: 0 +-native_color: FAKE4 allocation score on 18builder: 0 +-native_color: FAKE4 allocation score on 18node1: 0 +-native_color: FAKE4 allocation score on 18node2: 0 +-native_color: FAKE4 allocation score on 18node3: 0 ++native_color: FAKE3 allocation score on 18node4: -INFINITY ++native_color: FAKE3 allocation score on remote1: -INFINITY ++native_color: FAKE4 allocation score on 18node1: -INFINITY ++native_color: FAKE4 allocation score on 18node2: -INFINITY ++native_color: FAKE4 allocation score on 18node3: -INFINITY + native_color: FAKE4 allocation score on 18node4: 0 +-native_color: FAKE4 allocation score on remote1: 0 +-native_color: FAKE5 allocation score on 18builder: 0 ++native_color: FAKE4 allocation score on remote1: -INFINITY + native_color: FAKE5 allocation score on 18node1: 0 + native_color: FAKE5 allocation score on 18node2: 0 + native_color: FAKE5 allocation score on 18node3: 0 + native_color: FAKE5 allocation score on 18node4: 0 + native_color: FAKE5 allocation score on remote1: 0 +-native_color: FAKECLONE1:0 allocation score on 18builder: 0 ++native_color: FAKE6 allocation score on 18node1: 0 ++native_color: FAKE6 allocation score on 18node2: 0 ++native_color: FAKE6 allocation score on 18node3: -INFINITY ++native_color: FAKE6 allocation score on 18node4: -INFINITY ++native_color: FAKE6 allocation score on remote1: -INFINITY ++native_color: FAKE7 allocation score on 18node1: 0 ++native_color: FAKE7 allocation score on 18node2: -INFINITY ++native_color: FAKE7 allocation score on 18node3: -INFINITY ++native_color: FAKE7 allocation score on 18node4: -INFINITY ++native_color: FAKE7 allocation score on remote1: -INFINITY + native_color: FAKECLONE1:0 allocation score on 18node1: 0 +-native_color: FAKECLONE1:0 allocation score on 18node2: 0 +-native_color: FAKECLONE1:0 allocation score on 18node3: 0 +-native_color: FAKECLONE1:0 allocation score on 18node4: 0 ++native_color: FAKECLONE1:0 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:0 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE1:0 allocation score on 18node4: -INFINITY + native_color: FAKECLONE1:0 allocation score on remote1: 0 +-native_color: FAKECLONE1:1 allocation score on 18builder: -INFINITY +-native_color: FAKECLONE1:1 allocation score on 18node1: 0 +-native_color: FAKECLONE1:1 allocation score on 18node2: 0 +-native_color: FAKECLONE1:1 allocation score on 18node3: 0 +-native_color: FAKECLONE1:1 allocation score on 18node4: 0 ++native_color: FAKECLONE1:1 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:1 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:1 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE1:1 allocation score on 18node4: -INFINITY + native_color: FAKECLONE1:1 allocation score on remote1: 0 +-native_color: FAKECLONE1:2 allocation score on 18builder: -INFINITY + native_color: FAKECLONE1:2 allocation score on 18node1: -INFINITY +-native_color: FAKECLONE1:2 allocation score on 18node2: 0 +-native_color: FAKECLONE1:2 allocation score on 18node3: 0 +-native_color: FAKECLONE1:2 allocation score on 18node4: 0 +-native_color: FAKECLONE1:2 allocation score on remote1: 0 +-native_color: FAKECLONE1:3 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE1:2 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:2 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE1:2 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE1:2 allocation score on remote1: -INFINITY + native_color: FAKECLONE1:3 allocation score on 18node1: -INFINITY + native_color: FAKECLONE1:3 allocation score on 18node2: -INFINITY +-native_color: FAKECLONE1:3 allocation score on 18node3: 0 +-native_color: FAKECLONE1:3 allocation score on 18node4: 0 +-native_color: FAKECLONE1:3 allocation score on remote1: 0 +-native_color: FAKECLONE1:4 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE1:3 allocation score on remote1: -INFINITY + native_color: FAKECLONE1:4 allocation score on 18node1: -INFINITY + native_color: FAKECLONE1:4 allocation score on 18node2: -INFINITY +-native_color: FAKECLONE1:4 allocation score on 18node3: 0 ++native_color: FAKECLONE1:4 allocation score on 18node3: -INFINITY + native_color: FAKECLONE1:4 allocation score on 18node4: -INFINITY +-native_color: FAKECLONE1:4 allocation score on remote1: 0 +-native_color: FAKECLONE1:5 allocation score on 18builder: -INFINITY +-native_color: FAKECLONE1:5 allocation score on 18node1: -INFINITY +-native_color: FAKECLONE1:5 allocation score on 18node2: -INFINITY +-native_color: FAKECLONE1:5 allocation score on 18node3: 0 +-native_color: FAKECLONE1:5 allocation score on 18node4: -INFINITY +-native_color: FAKECLONE1:5 allocation score on remote1: -INFINITY +-native_color: FAKECLONE2:0 allocation score on 18builder: 0 ++native_color: FAKECLONE1:4 allocation score on remote1: -INFINITY + native_color: FAKECLONE2:0 allocation score on 18node1: 0 + native_color: FAKECLONE2:0 allocation score on 18node2: 0 + native_color: FAKECLONE2:0 allocation score on 18node3: 0 + native_color: FAKECLONE2:0 allocation score on 18node4: 0 + native_color: FAKECLONE2:0 allocation score on remote1: 0 +-native_color: FAKECLONE2:1 allocation score on 18builder: -INFINITY + native_color: FAKECLONE2:1 allocation score on 18node1: 0 + native_color: FAKECLONE2:1 allocation score on 18node2: 0 +-native_color: FAKECLONE2:1 allocation score on 18node3: 0 ++native_color: FAKECLONE2:1 allocation score on 18node3: -INFINITY + native_color: FAKECLONE2:1 allocation score on 18node4: 0 + native_color: FAKECLONE2:1 allocation score on remote1: 0 +-native_color: FAKECLONE2:2 allocation score on 18builder: -INFINITY + native_color: FAKECLONE2:2 allocation score on 18node1: -INFINITY + native_color: FAKECLONE2:2 allocation score on 18node2: 0 +-native_color: FAKECLONE2:2 allocation score on 18node3: 0 ++native_color: FAKECLONE2:2 allocation score on 18node3: -INFINITY + native_color: FAKECLONE2:2 allocation score on 18node4: 0 + native_color: FAKECLONE2:2 allocation score on remote1: 0 +-native_color: FAKECLONE2:3 allocation score on 18builder: -INFINITY + native_color: FAKECLONE2:3 allocation score on 18node1: -INFINITY + native_color: FAKECLONE2:3 allocation score on 18node2: -INFINITY +-native_color: FAKECLONE2:3 allocation score on 18node3: 0 ++native_color: FAKECLONE2:3 allocation score on 18node3: -INFINITY + native_color: FAKECLONE2:3 allocation score on 18node4: 0 + native_color: FAKECLONE2:3 allocation score on remote1: 0 +-native_color: FAKECLONE2:4 allocation score on 18builder: -INFINITY + native_color: FAKECLONE2:4 allocation score on 18node1: -INFINITY + native_color: FAKECLONE2:4 allocation score on 18node2: -INFINITY +-native_color: FAKECLONE2:4 allocation score on 18node3: 0 ++native_color: FAKECLONE2:4 allocation score on 18node3: -INFINITY + native_color: FAKECLONE2:4 allocation score on 18node4: -INFINITY + native_color: FAKECLONE2:4 allocation score on remote1: 0 +-native_color: FAKECLONE2:5 allocation score on 18builder: -INFINITY +-native_color: FAKECLONE2:5 allocation score on 18node1: -INFINITY +-native_color: FAKECLONE2:5 allocation score on 18node2: -INFINITY +-native_color: FAKECLONE2:5 allocation score on 18node3: 0 +-native_color: FAKECLONE2:5 allocation score on 18node4: -INFINITY +-native_color: FAKECLONE2:5 allocation score on remote1: -INFINITY +-native_color: remote1 allocation score on 18builder: 0 + native_color: remote1 allocation score on 18node1: 0 + native_color: remote1 allocation score on 18node2: 0 + native_color: remote1 allocation score on 18node3: 0 + native_color: remote1 allocation score on 18node4: 0 + native_color: remote1 allocation score on remote1: -INFINITY +-native_color: shooter allocation score on 18builder: 0 + native_color: shooter allocation score on 18node1: 0 + native_color: shooter allocation score on 18node2: 0 + native_color: shooter allocation score on 18node3: 0 +diff --git a/pengine/test10/resource-discovery.summary b/pengine/test10/resource-discovery.summary +index af0e5b3..e3d23a5 100644 +--- a/pengine/test10/resource-discovery.summary ++++ b/pengine/test10/resource-discovery.summary +@@ -1,124 +1,128 @@ + + Current cluster status: +-Online: [ 18builder 18node1 18node2 18node3 18node4 ] ++Online: [ 18node1 18node2 18node3 18node4 ] + RemoteOFFLINE: [ remote1 ] + +- shooter (stonith:fence_xvm): Started 18node1 ++ shooter (stonith:fence_xvm): Stopped + remote1 (ocf::pacemaker:remote): Stopped + FAKE1 (ocf::heartbeat:Dummy): Stopped +- FAKE2 (ocf::heartbeat:Dummy): Started 18node2 +- FAKE3 (ocf::heartbeat:Dummy): Started 18builder +- FAKE4 (ocf::heartbeat:Dummy): Started 18node1 ++ FAKE2 (ocf::heartbeat:Dummy): Stopped ++ FAKE3 (ocf::heartbeat:Dummy): Stopped ++ FAKE4 (ocf::heartbeat:Dummy): Stopped + FAKE5 (ocf::heartbeat:Dummy): Stopped + Clone Set: FAKECLONE1-clone [FAKECLONE1] +- Stopped: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Stopped: [ 18node1 18node2 18node3 18node4 remote1 ] + Clone Set: FAKECLONE2-clone [FAKECLONE2] +- Stopped: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Stopped: [ 18node1 18node2 18node3 18node4 remote1 ] ++ Resource Group: FAKEGROUP ++ FAKE6 (ocf::heartbeat:Dummy): Stopped ++ FAKE7 (ocf::heartbeat:Dummy): Stopped + + Transition Summary: +- * Start remote1 (18builder) +- * Start FAKE1 (18node2) +- * Move FAKE2 (Started 18node2 -> 18node3) +- * Move FAKE3 (Started 18builder -> 18node3) +- * Move FAKE4 (Started 18node1 -> 18node4) ++ * Start shooter (18node2) ++ * Start remote1 (18node1) ++ * Start FAKE1 (18node4) ++ * Start FAKE2 (18node2) ++ * Start FAKE3 (18node3) ++ * Start FAKE4 (18node4) + * Start FAKE5 (remote1) +- * Start FAKECLONE1:0 (18builder) +- * Start FAKECLONE1:1 (18node1) +- * Start FAKECLONE1:2 (18node2) +- * Start FAKECLONE1:3 (18node4) +- * Start FAKECLONE1:4 (remote1) +- * Start FAKECLONE1:5 (18node3) +- * Start FAKECLONE2:0 (18builder) ++ * Start FAKECLONE1:0 (18node1) ++ * Start FAKECLONE1:1 (remote1) ++ * Start FAKECLONE2:0 (18node3) + * Start FAKECLONE2:1 (18node1) + * Start FAKECLONE2:2 (18node2) + * Start FAKECLONE2:3 (18node4) + * Start FAKECLONE2:4 (remote1) +- * Start FAKECLONE2:5 (18node3) ++ * Start FAKE6 (18node1) ++ * Start FAKE7 (18node1) + + Executing cluster transition: + * Resource action: shooter monitor on 18node4 + * Resource action: shooter monitor on 18node3 ++ * Resource action: shooter monitor on 18node2 ++ * Resource action: shooter monitor on 18node1 + * Resource action: remote1 monitor on 18node4 + * Resource action: remote1 monitor on 18node3 ++ * Resource action: remote1 monitor on 18node2 ++ * Resource action: remote1 monitor on 18node1 + * Resource action: FAKE1 monitor on 18node4 +- * Resource action: FAKE1 monitor on 18node3 +- * Resource action: FAKE1 monitor on 18node2 +- * Resource action: FAKE1 monitor on 18node1 +- * Resource action: FAKE1 monitor on 18builder ++ * Resource action: FAKE2 monitor on 18node2 ++ * Resource action: FAKE2 monitor on 18node1 + * Resource action: FAKE3 monitor on 18node3 + * Resource action: FAKE4 monitor on 18node4 + * Resource action: FAKE5 monitor on 18node4 + * Resource action: FAKE5 monitor on 18node3 + * Resource action: FAKE5 monitor on 18node2 + * Resource action: FAKE5 monitor on 18node1 +- * Resource action: FAKE5 monitor on 18builder ++ * Resource action: FAKECLONE1:0 monitor on 18node1 + * Pseudo action: FAKECLONE1-clone_start_0 +- * Resource action: FAKECLONE2:0 monitor on 18builder ++ * Resource action: FAKECLONE2:0 monitor on 18node3 + * Resource action: FAKECLONE2:1 monitor on 18node1 + * Resource action: FAKECLONE2:3 monitor on 18node4 +- * Resource action: FAKECLONE2:5 monitor on 18node3 + * Pseudo action: FAKECLONE2-clone_start_0 ++ * Pseudo action: FAKEGROUP_start_0 ++ * Resource action: FAKE6 monitor on 18node2 ++ * Resource action: FAKE6 monitor on 18node1 ++ * Resource action: FAKE7 monitor on 18node2 ++ * Resource action: FAKE7 monitor on 18node1 + * Pseudo action: probe_nodes_complete +- * Resource action: remote1 start on 18builder ++ * Resource action: remote1 start on 18node1 + * Resource action: FAKE5 monitor on remote1 +- * Resource action: FAKECLONE1:4 monitor on remote1 ++ * Resource action: FAKECLONE1:1 monitor on remote1 + * Resource action: FAKECLONE2:4 monitor on remote1 + * Pseudo action: probe_complete +- * Resource action: remote1 monitor=60000 on 18builder +- * Resource action: FAKE1 start on 18node2 +- * Resource action: FAKE2 stop on 18node2 +- * Resource action: FAKE3 stop on 18builder +- * Resource action: FAKE4 stop on 18node1 ++ * Resource action: shooter start on 18node2 ++ * Resource action: remote1 monitor=60000 on 18node1 ++ * Resource action: FAKE1 start on 18node4 ++ * Resource action: FAKE2 start on 18node2 ++ * Resource action: FAKE3 start on 18node3 ++ * Resource action: FAKE4 start on 18node4 + * Resource action: FAKE5 start on remote1 +- * Resource action: FAKECLONE1:0 start on 18builder +- * Resource action: FAKECLONE1:1 start on 18node1 +- * Resource action: FAKECLONE1:2 start on 18node2 +- * Resource action: FAKECLONE1:3 start on 18node4 +- * Resource action: FAKECLONE1:4 start on remote1 +- * Resource action: FAKECLONE1:5 start on 18node3 ++ * Resource action: FAKECLONE1:0 start on 18node1 ++ * Resource action: FAKECLONE1:1 start on remote1 + * Pseudo action: FAKECLONE1-clone_running_0 +- * Resource action: FAKECLONE2:0 start on 18builder ++ * Resource action: FAKECLONE2:0 start on 18node3 + * Resource action: FAKECLONE2:1 start on 18node1 + * Resource action: FAKECLONE2:2 start on 18node2 + * Resource action: FAKECLONE2:3 start on 18node4 + * Resource action: FAKECLONE2:4 start on remote1 +- * Resource action: FAKECLONE2:5 start on 18node3 + * Pseudo action: FAKECLONE2-clone_running_0 +- * Pseudo action: all_stopped +- * Resource action: FAKE1 monitor=60000 on 18node2 +- * Resource action: FAKE2 start on 18node3 +- * Resource action: FAKE3 start on 18node3 +- * Resource action: FAKE4 start on 18node4 ++ * Resource action: FAKE6 start on 18node1 ++ * Resource action: FAKE7 start on 18node1 ++ * Resource action: shooter monitor=60000 on 18node2 ++ * Resource action: FAKE1 monitor=60000 on 18node4 ++ * Resource action: FAKE2 monitor=60000 on 18node2 ++ * Resource action: FAKE3 monitor=60000 on 18node3 ++ * Resource action: FAKE4 monitor=60000 on 18node4 + * Resource action: FAKE5 monitor=60000 on remote1 +- * Resource action: FAKECLONE1:0 monitor=60000 on 18builder +- * Resource action: FAKECLONE1:1 monitor=60000 on 18node1 +- * Resource action: FAKECLONE1:2 monitor=60000 on 18node2 +- * Resource action: FAKECLONE1:3 monitor=60000 on 18node4 +- * Resource action: FAKECLONE1:4 monitor=60000 on remote1 +- * Resource action: FAKECLONE1:5 monitor=60000 on 18node3 +- * Resource action: FAKECLONE2:0 monitor=60000 on 18builder ++ * Resource action: FAKECLONE1:0 monitor=60000 on 18node1 ++ * Resource action: FAKECLONE1:1 monitor=60000 on remote1 ++ * Resource action: FAKECLONE2:0 monitor=60000 on 18node3 + * Resource action: FAKECLONE2:1 monitor=60000 on 18node1 + * Resource action: FAKECLONE2:2 monitor=60000 on 18node2 + * Resource action: FAKECLONE2:3 monitor=60000 on 18node4 + * Resource action: FAKECLONE2:4 monitor=60000 on remote1 +- * Resource action: FAKECLONE2:5 monitor=60000 on 18node3 +- * Resource action: FAKE2 monitor=60000 on 18node3 +- * Resource action: FAKE3 monitor=60000 on 18node3 +- * Resource action: FAKE4 monitor=60000 on 18node4 ++ * Pseudo action: FAKEGROUP_running_0 ++ * Resource action: FAKE6 monitor=10000 on 18node1 ++ * Resource action: FAKE7 monitor=10000 on 18node1 + + Revised cluster status: +-Online: [ 18builder 18node1 18node2 18node3 18node4 ] ++Online: [ 18node1 18node2 18node3 18node4 ] + RemoteOnline: [ remote1 ] + +- shooter (stonith:fence_xvm): Started 18node1 +- remote1 (ocf::pacemaker:remote): Started 18builder +- FAKE1 (ocf::heartbeat:Dummy): Started 18node2 +- FAKE2 (ocf::heartbeat:Dummy): Started 18node3 ++ shooter (stonith:fence_xvm): Started 18node2 ++ remote1 (ocf::pacemaker:remote): Started 18node1 ++ FAKE1 (ocf::heartbeat:Dummy): Started 18node4 ++ FAKE2 (ocf::heartbeat:Dummy): Started 18node2 + FAKE3 (ocf::heartbeat:Dummy): Started 18node3 + FAKE4 (ocf::heartbeat:Dummy): Started 18node4 + FAKE5 (ocf::heartbeat:Dummy): Started remote1 + Clone Set: FAKECLONE1-clone [FAKECLONE1] +- Started: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Started: [ 18node1 remote1 ] ++ Stopped: [ 18node2 18node3 18node4 ] + Clone Set: FAKECLONE2-clone [FAKECLONE2] +- Started: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Started: [ 18node1 18node2 18node3 18node4 remote1 ] ++ Resource Group: FAKEGROUP ++ FAKE6 (ocf::heartbeat:Dummy): Started 18node1 ++ FAKE7 (ocf::heartbeat:Dummy): Started 18node1 + +diff --git a/pengine/test10/resource-discovery.xml b/pengine/test10/resource-discovery.xml +index 5836804..8b517df 100644 +--- a/pengine/test10/resource-discovery.xml ++++ b/pengine/test10/resource-discovery.xml +@@ -1,4 +1,4 @@ +-<cib epoch="11" num_updates="1" admin_epoch="0" validate-with="pacemaker-next" cib-last-written="Tue Sep 3 17:59:24 2013" update-origin="18builder" update-client="crm_resource" crm_feature_set="3.0.7" have-quorum="1" dc-uuid="5"> ++<cib admin_epoch="0" cib-last-written="Tue Sep 3 17:59:24 2013" crm_feature_set="3.0.7" dc-uuid="5" epoch="13" have-quorum="1" num_updates="0" update-client="crm_resource" update-origin="18builder" validate-with="pacemaker-next"> + <configuration> + <crm_config> + <cluster_property_set id="cib-bootstrap-options"> +@@ -11,7 +11,6 @@ + <node id="2" uname="18node2"/> + <node id="3" uname="18node3"/> + <node id="4" uname="18node4"/> +- <node id="5" uname="18builder"/> + </nodes> + <resources> + <primitive class="stonith" id="shooter" type="fence_xvm"> +@@ -29,16 +28,14 @@ + </primitive> + <primitive class="ocf" id="FAKE1" provider="heartbeat" type="Dummy"> + <instance_attributes id="FAKE1-instance_attributes"/> +- <meta_attributes id="FAKE1-meta_attributes"> +- </meta_attributes> ++ <meta_attributes id="FAKE1-meta_attributes"/> + <operations> + <op id="FAKE1-monitor-interval-60s" interval="60s" name="monitor"/> + </operations> + </primitive> + <primitive class="ocf" id="FAKE2" provider="heartbeat" type="Dummy"> + <instance_attributes id="FAKE2-instance_attributes"/> +- <meta_attributes id="FAKE2-meta_attributes"> +- </meta_attributes> ++ <meta_attributes id="FAKE2-meta_attributes"/> + <operations> + <op id="FAKE2-monitor-interval-60s" interval="60s" name="monitor"/> + </operations> +@@ -77,109 +74,70 @@ + </operations> + </primitive> + </clone> ++ <group id="FAKEGROUP"> ++ <primitive class="ocf" id="FAKE6" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE6-instance_attributes"/> ++ <operations> ++ <op id="FAKE6-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE6-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE6-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE7" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE7-instance_attributes"/> ++ <operations> ++ <op id="FAKE7-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="FAKE7-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="FAKE7-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ </group> + </resources> + <constraints> +- <rsc_location id="location-FAKE1-remote1--INFINITY" node="remote1" rsc="FAKE1" score="-INFINITY" resource-discovery="never" /> +- <rsc_location id="location-FAKE2-18node2--INFINITY" node="18node2" rsc="FAKE2" score="-INFINITY" resource-discovery="exclusive" /> +- <rsc_location id="location-FAKE3-18node3--INFINITY" node="18node3" rsc="FAKE3" score="INFINITY" resource-discovery="exclusive" /> +- <rsc_location id="location-FAKE4-1-18node3--INFINITY" node="18node4" rsc="FAKE4" score="0" resource-discovery="always" /> +- <rsc_location id="location-FAKE4-2-18node3--INFINITY" node="18node4" rsc="FAKE4" score="0" resource-discovery="never" /> +- <rsc_location id="location-FAKE4-3-18node3--INFINITY" node="18node4" rsc="FAKE4" score="0" resource-discovery="exclusive" /> +- <rsc_location id="location-FAKE5-18node3--INFINITY" node="18node4" rsc="FAKE5" score="0" resource-discovery="always" /> +- <rsc_location id="location-FAKECLONE1-remote--INFINITY" node="remote1" rsc="FAKECLONE1-clone" score="0" resource-discovery="exclusive" /> +- <rsc_location id="location-FAKECLONE2-18node2--INFINITY" node="18node2" rsc="FAKECLONE2-clone" score="0" resource-discovery="never" /> ++ <rsc_location id="location-FAKE1-remote1" node="remote1" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> ++ <rsc_location id="location-FAKE1-18node1" node="18node1" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> ++ <rsc_location id="location-FAKE1-18node2" node="18node2" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> ++ <rsc_location id="location-FAKE1-18node3" node="18node3" resource-discovery="never" rsc="FAKE1" score="-INFINITY"/> ++ <rsc_location id="location-FAKE2-18node1" node="18node1" resource-discovery="exclusive" rsc="FAKE2" score="10"/> ++ <rsc_location id="location-FAKE2-18node2" node="18node2" resource-discovery="exclusive" rsc="FAKE2" score="100"/> ++ <rsc_location id="location-FAKE3-18node3--INFINITY" node="18node3" resource-discovery="exclusive" rsc="FAKE3" score="INFINITY"/> ++ <rsc_location id="location-FAKE4-1-18node3--INFINITY" node="18node4" resource-discovery="always" rsc="FAKE4" score="0"/> ++ <rsc_location id="location-FAKE4-2-18node3--INFINITY" node="18node4" resource-discovery="never" rsc="FAKE4" score="0"/> ++ <rsc_location id="location-FAKE4-3-18node3--INFINITY" node="18node4" resource-discovery="exclusive" rsc="FAKE4" score="0"/> ++ <rsc_location id="location-FAKE5-18node3--INFINITY" node="18node4" resource-discovery="always" rsc="FAKE5" score="0"/> ++ <rsc_location id="location-FAKECLONE1-remote--INFINITY" node="remote1" resource-discovery="exclusive" rsc="FAKECLONE1-clone" score="0"/> ++ <rsc_location id="location-FAKECLONE1-18node1-INFINITY" node="18node1" resource-discovery="exclusive" rsc="FAKECLONE1-clone" score="0"/> ++ <rsc_location id="location-FAKECLONE2-18node2--INFINITY" node="18node2" resource-discovery="never" rsc="FAKECLONE2-clone" score="0"/> ++ ++ ++ <rsc_location id="location-FAKEGROUP-18node1" node="18node1" resource-discovery="exclusive" rsc="FAKEGROUP" score="0"/> ++ <rsc_location id="location-FAKEGROUP-18node2" node="18node2" resource-discovery="exclusive" rsc="FAKEGROUP" score="0"/> + </constraints> + </configuration> + <status> +- <node_state id="5" uname="18builder" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> +- <transient_attributes id="5"> +- <instance_attributes id="status-5"> +- </instance_attributes> +- </transient_attributes> +- <lrm id="5"> +- <lrm_resources> +- <lrm_resource id="shooter" type="fence_xvm" class="stonith"> +- <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="11:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;11:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="16" rc-code="0" op-status="0" interval="0" last-run="1378248545" last-rc-change="1378248545" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:3:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;10:3:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="11" rc-code="0" op-status="0" interval="60000" last-rc-change="1378248534" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> +- </lrm_resource> +- <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> +- <lrm_rsc_op id="remote1_last_0" operation_key="remote1_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:6:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;12:6:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="13" rc-code="0" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- <lrm_rsc_op id="remote1_monitor_60000" operation_key="remote1_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:5:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;13:5:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="3" rc-code="0" op-status="0" interval="60000" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> +- </lrm_resource> +- <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="7:9:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;7:9:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="39" rc-code="7" op-status="0" interval="0" last-run="1378249145" last-rc-change="1378249145" exec-time="61" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="18:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;18:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="53" rc-code="0" op-status="0" interval="0" last-run="1378249147" last-rc-change="1378249147" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- <lrm_rsc_op id="FAKE3_monitor_60000" operation_key="FAKE3_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="19:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;19:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="56" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249147" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> +- </lrm_resource> +- <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:12:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;9:12:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="61" rc-code="7" op-status="0" interval="0" last-run="1378249149" last-rc-change="1378249149" exec-time="65" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- </lrm_resources> ++ <node_state crm-debug-origin="remote_init_cib_status" id="remote1" remote_node="true" uname="remote1"> ++ <lrm id="remote1"> ++ <lrm_resources/> + </lrm> + </node_state> +- <node_state id="1" uname="18node1" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"> ++ <node_state crm-debug-origin="do_update_resource" crmd="online" expected="member" id="1" in_ccm="true" join="member" uname="18node1"> + <lrm id="1"> +- <lrm_resources> +- <lrm_resource id="shooter" type="fence_xvm" class="stonith"> +- <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;12:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="9" rc-code="0" op-status="0" interval="0" last-run="1378248547" last-rc-change="1378248547" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;13:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1378248548" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> +- </lrm_resource> +- <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> +- <lrm_rsc_op id="remote1_last_0" operation_key="remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="8:4:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;8:4:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:9:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;9:9:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="25" rc-code="7" op-status="0" interval="0" last-run="1378249144" last-rc-change="1378249144" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE3_last_failure_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:10:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;10:10:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="30" rc-code="0" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="17:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;17:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="33" rc-code="0" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:12:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;22:12:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="40" rc-code="0" op-status="0" interval="0" last-run="1378249148" last-rc-change="1378249148" exec-time="36" queue-time="38" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- <lrm_rsc_op id="FAKE4_monitor_60000" operation_key="FAKE4_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:12:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;23:12:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="44" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249148" exec-time="14" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> +- </lrm_resource> +- </lrm_resources> ++ <lrm_resources/> + </lrm> +- <transient_attributes id="1"> +- <instance_attributes id="status-1"> +- </instance_attributes> +- </transient_attributes> + </node_state> +- <node_state id="2" uname="18node2" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"> ++ <node_state crm-debug-origin="do_update_resource" crmd="online" expected="member" id="2" in_ccm="true" join="member" uname="18node2"> + <lrm id="2"> +- <lrm_resources> +- <lrm_resource id="shooter" type="fence_xvm" class="stonith"> +- <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="8:3:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;8:3:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1378248530" last-rc-change="1378248530" exec-time="980" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> +- <lrm_rsc_op id="remote1_last_0" operation_key="remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:4:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;10:4:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="16:9:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;16:9:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="18" rc-code="0" op-status="0" interval="0" last-run="1378249144" last-rc-change="1378249144" exec-time="18" queue-time="9" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- <lrm_rsc_op id="FAKE2_monitor_60000" operation_key="FAKE2_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="17:9:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;17:9:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="22" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249144" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> +- </lrm_resource> +- <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:10:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;12:10:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="27" rc-code="7" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> +- <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:12:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;13:12:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="32" rc-code="7" op-status="0" interval="0" last-run="1378249148" last-rc-change="1378249148" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> +- </lrm_resource> +- </lrm_resources> ++ <lrm_resources/> + </lrm> +- <transient_attributes id="2"> +- <instance_attributes id="status-2"> +- </instance_attributes> +- </transient_attributes> + </node_state> +- <node_state id="3" uname="18node3" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"/> +- <node_state id="4" uname="18node4" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"/> +- <node_state remote_node="true" id="remote1" uname="remote1" crm-debug-origin="remote_init_cib_status"> +- <transient_attributes id="remote1"> +- <instance_attributes id="status-remote1"> +- </instance_attributes> +- </transient_attributes> ++ <node_state crm-debug-origin="do_update_resource" crmd="online" expected="member" id="3" in_ccm="true" join="member" uname="18node3"> ++ <lrm id="3"> ++ <lrm_resources/> ++ </lrm> + </node_state> ++ <node_state crm-debug-origin="do_update_resource" crmd="online" expected="member" id="4" in_ccm="true" join="member" uname="18node4"/> ++ <lrm id="4"> ++ <lrm_resources/> ++ </lrm> + </status> + </cib> +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 5142b29..74b69e3 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -77,7 +77,7 @@ crm_node_SOURCES = crm_node.c + crm_node_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ + $(COMMONLIBS) $(CLUSTERLIBS) + +-crm_simulate_SOURCES = crm_simulate.c ++crm_simulate_SOURCES = crm_simulate.c fake_transition.c + crm_simulate_CFLAGS = -I$(top_srcdir)/pengine + + crm_simulate_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ +@@ -105,12 +105,14 @@ crm_verify_LDADD = $(top_builddir)/lib/pengine/libpe_status.la \ + crm_attribute_SOURCES = crm_attribute.c + crm_attribute_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la $(COMMONLIBS) + +-crm_resource_SOURCES = crm_resource.c +-crm_resource_LDADD = $(top_builddir)/lib/pengine/libpe_rules.la \ +- $(top_builddir)/lib/lrmd/liblrmd.la \ +- $(top_builddir)/lib/services/libcrmservice.la \ +- $(top_builddir)/lib/pengine/libpe_status.la \ +- $(top_builddir)/pengine/libpengine.la \ ++crm_resource_SOURCES = crm_resource.c fake_transition.c ++crm_resource_CFLAGS = -I$(top_srcdir)/pengine ++crm_resource_LDADD = $(top_builddir)/lib/pengine/libpe_rules.la \ ++ $(top_builddir)/lib/lrmd/liblrmd.la \ ++ $(top_builddir)/lib/services/libcrmservice.la \ ++ $(top_builddir)/lib/pengine/libpe_status.la \ ++ $(top_builddir)/pengine/libpengine.la \ ++ $(top_builddir)/lib/transition/libtransitioner.la \ + $(COMMONLIBS) + + iso8601_SOURCES = test.iso8601.c +diff --git a/tools/crm_failcount b/tools/crm_failcount +index 94a8400..ed697e9 100755 +--- a/tools/crm_failcount ++++ b/tools/crm_failcount +@@ -1,5 +1,6 @@ + #!/bin/bash + ++resource="" + options="" + target=`crm_node -n` + +@@ -11,15 +12,7 @@ if [ $? != 0 ] ; then echo "crm_failcount - A convenience wrapper for crm_attrib + # Note the quotes around `$TEMP': they are essential! + eval set -- "$TEMP" + +-while true ; do +- case "$1" in +- -N|--node) target="$2"; shift; shift;; +- -U|--uname) target="$2"; shift; shift;; +- -v|--attr-value|-i|--attr-id) options="$options $1 $2"; shift; shift;; +- -Q|--quiet|-D|--delete-attr|-G|--get-value|-V) options="$options $1"; shift;; +- -r|--resource-id) options="$options -n fail-count-$2"; shift; shift;; +- --version) crm_attribute --version; exit 0;; +- --help) ++function show_help() { + echo "crm_failcount - A convenience wrapper for crm_attribute"; + echo ""; + echo "Set, update or remove the failcount for the specified resource on the named node"; +@@ -43,10 +36,27 @@ while true ; do + echo " -l, --lifetime=value Until when should the setting take affect." + echo " Valid values: reboot, forever" + echo " -i, --id=value (Advanced) The ID used to identify the attribute" ++} ++ ++while true ; do ++ case "$1" in ++ -N|--node) target="$2"; shift; shift;; ++ -U|--uname) target="$2"; shift; shift;; ++ -v|--attr-value|-i|--attr-id) options="$options $1 $2"; shift; shift;; ++ -Q|--quiet|-D|--delete-attr|-G|--get-value|-V) options="$options $1"; shift;; ++ -r|--resource-id) options="$options -n fail-count-$2"; resource="$2"; shift; shift;; ++ --version) crm_attribute --version; exit 0;; ++ --help) ++ show_help + exit 0;; + --) shift ; break ;; + *) echo "Unknown option: $1. See --help for details." exit 1;; + esac + done + ++if [ "x$resource" = x ]; then ++ echo "You must supply a resource name to check. See 'crm_failcount --help' for details" ++ exit 1 ++fi ++ + crm_attribute -N $target $options -t status -d 0 +diff --git a/tools/crm_resource.c b/tools/crm_resource.c +index ff5effd..6e510e1 100644 +--- a/tools/crm_resource.c ++++ b/tools/crm_resource.c +@@ -43,6 +43,9 @@ + #include <crm/pengine/status.h> + #include <crm/pengine/internal.h> + ++#include "fake_transition.h" ++extern xmlNode *do_calculations(pe_working_set_t * data_set, xmlNode * xml_input, crm_time_t * now); ++ + bool scope_master = FALSE; + gboolean do_force = FALSE; + gboolean BE_QUIET = FALSE; +@@ -1300,6 +1303,373 @@ generate_resource_params(resource_t * rsc, pe_working_set_t * data_set) + return combined; + } + ++static bool resource_is_running_on(resource_t *rsc, const char *host) ++{ ++ bool found = TRUE; ++ GListPtr hIter = NULL; ++ GListPtr hosts = NULL; ++ ++ if(rsc == NULL) { ++ return FALSE; ++ } ++ ++ rsc->fns->location(rsc, &hosts, TRUE); ++ for (hIter = hosts; host != NULL && hIter != NULL; hIter = hIter->next) { ++ pe_node_t *node = (pe_node_t *) hIter->data; ++ ++ if(strcmp(host, node->details->uname) == 0) { ++ crm_trace("Resource %s is running on %s\n", rsc->id, host); ++ goto done; ++ } else if(strcmp(host, node->details->id) == 0) { ++ crm_trace("Resource %s is running on %s\n", rsc->id, host); ++ goto done; ++ } ++ } ++ ++ if(host != NULL) { ++ crm_trace("Resource %s is not running on: %s\n", rsc->id, host); ++ found = FALSE; ++ ++ } else if(host == NULL && hosts == NULL) { ++ crm_trace("Resource %s is not running\n", rsc->id); ++ found = FALSE; ++ } ++ ++ done: ++ ++ g_list_free(hosts); ++ return found; ++} ++ ++static GList *get_active_resources(const char *host, pe_working_set_t *data_set) ++{ ++ GList *rIter = NULL; ++ GList *active = NULL; ++ ++ for (rIter = data_set->resources; rIter != NULL; rIter = rIter->next) { ++ resource_t *rsc = (resource_t *) rIter->data; ++ ++ if(resource_is_running_on(rsc, host)) { ++ active = g_list_append(active, strdup(rsc->id)); ++ } ++ } ++ ++ return active; ++} ++ ++static GList *subtract_lists(GList *from, GList *items) ++{ ++ GList *item = NULL; ++ GList *result = g_list_copy(from); ++ ++ for (item = items; item != NULL; item = item->next) { ++ GList *candidate = NULL; ++ for (candidate = from; candidate != NULL; candidate = candidate->next) { ++ crm_info("Comparing %s with %s", candidate->data, item->data); ++ if(strcmp(candidate->data, item->data) == 0) { ++ result = g_list_remove(result, candidate->data); ++ break; ++ } ++ } ++ } ++ ++ return result; ++} ++ ++static void dump_list(GList *items, const char *tag) ++{ ++ int lpc = 0; ++ GList *item = NULL; ++ ++ for (item = items; item != NULL; item = item->next) { ++ crm_trace("%s[%d]: %s", tag, lpc, item->data); ++ lpc++; ++ } ++} ++ ++static void display_list(GList *items, const char *tag) ++{ ++ GList *item = NULL; ++ ++ for (item = items; item != NULL; item = item->next) { ++ fprintf(stdout, "%s%s\n", tag, (const char *)item->data); ++ } ++} ++ ++static int ++update_dataset(cib_t *cib, pe_working_set_t * data_set, bool simulate) ++{ ++ xmlNode *cib_xml_copy = NULL; ++ int rc = cib->cmds->query(cib, NULL, &cib_xml_copy, cib_scope_local | cib_sync_call); ++ ++ if(rc != pcmk_ok) { ++ fprintf(stdout, "Could not obtain the current CIB: %s (%d)\n", pcmk_strerror(rc), rc); ++ return crm_exit(rc); ++ ++ } else if (cli_config_update(&cib_xml_copy, NULL, FALSE) == FALSE) { ++ fprintf(stderr, "Could not upgrade the current CIB\n"); ++ return -ENOKEY; ++ } ++ ++ set_working_set_defaults(data_set); ++ data_set->input = cib_xml_copy; ++ data_set->now = crm_time_new(NULL); ++ ++ if(simulate) { ++ char *pid = crm_itoa(getpid()); ++ cib_t *shadow_cib = cib_shadow_new(pid); ++ char *shadow_file = get_shadow_file(pid); ++ ++ if (shadow_cib == NULL) { ++ fprintf(stderr, "Could not create shadow cib: '%s'\n", pid); ++ crm_exit(-ENXIO); ++ } ++ ++ rc = write_xml_file(cib_xml_copy, shadow_file, FALSE); ++ ++ if (rc < 0) { ++ fprintf(stderr, "Could not populate shadow cib: %s (%d)\n", pcmk_strerror(rc), rc); ++ free_xml(cib_xml_copy); ++ return rc; ++ } ++ ++ rc = shadow_cib->cmds->signon(shadow_cib, crm_system_name, cib_command); ++ if(rc != pcmk_ok) { ++ fprintf(stderr, "Could not connect to shadow cib: %s (%d)\n", pcmk_strerror(rc), rc); ++ free_xml(cib_xml_copy); ++ return rc; ++ } ++ ++ do_calculations(data_set, cib_xml_copy, NULL); ++ run_simulation(data_set, shadow_cib, NULL, TRUE); ++ rc = update_dataset(shadow_cib, data_set, FALSE); ++ ++ cib_delete(shadow_cib); ++ /* unlink(shadow_file); */ ++ free(shadow_file); ++ ++ } else { ++ cluster_status(data_set); ++ } ++ ++ return rc; ++} ++ ++static int ++max_delay_in(pe_working_set_t * data_set, GList *resources) ++{ ++ int max_delay = 0; ++ GList *item = NULL; ++ ++ for (item = resources; item != NULL; item = item->next) { ++ resource_t *rsc = pe_find_resource(data_set->resources, (const char *)item->data); ++ ++ if(rsc) { ++ char *key = g_strdup_printf("%s_%s_0", rsc->id, RSC_STOP); ++ action_t *stop = custom_action(rsc, key, RSC_STOP, NULL, TRUE, FALSE, data_set); ++ const char *value = g_hash_table_lookup(stop->meta, XML_ATTR_TIMEOUT); ++ int delay = crm_int_helper(value, NULL); ++ ++ if(delay > max_delay) { ++ crm_trace("Calculated new delay of %s ms due to %s", value, rsc->id); ++ max_delay = delay; ++ } ++ ++ pe_free_action(stop); ++ } ++ } ++ ++ ++ return 5 + (max_delay / 1000); ++} ++ ++static int ++resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib) ++{ ++ int rc = 0; ++ int lpc = 0; ++ int before = 0; ++ int step_timeout_s = 0; ++ int sleep_interval = 2; ++ int timeout = timeout_ms / 1000; ++ ++ bool is_clone = FALSE; ++ char *rsc_id = NULL; ++ ++ GList *list_delta = NULL; ++ GList *target_active = NULL; ++ GList *current_active = NULL; ++ GList *restart_target_active = NULL; ++ ++ pe_working_set_t data_set; ++ ++ if(resource_is_running_on(rsc, host) == FALSE) { ++ return -ENXIO; ++ } ++ ++ ++ rsc_id = strdup(rsc->id); ++ if(rsc->variant > pe_group) { ++ is_clone = TRUE; ++ } ++ ++ /* ++ grab full cib ++ determine resource state of list ++ disable or ban ++ poll and and watch for resources to get stopped ++ without --wait, calculate the stop timeout for each step and wait for that ++ if we hit --wait or the service timeout, re-enable or un-ban, report failure and indicate which resources we couldn't take down ++ if everything stopped, re-enable or un-ban ++ poll and and watch for resources to get stopped ++ without --wait, calculate the start timeout for each step and wait for that ++ if we hit --wait or the service timeout, report (different) failure and indicate which resources we couldn't bring back up ++ report success ++ ++ Optimizations: ++ - use constraints to determine ordered list of affected resources ++ - Allow a --no-deps option (aka. --force-restart) ++ */ ++ ++ ++ set_working_set_defaults(&data_set); ++ rc = update_dataset(cib, &data_set, FALSE); ++ if(rc != pcmk_ok) { ++ fprintf(stdout, "Could not get new resource list: %s (%d)\n", pcmk_strerror(rc), rc); ++ return rc; ++ } ++ ++ restart_target_active = get_active_resources(host, &data_set); ++ current_active = get_active_resources(host, &data_set); ++ ++ dump_list(current_active, "Origin"); ++ ++ if(is_clone && host) { ++ BE_QUIET = TRUE; ++ rc = ban_resource(rsc_id, host, NULL, cib); ++ ++ } else { ++ rc = set_resource_attr(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, RSC_STOPPED, FALSE, cib, &data_set); ++ } ++ if(rc != pcmk_ok) { ++ fprintf(stderr, "Could not set target-role for %s: %s (%d)\n", rsc_id, pcmk_strerror(rc), rc); ++ return crm_exit(rc); ++ } ++ ++ rc = update_dataset(cib, &data_set, TRUE); ++ if(rc != pcmk_ok) { ++ fprintf(stderr, "Could not determine which resources would be stopped\n"); ++ goto failure; ++ } ++ ++ target_active = get_active_resources(host, &data_set); ++ dump_list(target_active, "Target"); ++ ++ list_delta = subtract_lists(current_active, target_active); ++ fprintf(stdout, "Waiting for %d resources to stop:\n", g_list_length(list_delta)); ++ display_list(list_delta, " * "); ++ ++ step_timeout_s = timeout / sleep_interval; ++ while(g_list_length(list_delta) > 0) { ++ before = g_list_length(list_delta); ++ if(timeout_ms == 0) { ++ step_timeout_s = max_delay_in(&data_set, list_delta) / sleep_interval; ++ } ++ ++ /* We probably don't need the entire step timeout */ ++ for(lpc = 0; lpc < step_timeout_s && g_list_length(list_delta) > 0; lpc++) { ++ sleep(sleep_interval); ++ if(timeout) { ++ timeout -= sleep_interval; ++ crm_trace("%ds remaining", timeout); ++ } ++ rc = update_dataset(cib, &data_set, FALSE); ++ if(rc != pcmk_ok) { ++ fprintf(stderr, "Could not determine which resources were stopped\n"); ++ goto failure; ++ } ++ ++ current_active = get_active_resources(host, &data_set); ++ list_delta = subtract_lists(current_active, target_active); ++ dump_list(current_active, "Current"); ++ dump_list(list_delta, "Delta"); ++ } ++ ++ crm_trace("%d (was %d) resources remaining", before, g_list_length(list_delta)); ++ if(before == g_list_length(list_delta)) { ++ /* aborted during stop phase, print the contents of list_delta */ ++ fprintf(stderr, "Could not complete shutdown of %s, %d resources remaining\n", rsc_id, g_list_length(list_delta)); ++ display_list(list_delta, " * "); ++ rc = -ETIME; ++ goto failure; ++ } ++ ++ } ++ ++ if(is_clone && host) { ++ rc = clear_resource(rsc_id, host, NULL, cib); ++ ++ } else { ++ rc = delete_resource_attr(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, cib, &data_set); ++ } ++ ++ if(rc != pcmk_ok) { ++ fprintf(stderr, "Could not unset target-role for %s: %s (%d)\n", rsc_id, pcmk_strerror(rc), rc); ++ return crm_exit(rc); ++ } ++ ++ target_active = restart_target_active; ++ list_delta = subtract_lists(target_active, current_active); ++ fprintf(stdout, "Waiting for %d resources to start again:\n", g_list_length(list_delta)); ++ display_list(list_delta, " * "); ++ ++ step_timeout_s = timeout / sleep_interval; ++ while(g_list_length(list_delta) > 0) { ++ if(timeout_ms == 0) { ++ step_timeout_s = max_delay_in(&data_set, list_delta) / sleep_interval; ++ } ++ ++ /* We probably don't need the entire step timeout */ ++ for(lpc = 0; lpc < step_timeout_s && g_list_length(list_delta) > 0; lpc++) { ++ sleep(sleep_interval); ++ if(timeout) { ++ timeout -= sleep_interval; ++ crm_trace("%ds remaining", timeout); ++ } ++ ++ rc = update_dataset(cib, &data_set, FALSE); ++ if(rc != pcmk_ok) { ++ fprintf(stderr, "Could not determine which resources were started\n"); ++ goto failure; ++ } ++ ++ current_active = get_active_resources(host, &data_set); ++ list_delta = subtract_lists(target_active, current_active); ++ dump_list(current_active, "Current"); ++ dump_list(list_delta, "Delta"); ++ } ++ ++ if(before == g_list_length(list_delta)) { ++ /* aborted during start phase, print the contents of list_delta */ ++ fprintf(stdout, "Could not complete restart of %s, %d resources remaining\n", rsc_id, g_list_length(list_delta)); ++ display_list(list_delta, " * "); ++ rc = -ETIME; ++ goto failure; ++ } ++ ++ } while(g_list_length(list_delta) > 0); ++ ++ return pcmk_ok; ++ ++ failure: ++ if(is_clone && host) { ++ clear_resource(rsc_id, host, NULL, cib); ++ ++ } else { ++ delete_resource_attr(rsc_id, NULL, NULL, XML_RSC_ATTR_TARGET_ROLE, cib, &data_set); ++ } ++ return rc; ++} + + /* *INDENT-OFF* */ + static struct crm_option long_options[] = { +@@ -1371,6 +1741,7 @@ static struct crm_option long_options[] = { + {"-spacer-", 1, 0, '-', "\nAdvanced Commands:"}, + {"delete", 0, 0, 'D', "\t\t(Advanced) Delete a resource from the CIB"}, + {"fail", 0, 0, 'F', "\t\t(Advanced) Tell the cluster this resource has failed"}, ++ {"restart", 0, 0, 0, NULL, 1}, + {"force-stop", 0, 0, 0, "\t(Advanced) Bypass the cluster and stop a resource on the local node. Additional detail with -V"}, + {"force-start",0, 0, 0, "\t(Advanced) Bypass the cluster and start a resource on the local node. Additional detail with -V"}, + {"force-check",0, 0, 0, "\t(Advanced) Bypass the cluster and check the state of a resource on the local node. Additional detail with -V\n"}, +@@ -1384,6 +1755,7 @@ static struct crm_option long_options[] = { + {"utilization", 0, 0, 'z', "\tModify a resource's utilization attribute. For use with -p, -g, -d"}, + {"set-name", 1, 0, 's', "\t(Advanced) ID of the instance_attributes object to change"}, + {"nvpair", 1, 0, 'i', "\t(Advanced) ID of the nvpair object to change/delete"}, ++ {"timeout", 1, 0, 'T', "\t(Advanced) How long to wait for --restart to take effect", 1}, + {"force", 0, 0, 'f', "\n" /* Is this actually true anymore? + "\t\tForce the resource to move by creating a rule for the current location and a score of -INFINITY" + "\n\t\tThis should be used if the resource's stickiness and constraint scores total more than INFINITY (Currently 100,000)" +@@ -1444,6 +1816,7 @@ main(int argc, char **argv) + + int rc = pcmk_ok; + int option_index = 0; ++ int timeout_ms = 0; + int argerr = 0; + int flag; + +@@ -1469,6 +1842,7 @@ main(int argc, char **argv) + recursive = TRUE; + + } else if (safe_str_eq("force-stop", longname) ++ || safe_str_eq("restart", longname) + || safe_str_eq("force-start", longname) + || safe_str_eq("force-check", longname)) { + rsc_cmd = flag; +@@ -1618,6 +1992,9 @@ main(int argc, char **argv) + case 't': + rsc_type = optarg; + break; ++ case 'T': ++ timeout_ms = crm_get_msec(optarg); ++ break; + case 'C': + case 'R': + case 'P': +@@ -1769,6 +2146,11 @@ main(int argc, char **argv) + goto bail; + } + ++ } else if (rsc_cmd == 0 && rsc_long_cmd && safe_str_eq(rsc_long_cmd, "restart")) { ++ resource_t *rsc = pe_find_resource(data_set.resources, rsc_id); ++ ++ rc = resource_restart(rsc, host_uname, timeout_ms, cib_conn); ++ + } else if (rsc_cmd == 0 && rsc_long_cmd) { + svc_action_t *op = NULL; + const char *rtype = NULL; +@@ -1801,6 +2183,16 @@ main(int argc, char **argv) + action = "monitor"; + } + ++ if(rsc->variant == pe_clone || rsc->variant == pe_master) { ++ /* Grab the first child resource in the hope its not a group */ ++ rsc = rsc->children->data; ++ } ++ ++ if(rsc->variant == pe_group) { ++ CMD_ERR("Sorry, --%s doesn't support group resources\n", rsc_long_cmd); ++ crm_exit(EOPNOTSUPP); ++ } ++ + rclass = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); + rprov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); + rtype = crm_element_value(rsc->xml, XML_ATTR_TYPE); +diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c +index 7c0dcc7..d4e2238 100644 +--- a/tools/crm_simulate.c ++++ b/tools/crm_simulate.c +@@ -34,19 +34,14 @@ + #include <crm/common/iso8601.h> + #include <crm/pengine/status.h> + #include <allocate.h> ++#include "fake_transition.h" + + cib_t *global_cib = NULL; + GListPtr op_fail = NULL; + gboolean quiet = FALSE; +-gboolean bringing_nodes_online = FALSE; + gboolean print_pending = FALSE; + char *temp_shadow = NULL; +- +-#define new_node_template "//"XML_CIB_TAG_NODE"[@uname='%s']" +-#define node_template "//"XML_CIB_TAG_STATE"[@uname='%s']" +-#define rsc_template "//"XML_CIB_TAG_STATE"[@uname='%s']//"XML_LRM_TAG_RESOURCE"[@id='%s']" +-#define op_template "//"XML_CIB_TAG_STATE"[@uname='%s']//"XML_LRM_TAG_RESOURCE"[@id='%s']/"XML_LRM_TAG_RSC_OP"[@id='%s']" +-/* #define op_template "//"XML_CIB_TAG_STATE"[@uname='%s']//"XML_LRM_TAG_RESOURCE"[@id='%s']/"XML_LRM_TAG_RSC_OP"[@id='%s' and @"XML_LRM_ATTR_CALLID"='%d']" */ ++extern gboolean bringing_nodes_online; + + #define quiet_log(fmt, args...) do { \ + if(quiet == FALSE) { \ +@@ -68,472 +63,6 @@ get_date(void) + return NULL; + } + +-static xmlNode * +-find_resource(xmlNode * cib_node, const char *resource) +-{ +- char *xpath = NULL; +- xmlNode *match = NULL; +- const char *node = crm_element_value(cib_node, XML_ATTR_UNAME); +- int max = strlen(rsc_template) + strlen(resource) + strlen(node) + 1; +- +- xpath = calloc(1, max); +- +- snprintf(xpath, max, rsc_template, node, resource); +- match = get_xpath_object(xpath, cib_node, LOG_DEBUG_2); +- +- free(xpath); +- return match; +-} +- +-static void +-create_node_entry(cib_t * cib_conn, const char *node) +-{ +- int rc = pcmk_ok; +- int max = strlen(new_node_template) + strlen(node) + 1; +- char *xpath = NULL; +- +- xpath = calloc(1, max); +- +- snprintf(xpath, max, new_node_template, node); +- rc = cib_conn->cmds->query(cib_conn, xpath, NULL, cib_xpath | cib_sync_call | cib_scope_local); +- +- if (rc == -ENXIO) { +- xmlNode *cib_object = create_xml_node(NULL, XML_CIB_TAG_NODE); +- +- /* Using node uname as uuid ala corosync/openais */ +- crm_xml_add(cib_object, XML_ATTR_ID, node); +- crm_xml_add(cib_object, XML_ATTR_UNAME, node); +- cib_conn->cmds->create(cib_conn, XML_CIB_TAG_NODES, cib_object, +- cib_sync_call | cib_scope_local); +- /* Not bothering with subsequent query to see if it exists, +- we'll bomb out later in the call to query_node_uuid()... */ +- +- free_xml(cib_object); +- } +- +- free(xpath); +-} +- +-static xmlNode * +-inject_node_state(cib_t * cib_conn, const char *node, const char *uuid) +-{ +- int rc = pcmk_ok; +- int max = strlen(rsc_template) + strlen(node) + 1; +- char *xpath = NULL; +- xmlNode *cib_object = NULL; +- +- xpath = calloc(1, max); +- +- if (bringing_nodes_online) { +- create_node_entry(cib_conn, node); +- } +- +- snprintf(xpath, max, node_template, node); +- rc = cib_conn->cmds->query(cib_conn, xpath, &cib_object, +- cib_xpath | cib_sync_call | cib_scope_local); +- +- if (cib_object && ID(cib_object) == NULL) { +- crm_err("Detected multiple node_state entries for xpath=%s, bailing", xpath); +- crm_log_xml_warn(cib_object, "Duplicates"); +- crm_exit(ENOTUNIQ); +- } +- +- if (rc == -ENXIO) { +- char *found_uuid = NULL; +- +- if (uuid == NULL) { +- query_node_uuid(cib_conn, node, &found_uuid, NULL); +- } else { +- found_uuid = strdup(uuid); +- } +- +- cib_object = create_xml_node(NULL, XML_CIB_TAG_STATE); +- crm_xml_add(cib_object, XML_ATTR_UUID, found_uuid); +- crm_xml_add(cib_object, XML_ATTR_UNAME, node); +- cib_conn->cmds->create(cib_conn, XML_CIB_TAG_STATUS, cib_object, +- cib_sync_call | cib_scope_local); +- free_xml(cib_object); +- free(found_uuid); +- +- rc = cib_conn->cmds->query(cib_conn, xpath, &cib_object, +- cib_xpath | cib_sync_call | cib_scope_local); +- crm_trace("injecting node state for %s. rc is %d", node, rc); +- } +- +- free(xpath); +- CRM_ASSERT(rc == pcmk_ok); +- return cib_object; +-} +- +-static xmlNode * +-modify_node(cib_t * cib_conn, char *node, gboolean up) +-{ +- xmlNode *cib_node = inject_node_state(cib_conn, node, NULL); +- +- if (up) { +- crm_xml_add(cib_node, XML_NODE_IN_CLUSTER, XML_BOOLEAN_YES); +- crm_xml_add(cib_node, XML_NODE_IS_PEER, ONLINESTATUS); +- crm_xml_add(cib_node, XML_NODE_JOIN_STATE, CRMD_JOINSTATE_MEMBER); +- crm_xml_add(cib_node, XML_NODE_EXPECTED, CRMD_JOINSTATE_MEMBER); +- +- } else { +- crm_xml_add(cib_node, XML_NODE_IN_CLUSTER, XML_BOOLEAN_NO); +- crm_xml_add(cib_node, XML_NODE_IS_PEER, OFFLINESTATUS); +- crm_xml_add(cib_node, XML_NODE_JOIN_STATE, CRMD_JOINSTATE_DOWN); +- crm_xml_add(cib_node, XML_NODE_EXPECTED, CRMD_JOINSTATE_DOWN); +- } +- +- crm_xml_add(cib_node, XML_ATTR_ORIGIN, crm_system_name); +- return cib_node; +-} +- +-static void +-inject_transient_attr(xmlNode * cib_node, const char *name, const char *value) +-{ +- xmlNode *attrs = NULL; +- xmlNode *container = NULL; +- xmlNode *nvp = NULL; +- const char *node_uuid = ID(cib_node); +- char *nvp_id = crm_concat(name, node_uuid, '-'); +- +- crm_info("Injecting attribute %s=%s into %s '%s'", name, value, xmlGetNodePath(cib_node), +- ID(cib_node)); +- +- attrs = first_named_child(cib_node, XML_TAG_TRANSIENT_NODEATTRS); +- if (attrs == NULL) { +- attrs = create_xml_node(cib_node, XML_TAG_TRANSIENT_NODEATTRS); +- crm_xml_add(attrs, XML_ATTR_ID, node_uuid); +- } +- +- container = first_named_child(attrs, XML_TAG_ATTR_SETS); +- if (container == NULL) { +- container = create_xml_node(attrs, XML_TAG_ATTR_SETS); +- crm_xml_add(container, XML_ATTR_ID, node_uuid); +- } +- +- nvp = create_xml_node(container, XML_CIB_TAG_NVPAIR); +- crm_xml_add(nvp, XML_ATTR_ID, nvp_id); +- crm_xml_add(nvp, XML_NVPAIR_ATTR_NAME, name); +- crm_xml_add(nvp, XML_NVPAIR_ATTR_VALUE, value); +- +- free(nvp_id); +-} +- +-static xmlNode * +-inject_resource(xmlNode * cib_node, const char *resource, const char *rclass, const char *rtype, +- const char *rprovider) +-{ +- xmlNode *lrm = NULL; +- xmlNode *container = NULL; +- xmlNode *cib_resource = NULL; +- char *xpath = NULL; +- +- cib_resource = find_resource(cib_node, resource); +- if (cib_resource != NULL) { +- return cib_resource; +- } +- +- /* One day, add query for class, provider, type */ +- +- if (rclass == NULL || rtype == NULL) { +- fprintf(stderr, "Resource %s not found in the status section of %s." +- " Please supply the class and type to continue\n", resource, ID(cib_node)); +- return NULL; +- +- } else if (safe_str_neq(rclass, "ocf") +- && safe_str_neq(rclass, "stonith") +- && safe_str_neq(rclass, "heartbeat") +- && safe_str_neq(rclass, "service") +- && safe_str_neq(rclass, "upstart") +- && safe_str_neq(rclass, "systemd") +- && safe_str_neq(rclass, "lsb")) { +- fprintf(stderr, "Invalid class for %s: %s\n", resource, rclass); +- return NULL; +- +- } else if (safe_str_eq(rclass, "ocf") && rprovider == NULL) { +- fprintf(stderr, "Please specify the provider for resource %s\n", resource); +- return NULL; +- } +- +- xpath = (char *)xmlGetNodePath(cib_node); +- crm_info("Injecting new resource %s into %s '%s'", resource, xpath, ID(cib_node)); +- free(xpath); +- +- lrm = first_named_child(cib_node, XML_CIB_TAG_LRM); +- if (lrm == NULL) { +- const char *node_uuid = ID(cib_node); +- +- lrm = create_xml_node(cib_node, XML_CIB_TAG_LRM); +- crm_xml_add(lrm, XML_ATTR_ID, node_uuid); +- } +- +- container = first_named_child(lrm, XML_LRM_TAG_RESOURCES); +- if (container == NULL) { +- container = create_xml_node(lrm, XML_LRM_TAG_RESOURCES); +- } +- +- cib_resource = create_xml_node(container, XML_LRM_TAG_RESOURCE); +- crm_xml_add(cib_resource, XML_ATTR_ID, resource); +- +- crm_xml_add(cib_resource, XML_AGENT_ATTR_CLASS, rclass); +- crm_xml_add(cib_resource, XML_AGENT_ATTR_PROVIDER, rprovider); +- crm_xml_add(cib_resource, XML_ATTR_TYPE, rtype); +- +- return cib_resource; +-} +- +-static lrmd_event_data_t * +-create_op(xmlNode * cib_resource, const char *task, int interval, int outcome) +-{ +- lrmd_event_data_t *op = NULL; +- xmlNode *xop = NULL; +- +- op = calloc(1, sizeof(lrmd_event_data_t)); +- +- op->rsc_id = strdup(ID(cib_resource)); +- op->interval = interval; +- op->op_type = strdup(task); +- +- op->rc = outcome; +- op->op_status = 0; +- op->params = NULL; /* TODO: Fill me in */ +- op->t_run = time(NULL); +- op->t_rcchange = op->t_run; +- +- op->call_id = 0; +- for (xop = __xml_first_child(cib_resource); xop != NULL; xop = __xml_next(xop)) { +- int tmp = 0; +- +- crm_element_value_int(xop, XML_LRM_ATTR_CALLID, &tmp); +- if (tmp > op->call_id) { +- op->call_id = tmp; +- } +- } +- op->call_id++; +- +- return op; +-} +- +-static xmlNode * +-inject_op(xmlNode * cib_resource, lrmd_event_data_t * op, int target_rc) +-{ +- return create_operation_update(cib_resource, op, CRM_FEATURE_SET, target_rc, crm_system_name, +- LOG_DEBUG_2); +-} +- +-static void +-update_failcounts(xmlNode * cib_node, const char *resource, int interval, int rc) +-{ +- if (rc == 0) { +- return; +- +- } else if (rc == 7 && interval == 0) { +- return; +- +- } else { +- char *name = NULL; +- char *now = crm_itoa(time(NULL)); +- +- name = crm_concat("fail-count", resource, '-'); +- inject_transient_attr(cib_node, name, "value++"); +- +- name = crm_concat("last-failure", resource, '-'); +- inject_transient_attr(cib_node, name, now); +- +- free(name); +- free(now); +- } +-} +- +-static gboolean +-exec_pseudo_action(crm_graph_t * graph, crm_action_t * action) +-{ +- const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); +- const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); +- +- action->confirmed = TRUE; +- +- quiet_log(" * Pseudo action: %s%s%s\n", task, node ? " on " : "", node ? node : ""); +- update_graph(graph, action); +- return TRUE; +-} +- +-GListPtr resource_list = NULL; +- +-static gboolean +-exec_rsc_action(crm_graph_t * graph, crm_action_t * action) +-{ +- int rc = 0; +- GListPtr gIter = NULL; +- lrmd_event_data_t *op = NULL; +- int target_outcome = 0; +- gboolean uname_is_uuid = FALSE; +- +- const char *rtype = NULL; +- const char *rclass = NULL; +- const char *resource = NULL; +- const char *rprovider = NULL; +- const char *operation = crm_element_value(action->xml, "operation"); +- const char *target_rc_s = crm_meta_value(action->params, XML_ATTR_TE_TARGET_RC); +- +- xmlNode *cib_node = NULL; +- xmlNode *cib_resource = NULL; +- xmlNode *action_rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); +- +- char *node = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); +- char *uuid = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET_UUID); +- const char *router_node = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); +- +- if (safe_str_eq(operation, CRM_OP_PROBED) +- || safe_str_eq(operation, CRM_OP_REPROBE)) { +- crm_info("Skipping %s op for %s\n", operation, node); +- goto done; +- } +- +- if (action_rsc == NULL) { +- crm_log_xml_err(action->xml, "Bad"); +- free(node); free(uuid); +- return FALSE; +- } +- +- /* Look for the preferred name +- * If not found, try the expected 'local' name +- * If not found use the preferred name anyway +- */ +- resource = crm_element_value(action_rsc, XML_ATTR_ID); +- if (pe_find_resource(resource_list, resource) == NULL) { +- const char *longname = crm_element_value(action_rsc, XML_ATTR_ID_LONG); +- +- if (pe_find_resource(resource_list, longname)) { +- resource = longname; +- } +- } +- +- if (safe_str_eq(operation, "delete")) { +- quiet_log(" * Resource action: %-15s delete on %s\n", resource, node); +- goto done; +- } +- +- rclass = crm_element_value(action_rsc, XML_AGENT_ATTR_CLASS); +- rtype = crm_element_value(action_rsc, XML_ATTR_TYPE); +- rprovider = crm_element_value(action_rsc, XML_AGENT_ATTR_PROVIDER); +- +- if (target_rc_s != NULL) { +- target_outcome = crm_parse_int(target_rc_s, "0"); +- } +- +- CRM_ASSERT(global_cib->cmds->query(global_cib, NULL, NULL, cib_sync_call | cib_scope_local) == +- pcmk_ok); +- +- if (router_node) { +- uname_is_uuid = TRUE; +- } +- +- cib_node = inject_node_state(global_cib, node, uname_is_uuid ? node : uuid); +- CRM_ASSERT(cib_node != NULL); +- +- cib_resource = inject_resource(cib_node, resource, rclass, rtype, rprovider); +- CRM_ASSERT(cib_resource != NULL); +- +- op = convert_graph_action(cib_resource, action, 0, target_outcome); +- if (op->interval) { +- quiet_log(" * Resource action: %-15s %s=%d on %s\n", resource, op->op_type, op->interval, +- node); +- } else { +- quiet_log(" * Resource action: %-15s %s on %s\n", resource, op->op_type, node); +- } +- +- for (gIter = op_fail; gIter != NULL; gIter = gIter->next) { +- char *spec = (char *)gIter->data; +- char *key = NULL; +- +- key = calloc(1, 1 + strlen(spec)); +- snprintf(key, strlen(spec), "%s_%s_%d@%s=", resource, op->op_type, op->interval, node); +- +- if (strncasecmp(key, spec, strlen(key)) == 0) { +- sscanf(spec, "%*[^=]=%d", (int *)&op->rc); +- +- action->failed = TRUE; +- graph->abort_priority = INFINITY; +- printf("\tPretending action %d failed with rc=%d\n", action->id, op->rc); +- update_failcounts(cib_node, resource, op->interval, op->rc); +- free(key); +- break; +- } +- free(key); +- } +- +- inject_op(cib_resource, op, target_outcome); +- lrmd_free_event(op); +- +- rc = global_cib->cmds->modify(global_cib, XML_CIB_TAG_STATUS, cib_node, +- cib_sync_call | cib_scope_local); +- CRM_ASSERT(rc == pcmk_ok); +- +- done: +- free(node); free(uuid); +- free_xml(cib_node); +- action->confirmed = TRUE; +- update_graph(graph, action); +- return TRUE; +-} +- +-static gboolean +-exec_crmd_action(crm_graph_t * graph, crm_action_t * action) +-{ +- const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); +- const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); +- xmlNode *rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); +- +- action->confirmed = TRUE; +- +- if(rsc) { +- quiet_log(" * Cluster action: %s for %s on %s\n", task, ID(rsc), node); +- } else { +- quiet_log(" * Cluster action: %s on %s\n", task, node); +- } +- update_graph(graph, action); +- return TRUE; +-} +- +-#define STATUS_PATH_MAX 512 +-static gboolean +-exec_stonith_action(crm_graph_t * graph, crm_action_t * action) +-{ +- const char *op = crm_meta_value(action->params, "stonith_action"); +- char *target = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); +- +- quiet_log(" * Fencing %s (%s)\n", target, op); +- if(safe_str_neq(op, "on")) { +- int rc = 0; +- char xpath[STATUS_PATH_MAX]; +- xmlNode *cib_node = modify_node(global_cib, target, FALSE); +- +- crm_xml_add(cib_node, XML_ATTR_ORIGIN, __FUNCTION__); +- CRM_ASSERT(cib_node != NULL); +- +- rc = global_cib->cmds->replace(global_cib, XML_CIB_TAG_STATUS, cib_node, +- cib_sync_call | cib_scope_local); +- CRM_ASSERT(rc == pcmk_ok); +- +- snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, XML_CIB_TAG_LRM); +- global_cib->cmds->delete(global_cib, xpath, NULL, +- cib_xpath | cib_sync_call | cib_scope_local); +- +- snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, +- XML_TAG_TRANSIENT_NODEATTRS); +- global_cib->cmds->delete(global_cib, xpath, NULL, +- cib_xpath | cib_sync_call | cib_scope_local); +- +- free_xml(cib_node); +- } +- +- action->confirmed = TRUE; +- update_graph(graph, action); +- free(target); +- return TRUE; +-} +- + static void + print_cluster_status(pe_working_set_t * data_set, long options) + { +@@ -657,62 +186,6 @@ print_cluster_status(pe_working_set_t * data_set, long options) + fprintf(stdout, "\n"); + } + +-static int +-run_simulation(pe_working_set_t * data_set) +-{ +- crm_graph_t *transition = NULL; +- enum transition_status graph_rc = -1; +- +- crm_graph_functions_t exec_fns = { +- exec_pseudo_action, +- exec_rsc_action, +- exec_crmd_action, +- exec_stonith_action, +- }; +- +- set_graph_functions(&exec_fns); +- +- quiet_log("\nExecuting cluster transition:\n"); +- transition = unpack_graph(data_set->graph, crm_system_name); +- print_graph(LOG_DEBUG, transition); +- +- resource_list = data_set->resources; +- do { +- graph_rc = run_graph(transition); +- +- } while (graph_rc == transition_active); +- resource_list = NULL; +- +- if (graph_rc != transition_complete) { +- fprintf(stdout, "Transition failed: %s\n", transition_status(graph_rc)); +- print_graph(LOG_ERR, transition); +- } +- destroy_graph(transition); +- if (graph_rc != transition_complete) { +- fprintf(stdout, "An invalid transition was produced\n"); +- } +- +- if (quiet == FALSE) { +- xmlNode *cib_object = NULL; +- int rc = +- global_cib->cmds->query(global_cib, NULL, &cib_object, cib_sync_call | cib_scope_local); +- +- CRM_ASSERT(rc == pcmk_ok); +- quiet_log("\nRevised cluster status:\n"); +- cleanup_alloc_calculations(data_set); +- data_set->input = cib_object; +- data_set->now = get_date(); +- +- cluster_status(data_set); +- print_cluster_status(data_set, 0); +- } +- +- if (graph_rc != transition_complete) { +- return graph_rc; +- } +- return 0; +-} +- + static char * + create_action_name(action_t * action) + { +@@ -883,274 +356,6 @@ create_dotfile(pe_working_set_t * data_set, const char *dot_file, gboolean all_a + } + } + +-static int +-find_ticket_state(cib_t * the_cib, const char *ticket_id, xmlNode ** ticket_state_xml) +-{ +- int offset = 0; +- static int xpath_max = 1024; +- int rc = pcmk_ok; +- xmlNode *xml_search = NULL; +- +- char *xpath_string = NULL; +- +- CRM_ASSERT(ticket_state_xml != NULL); +- *ticket_state_xml = NULL; +- +- xpath_string = calloc(1, xpath_max); +- offset += snprintf(xpath_string + offset, xpath_max - offset, "%s", "/cib/status/tickets"); +- +- if (ticket_id) { +- offset += snprintf(xpath_string + offset, xpath_max - offset, "/%s[@id=\"%s\"]", +- XML_CIB_TAG_TICKET_STATE, ticket_id); +- } +- CRM_LOG_ASSERT(offset > 0); +- rc = the_cib->cmds->query(the_cib, xpath_string, &xml_search, +- cib_sync_call | cib_scope_local | cib_xpath); +- +- if (rc != pcmk_ok) { +- goto bail; +- } +- +- crm_log_xml_debug(xml_search, "Match"); +- if (xml_has_children(xml_search)) { +- if (ticket_id) { +- fprintf(stdout, "Multiple ticket_states match ticket_id=%s\n", ticket_id); +- } +- *ticket_state_xml = xml_search; +- } else { +- *ticket_state_xml = xml_search; +- } +- +- bail: +- free(xpath_string); +- return rc; +-} +- +-static int +-set_ticket_state_attr(const char *ticket_id, const char *attr_name, +- const char *attr_value, cib_t * cib, int cib_options) +-{ +- int rc = pcmk_ok; +- xmlNode *xml_top = NULL; +- xmlNode *ticket_state_xml = NULL; +- +- rc = find_ticket_state(cib, ticket_id, &ticket_state_xml); +- if (rc == pcmk_ok) { +- crm_debug("Found a match state for ticket: id=%s", ticket_id); +- xml_top = ticket_state_xml; +- +- } else if (rc != -ENXIO) { +- return rc; +- +- } else { +- xmlNode *xml_obj = NULL; +- +- xml_top = create_xml_node(NULL, XML_CIB_TAG_STATUS); +- xml_obj = create_xml_node(xml_top, XML_CIB_TAG_TICKETS); +- ticket_state_xml = create_xml_node(xml_obj, XML_CIB_TAG_TICKET_STATE); +- crm_xml_add(ticket_state_xml, XML_ATTR_ID, ticket_id); +- } +- +- crm_xml_add(ticket_state_xml, attr_name, attr_value); +- +- crm_log_xml_debug(xml_top, "Update"); +- +- rc = cib->cmds->modify(cib, XML_CIB_TAG_STATUS, xml_top, cib_options); +- +- free_xml(xml_top); +- +- return rc; +-} +- +-static void +-modify_configuration(pe_working_set_t * data_set, +- const char *quorum, const char *watchdog, GListPtr node_up, GListPtr node_down, GListPtr node_fail, +- GListPtr op_inject, GListPtr ticket_grant, GListPtr ticket_revoke, +- GListPtr ticket_standby, GListPtr ticket_activate) +-{ +- int rc = pcmk_ok; +- GListPtr gIter = NULL; +- +- xmlNode *cib_op = NULL; +- xmlNode *cib_node = NULL; +- xmlNode *cib_resource = NULL; +- +- lrmd_event_data_t *op = NULL; +- +- if (quorum) { +- xmlNode *top = create_xml_node(NULL, XML_TAG_CIB); +- +- quiet_log(" + Setting quorum: %s\n", quorum); +- /* crm_xml_add(top, XML_ATTR_DC_UUID, dc_uuid); */ +- crm_xml_add(top, XML_ATTR_HAVE_QUORUM, quorum); +- +- rc = global_cib->cmds->modify(global_cib, NULL, top, cib_sync_call | cib_scope_local); +- CRM_ASSERT(rc == pcmk_ok); +- } +- +- if (watchdog) { +- quiet_log(" + Setting watchdog: %s\n", watchdog); +- +- rc = update_attr_delegate(global_cib, cib_sync_call | cib_scope_local, +- XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, +- XML_ATTR_HAVE_WATCHDOG, watchdog, FALSE, NULL, NULL); +- +- CRM_ASSERT(rc == pcmk_ok); +- } +- +- for (gIter = node_up; gIter != NULL; gIter = gIter->next) { +- char *node = (char *)gIter->data; +- +- quiet_log(" + Bringing node %s online\n", node); +- cib_node = modify_node(global_cib, node, TRUE); +- CRM_ASSERT(cib_node != NULL); +- +- rc = global_cib->cmds->modify(global_cib, XML_CIB_TAG_STATUS, cib_node, +- cib_sync_call | cib_scope_local); +- CRM_ASSERT(rc == pcmk_ok); +- free_xml(cib_node); +- } +- +- for (gIter = node_down; gIter != NULL; gIter = gIter->next) { +- char xpath[STATUS_PATH_MAX]; +- char *node = (char *)gIter->data; +- +- quiet_log(" + Taking node %s offline\n", node); +- cib_node = modify_node(global_cib, node, FALSE); +- CRM_ASSERT(cib_node != NULL); +- +- rc = global_cib->cmds->modify(global_cib, XML_CIB_TAG_STATUS, cib_node, +- cib_sync_call | cib_scope_local); +- CRM_ASSERT(rc == pcmk_ok); +- free_xml(cib_node); +- +- snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", node, XML_CIB_TAG_LRM); +- global_cib->cmds->delete(global_cib, xpath, NULL, +- cib_xpath | cib_sync_call | cib_scope_local); +- +- snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", node, +- XML_TAG_TRANSIENT_NODEATTRS); +- global_cib->cmds->delete(global_cib, xpath, NULL, +- cib_xpath | cib_sync_call | cib_scope_local); +- +- } +- +- for (gIter = node_fail; gIter != NULL; gIter = gIter->next) { +- char *node = (char *)gIter->data; +- +- quiet_log(" + Failing node %s\n", node); +- cib_node = modify_node(global_cib, node, TRUE); +- crm_xml_add(cib_node, XML_NODE_IN_CLUSTER, XML_BOOLEAN_NO); +- CRM_ASSERT(cib_node != NULL); +- +- rc = global_cib->cmds->modify(global_cib, XML_CIB_TAG_STATUS, cib_node, +- cib_sync_call | cib_scope_local); +- CRM_ASSERT(rc == pcmk_ok); +- free_xml(cib_node); +- } +- +- for (gIter = ticket_grant; gIter != NULL; gIter = gIter->next) { +- char *ticket_id = (char *)gIter->data; +- +- quiet_log(" + Granting ticket %s\n", ticket_id); +- rc = set_ticket_state_attr(ticket_id, "granted", "true", +- global_cib, cib_sync_call | cib_scope_local); +- +- CRM_ASSERT(rc == pcmk_ok); +- } +- +- for (gIter = ticket_revoke; gIter != NULL; gIter = gIter->next) { +- char *ticket_id = (char *)gIter->data; +- +- quiet_log(" + Revoking ticket %s\n", ticket_id); +- rc = set_ticket_state_attr(ticket_id, "granted", "false", +- global_cib, cib_sync_call | cib_scope_local); +- +- CRM_ASSERT(rc == pcmk_ok); +- } +- +- for (gIter = ticket_standby; gIter != NULL; gIter = gIter->next) { +- char *ticket_id = (char *)gIter->data; +- +- quiet_log(" + Making ticket %s standby\n", ticket_id); +- rc = set_ticket_state_attr(ticket_id, "standby", "true", +- global_cib, cib_sync_call | cib_scope_local); +- +- CRM_ASSERT(rc == pcmk_ok); +- } +- +- for (gIter = ticket_activate; gIter != NULL; gIter = gIter->next) { +- char *ticket_id = (char *)gIter->data; +- +- quiet_log(" + Activating ticket %s\n", ticket_id); +- rc = set_ticket_state_attr(ticket_id, "standby", "false", +- global_cib, cib_sync_call | cib_scope_local); +- +- CRM_ASSERT(rc == pcmk_ok); +- } +- +- for (gIter = op_inject; gIter != NULL; gIter = gIter->next) { +- char *spec = (char *)gIter->data; +- +- int rc = 0; +- int outcome = 0; +- int interval = 0; +- +- char *key = NULL; +- char *node = NULL; +- char *task = NULL; +- char *resource = NULL; +- +- const char *rtype = NULL; +- const char *rclass = NULL; +- const char *rprovider = NULL; +- +- resource_t *rsc = NULL; +- +- quiet_log(" + Injecting %s into the configuration\n", spec); +- +- key = calloc(1, strlen(spec) + 1); +- node = calloc(1, strlen(spec) + 1); +- rc = sscanf(spec, "%[^@]@%[^=]=%d", key, node, &outcome); +- CRM_CHECK(rc == 3, +- fprintf(stderr, "Invalid operation spec: %s. Only found %d fields\n", spec, rc); +- continue); +- +- parse_op_key(key, &resource, &task, &interval); +- +- rsc = pe_find_resource(data_set->resources, resource); +- if (rsc == NULL) { +- fprintf(stderr, " - Invalid resource name: %s\n", resource); +- } else { +- rclass = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); +- rtype = crm_element_value(rsc->xml, XML_ATTR_TYPE); +- rprovider = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); +- +- cib_node = inject_node_state(global_cib, node, NULL); +- CRM_ASSERT(cib_node != NULL); +- +- update_failcounts(cib_node, resource, interval, outcome); +- +- cib_resource = inject_resource(cib_node, resource, rclass, rtype, rprovider); +- CRM_ASSERT(cib_resource != NULL); +- +- op = create_op(cib_resource, task, interval, outcome); +- CRM_ASSERT(op != NULL); +- +- cib_op = inject_op(cib_resource, op, 0); +- CRM_ASSERT(cib_op != NULL); +- lrmd_free_event(op); +- +- rc = global_cib->cmds->modify(global_cib, XML_CIB_TAG_STATUS, cib_node, +- cib_sync_call | cib_scope_local); +- CRM_ASSERT(rc == pcmk_ok); +- } +- free(task); +- free(node); +- free(key); +- } +-} +- + static void + setup_input(const char *input, const char *output) + { +@@ -1571,7 +776,7 @@ main(int argc, char **argv) + + if (modified) { + quiet_log("Performing requested modifications\n"); +- modify_configuration(&data_set, quorum, watchdog, node_up, node_down, node_fail, op_inject, ++ modify_configuration(&data_set, global_cib, quorum, watchdog, node_up, node_down, node_fail, op_inject, + ticket_grant, ticket_revoke, ticket_standby, ticket_activate); + + rc = global_cib->cmds->query(global_cib, NULL, &input, cib_sync_call); +@@ -1632,7 +837,14 @@ main(int argc, char **argv) + } + + if (simulate) { +- rc = run_simulation(&data_set); ++ rc = run_simulation(&data_set, global_cib, op_fail, quiet); ++ if(quiet == FALSE) { ++ data_set.now = get_date(); ++ ++ quiet_log("\nRevised cluster status:\n"); ++ cluster_status(&data_set); ++ print_cluster_status(&data_set, 0); ++ } + } + + done: +diff --git a/tools/fake_transition.c b/tools/fake_transition.c +new file mode 100644 +index 0000000..d6d71eb +--- /dev/null ++++ b/tools/fake_transition.c +@@ -0,0 +1,846 @@ ++/* ++ * Copyright (C) 2009 Andrew Beekhof <andrew@beekhof.net> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This software is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ */ ++ ++#include <crm_internal.h> ++ ++#include <stdio.h> ++#include <unistd.h> ++#include <stdlib.h> ++ ++#include <sys/stat.h> ++#include <sys/param.h> ++#include <sys/types.h> ++#include <dirent.h> ++ ++#include <crm/crm.h> ++#include <crm/cib.h> ++#include <crm/common/util.h> ++#include <crm/transition.h> ++#include <crm/common/iso8601.h> ++#include <crm/pengine/status.h> ++#include <allocate.h> ++#include "fake_transition.h" ++ ++static bool fake_quiet = FALSE; ++static cib_t *fake_cib = NULL; ++static GListPtr fake_resource_list = NULL; ++static GListPtr fake_op_fail_list = NULL; ++gboolean bringing_nodes_online = FALSE; ++ ++#define STATUS_PATH_MAX 512 ++ ++#define quiet_log(fmt, args...) do { \ ++ if(fake_quiet) { \ ++ crm_trace(fmt, ##args); \ ++ } else { \ ++ printf(fmt , ##args); \ ++ } \ ++ } while(0) ++ ++#define new_node_template "//"XML_CIB_TAG_NODE"[@uname='%s']" ++#define node_template "//"XML_CIB_TAG_STATE"[@uname='%s']" ++#define rsc_template "//"XML_CIB_TAG_STATE"[@uname='%s']//"XML_LRM_TAG_RESOURCE"[@id='%s']" ++#define op_template "//"XML_CIB_TAG_STATE"[@uname='%s']//"XML_LRM_TAG_RESOURCE"[@id='%s']/"XML_LRM_TAG_RSC_OP"[@id='%s']" ++/* #define op_template "//"XML_CIB_TAG_STATE"[@uname='%s']//"XML_LRM_TAG_RESOURCE"[@id='%s']/"XML_LRM_TAG_RSC_OP"[@id='%s' and @"XML_LRM_ATTR_CALLID"='%d']" */ ++ ++ ++static void ++inject_transient_attr(xmlNode * cib_node, const char *name, const char *value) ++{ ++ xmlNode *attrs = NULL; ++ xmlNode *container = NULL; ++ xmlNode *nvp = NULL; ++ const char *node_uuid = ID(cib_node); ++ char *nvp_id = crm_concat(name, node_uuid, '-'); ++ ++ quiet_log("Injecting attribute %s=%s into %s '%s'", name, value, xmlGetNodePath(cib_node), ++ ID(cib_node)); ++ ++ attrs = first_named_child(cib_node, XML_TAG_TRANSIENT_NODEATTRS); ++ if (attrs == NULL) { ++ attrs = create_xml_node(cib_node, XML_TAG_TRANSIENT_NODEATTRS); ++ crm_xml_add(attrs, XML_ATTR_ID, node_uuid); ++ } ++ ++ container = first_named_child(attrs, XML_TAG_ATTR_SETS); ++ if (container == NULL) { ++ container = create_xml_node(attrs, XML_TAG_ATTR_SETS); ++ crm_xml_add(container, XML_ATTR_ID, node_uuid); ++ } ++ ++ nvp = create_xml_node(container, XML_CIB_TAG_NVPAIR); ++ crm_xml_add(nvp, XML_ATTR_ID, nvp_id); ++ crm_xml_add(nvp, XML_NVPAIR_ATTR_NAME, name); ++ crm_xml_add(nvp, XML_NVPAIR_ATTR_VALUE, value); ++ ++ free(nvp_id); ++} ++ ++static void ++update_failcounts(xmlNode * cib_node, const char *resource, int interval, int rc) ++{ ++ if (rc == 0) { ++ return; ++ ++ } else if (rc == 7 && interval == 0) { ++ return; ++ ++ } else { ++ char *name = NULL; ++ char *now = crm_itoa(time(NULL)); ++ ++ name = crm_concat("fail-count", resource, '-'); ++ inject_transient_attr(cib_node, name, "value++"); ++ ++ name = crm_concat("last-failure", resource, '-'); ++ inject_transient_attr(cib_node, name, now); ++ ++ free(name); ++ free(now); ++ } ++} ++ ++static void ++create_node_entry(cib_t * cib_conn, const char *node) ++{ ++ int rc = pcmk_ok; ++ int max = strlen(new_node_template) + strlen(node) + 1; ++ char *xpath = NULL; ++ ++ xpath = calloc(1, max); ++ ++ snprintf(xpath, max, new_node_template, node); ++ rc = cib_conn->cmds->query(cib_conn, xpath, NULL, cib_xpath | cib_sync_call | cib_scope_local); ++ ++ if (rc == -ENXIO) { ++ xmlNode *cib_object = create_xml_node(NULL, XML_CIB_TAG_NODE); ++ ++ /* Using node uname as uuid ala corosync/openais */ ++ crm_xml_add(cib_object, XML_ATTR_ID, node); ++ crm_xml_add(cib_object, XML_ATTR_UNAME, node); ++ cib_conn->cmds->create(cib_conn, XML_CIB_TAG_NODES, cib_object, ++ cib_sync_call | cib_scope_local); ++ /* Not bothering with subsequent query to see if it exists, ++ we'll bomb out later in the call to query_node_uuid()... */ ++ ++ free_xml(cib_object); ++ } ++ ++ free(xpath); ++} ++ ++static lrmd_event_data_t * ++create_op(xmlNode * cib_resource, const char *task, int interval, int outcome) ++{ ++ lrmd_event_data_t *op = NULL; ++ xmlNode *xop = NULL; ++ ++ op = calloc(1, sizeof(lrmd_event_data_t)); ++ ++ op->rsc_id = strdup(ID(cib_resource)); ++ op->interval = interval; ++ op->op_type = strdup(task); ++ ++ op->rc = outcome; ++ op->op_status = 0; ++ op->params = NULL; /* TODO: Fill me in */ ++ op->t_run = time(NULL); ++ op->t_rcchange = op->t_run; ++ ++ op->call_id = 0; ++ for (xop = __xml_first_child(cib_resource); xop != NULL; xop = __xml_next(xop)) { ++ int tmp = 0; ++ ++ crm_element_value_int(xop, XML_LRM_ATTR_CALLID, &tmp); ++ if (tmp > op->call_id) { ++ op->call_id = tmp; ++ } ++ } ++ op->call_id++; ++ ++ return op; ++} ++ ++static xmlNode * ++inject_op(xmlNode * cib_resource, lrmd_event_data_t * op, int target_rc) ++{ ++ return create_operation_update(cib_resource, op, CRM_FEATURE_SET, target_rc, crm_system_name, ++ LOG_DEBUG_2); ++} ++ ++static xmlNode * ++inject_node_state(cib_t * cib_conn, const char *node, const char *uuid) ++{ ++ int rc = pcmk_ok; ++ int max = strlen(rsc_template) + strlen(node) + 1; ++ char *xpath = NULL; ++ xmlNode *cib_object = NULL; ++ ++ xpath = calloc(1, max); ++ ++ if (bringing_nodes_online) { ++ create_node_entry(cib_conn, node); ++ } ++ ++ snprintf(xpath, max, node_template, node); ++ rc = cib_conn->cmds->query(cib_conn, xpath, &cib_object, ++ cib_xpath | cib_sync_call | cib_scope_local); ++ ++ if (cib_object && ID(cib_object) == NULL) { ++ crm_err("Detected multiple node_state entries for xpath=%s, bailing", xpath); ++ crm_log_xml_warn(cib_object, "Duplicates"); ++ crm_exit(ENOTUNIQ); ++ } ++ ++ if (rc == -ENXIO) { ++ char *found_uuid = NULL; ++ ++ if (uuid == NULL) { ++ query_node_uuid(cib_conn, node, &found_uuid, NULL); ++ } else { ++ found_uuid = strdup(uuid); ++ } ++ ++ cib_object = create_xml_node(NULL, XML_CIB_TAG_STATE); ++ crm_xml_add(cib_object, XML_ATTR_UUID, found_uuid); ++ crm_xml_add(cib_object, XML_ATTR_UNAME, node); ++ cib_conn->cmds->create(cib_conn, XML_CIB_TAG_STATUS, cib_object, ++ cib_sync_call | cib_scope_local); ++ free_xml(cib_object); ++ free(found_uuid); ++ ++ rc = cib_conn->cmds->query(cib_conn, xpath, &cib_object, ++ cib_xpath | cib_sync_call | cib_scope_local); ++ crm_trace("injecting node state for %s. rc is %d", node, rc); ++ } ++ ++ free(xpath); ++ CRM_ASSERT(rc == pcmk_ok); ++ return cib_object; ++} ++ ++static xmlNode * ++modify_node(cib_t * cib_conn, char *node, gboolean up) ++{ ++ xmlNode *cib_node = inject_node_state(cib_conn, node, NULL); ++ ++ if (up) { ++ crm_xml_add(cib_node, XML_NODE_IN_CLUSTER, XML_BOOLEAN_YES); ++ crm_xml_add(cib_node, XML_NODE_IS_PEER, ONLINESTATUS); ++ crm_xml_add(cib_node, XML_NODE_JOIN_STATE, CRMD_JOINSTATE_MEMBER); ++ crm_xml_add(cib_node, XML_NODE_EXPECTED, CRMD_JOINSTATE_MEMBER); ++ ++ } else { ++ crm_xml_add(cib_node, XML_NODE_IN_CLUSTER, XML_BOOLEAN_NO); ++ crm_xml_add(cib_node, XML_NODE_IS_PEER, OFFLINESTATUS); ++ crm_xml_add(cib_node, XML_NODE_JOIN_STATE, CRMD_JOINSTATE_DOWN); ++ crm_xml_add(cib_node, XML_NODE_EXPECTED, CRMD_JOINSTATE_DOWN); ++ } ++ ++ crm_xml_add(cib_node, XML_ATTR_ORIGIN, crm_system_name); ++ return cib_node; ++} ++ ++static xmlNode * ++find_resource_xml(xmlNode * cib_node, const char *resource) ++{ ++ char *xpath = NULL; ++ xmlNode *match = NULL; ++ const char *node = crm_element_value(cib_node, XML_ATTR_UNAME); ++ int max = strlen(rsc_template) + strlen(resource) + strlen(node) + 1; ++ ++ xpath = calloc(1, max); ++ ++ snprintf(xpath, max, rsc_template, node, resource); ++ match = get_xpath_object(xpath, cib_node, LOG_DEBUG_2); ++ ++ free(xpath); ++ return match; ++} ++ ++ ++static xmlNode * ++inject_resource(xmlNode * cib_node, const char *resource, const char *rclass, const char *rtype, ++ const char *rprovider) ++{ ++ xmlNode *lrm = NULL; ++ xmlNode *container = NULL; ++ xmlNode *cib_resource = NULL; ++ char *xpath = NULL; ++ ++ cib_resource = find_resource_xml(cib_node, resource); ++ if (cib_resource != NULL) { ++ return cib_resource; ++ } ++ ++ /* One day, add query for class, provider, type */ ++ ++ if (rclass == NULL || rtype == NULL) { ++ fprintf(stderr, "Resource %s not found in the status section of %s." ++ " Please supply the class and type to continue\n", resource, ID(cib_node)); ++ return NULL; ++ ++ } else if (safe_str_neq(rclass, "ocf") ++ && safe_str_neq(rclass, "stonith") ++ && safe_str_neq(rclass, "heartbeat") ++ && safe_str_neq(rclass, "service") ++ && safe_str_neq(rclass, "upstart") ++ && safe_str_neq(rclass, "systemd") ++ && safe_str_neq(rclass, "lsb")) { ++ fprintf(stderr, "Invalid class for %s: %s\n", resource, rclass); ++ return NULL; ++ ++ } else if (safe_str_eq(rclass, "ocf") && rprovider == NULL) { ++ fprintf(stderr, "Please specify the provider for resource %s\n", resource); ++ return NULL; ++ } ++ ++ xpath = (char *)xmlGetNodePath(cib_node); ++ crm_info("Injecting new resource %s into %s '%s'", resource, xpath, ID(cib_node)); ++ free(xpath); ++ ++ lrm = first_named_child(cib_node, XML_CIB_TAG_LRM); ++ if (lrm == NULL) { ++ const char *node_uuid = ID(cib_node); ++ ++ lrm = create_xml_node(cib_node, XML_CIB_TAG_LRM); ++ crm_xml_add(lrm, XML_ATTR_ID, node_uuid); ++ } ++ ++ container = first_named_child(lrm, XML_LRM_TAG_RESOURCES); ++ if (container == NULL) { ++ container = create_xml_node(lrm, XML_LRM_TAG_RESOURCES); ++ } ++ ++ cib_resource = create_xml_node(container, XML_LRM_TAG_RESOURCE); ++ crm_xml_add(cib_resource, XML_ATTR_ID, resource); ++ ++ crm_xml_add(cib_resource, XML_AGENT_ATTR_CLASS, rclass); ++ crm_xml_add(cib_resource, XML_AGENT_ATTR_PROVIDER, rprovider); ++ crm_xml_add(cib_resource, XML_ATTR_TYPE, rtype); ++ ++ return cib_resource; ++} ++ ++static int ++find_ticket_state(cib_t * the_cib, const char *ticket_id, xmlNode ** ticket_state_xml) ++{ ++ int offset = 0; ++ static int xpath_max = 1024; ++ int rc = pcmk_ok; ++ xmlNode *xml_search = NULL; ++ ++ char *xpath_string = NULL; ++ ++ CRM_ASSERT(ticket_state_xml != NULL); ++ *ticket_state_xml = NULL; ++ ++ xpath_string = calloc(1, xpath_max); ++ offset += snprintf(xpath_string + offset, xpath_max - offset, "%s", "/cib/status/tickets"); ++ ++ if (ticket_id) { ++ offset += snprintf(xpath_string + offset, xpath_max - offset, "/%s[@id=\"%s\"]", ++ XML_CIB_TAG_TICKET_STATE, ticket_id); ++ } ++ CRM_LOG_ASSERT(offset > 0); ++ rc = the_cib->cmds->query(the_cib, xpath_string, &xml_search, ++ cib_sync_call | cib_scope_local | cib_xpath); ++ ++ if (rc != pcmk_ok) { ++ goto bail; ++ } ++ ++ crm_log_xml_debug(xml_search, "Match"); ++ if (xml_has_children(xml_search)) { ++ if (ticket_id) { ++ fprintf(stdout, "Multiple ticket_states match ticket_id=%s\n", ticket_id); ++ } ++ *ticket_state_xml = xml_search; ++ } else { ++ *ticket_state_xml = xml_search; ++ } ++ ++ bail: ++ free(xpath_string); ++ return rc; ++} ++ ++static int ++set_ticket_state_attr(const char *ticket_id, const char *attr_name, ++ const char *attr_value, cib_t * cib, int cib_options) ++{ ++ int rc = pcmk_ok; ++ xmlNode *xml_top = NULL; ++ xmlNode *ticket_state_xml = NULL; ++ ++ rc = find_ticket_state(cib, ticket_id, &ticket_state_xml); ++ if (rc == pcmk_ok) { ++ crm_debug("Found a match state for ticket: id=%s", ticket_id); ++ xml_top = ticket_state_xml; ++ ++ } else if (rc != -ENXIO) { ++ return rc; ++ ++ } else { ++ xmlNode *xml_obj = NULL; ++ ++ xml_top = create_xml_node(NULL, XML_CIB_TAG_STATUS); ++ xml_obj = create_xml_node(xml_top, XML_CIB_TAG_TICKETS); ++ ticket_state_xml = create_xml_node(xml_obj, XML_CIB_TAG_TICKET_STATE); ++ crm_xml_add(ticket_state_xml, XML_ATTR_ID, ticket_id); ++ } ++ ++ crm_xml_add(ticket_state_xml, attr_name, attr_value); ++ ++ crm_log_xml_debug(xml_top, "Update"); ++ ++ rc = cib->cmds->modify(cib, XML_CIB_TAG_STATUS, xml_top, cib_options); ++ ++ free_xml(xml_top); ++ ++ return rc; ++} ++ ++void ++modify_configuration(pe_working_set_t * data_set, cib_t *cib, ++ const char *quorum, const char *watchdog, GListPtr node_up, GListPtr node_down, GListPtr node_fail, ++ GListPtr op_inject, GListPtr ticket_grant, GListPtr ticket_revoke, ++ GListPtr ticket_standby, GListPtr ticket_activate) ++{ ++ int rc = pcmk_ok; ++ GListPtr gIter = NULL; ++ ++ xmlNode *cib_op = NULL; ++ xmlNode *cib_node = NULL; ++ xmlNode *cib_resource = NULL; ++ ++ lrmd_event_data_t *op = NULL; ++ ++ if (quorum) { ++ xmlNode *top = create_xml_node(NULL, XML_TAG_CIB); ++ ++ quiet_log(" + Setting quorum: %s\n", quorum); ++ /* crm_xml_add(top, XML_ATTR_DC_UUID, dc_uuid); */ ++ crm_xml_add(top, XML_ATTR_HAVE_QUORUM, quorum); ++ ++ rc = cib->cmds->modify(cib, NULL, top, cib_sync_call | cib_scope_local); ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ ++ if (watchdog) { ++ quiet_log(" + Setting watchdog: %s\n", watchdog); ++ ++ rc = update_attr_delegate(cib, cib_sync_call | cib_scope_local, ++ XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, ++ XML_ATTR_HAVE_WATCHDOG, watchdog, FALSE, NULL, NULL); ++ ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ ++ for (gIter = node_up; gIter != NULL; gIter = gIter->next) { ++ char *node = (char *)gIter->data; ++ ++ quiet_log(" + Bringing node %s online\n", node); ++ cib_node = modify_node(cib, node, TRUE); ++ CRM_ASSERT(cib_node != NULL); ++ ++ rc = cib->cmds->modify(cib, XML_CIB_TAG_STATUS, cib_node, ++ cib_sync_call | cib_scope_local); ++ CRM_ASSERT(rc == pcmk_ok); ++ free_xml(cib_node); ++ } ++ ++ for (gIter = node_down; gIter != NULL; gIter = gIter->next) { ++ char xpath[STATUS_PATH_MAX]; ++ char *node = (char *)gIter->data; ++ ++ quiet_log(" + Taking node %s offline\n", node); ++ cib_node = modify_node(cib, node, FALSE); ++ CRM_ASSERT(cib_node != NULL); ++ ++ rc = cib->cmds->modify(cib, XML_CIB_TAG_STATUS, cib_node, ++ cib_sync_call | cib_scope_local); ++ CRM_ASSERT(rc == pcmk_ok); ++ free_xml(cib_node); ++ ++ snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", node, XML_CIB_TAG_LRM); ++ cib->cmds->delete(cib, xpath, NULL, ++ cib_xpath | cib_sync_call | cib_scope_local); ++ ++ snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", node, ++ XML_TAG_TRANSIENT_NODEATTRS); ++ cib->cmds->delete(cib, xpath, NULL, ++ cib_xpath | cib_sync_call | cib_scope_local); ++ ++ } ++ ++ for (gIter = node_fail; gIter != NULL; gIter = gIter->next) { ++ char *node = (char *)gIter->data; ++ ++ quiet_log(" + Failing node %s\n", node); ++ cib_node = modify_node(cib, node, TRUE); ++ crm_xml_add(cib_node, XML_NODE_IN_CLUSTER, XML_BOOLEAN_NO); ++ CRM_ASSERT(cib_node != NULL); ++ ++ rc = cib->cmds->modify(cib, XML_CIB_TAG_STATUS, cib_node, ++ cib_sync_call | cib_scope_local); ++ CRM_ASSERT(rc == pcmk_ok); ++ free_xml(cib_node); ++ } ++ ++ for (gIter = ticket_grant; gIter != NULL; gIter = gIter->next) { ++ char *ticket_id = (char *)gIter->data; ++ ++ quiet_log(" + Granting ticket %s\n", ticket_id); ++ rc = set_ticket_state_attr(ticket_id, "granted", "true", ++ cib, cib_sync_call | cib_scope_local); ++ ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ ++ for (gIter = ticket_revoke; gIter != NULL; gIter = gIter->next) { ++ char *ticket_id = (char *)gIter->data; ++ ++ quiet_log(" + Revoking ticket %s\n", ticket_id); ++ rc = set_ticket_state_attr(ticket_id, "granted", "false", ++ cib, cib_sync_call | cib_scope_local); ++ ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ ++ for (gIter = ticket_standby; gIter != NULL; gIter = gIter->next) { ++ char *ticket_id = (char *)gIter->data; ++ ++ quiet_log(" + Making ticket %s standby\n", ticket_id); ++ rc = set_ticket_state_attr(ticket_id, "standby", "true", ++ cib, cib_sync_call | cib_scope_local); ++ ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ ++ for (gIter = ticket_activate; gIter != NULL; gIter = gIter->next) { ++ char *ticket_id = (char *)gIter->data; ++ ++ quiet_log(" + Activating ticket %s\n", ticket_id); ++ rc = set_ticket_state_attr(ticket_id, "standby", "false", ++ cib, cib_sync_call | cib_scope_local); ++ ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ ++ for (gIter = op_inject; gIter != NULL; gIter = gIter->next) { ++ char *spec = (char *)gIter->data; ++ ++ int rc = 0; ++ int outcome = 0; ++ int interval = 0; ++ ++ char *key = NULL; ++ char *node = NULL; ++ char *task = NULL; ++ char *resource = NULL; ++ ++ const char *rtype = NULL; ++ const char *rclass = NULL; ++ const char *rprovider = NULL; ++ ++ resource_t *rsc = NULL; ++ ++ quiet_log(" + Injecting %s into the configuration\n", spec); ++ ++ key = calloc(1, strlen(spec) + 1); ++ node = calloc(1, strlen(spec) + 1); ++ rc = sscanf(spec, "%[^@]@%[^=]=%d", key, node, &outcome); ++ CRM_CHECK(rc == 3, ++ fprintf(stderr, "Invalid operation spec: %s. Only found %d fields\n", spec, rc); ++ continue); ++ ++ parse_op_key(key, &resource, &task, &interval); ++ ++ rsc = pe_find_resource(data_set->resources, resource); ++ if (rsc == NULL) { ++ fprintf(stderr, " - Invalid resource name: %s\n", resource); ++ } else { ++ rclass = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); ++ rtype = crm_element_value(rsc->xml, XML_ATTR_TYPE); ++ rprovider = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); ++ ++ cib_node = inject_node_state(cib, node, NULL); ++ CRM_ASSERT(cib_node != NULL); ++ ++ update_failcounts(cib_node, resource, interval, outcome); ++ ++ cib_resource = inject_resource(cib_node, resource, rclass, rtype, rprovider); ++ CRM_ASSERT(cib_resource != NULL); ++ ++ op = create_op(cib_resource, task, interval, outcome); ++ CRM_ASSERT(op != NULL); ++ ++ cib_op = inject_op(cib_resource, op, 0); ++ CRM_ASSERT(cib_op != NULL); ++ lrmd_free_event(op); ++ ++ rc = cib->cmds->modify(cib, XML_CIB_TAG_STATUS, cib_node, ++ cib_sync_call | cib_scope_local); ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ free(task); ++ free(node); ++ free(key); ++ } ++} ++ ++static gboolean ++exec_pseudo_action(crm_graph_t * graph, crm_action_t * action) ++{ ++ const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); ++ const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); ++ ++ action->confirmed = TRUE; ++ ++ quiet_log(" * Pseudo action: %s%s%s\n", task, node ? " on " : "", node ? node : ""); ++ update_graph(graph, action); ++ return TRUE; ++} ++ ++static gboolean ++exec_rsc_action(crm_graph_t * graph, crm_action_t * action) ++{ ++ int rc = 0; ++ GListPtr gIter = NULL; ++ lrmd_event_data_t *op = NULL; ++ int target_outcome = 0; ++ gboolean uname_is_uuid = FALSE; ++ ++ const char *rtype = NULL; ++ const char *rclass = NULL; ++ const char *resource = NULL; ++ const char *rprovider = NULL; ++ const char *operation = crm_element_value(action->xml, "operation"); ++ const char *target_rc_s = crm_meta_value(action->params, XML_ATTR_TE_TARGET_RC); ++ ++ xmlNode *cib_node = NULL; ++ xmlNode *cib_resource = NULL; ++ xmlNode *action_rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); ++ ++ char *node = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); ++ char *uuid = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET_UUID); ++ const char *router_node = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); ++ ++ if (safe_str_eq(operation, CRM_OP_PROBED) ++ || safe_str_eq(operation, CRM_OP_REPROBE)) { ++ crm_info("Skipping %s op for %s\n", operation, node); ++ goto done; ++ } ++ ++ if (action_rsc == NULL) { ++ crm_log_xml_err(action->xml, "Bad"); ++ free(node); free(uuid); ++ return FALSE; ++ } ++ ++ /* Look for the preferred name ++ * If not found, try the expected 'local' name ++ * If not found use the preferred name anyway ++ */ ++ resource = crm_element_value(action_rsc, XML_ATTR_ID); ++ if (pe_find_resource(fake_resource_list, resource) == NULL) { ++ const char *longname = crm_element_value(action_rsc, XML_ATTR_ID_LONG); ++ ++ if (pe_find_resource(fake_resource_list, longname)) { ++ resource = longname; ++ } ++ } ++ ++ if (safe_str_eq(operation, "delete")) { ++ quiet_log(" * Resource action: %-15s delete on %s\n", resource, node); ++ goto done; ++ } ++ ++ rclass = crm_element_value(action_rsc, XML_AGENT_ATTR_CLASS); ++ rtype = crm_element_value(action_rsc, XML_ATTR_TYPE); ++ rprovider = crm_element_value(action_rsc, XML_AGENT_ATTR_PROVIDER); ++ ++ if (target_rc_s != NULL) { ++ target_outcome = crm_parse_int(target_rc_s, "0"); ++ } ++ ++ CRM_ASSERT(fake_cib->cmds->query(fake_cib, NULL, NULL, cib_sync_call | cib_scope_local) == ++ pcmk_ok); ++ ++ if (router_node) { ++ uname_is_uuid = TRUE; ++ } ++ ++ cib_node = inject_node_state(fake_cib, node, uname_is_uuid ? node : uuid); ++ CRM_ASSERT(cib_node != NULL); ++ ++ cib_resource = inject_resource(cib_node, resource, rclass, rtype, rprovider); ++ CRM_ASSERT(cib_resource != NULL); ++ ++ op = convert_graph_action(cib_resource, action, 0, target_outcome); ++ if (op->interval) { ++ quiet_log(" * Resource action: %-15s %s=%d on %s\n", resource, op->op_type, op->interval, ++ node); ++ } else { ++ quiet_log(" * Resource action: %-15s %s on %s\n", resource, op->op_type, node); ++ } ++ ++ for (gIter = fake_op_fail_list; gIter != NULL; gIter = gIter->next) { ++ char *spec = (char *)gIter->data; ++ char *key = NULL; ++ ++ key = calloc(1, 1 + strlen(spec)); ++ snprintf(key, strlen(spec), "%s_%s_%d@%s=", resource, op->op_type, op->interval, node); ++ ++ if (strncasecmp(key, spec, strlen(key)) == 0) { ++ sscanf(spec, "%*[^=]=%d", (int *)&op->rc); ++ ++ action->failed = TRUE; ++ graph->abort_priority = INFINITY; ++ printf("\tPretending action %d failed with rc=%d\n", action->id, op->rc); ++ update_failcounts(cib_node, resource, op->interval, op->rc); ++ free(key); ++ break; ++ } ++ free(key); ++ } ++ ++ inject_op(cib_resource, op, target_outcome); ++ lrmd_free_event(op); ++ ++ rc = fake_cib->cmds->modify(fake_cib, XML_CIB_TAG_STATUS, cib_node, ++ cib_sync_call | cib_scope_local); ++ CRM_ASSERT(rc == pcmk_ok); ++ ++ done: ++ free(node); free(uuid); ++ free_xml(cib_node); ++ action->confirmed = TRUE; ++ update_graph(graph, action); ++ return TRUE; ++} ++ ++static gboolean ++exec_crmd_action(crm_graph_t * graph, crm_action_t * action) ++{ ++ const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); ++ const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); ++ xmlNode *rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); ++ ++ action->confirmed = TRUE; ++ ++ if(rsc) { ++ quiet_log(" * Cluster action: %s for %s on %s\n", task, ID(rsc), node); ++ } else { ++ quiet_log(" * Cluster action: %s on %s\n", task, node); ++ } ++ update_graph(graph, action); ++ return TRUE; ++} ++ ++static gboolean ++exec_stonith_action(crm_graph_t * graph, crm_action_t * action) ++{ ++ const char *op = crm_meta_value(action->params, "stonith_action"); ++ char *target = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); ++ ++ quiet_log(" * Fencing %s (%s)\n", target, op); ++ if(safe_str_neq(op, "on")) { ++ int rc = 0; ++ char xpath[STATUS_PATH_MAX]; ++ xmlNode *cib_node = modify_node(fake_cib, target, FALSE); ++ ++ crm_xml_add(cib_node, XML_ATTR_ORIGIN, __FUNCTION__); ++ CRM_ASSERT(cib_node != NULL); ++ ++ rc = fake_cib->cmds->replace(fake_cib, XML_CIB_TAG_STATUS, cib_node, ++ cib_sync_call | cib_scope_local); ++ CRM_ASSERT(rc == pcmk_ok); ++ ++ snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, XML_CIB_TAG_LRM); ++ fake_cib->cmds->delete(fake_cib, xpath, NULL, ++ cib_xpath | cib_sync_call | cib_scope_local); ++ ++ snprintf(xpath, STATUS_PATH_MAX, "//node_state[@uname='%s']/%s", target, ++ XML_TAG_TRANSIENT_NODEATTRS); ++ fake_cib->cmds->delete(fake_cib, xpath, NULL, ++ cib_xpath | cib_sync_call | cib_scope_local); ++ ++ free_xml(cib_node); ++ } ++ ++ action->confirmed = TRUE; ++ update_graph(graph, action); ++ free(target); ++ return TRUE; ++} ++ ++int ++run_simulation(pe_working_set_t * data_set, cib_t *cib, GListPtr op_fail_list, bool quiet) ++{ ++ crm_graph_t *transition = NULL; ++ enum transition_status graph_rc = -1; ++ ++ crm_graph_functions_t exec_fns = { ++ exec_pseudo_action, ++ exec_rsc_action, ++ exec_crmd_action, ++ exec_stonith_action, ++ }; ++ ++ fake_cib = cib; ++ fake_quiet = quiet; ++ fake_op_fail_list = op_fail_list; ++ ++ quiet_log("\nExecuting cluster transition:\n"); ++ ++ set_graph_functions(&exec_fns); ++ transition = unpack_graph(data_set->graph, crm_system_name); ++ print_graph(LOG_DEBUG, transition); ++ ++ fake_resource_list = data_set->resources; ++ do { ++ graph_rc = run_graph(transition); ++ ++ } while (graph_rc == transition_active); ++ fake_resource_list = NULL; ++ ++ if (graph_rc != transition_complete) { ++ fprintf(stdout, "Transition failed: %s\n", transition_status(graph_rc)); ++ print_graph(LOG_ERR, transition); ++ } ++ destroy_graph(transition); ++ if (graph_rc != transition_complete) { ++ fprintf(stdout, "An invalid transition was produced\n"); ++ } ++ ++ if (quiet == FALSE) { ++ xmlNode *cib_object = NULL; ++ int rc = fake_cib->cmds->query(fake_cib, NULL, &cib_object, cib_sync_call | cib_scope_local); ++ ++ CRM_ASSERT(rc == pcmk_ok); ++ cleanup_alloc_calculations(data_set); ++ data_set->input = cib_object; ++ } ++ ++ if (graph_rc != transition_complete) { ++ return graph_rc; ++ } ++ return 0; ++} +diff --git a/tools/fake_transition.h b/tools/fake_transition.h +new file mode 100644 +index 0000000..2ee7af9 +--- /dev/null ++++ b/tools/fake_transition.h +@@ -0,0 +1,8 @@ ++void modify_configuration( ++ pe_working_set_t * data_set, cib_t *cib, ++ const char *quorum, const char *watchdog, GListPtr node_up, GListPtr node_down, GListPtr node_fail, ++ GListPtr op_inject, GListPtr ticket_grant, GListPtr ticket_revoke, ++ GListPtr ticket_standby, GListPtr ticket_activate); ++ ++int run_simulation(pe_working_set_t * data_set, cib_t *cib, GListPtr op_fail_list, bool quiet); ++ diff --git a/SOURCES/pacemaker-rollup-031e46c.patch b/SOURCES/pacemaker-rollup-031e46c.patch new file mode 100644 index 0000000..20a130e --- /dev/null +++ b/SOURCES/pacemaker-rollup-031e46c.patch @@ -0,0 +1,6369 @@ +diff --git a/GNUmakefile b/GNUmakefile +index b17fb4c..f28dea8 100644 +--- a/GNUmakefile ++++ b/GNUmakefile +@@ -58,6 +58,8 @@ BUILD_COUNTER ?= build.counter + LAST_COUNT = $(shell test ! -e $(BUILD_COUNTER) && echo 0; test -e $(BUILD_COUNTER) && cat $(BUILD_COUNTER)) + COUNT = $(shell expr 1 + $(LAST_COUNT)) + ++SPECVERSION ?= $(COUNT) ++ + init: + ./autogen.sh + +@@ -144,7 +146,7 @@ srpm-%: export $(PACKAGE)-%.spec + if [ -e $(BUILD_COUNTER) ]; then \ + echo $(COUNT) > $(BUILD_COUNTER); \ + fi +- sed -i 's/global\ specversion.*/global\ specversion\ $(COUNT)/' $(PACKAGE).spec ++ sed -i 's/global\ specversion.*/global\ specversion\ $(SPECVERSION)/' $(PACKAGE).spec + sed -i 's/global\ commit.*/global\ commit\ $(TAG)/' $(PACKAGE).spec + case "$(WITH)" in \ + *pre_release*) \ +diff --git a/attrd/commands.c b/attrd/commands.c +index c48ef1b..12771ee 100644 +--- a/attrd/commands.c ++++ b/attrd/commands.c +@@ -202,21 +202,27 @@ attrd_client_message(crm_client_t *client, xmlNode *xml) + crm_debug("Setting %s to %s", regex, value); + if (regcomp(r_patt, regex, REG_EXTENDED)) { + crm_err("Bad regex '%s' for update", regex); +- regfree(r_patt); +- free(r_patt); +- return; +- } + +- g_hash_table_iter_init(&aIter, attributes); +- while (g_hash_table_iter_next(&aIter, (gpointer *) & attr, NULL)) { +- int status = regexec(r_patt, attr, 0, NULL, 0); ++ } else { + +- if(status == 0) { +- crm_trace("Matched %s with %s", attr, regex); +- crm_xml_add(xml, F_ATTRD_ATTRIBUTE, attr); +- send_attrd_message(NULL, xml); ++ g_hash_table_iter_init(&aIter, attributes); ++ while (g_hash_table_iter_next(&aIter, (gpointer *) & attr, NULL)) { ++ int status = regexec(r_patt, attr, 0, NULL, 0); ++ ++ if(status == 0) { ++ crm_trace("Matched %s with %s", attr, regex); ++ crm_xml_add(xml, F_ATTRD_ATTRIBUTE, attr); ++ send_attrd_message(NULL, xml); ++ } + } + } ++ ++ free(key); ++ free(set); ++ free(host); ++ ++ regfree(r_patt); ++ free(r_patt); + return; + + } else if(host == NULL) { +diff --git a/cib/callbacks.c b/cib/callbacks.c +index 610aa0a..9fb2de9 100644 +--- a/cib/callbacks.c ++++ b/cib/callbacks.c +@@ -382,6 +382,9 @@ do_local_notify(xmlNode * notify_src, const char *client_id, + /* send callback to originating child */ + crm_client_t *client_obj = NULL; + int local_rc = pcmk_ok; ++ int call_id = 0; ++ ++ crm_element_value_int(notify_src, F_CIB_CALLID, &call_id); + + if (client_id != NULL) { + client_obj = crm_client_get_by_id(client_id); +@@ -389,7 +392,7 @@ do_local_notify(xmlNode * notify_src, const char *client_id, + + if (client_obj == NULL) { + local_rc = -ECONNRESET; +- crm_trace("No client to sent the response to. F_CIB_CLIENTID not set."); ++ crm_trace("No client to sent response %d to, F_CIB_CLIENTID not set.", call_id); + + } else { + int rid = 0; +@@ -405,13 +408,13 @@ do_local_notify(xmlNode * notify_src, const char *client_id, + rid, client_obj->name, + from_peer ? "(originator of delegated request)" : ""); + } else { +- crm_trace("Sending response to %s %s", +- client_obj->name, from_peer ? "(originator of delegated request)" : ""); ++ crm_trace("Sending response [call %d] to %s %s", ++ call_id, client_obj->name, from_peer ? "(originator of delegated request)" : ""); + } + + } else { +- crm_trace("Sending an event to %s %s", +- client_obj->name, from_peer ? "(originator of delegated request)" : ""); ++ crm_trace("Sending event %d to %s %s", ++ call_id, client_obj->name, from_peer ? "(originator of delegated request)" : ""); + } + + switch (client_obj->kind) { +diff --git a/crmd/control.c b/crmd/control.c +index 99ef659..8989859 100644 +--- a/crmd/control.c ++++ b/crmd/control.c +@@ -945,17 +945,23 @@ config_query_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void + throttle_load_target = strtof(value, NULL) / 100; + } + ++ value = getenv("SBD_WATCHDOG_TIMEOUT"); ++ ++ if(value == NULL) { ++ value = crmd_pref(config_hash, "stonith-watchdog-timeout"); ++ } ++ + value = crmd_pref(config_hash, "stonith-watchdog-timeout"); +- if(crm_get_msec(value) > 0 && daemon_option("watchdog") == NULL) { ++ if(crm_get_msec(value) > 0 && !daemon_option_enabled(crm_system_name, "watchdog")) { + do_crm_log_always(LOG_EMERG, "Shutting down pacemaker, no watchdog device configured"); + crmd_exit(DAEMON_RESPAWN_STOP); + +- } else if(crm_get_msec(value) <= 0 && daemon_option("watchdog")) { ++ } else if(crm_get_msec(value) <= 0 && daemon_option_enabled(crm_system_name, "watchdog")) { + crm_warn("Watchdog enabled but no stonith-watchdog-timeout configured"); + } + + value = crmd_pref(config_hash, "no-quorum-policy"); +- if (safe_str_eq(value, "suicide") && daemon_option("watchdog")) { ++ if (safe_str_eq(value, "suicide") && daemon_option_enabled(crm_system_name, "watchdog")) { + no_quorum_suicide_escalation = TRUE; + } + +diff --git a/crmd/election.c b/crmd/election.c +index e0bd6c4..a4f2e99 100644 +--- a/crmd/election.c ++++ b/crmd/election.c +@@ -208,6 +208,9 @@ do_dc_takeover(long long action, + fsa_register_cib_callback(rc, FALSE, NULL, feature_update_callback); + + update_attr_delegate(fsa_cib_conn, cib_none, XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, ++ XML_ATTR_HAVE_WATCHDOG, daemon_option("watchdog"), FALSE, NULL, NULL); ++ ++ update_attr_delegate(fsa_cib_conn, cib_none, XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, + "dc-version", VERSION "-" BUILD_VERSION, FALSE, NULL, NULL); + + update_attr_delegate(fsa_cib_conn, cib_none, XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, +diff --git a/crmd/pengine.c b/crmd/pengine.c +index ab426be..2f7513f 100644 +--- a/crmd/pengine.c ++++ b/crmd/pengine.c +@@ -237,6 +237,48 @@ do_pe_invoke(long long action, + fsa_register_cib_callback(fsa_pe_query, FALSE, NULL, do_pe_invoke_callback); + } + ++static void ++force_local_option(xmlNode *xml, const char *attr_name, const char *attr_value) ++{ ++ int max = 0; ++ int lpc = 0; ++ int xpath_max = 1024; ++ char *xpath_string = NULL; ++ xmlXPathObjectPtr xpathObj = NULL; ++ ++ xpath_string = calloc(1, xpath_max); ++ lpc = snprintf(xpath_string, xpath_max, "%.128s//%s//nvpair[@name='%.128s']", ++ get_object_path(XML_CIB_TAG_CRMCONFIG), XML_CIB_TAG_PROPSET, attr_name); ++ CRM_LOG_ASSERT(lpc > 0); ++ ++ xpathObj = xpath_search(xml, xpath_string); ++ max = numXpathResults(xpathObj); ++ free(xpath_string); ++ ++ for (lpc = 0; lpc < max; lpc++) { ++ xmlNode *match = getXpathResult(xpathObj, lpc); ++ crm_trace("Forcing %s/%s = %s", ID(match), attr_name, attr_value); ++ crm_xml_add(match, XML_NVPAIR_ATTR_VALUE, attr_value); ++ } ++ ++ if(max == 0) { ++ char *attr_id = crm_concat(CIB_OPTIONS_FIRST, attr_name, '-'); ++ ++ crm_trace("Creating %s/%s = %s", attr_id, attr_name, attr_value); ++ xml = create_xml_node(xml, XML_CIB_TAG_CRMCONFIG); ++ xml = create_xml_node(xml, XML_CIB_TAG_PROPSET); ++ crm_xml_add(xml, XML_ATTR_ID, CIB_OPTIONS_FIRST); ++ ++ xml = create_xml_node(xml, XML_CIB_TAG_NVPAIR); ++ ++ crm_xml_add(xml, XML_ATTR_ID, attr_id); ++ crm_xml_add(xml, XML_NVPAIR_ATTR_NAME, attr_name); ++ crm_xml_add(xml, XML_NVPAIR_ATTR_VALUE, attr_value); ++ ++ free(attr_id); ++ } ++} ++ + void + do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void *user_data) + { +@@ -279,6 +321,7 @@ do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void + + crm_xml_add(output, XML_ATTR_DC_UUID, fsa_our_uuid); + crm_xml_add_int(output, XML_ATTR_HAVE_QUORUM, fsa_has_quorum); ++ force_local_option(output, XML_ATTR_HAVE_WATCHDOG, daemon_option("watchdog")); + + if (ever_had_quorum && crm_have_quorum == FALSE) { + crm_xml_add_int(output, XML_ATTR_QUORUM_PANIC, 1); +diff --git a/crmd/remote_lrmd_ra.c b/crmd/remote_lrmd_ra.c +index f3dedeb..2f658ee 100644 +--- a/crmd/remote_lrmd_ra.c ++++ b/crmd/remote_lrmd_ra.c +@@ -140,8 +140,6 @@ recurring_helper(gpointer data) + + ra_data->recurring_cmds = g_list_remove(ra_data->recurring_cmds, cmd); + +- cmd->call_id = generate_callid(); +- + ra_data->cmds = g_list_append(ra_data->cmds, cmd); + mainloop_set_trigger(ra_data->work); + } +@@ -177,6 +175,24 @@ report_remote_ra_result(remote_ra_cmd_t * cmd) + op.interval = cmd->interval; + op.rc = cmd->rc; + op.op_status = cmd->op_status; ++ op.t_run = cmd->start_time; ++ op.t_rcchange = cmd->start_time; ++ if (cmd->reported_success && cmd->rc != PCMK_OCF_OK) { ++ op.t_rcchange = time(NULL); ++ /* This edge case will likely never ever occur, but if it does the ++ * result is that a failure will not be processed correctly. This is only ++ * remotely possible because we are able to detect a connection resource's tcp ++ * connection has failed at any moment after start has completed. The actual ++ * recurring operation is just a connectivity ping. ++ * ++ * basically, we are not guaranteed that the first successful monitor op and ++ * a subsequent failed monitor op will not occur in the same timestamp. We have to ++ * make it look like the operations occurred at separate times though. */ ++ if (op.t_rcchange == op.t_run) { ++ op.t_rcchange++; ++ } ++ } ++ + if (cmd->params) { + lrmd_key_value_t *tmp; + +diff --git a/crmd/te_utils.c b/crmd/te_utils.c +index 66ed1da..69c22e3 100644 +--- a/crmd/te_utils.c ++++ b/crmd/te_utils.c +@@ -126,19 +126,19 @@ tengine_stonith_notify(stonith_t * st, stonith_event_t * st_event) + + if (st_event->result == pcmk_ok && safe_str_eq("on", st_event->action)) { + crm_notice("%s was successfully unfenced by %s (at the request of %s)", +- st_event->target, st_event->executioner, st_event->origin); ++ st_event->target, st_event->executioner ? st_event->executioner : "<anyone>", st_event->origin); + /* TODO: Hook up st_event->device */ + return; + + } else if (safe_str_eq("on", st_event->action)) { + crm_err("Unfencing of %s by %s failed: %s (%d)", +- st_event->target, st_event->executioner, ++ st_event->target, st_event->executioner ? st_event->executioner : "<anyone>", + pcmk_strerror(st_event->result), st_event->result); + return; + + } else if (st_event->result == pcmk_ok && crm_str_eq(st_event->target, fsa_our_uname, TRUE)) { + crm_crit("We were allegedly just fenced by %s for %s!", +- st_event->executioner, st_event->origin); /* Dumps blackbox if enabled */ ++ st_event->executioner ? st_event->executioner : "<anyone>", st_event->origin); /* Dumps blackbox if enabled */ + + qb_log_fini(); /* Try to get the above log message to disk - somehow */ + +diff --git a/cts/CIB.py b/cts/CIB.py +index 6ce38e9..d26efdb 100644 +--- a/cts/CIB.py ++++ b/cts/CIB.py +@@ -177,6 +177,8 @@ class CIB11(ConfigBase): + for node in self.CM.Env["nodes"]: + ftype = self.CM.Env.RandomGen.choice(["levels-and", "levels-or ", "broadcast "]) + self.CM.log(" - Using %s fencing for node: %s" % (ftype, node)) ++ # for baremetal remote node tests ++ stt_nodes.append("remote_%s" % node) + if ftype == "levels-and": + stl.level(1, node, "FencingPass,Fencing") + stt_nodes.append(node) +diff --git a/cts/CTStests.py b/cts/CTStests.py +index cd5b7ce..d2b7668 100644 +--- a/cts/CTStests.py ++++ b/cts/CTStests.py +@@ -453,8 +453,8 @@ class StonithdTest(CTSTest): + is_dc = self.CM.is_node_dc(node) + + watchpats = [] +- watchpats.append("Operation .* for host '%s' with device .* returned: 0" % node) +- watchpats.append("tengine_stonith_notify:.*Peer %s was terminated .*: OK" % node) ++ watchpats.append(self.templates["Pat:FenceOpOK"] % node) ++ watchpats.append(self.templates["Pat:NodeFenced"] % node) + + if self.Env["at-boot"] == 0: + self.debug("Expecting %s to stay down" % node) +@@ -2634,11 +2634,11 @@ AllTestClasses.append(RemoteLXC) + + + ################################################################### +-class RemoteBaremetal(CTSTest): ++class RemoteDriver(CTSTest): + ################################################################### + def __init__(self, cm): + CTSTest.__init__(self,cm) +- self.name = "RemoteBaremetal" ++ self.name = "RemoteDriver" + self.is_docker_unsafe = 1 + self.start = StartTest(cm) + self.startall = SimulStartLite(cm) +@@ -2647,9 +2647,8 @@ class RemoteBaremetal(CTSTest): + self.failed = 0 + self.fail_string = "" + self.remote_node_added = 0 +- self.remote_node = "remote1" + self.remote_rsc_added = 0 +- self.remote_rsc = "remote1-rsc" ++ self.remote_rsc = "remote-rsc" + self.cib_cmd = """cibadmin -C -o %s -X '%s' """ + + def del_rsc(self, node, rsc): +@@ -2679,10 +2678,11 @@ class RemoteBaremetal(CTSTest): + + def add_primitive_rsc(self, node): + rsc_xml = """ +-<primitive class="ocf" id="%s" provider="pacemaker" type="Dummy"> ++<primitive class="ocf" id="%s" provider="heartbeat" type="Dummy"> + <operations> +- <op id="remote1-rsc-monitor-interval-10s" interval="10s" name="monitor"/> ++ <op id="remote-rsc-monitor-interval-10s" interval="10s" name="monitor"/> + </operations> ++ <meta_attributes id="remote-meta_attributes"/> + </primitive>""" % (self.remote_rsc) + self.add_rsc(node, rsc_xml) + if self.failed == 0: +@@ -2691,21 +2691,38 @@ class RemoteBaremetal(CTSTest): + def add_connection_rsc(self, node): + rsc_xml = """ + <primitive class="ocf" id="%s" provider="pacemaker" type="remote"> +- <instance_attributes id="remote1-instance_attributes"/> +- <instance_attributes id="remote1-instance_attributes"> +- <nvpair id="remote1-instance_attributes-server" name="server" value="%s"/> ++ <instance_attributes id="remote-instance_attributes"/> ++ <instance_attributes id="remote-instance_attributes"> ++ <nvpair id="remote-instance_attributes-server" name="server" value="%s"/> + </instance_attributes> + <operations> +- <op id="remote1-monitor-interval-60s" interval="60s" name="monitor"/> +- <op id="remote1-name-start-interval-0-timeout-60" interval="0" name="start" timeout="60"/> ++ <op id="remote-monitor-interval-60s" interval="60s" name="monitor"/> ++ <op id="remote-name-start-interval-0-timeout-120" interval="0" name="start" timeout="120"/> + </operations> +- <meta_attributes id="remote1-meta_attributes"/> + </primitive>""" % (self.remote_node, node) + self.add_rsc(node, rsc_xml) + if self.failed == 0: + self.remote_node_added = 1 + +- def step1_start_metal(self, node): ++ def stop_pcmk_remote(self, node): ++ # disable pcmk remote ++ for i in range(10): ++ rc = self.rsh(node, "service pacemaker_remote stop") ++ if rc != 0: ++ time.sleep(6) ++ else: ++ break ++ ++ def start_pcmk_remote(self, node): ++ for i in range(10): ++ rc = self.rsh(node, "service pacemaker_remote start") ++ if rc != 0: ++ time.sleep(6) ++ else: ++ self.pcmk_started = 1 ++ break ++ ++ def start_metal(self, node): + pcmk_started = 0 + + # make sure the resource doesn't already exist for some reason +@@ -2717,13 +2734,7 @@ class RemoteBaremetal(CTSTest): + self.fail_string = "Failed to shutdown cluster node %s" % (node) + return + +- for i in range(10): +- rc = self.rsh(node, "service pacemaker_remote start") +- if rc != 0: +- time.sleep(6) +- else: +- self.pcmk_started = 1 +- break ++ self.start_pcmk_remote(node) + + if self.pcmk_started == 0: + self.failed = 1 +@@ -2735,6 +2746,7 @@ class RemoteBaremetal(CTSTest): + watch = self.create_watch(pats, 120) + watch.setwatch() + pats.append(self.templates["Pat:RscOpOK"] % (self.remote_node, "start")) ++ pats.append(self.templates["Pat:DC_IDLE"]) + + self.add_connection_rsc(node) + +@@ -2745,7 +2757,112 @@ class RemoteBaremetal(CTSTest): + self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) + self.failed = 1 + +- def step2_add_rsc(self, node): ++ def migrate_connection(self, node): ++ if self.failed == 1: ++ return ++ ++ pats = [ ] ++ pats.append(self.templates["Pat:RscOpOK"] % (self.remote_node, "migrate_to")) ++ pats.append(self.templates["Pat:RscOpOK"] % (self.remote_node, "migrate_from")) ++ pats.append(self.templates["Pat:DC_IDLE"]) ++ watch = self.create_watch(pats, 120) ++ watch.setwatch() ++ ++ (rc, lines) = self.rsh(node, "crm_resource -M -r %s" % (self.remote_node), None) ++ if rc != 0: ++ self.fail_string = "failed to move remote node connection resource" ++ self.logger.log(self.fail_string) ++ self.failed = 1 ++ return ++ ++ self.set_timer("remoteMetalMigrate") ++ watch.lookforall() ++ self.log_timer("remoteMetalMigrate") ++ ++ if watch.unmatched: ++ self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) ++ self.logger.log(self.fail_string) ++ self.failed = 1 ++ return ++ ++ def fail_rsc(self, node): ++ if self.failed == 1: ++ return ++ ++ watchpats = [ ] ++ watchpats.append(self.templates["Pat:RscRemoteOpOK"] % (self.remote_rsc, "stop", self.remote_node)) ++ watchpats.append(self.templates["Pat:RscRemoteOpOK"] % (self.remote_rsc, "start", self.remote_node)) ++ watchpats.append(self.templates["Pat:DC_IDLE"]) ++ ++ watch = self.create_watch(watchpats, 120) ++ watch.setwatch() ++ ++ self.debug("causing dummy rsc to fail.") ++ ++ rc = self.rsh(node, "rm -f /var/run/resource-agents/Dummy*") ++ ++ self.set_timer("remoteRscFail") ++ watch.lookforall() ++ self.log_timer("remoteRscFail") ++ if watch.unmatched: ++ self.fail_string = "Unmatched patterns during rsc fail: %s" % (repr(watch.unmatched)) ++ self.logger.log(self.fail_string) ++ self.failed = 1 ++ ++ def fail_connection(self, node): ++ if self.failed == 1: ++ return ++ ++ watchpats = [ ] ++ watchpats.append(self.templates["Pat:FenceOpOK"] % self.remote_node) ++ watchpats.append(self.templates["Pat:NodeFenced"] % self.remote_node) ++ ++ watch = self.create_watch(watchpats, 120) ++ watch.setwatch() ++ ++ # force stop the pcmk remote daemon. this will result in fencing ++ self.debug("Force stopped active remote node") ++ self.stop_pcmk_remote(node) ++ ++ self.debug("Waiting for remote node to be fenced.") ++ self.set_timer("remoteMetalFence") ++ watch.lookforall() ++ self.log_timer("remoteMetalFence") ++ if watch.unmatched: ++ self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) ++ self.logger.log(self.fail_string) ++ self.failed = 1 ++ return ++ ++ self.debug("Waiting for the remote node to come back up") ++ self.CM.ns.WaitForNodeToComeUp(node, 120); ++ ++ pats = [ ] ++ watch = self.create_watch(pats, 120) ++ watch.setwatch() ++ pats.append(self.templates["Pat:RscOpOK"] % (self.remote_node, "start")) ++ if self.remote_rsc_added == 1: ++ pats.append(self.templates["Pat:RscOpOK"] % (self.remote_rsc, "monitor")) ++ ++ # start the remote node again watch it integrate back into cluster. ++ self.start_pcmk_remote(node) ++ if self.pcmk_started == 0: ++ self.failed = 1 ++ self.fail_string = "Failed to start pacemaker_remote on node %s" % (node) ++ self.logger.log(self.fail_string) ++ return ++ ++ self.debug("Waiting for remote node to rejoin cluster after being fenced.") ++ self.set_timer("remoteMetalRestart") ++ watch.lookforall() ++ self.log_timer("remoteMetalRestart") ++ if watch.unmatched: ++ self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) ++ self.failed = 1 ++ self.logger.log(self.fail_string) ++ return ++ ++ def add_dummy_rsc(self, node): + if self.failed == 1: + return + +@@ -2753,33 +2870,19 @@ class RemoteBaremetal(CTSTest): + pats = [ ] + watch = self.create_watch(pats, 120) + watch.setwatch() +- pats.append("process_lrm_event:.*Operation %s_start_0.*node=%s, .*confirmed.*true" % (self.remote_rsc, self.remote_node)) ++ pats.append(self.templates["Pat:RscRemoteOpOK"] % (self.remote_rsc, "start", self.remote_node)) ++ pats.append(self.templates["Pat:DC_IDLE"]) + + # Add a resource that must live on remote-node + self.add_primitive_rsc(node) +- # this crm_resource command actually occurs on the remote node +- # which verifies that the ipc proxy works +- time.sleep(1) + +- (rc, lines) = self.rsh(node, "crm_resource -W -r remote1-rsc --quiet", None) ++ # force that rsc to prefer the remote node. ++ (rc, line) = self.CM.rsh(node, "crm_resource -M -r %s -N %s -f" % (self.remote_rsc, self.remote_node), None) + if rc != 0: +- self.fail_string = "Failed to get location of resource remote1-rsc" ++ self.fail_string = "Failed to place remote resource on remote node." + self.failed = 1 + return + +- find = 0 +- for line in lines: +- if self.remote_node in line.split(): +- find = 1 +- break +- +- if find == 0: +- rc = self.rsh(node, "crm_resource -M -r remote1-rsc -N %s" % (self.remote_node)) +- if rc != 0: +- self.fail_string = "Failed to place primitive on remote-node" +- self.failed = 1 +- return +- + self.set_timer("remoteMetalRsc") + watch.lookforall() + self.log_timer("remoteMetalRsc") +@@ -2787,7 +2890,7 @@ class RemoteBaremetal(CTSTest): + self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) + self.failed = 1 + +- def step3_test_attributes(self, node): ++ def test_attributes(self, node): + if self.failed == 1: + return + +@@ -2827,9 +2930,10 @@ class RemoteBaremetal(CTSTest): + + self.set_timer("remoteMetalCleanup") + if self.remote_rsc_added == 1: +- self.rsh(node, "crm_resource -U -r remote1-rsc -N %s" % (self.remote_node)) ++ self.rsh(node, "crm_resource -U -r %s -N %s" % (self.remote_rsc, self.remote_node)) + self.del_rsc(node, self.remote_rsc) + if self.remote_node_added == 1: ++ self.rsh(node, "crm_resource -U -r %s" % (self.remote_node)) + self.del_rsc(node, self.remote_node) + watch.lookforall() + self.log_timer("remoteMetalCleanup") +@@ -2838,15 +2942,11 @@ class RemoteBaremetal(CTSTest): + self.fail_string = "Unmatched patterns: %s" % (repr(watch.unmatched)) + self.failed = 1 + +- # disable pcmk remote +- for i in range(10): +- rc = self.rsh(node, "service pacemaker_remote stop") +- if rc != 0: +- time.sleep(6) +- else: +- break ++ self.stop_pcmk_remote(node) + +- def setup_env(self): ++ def setup_env(self, node): ++ ++ self.remote_node = "remote_%s" % (node) + sync_key = 0 + + # we are assuming if all nodes have a key, that it is +@@ -2887,10 +2987,10 @@ class RemoteBaremetal(CTSTest): + if not ret: + return self.failure("Setup failed, start all nodes failed.") + +- self.setup_env() +- self.step1_start_metal(node) +- self.step2_add_rsc(node) +- self.step3_test_attributes(node) ++ self.setup_env(node) ++ self.start_metal(node) ++ self.add_dummy_rsc(node) ++ self.test_attributes(node) + self.cleanup_metal(node) + + self.debug("Waiting for the cluster to recover") +@@ -2902,11 +3002,201 @@ class RemoteBaremetal(CTSTest): + + def errorstoignore(self): + '''Return list of errors which should be ignored''' +- return [ """is running on remote1 which isn't allowed""", ++ return [ """is running on remote.*which isn't allowed""", + """Connection terminated""", + """Failed to send remote""", + ] + +-AllTestClasses.append(RemoteBaremetal) ++# Remote driver is called by other tests. ++ ++################################################################### ++class RemoteBasic(CTSTest): ++################################################################### ++ def __init__(self, cm): ++ CTSTest.__init__(self,cm) ++ self.name = "RemoteBasic" ++ self.start = StartTest(cm) ++ self.startall = SimulStartLite(cm) ++ self.driver = RemoteDriver(cm) ++ self.is_docker_unsafe = 1 ++ ++ def __call__(self, node): ++ '''Perform the 'RemoteBaremetal' test. ''' ++ self.incr("calls") ++ ++ ret = self.startall(None) ++ if not ret: ++ return self.failure("Setup failed, start all nodes failed.") ++ ++ self.driver.setup_env(node) ++ self.driver.start_metal(node) ++ self.driver.add_dummy_rsc(node) ++ self.driver.test_attributes(node) ++ self.driver.cleanup_metal(node) ++ ++ self.debug("Waiting for the cluster to recover") ++ self.CM.cluster_stable() ++ if self.driver.failed == 1: ++ return self.failure(self.driver.fail_string) ++ ++ return self.success() ++ ++ def is_applicable(self): ++ return self.driver.is_applicable() ++ ++ def errorstoignore(self): ++ return self.driver.errorstoignore() ++ ++AllTestClasses.append(RemoteBasic) ++ ++################################################################### ++class RemoteStonithd(CTSTest): ++################################################################### ++ def __init__(self, cm): ++ CTSTest.__init__(self,cm) ++ self.name = "RemoteStonithd" ++ self.start = StartTest(cm) ++ self.startall = SimulStartLite(cm) ++ self.driver = RemoteDriver(cm) ++ self.is_docker_unsafe = 1 ++ ++ def __call__(self, node): ++ '''Perform the 'RemoteStonithd' test. ''' ++ self.incr("calls") ++ ++ ret = self.startall(None) ++ if not ret: ++ return self.failure("Setup failed, start all nodes failed.") ++ ++ self.driver.setup_env(node) ++ self.driver.start_metal(node) ++ self.driver.add_dummy_rsc(node) ++ ++ self.driver.fail_connection(node) ++ self.driver.cleanup_metal(node) ++ ++ self.debug("Waiting for the cluster to recover") ++ self.CM.cluster_stable() ++ if self.driver.failed == 1: ++ return self.failure(self.driver.fail_string) ++ ++ return self.success() ++ ++ def is_applicable(self): ++ if not self.driver.is_applicable(): ++ return False ++ ++ if self.Env.has_key("DoFencing"): ++ return self.Env["DoFencing"] ++ ++ return True ++ ++ def errorstoignore(self): ++ ignore_pats = [ ++ """Unexpected disconnect on remote-node""", ++ """error: process_lrm_event: Operation remote_.*_monitor""", ++ """LogActions: Recover remote_""", ++ """Calculated Transition .* /var/lib/pacemaker/pengine/pe-error""", ++ """error: native_create_actions: Resource .*ocf::.* is active on 2 nodes attempting recovery""", ++ ] ++ ++ ignore_pats.extend(self.driver.errorstoignore()) ++ return ignore_pats ++ ++AllTestClasses.append(RemoteStonithd) ++ ++################################################################### ++class RemoteMigrate(CTSTest): ++################################################################### ++ def __init__(self, cm): ++ CTSTest.__init__(self,cm) ++ self.name = "RemoteMigrate" ++ self.start = StartTest(cm) ++ self.startall = SimulStartLite(cm) ++ self.driver = RemoteDriver(cm) ++ self.is_docker_unsafe = 1 ++ ++ def __call__(self, node): ++ '''Perform the 'RemoteMigrate' test. ''' ++ self.incr("calls") ++ ++ ret = self.startall(None) ++ if not ret: ++ return self.failure("Setup failed, start all nodes failed.") ++ ++ self.driver.setup_env(node) ++ self.driver.start_metal(node) ++ self.driver.add_dummy_rsc(node) ++ self.driver.migrate_connection(node) ++ self.driver.cleanup_metal(node) ++ ++ self.debug("Waiting for the cluster to recover") ++ self.CM.cluster_stable() ++ if self.driver.failed == 1: ++ return self.failure(self.driver.fail_string) ++ ++ return self.success() ++ ++ def is_applicable(self): ++ return self.driver.is_applicable() ++ ++ def errorstoignore(self): ++ return self.driver.errorstoignore() ++ ++AllTestClasses.append(RemoteMigrate) ++ ++ ++################################################################### ++class RemoteRscFailure(CTSTest): ++################################################################### ++ def __init__(self, cm): ++ ++ # fail a rsc on a remote node, verify recovery. ++ CTSTest.__init__(self,cm) ++ self.name = "RemoteRscFailure" ++ self.start = StartTest(cm) ++ self.startall = SimulStartLite(cm) ++ self.driver = RemoteDriver(cm) ++ self.is_docker_unsafe = 1 ++ ++ def __call__(self, node): ++ '''Perform the 'RemoteRscFailure' test. ''' ++ self.incr("calls") ++ ++ ret = self.startall(None) ++ if not ret: ++ return self.failure("Setup failed, start all nodes failed.") ++ ++ self.driver.setup_env(node) ++ self.driver.start_metal(node) ++ self.driver.add_dummy_rsc(node) ++ ++ # This is an important step. We are migrating the connection ++ # before failing the resource. This verifies that the migration ++ # has properly maintained control over the remote-node. ++ self.driver.migrate_connection(node) ++ ++ self.driver.fail_rsc(node) ++ self.driver.cleanup_metal(node) ++ ++ self.debug("Waiting for the cluster to recover") ++ self.CM.cluster_stable() ++ if self.driver.failed == 1: ++ return self.failure(self.driver.fail_string) ++ ++ return self.success() ++ ++ def is_applicable(self): ++ return self.driver.is_applicable() ++ ++ def errorstoignore(self): ++ ignore_pats = [ ++ """LogActions: Recover remote-rsc""", ++ ] ++ ++ ignore_pats.extend(self.driver.errorstoignore()) ++ return ignore_pats ++ ++AllTestClasses.append(RemoteRscFailure) + + # vim:ts=4:sw=4:et: +diff --git a/cts/patterns.py b/cts/patterns.py +index 8d34e1c..e734f40 100644 +--- a/cts/patterns.py ++++ b/cts/patterns.py +@@ -56,6 +56,9 @@ class BasePatterns: + "Pat:Fencing_ok" : "stonith.*remote_op_done:.*Operation .* of %s by .*: OK", + + "Pat:RscOpOK" : "process_lrm_event:.*Operation %s_%s.*ok.*confirmed", ++ "Pat:RscRemoteOpOK" : "process_lrm_event:.*Operation %s_%s.*ok.*node=%s, .*confirmed.*true", ++ "Pat:NodeFenced" : "tengine_stonith_notify:.*Peer %s was terminated .*: OK", ++ "Pat:FenceOpOK" : "Operation .* for host '%s' with device .* returned: 0", + } + + def get_component(self, key): +diff --git a/cts/watcher.py b/cts/watcher.py +index 5e6ee43..41e4100 100644 +--- a/cts/watcher.py ++++ b/cts/watcher.py +@@ -31,7 +31,8 @@ from cts.remote import * + from cts.logging import * + + has_log_watcher = {} +-log_watcher_bin = CTSvars.CRM_DAEMON_DIR + "/cts_log_watcher.py" ++log_watcher_file = "cts_log_watcher.py" ++log_watcher_bin = CTSvars.CRM_DAEMON_DIR + "/" + log_watcher_file + log_watcher = """ + import sys, os, fcntl + +@@ -164,14 +165,16 @@ class FileObj(SearchObj): + global log_watcher + global log_watcher_bin + +- self.debug("Installing %s on %s" % (log_watcher_bin, host)) ++ self.debug("Installing %s on %s" % (log_watcher_file, host)) + +- os.system("cat << END >> %s\n%s\nEND" %(log_watcher_bin, log_watcher)) +- os.system("chmod 755 %s" %(log_watcher_bin)) ++ os.system("cat << END >> %s\n%s\nEND" %(log_watcher_file, log_watcher)) ++ os.system("chmod 755 %s" %(log_watcher_file)) + +- self.rsh.cp(log_watcher_bin, "root@%s:%s" % (host, log_watcher_bin)) ++ self.rsh.cp(log_watcher_file, "root@%s:%s" % (host, log_watcher_bin)) + has_log_watcher[host] = 1 + ++ os.system("rm -f %s" %(log_watcher_file)) ++ + self.harvest() + + def async_complete(self, pid, returncode, outLines, errLines): +diff --git a/doc/Makefile.am b/doc/Makefile.am +index 8798365..9194f1d 100644 +--- a/doc/Makefile.am ++++ b/doc/Makefile.am +@@ -29,6 +29,7 @@ publican_docs = + generated_docs = + generated_mans = + ++ASCIIDOC_CLI_TYPE := pcs + DOCBOOK_FORMATS := html-desktop + DOCBOOK_LANGS := en-US + DOTs = $(wildcard */en-US/images/*.dot) +@@ -154,17 +155,15 @@ pdf: + make DOCBOOK_FORMATS="pdf" ASCIIDOC_CLI_TYPE=$(ASCIIDOC_CLI_TYPE) all-local + + # Make sure www-(pcs|crmsh) happen in serial +-www: +- make www-pcs +- make www-crmsh +- make $(generated_docs) $(ascii) ++www: clean-local $(generated_docs) $(ascii) ++ make www-cli + rsync -rtz --progress $(generated_docs) $(ascii) $(asciiman) root@www.clusterlabs.org:/var/www/html/doc/ + + www-crmsh: + make ASCIIDOC_CLI_TYPE=crmsh clean-local www-cli + + www-pcs: +- make ASCIIDOC_CLI_TYPE=pcs clean-local www-cli ++ make ASCIIDOC_CLI_TYPE=pcs www-cli + + www-cli: + for book in $(docbook); do \ +diff --git a/doc/Pacemaker_Explained/en-US/Ch-Options.txt b/doc/Pacemaker_Explained/en-US/Ch-Options.txt +index cf1478f..3a6ee0b 100644 +--- a/doc/Pacemaker_Explained/en-US/Ch-Options.txt ++++ b/doc/Pacemaker_Explained/en-US/Ch-Options.txt +@@ -89,22 +89,22 @@ cluster cannot start resources or fence other nodes. See + +no-quorum-policy+ below. + + | dc-version | +-indexterm:[dc-version,Cluster Peroperty] +-indexterm:[Cluster,Peroperty,dc-version] ++indexterm:[dc-version,Cluster Property] ++indexterm:[Cluster,Property,dc-version] + Version of Pacemaker on the cluster's DC. + + Often includes the hash which identifies the exact Git changeset it + was built from. Used for diagnostic purposes. + + | cluster-infrastructure | +-indexterm:[cluster-infrastructure,Cluster Peroperty] +-indexterm:[Cluster,Peroperty,cluster-infrastructure] ++indexterm:[cluster-infrastructure,Cluster Property] ++indexterm:[Cluster,Property,cluster-infrastructure] + The messaging stack on which Pacemaker is currently running. + Used for informational and diagnostic purposes. + + | expected-quorum-votes | +-indexterm:[expected-quorum-votes,Cluster Peroperty] +-indexterm:[Cluster,Peroperty,expected-quorum-votes] ++indexterm:[expected-quorum-votes,Cluster Property] ++indexterm:[Cluster,Property,expected-quorum-votes] + The number of nodes expected to be in the cluster + + Used to calculate quorum in Corosync 1.x (not CMAN) based clusters. +diff --git a/extra/resources/ping b/extra/resources/ping +index b9a69b8..e7b9973 100755 +--- a/extra/resources/ping ++++ b/extra/resources/ping +@@ -77,7 +77,7 @@ The name of the attributes to set. This is the name to be used in the constrain + The number by which to multiply the number of connected ping nodes by + </longdesc> + <shortdesc lang="en">Value multiplier</shortdesc> +-<content type="integer" default=""/> ++<content type="integer" default="1"/> + </parameter> + + <parameter name="host_list" unique="0" required="1"> +@@ -93,7 +93,7 @@ The list of ping nodes to count. + Number of ping attempts, per host, before declaring it dead + </longdesc> + <shortdesc lang="en">no. of ping attempts</shortdesc> +-<content type="integer" default="2"/> ++<content type="integer" default="3"/> + </parameter> + + <parameter name="timeout" unique="0"> +@@ -121,6 +121,15 @@ Default never fails. + <content type="integer" default=""/> + </parameter> + ++<parameter name="use_fping" unique="0"> ++<longdesc lang="en"> ++Use fping rather than ping, if found. If set to 0, fping ++will not be used even if present. ++</longdesc> ++<shortdesc lang="en">Use fping if available</shortdesc> ++<content type="boolean" default="1"/> ++</parameter> ++ + <parameter name="debug" unique="0"> + <longdesc lang="en"> + Enables to use default attrd_updater verbose logging on every call. +@@ -154,7 +163,7 @@ ping_conditional_log() { + + ping_usage() { + cat <<END +-usage: $0 {start|stop|monitor|migrate_to|migrate_from|validate-all|meta-data} ++usage: $0 {start|stop|monitor|validate-all|meta-data} + + Expects to have a fully populated OCF RA-compliant environment set. + END +@@ -225,7 +234,7 @@ fping_check() { + n=$OCF_RESKEY_attempts + timeout=`expr $OCF_RESKEY_timeout \* 1000 / $OCF_RESKEY_attempts` + +- cmd="fping -r $OCF_RESKEY_attempts -t $timeout -B 1.0 $OCF_RESKEY_host_list" ++ cmd="fping -r $OCF_RESKEY_attempts -t $timeout -B 1.0 $OCF_RESKEY_options $OCF_RESKEY_host_list" + $cmd>$f_out 2>$f_err; rc=$? + active=`grep alive $f_out|wc -l` + +@@ -274,7 +283,7 @@ ping_check() { + + ping_update() { + +- if have_binary fping; then ++ if ocf_is_true "$OCF_RESKEY_use_fping" && have_binary fping; then + fping_check + active=$? + else +@@ -306,6 +315,7 @@ ping_update() { + : ${OCF_RESKEY_multiplier:="1"} + : ${OCF_RESKEY_debug:="false"} + : ${OCF_RESKEY_failure_score:="0"} ++: ${OCF_RESKEY_use_fping:="1"} + + : ${OCF_RESKEY_CRM_meta_timeout:="20000"} + : ${OCF_RESKEY_CRM_meta_globally_unique:="true"} +diff --git a/extra/resources/remote b/extra/resources/remote +index 9f141a2..d79c4c3 100644 +--- a/extra/resources/remote ++++ b/extra/resources/remote +@@ -58,12 +58,12 @@ meta_data() { + tcp port to connect to. + </longdesc> + <shortdesc lang="en">tcp port</shortdesc> +- <content type="string" default="1984"/> ++ <content type="string" default="3121"/> + </parameter> + </parameters> + <actions> +- <action name="start" timeout="40" /> +- <action name="stop" timeout="40" /> ++ <action name="start" timeout="60" /> ++ <action name="stop" timeout="60" /> + <action name="monitor" timeout="30" /> + <action name="migrate_to" timeout="60" /> + <action name="migrate_from" timeout="60" /> +diff --git a/fencing/main.c b/fencing/main.c +index b03659e..fe6560d 100644 +--- a/fencing/main.c ++++ b/fencing/main.c +@@ -1002,15 +1002,22 @@ update_cib_cache_cb(const char *event, xmlNode * msg) + stonith_enabled_s = crm_element_value(stonith_enabled_xml, XML_NVPAIR_ATTR_VALUE); + } + +- if(daemon_option("watchdog")) { +- stonith_watchdog_xml = get_xpath_object("//nvpair[@name='stonith-watchdog-timeout']", local_cib, LOG_TRACE); +- } ++ if(daemon_option_enabled(crm_system_name, "watchdog")) { ++ const char *value = getenv("SBD_WATCHDOG_TIMEOUT"); + +- if (stonith_watchdog_xml) { +- const char *value = crm_element_value(stonith_watchdog_xml, XML_NVPAIR_ATTR_VALUE); +- stonith_watchdog_timeout_ms = crm_get_msec(value); +- } else { +- stonith_watchdog_timeout_ms = 0; ++ if(value == NULL) { ++ stonith_watchdog_xml = get_xpath_object("//nvpair[@name='stonith-watchdog-timeout']", local_cib, LOG_TRACE); ++ if (stonith_watchdog_xml) { ++ value = crm_element_value(stonith_watchdog_xml, XML_NVPAIR_ATTR_VALUE); ++ } ++ } ++ ++ if(value) { ++ stonith_watchdog_timeout_ms = crm_get_msec(value); ++ ++ } else { ++ stonith_watchdog_timeout_ms = 0; ++ } + } + + if (stonith_enabled_s && crm_is_true(stonith_enabled_s) == FALSE) { +@@ -1354,11 +1361,12 @@ main(int argc, char **argv) + + topology = g_hash_table_new_full(crm_str_hash, g_str_equal, NULL, free_topology_entry); + +- if(daemon_option("watchdog")) { ++ if(daemon_option_enabled(crm_system_name, "watchdog")) { + xmlNode *xml; + stonith_key_value_t *params = NULL; + +- stonith_key_value_add(params, STONITH_ATTR_HOSTLIST, stonith_our_uname); ++ params = stonith_key_value_add(params, STONITH_ATTR_HOSTLIST, stonith_our_uname); ++ + xml = create_device_registration_xml("watchdog", "internal", STONITH_WATCHDOG_AGENT, params, NULL); + stonith_device_register(xml, NULL, FALSE); + +diff --git a/fencing/remote.c b/fencing/remote.c +index 3f4f5ca..63c0274 100644 +--- a/fencing/remote.c ++++ b/fencing/remote.c +@@ -277,11 +277,9 @@ remote_op_done(remote_fencing_op_t * op, xmlNode * data, int rc, int dup) + } + + if (!op->delegate && data) { +- xmlNode *ndata = get_xpath_object("//@" F_STONITH_DELEGATE, data, LOG_WARNING); ++ xmlNode *ndata = get_xpath_object("//@" F_STONITH_DELEGATE, data, LOG_TRACE); + if(ndata) { + op->delegate = crm_element_value_copy(ndata, F_STONITH_DELEGATE); +- } else { +- op->delegate = crm_element_value_copy(data, F_ORIG); + } + } + +@@ -1055,9 +1053,10 @@ call_remote_stonith(remote_fencing_op_t * op, st_query_result_t * peer) + + } else { + timeout_one = TIMEOUT_MULTIPLY_FACTOR * get_peer_timeout(peer, op->base_timeout); +- crm_info("Requesting that %s perform op %s %s for %s (%ds)", +- peer->host, op->action, op->target, op->client_name, timeout_one); ++ crm_info("Requesting that %s perform op %s %s for %s (%ds, %ds)", ++ peer->host, op->action, op->target, op->client_name, timeout_one, stonith_watchdog_timeout_ms); + crm_xml_add(remote_op, F_STONITH_MODE, "smart"); ++ + } + + op->state = st_exec; +@@ -1065,7 +1064,17 @@ call_remote_stonith(remote_fencing_op_t * op, st_query_result_t * peer) + g_source_remove(op->op_timer_one); + } + +- if(device && stonith_watchdog_timeout_ms && safe_str_eq(device, "watchdog")) { ++ if(stonith_watchdog_timeout_ms > 0 && device && safe_str_eq(device, "watchdog")) { ++ crm_notice("Waiting %ds for %s to self-terminate for %s.%.8s (%p)", ++ stonith_watchdog_timeout_ms/1000, op->target, op->client_name, op->id, device); ++ op->op_timer_one = g_timeout_add(stonith_watchdog_timeout_ms, remote_op_watchdog_done, op); ++ ++ /* TODO: We should probably look into peer->device_list to verify watchdog is going to be in use */ ++ } else if(stonith_watchdog_timeout_ms > 0 ++ && safe_str_eq(peer->host, op->target) ++ && safe_str_neq(op->action, "on")) { ++ crm_notice("Waiting %ds for %s to self-terminate for %s.%.8s (%p)", ++ stonith_watchdog_timeout_ms/1000, op->target, op->client_name, op->id, device); + op->op_timer_one = g_timeout_add(stonith_watchdog_timeout_ms, remote_op_watchdog_done, op); + + } else { +@@ -1094,6 +1103,14 @@ call_remote_stonith(remote_fencing_op_t * op, st_query_result_t * peer) + /* if the operation never left the query state, + * but we have all the expected replies, then no devices + * are available to execute the fencing operation. */ ++ if(stonith_watchdog_timeout_ms && (device == NULL || safe_str_eq(device, "watchdog"))) { ++ crm_notice("Waiting %ds for %s to self-terminate for %s.%.8s (%p)", ++ stonith_watchdog_timeout_ms/1000, op->target, op->client_name, op->id, device); ++ ++ op->op_timer_one = g_timeout_add(stonith_watchdog_timeout_ms, remote_op_watchdog_done, op); ++ return; ++ } ++ + if (op->state == st_query) { + crm_info("None of the %d peers have devices capable of terminating %s for %s (%d)", + op->replies, op->target, op->client_name, op->state); +diff --git a/include/crm/msg_xml.h b/include/crm/msg_xml.h +index 1ff425c..d3c2643 100644 +--- a/include/crm/msg_xml.h ++++ b/include/crm/msg_xml.h +@@ -86,6 +86,7 @@ + + # define XML_ATTR_QUORUM_PANIC "no-quorum-panic" + # define XML_ATTR_HAVE_QUORUM "have-quorum" ++# define XML_ATTR_HAVE_WATCHDOG "have-watchdog" + # define XML_ATTR_EXPECTED_VOTES "expected-quorum-votes" + # define XML_ATTR_GENERATION "epoch" + # define XML_ATTR_GENERATION_ADMIN "admin_epoch" +@@ -298,6 +299,8 @@ + # define XML_CONS_TAG_RSC_SET "resource_set" + # define XML_CONS_ATTR_SYMMETRICAL "symmetrical" + ++# define XML_LOCATION_ATTR_DISCOVERY "resource-discovery" ++ + # define XML_COLOC_ATTR_SOURCE "rsc" + # define XML_COLOC_ATTR_SOURCE_ROLE "rsc-role" + # define XML_COLOC_ATTR_TARGET "with-rsc" +@@ -321,6 +324,7 @@ + # define XML_NVPAIR_ATTR_VALUE "value" + + # define XML_NODE_ATTR_STATE "state" ++# define XML_NODE_ATTR_RSC_DISCOVERY "resource-discovery-enabled" + + # define XML_CONFIG_ATTR_DC_DEADTIME "dc-deadtime" + # define XML_CONFIG_ATTR_ELECTION_FAIL "election-timeout" +diff --git a/include/crm/pengine/status.h b/include/crm/pengine/status.h +index d0ba856..f08a910 100644 +--- a/include/crm/pengine/status.h ++++ b/include/crm/pengine/status.h +@@ -136,6 +136,8 @@ struct node_shared_s { + gboolean shutdown; + gboolean expected_up; + gboolean is_dc; ++ gboolean rsc_discovery_enabled; ++ + int num_resources; + GListPtr running_rsc; /* resource_t* */ + GListPtr allocated_rsc; /* resource_t* */ +@@ -156,6 +158,7 @@ struct node_shared_s { + struct node_s { + int weight; + gboolean fixed; ++ int rsc_discover_mode; + int count; + struct node_shared_s *details; + }; +@@ -252,6 +255,7 @@ struct resource_s { + int migration_threshold; + + gboolean is_remote_node; ++ gboolean exclusive_discover; + + unsigned long long flags; + +diff --git a/lib/cib/cib_utils.c b/lib/cib/cib_utils.c +index 022a8ab..15b354b 100644 +--- a/lib/cib/cib_utils.c ++++ b/lib/cib/cib_utils.c +@@ -665,7 +665,7 @@ cib_native_callback(cib_t * cib, xmlNode * msg, int call_id, int rc) + crm_trace("Invoking global callback for call %d", call_id); + cib->op_callback(msg, call_id, rc, output); + } +- crm_trace("OP callback activated."); ++ crm_trace("OP callback activated for %d", call_id); + } + + void +diff --git a/lib/common/mainloop.c b/lib/common/mainloop.c +index ac395ec..f2295ff 100644 +--- a/lib/common/mainloop.c ++++ b/lib/common/mainloop.c +@@ -799,7 +799,7 @@ mainloop_add_fd(const char *name, int priority, int fd, void *userdata, + { + mainloop_io_t *client = NULL; + +- if (fd > 0) { ++ if (fd >= 0) { + client = calloc(1, sizeof(mainloop_io_t)); + client->name = strdup(name); + client->userdata = userdata; +diff --git a/lib/common/utils.c b/lib/common/utils.c +index dc54e6d..6b8b12c 100644 +--- a/lib/common/utils.c ++++ b/lib/common/utils.c +@@ -2008,6 +2008,7 @@ attrd_update_delegate(crm_ipc_t * ipc, char command, const char *host, const cha + case 'u': + crm_xml_add(update, F_ATTRD_TASK, "update"); + crm_xml_add(update, F_ATTRD_REGEX, name); ++ break; + case 'D': + case 'U': + case 'v': +diff --git a/lib/common/watchdog.c b/lib/common/watchdog.c +index 7d70f91..3c616cd 100644 +--- a/lib/common/watchdog.c ++++ b/lib/common/watchdog.c +@@ -211,10 +211,10 @@ pcmk_panic_local(void) + + if(ppid > 1) { + /* child daemon */ +- crm_exit(pcmk_err_panic); ++ exit(pcmk_err_panic); + } else { + /* pacemakerd or orphan child */ +- crm_exit(DAEMON_RESPAWN_STOP); ++ exit(DAEMON_RESPAWN_STOP); + } + } + +@@ -222,6 +222,7 @@ static void + pcmk_panic_sbd(void) + { + union sigval signal_value; ++ pid_t ppid = getppid(); + + do_crm_log_always(LOG_EMERG, "Signaling sbd(%d) to panic", sbd_pid); + +@@ -232,7 +233,13 @@ pcmk_panic_sbd(void) + pcmk_panic_local(); + } + +- crm_exit(DAEMON_RESPAWN_STOP); ++ if(ppid > 1) { ++ /* child daemon */ ++ exit(pcmk_err_panic); ++ } else { ++ /* pacemakerd or orphan child */ ++ exit(DAEMON_RESPAWN_STOP); ++ } + } + + void +@@ -275,17 +282,27 @@ pcmk_locate_sbd(void) + } + + /* Look for the pid file */ ++ pidfile = g_strdup_printf("%s/sbd.pid", HA_STATE_DIR); + + /* Read the pid file */ + if(pidfile) { + int rc = crm_pidfile_inuse(pidfile, 1); + if(rc < pcmk_ok && rc != -ENOENT) { + sbd_pid = crm_read_pidfile(pidfile); ++ crm_trace("SBD detected at pid=%d (file)"); + } + } + +- /* Fall back to /proc for systems that support it */ +- sbd_pid = pcmk_locate_proc_entry("sbd"); ++ if(sbd_pid < 0) { ++ /* Fall back to /proc for systems that support it */ ++ sbd_pid = pcmk_locate_proc_entry("sbd"); ++ crm_trace("SBD detected at pid=%d (proc)"); ++ } ++ ++ if(sbd_pid < 0) { ++ sbd_pid = 0; ++ } + ++ free(pidfile); + return sbd_pid; + } +diff --git a/lib/common/xml.c b/lib/common/xml.c +index 06de44c..58d0a00 100644 +--- a/lib/common/xml.c ++++ b/lib/common/xml.c +@@ -386,6 +386,7 @@ static int __xml_build_schema_list(void) + xslt = get_schema_path(NULL, transform); + if(stat(xslt, &s) != 0) { + crm_err("Transform %s not found", xslt); ++ free(xslt); + __xml_schema_add(2, version, NULL, NULL, NULL, -1); + break; + } else { +@@ -1950,9 +1951,11 @@ bool xml_patch_versions(xmlNode *patchset, int add[3], int del[3]) + return -EINVAL; + } + +- for(lpc = 0; lpc < DIMOF(vfields); lpc++) { +- crm_element_value_int(tmp, vfields[lpc], &(del[lpc])); +- crm_trace("Got %d for del[%s]", del[lpc], vfields[lpc]); ++ if (tmp) { ++ for(lpc = 0; lpc < DIMOF(vfields); lpc++) { ++ crm_element_value_int(tmp, vfields[lpc], &(del[lpc])); ++ crm_trace("Got %d for del[%s]", del[lpc], vfields[lpc]); ++ } + } + + switch(format) { +@@ -1973,9 +1976,11 @@ bool xml_patch_versions(xmlNode *patchset, int add[3], int del[3]) + return -EINVAL; + } + +- for(lpc = 0; lpc < DIMOF(vfields); lpc++) { +- crm_element_value_int(tmp, vfields[lpc], &(add[lpc])); +- crm_trace("Got %d for add[%s]", add[lpc], vfields[lpc]); ++ if (tmp) { ++ for(lpc = 0; lpc < DIMOF(vfields); lpc++) { ++ crm_element_value_int(tmp, vfields[lpc], &(add[lpc])); ++ crm_trace("Got %d for add[%s]", add[lpc], vfields[lpc]); ++ } + } + + return pcmk_ok; +diff --git a/lib/pengine/common.c b/lib/pengine/common.c +index e98e1d3..e5e4ea7 100644 +--- a/lib/pengine/common.c ++++ b/lib/pengine/common.c +@@ -106,6 +106,8 @@ pe_cluster_option pe_opts[] = { + "Action to send to STONITH device", NULL }, + { "stonith-timeout", NULL, "time", NULL, "60s", &check_timer, + "How long to wait for the STONITH action to complete", NULL }, ++ { XML_ATTR_HAVE_WATCHDOG, NULL, "boolean", NULL, "false", &check_boolean, ++ "Enable watchdog integration", "Set automatically by the cluster if SBD is detected. User configured values are ignored." }, + { "startup-fencing", "startup_fencing", "boolean", NULL, "true", &check_boolean, + "STONITH unseen nodes", "Advanced Use Only! Not using the default is very unsafe!" }, + +diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c +index 7127c12..a19bdff 100644 +--- a/lib/pengine/unpack.c ++++ b/lib/pengine/unpack.c +@@ -140,6 +140,12 @@ unpack_config(xmlNode * config, pe_working_set_t * data_set) + crm_info("Startup probes: disabled (dangerous)"); + } + ++ value = pe_pref(data_set->config_hash, XML_ATTR_HAVE_WATCHDOG); ++ if (value && crm_is_true(value)) { ++ crm_notice("Relying on watchdog integration for fencing"); ++ set_bit(data_set->flags, pe_flag_have_stonith_resource); ++ } ++ + value = pe_pref(data_set->config_hash, "stonith-timeout"); + data_set->stonith_timeout = crm_get_msec(value); + crm_debug("STONITH timeout: %d", data_set->stonith_timeout); +@@ -294,6 +300,7 @@ create_node(const char *id, const char *uname, const char *type, const char *sco + new_node->details->uname = uname; + new_node->details->online = FALSE; + new_node->details->shutdown = FALSE; ++ new_node->details->rsc_discovery_enabled = TRUE; + new_node->details->running_rsc = NULL; + new_node->details->type = node_ping; + +@@ -308,6 +315,13 @@ create_node(const char *id, const char *uname, const char *type, const char *sco + new_node->details->attrs = g_hash_table_new_full(crm_str_hash, g_str_equal, + g_hash_destroy_str, + g_hash_destroy_str); ++ ++ if (is_remote_node(new_node)) { ++ g_hash_table_insert(new_node->details->attrs, strdup("#kind"), strdup("remote")); ++ } else { ++ g_hash_table_insert(new_node->details->attrs, strdup("#kind"), strdup("cluster")); ++ } ++ + new_node->details->utilization = + g_hash_table_new_full(crm_str_hash, g_str_equal, g_hash_destroy_str, + g_hash_destroy_str); +@@ -657,7 +671,10 @@ link_rsc2remotenode(pe_working_set_t *data_set, resource_t *new_rsc) + * as cluster nodes. */ + if (new_rsc->container == NULL) { + handle_startup_fencing(data_set, remote_node); +- return; ++ } else { ++ /* At this point we know if the remote node is a container or baremetal ++ * remote node, update the #kind attribute if a container is involved */ ++ g_hash_table_replace(remote_node->details->attrs, strdup("#kind"), strdup("container")); + } + } + +@@ -723,10 +740,12 @@ unpack_resources(xmlNode * xml_resources, pe_working_set_t * data_set) + } + + data_set->resources = g_list_sort(data_set->resources, sort_rsc_priority); ++ if (is_set(data_set->flags, pe_flag_quick_location)) { ++ /* Ignore */ ++ ++ } else if (is_set(data_set->flags, pe_flag_stonith_enabled) ++ && is_set(data_set->flags, pe_flag_have_stonith_resource) == FALSE) { + +- if (is_not_set(data_set->flags, pe_flag_quick_location) +- && is_set(data_set->flags, pe_flag_stonith_enabled) +- && is_set(data_set->flags, pe_flag_have_stonith_resource) == FALSE) { + crm_config_err("Resource start-up disabled since no STONITH resources have been defined"); + crm_config_err("Either configure some or disable STONITH with the stonith-enabled option"); + crm_config_err("NOTE: Clusters with shared data need STONITH to ensure data integrity"); +@@ -988,6 +1007,7 @@ unpack_status(xmlNode * status, pe_working_set_t * data_set) + + if (crm_str_eq((const char *)state->name, XML_CIB_TAG_STATE, TRUE)) { + xmlNode *attrs = NULL; ++ const char *resource_discovery_enabled = NULL; + + id = crm_element_value(state, XML_ATTR_ID); + uname = crm_element_value(state, XML_ATTR_UNAME); +@@ -1027,6 +1047,12 @@ unpack_status(xmlNode * status, pe_working_set_t * data_set) + this_node->details->maintenance = TRUE; + } + ++ resource_discovery_enabled = g_hash_table_lookup(this_node->details->attrs, XML_NODE_ATTR_RSC_DISCOVERY); ++ if (resource_discovery_enabled && !crm_is_true(resource_discovery_enabled)) { ++ crm_warn("ignoring %s attribute on node %s, disabling resource discovery is not allowed on cluster nodes", ++ XML_NODE_ATTR_RSC_DISCOVERY, this_node->details->uname); ++ } ++ + crm_trace("determining node state"); + determine_online_status(state, this_node, data_set); + +@@ -1102,6 +1128,7 @@ unpack_remote_status(xmlNode * status, pe_working_set_t * data_set) + + /* process attributes */ + for (state = __xml_first_child(status); state != NULL; state = __xml_next(state)) { ++ const char *resource_discovery_enabled = NULL; + xmlNode *attrs = NULL; + if (crm_str_eq((const char *)state->name, XML_CIB_TAG_STATE, TRUE) == FALSE) { + continue; +@@ -1125,6 +1152,26 @@ unpack_remote_status(xmlNode * status, pe_working_set_t * data_set) + crm_info("Node %s is in standby-mode", this_node->details->uname); + this_node->details->standby = TRUE; + } ++ ++ if (crm_is_true(g_hash_table_lookup(this_node->details->attrs, "maintenance"))) { ++ crm_info("Node %s is in maintenance-mode", this_node->details->uname); ++ this_node->details->maintenance = TRUE; ++ } ++ ++ resource_discovery_enabled = g_hash_table_lookup(this_node->details->attrs, XML_NODE_ATTR_RSC_DISCOVERY); ++ if (resource_discovery_enabled && !crm_is_true(resource_discovery_enabled)) { ++ if (is_baremetal_remote_node(this_node) && is_not_set(data_set->flags, pe_flag_stonith_enabled)) { ++ crm_warn("ignoring %s attribute on baremetal remote node %s, disabling resource discovery requires stonith to be enabled.", ++ XML_NODE_ATTR_RSC_DISCOVERY, this_node->details->uname); ++ } else { ++ /* if we're here, this is either a baremetal node and fencing is enabled, ++ * or this is a container node which we don't care if fencing is enabled ++ * or not on. container nodes are 'fenced' by recovering the container resource ++ * regardless of whether fencing is enabled. */ ++ crm_info("Node %s has resource discovery disabled", this_node->details->uname); ++ this_node->details->rsc_discovery_enabled = FALSE; ++ } ++ } + } + + /* process node rsc status */ +@@ -1858,7 +1905,7 @@ process_rsc_state(resource_t * rsc, node_t * node, + * reconnect to the remote-node in this transition or not. */ + if (is_set(rsc->flags, pe_rsc_failed) && rsc->is_remote_node) { + node_t *tmpnode = pe_find_node(data_set->nodes, rsc->id); +- if (tmpnode->details->unclean) { ++ if (tmpnode && tmpnode->details->unclean) { + tmpnode->details->unseen = FALSE; + } + } +@@ -3050,8 +3097,7 @@ add_node_attrs(xmlNode * xml_obj, node_t * node, gboolean overwrite, pe_working_ + + g_hash_table_insert(node->details->attrs, + strdup("#uname"), strdup(node->details->uname)); +- g_hash_table_insert(node->details->attrs, +- strdup("#kind"), strdup(node->details->remote_rsc?"container":"cluster")); ++ + g_hash_table_insert(node->details->attrs, strdup("#" XML_ATTR_ID), strdup(node->details->id)); + if (safe_str_eq(node->details->id, data_set->dc_uuid)) { + data_set->dc_node = node; +diff --git a/lib/services/dbus.c b/lib/services/dbus.c +index 587589c..f4632f2 100644 +--- a/lib/services/dbus.c ++++ b/lib/services/dbus.c +@@ -355,6 +355,11 @@ pcmk_dbus_get_property( + DBusMessage *reply = pcmk_dbus_send_recv(msg, connection, NULL); + + output = pcmk_dbus_lookup_result(reply, query_data); ++ free(query_data->target); ++ free(query_data->object); ++ free(query_data->name); ++ free(query_data); ++ + if(reply) { + dbus_message_unref(reply); + } +diff --git a/lib/services/services.c b/lib/services/services.c +index 8590b56..753e257 100644 +--- a/lib/services/services.c ++++ b/lib/services/services.c +@@ -313,6 +313,7 @@ services_action_free(svc_action_t * op) + + if (op->opaque->repeat_timer) { + g_source_remove(op->opaque->repeat_timer); ++ op->opaque->repeat_timer = 0; + } + if (op->opaque->stderr_gsource) { + mainloop_del_fd(op->opaque->stderr_gsource); +@@ -425,6 +426,7 @@ services_action_kick(const char *name, const char *action, int interval /* ms */ + } else { + if (op->opaque->repeat_timer) { + g_source_remove(op->opaque->repeat_timer); ++ op->opaque->repeat_timer = 0; + } + recurring_action_timer(op); + return TRUE; +@@ -459,6 +461,7 @@ handle_duplicate_recurring(svc_action_t * op, void (*action_callback) (svc_actio + if (dup->pid != 0) { + if (op->opaque->repeat_timer) { + g_source_remove(op->opaque->repeat_timer); ++ op->opaque->repeat_timer = 0; + } + recurring_action_timer(dup); + } +diff --git a/lib/services/services_linux.c b/lib/services/services_linux.c +index 961ff18..2279e4e 100644 +--- a/lib/services/services_linux.c ++++ b/lib/services/services_linux.c +@@ -227,6 +227,7 @@ recurring_action_timer(gpointer data) + op->stdout_data = NULL; + free(op->stderr_data); + op->stderr_data = NULL; ++ op->opaque->repeat_timer = 0; + + services_action_async(op, NULL); + return FALSE; +diff --git a/lib/services/systemd.c b/lib/services/systemd.c +index c967430..9a7b078 100644 +--- a/lib/services/systemd.c ++++ b/lib/services/systemd.c +@@ -303,10 +303,14 @@ systemd_unit_listall(void) + gboolean + systemd_unit_exists(const char *name) + { ++ char *unit = NULL; ++ + /* Note: Makes a blocking dbus calls + * Used by resources_find_service_class() when resource class=service + */ +- if(systemd_unit_by_name(name, NULL)) { ++ unit = systemd_unit_by_name(name, NULL); ++ if(unit) { ++ free(unit); + return TRUE; + } + return FALSE; +@@ -542,9 +546,15 @@ systemd_unit_exec_with_unit(svc_action_t * op, const char *unit) + + reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); + systemd_exec_result(reply, op); ++ + if(reply) { + dbus_message_unref(reply); + } ++ if(msg) { ++ dbus_message_unref(msg); ++ } ++ ++ return FALSE; + } + + if(msg) { +@@ -563,6 +573,8 @@ systemd_unit_exec_with_unit(svc_action_t * op, const char *unit) + gboolean + systemd_unit_exec(svc_action_t * op) + { ++ char *unit = NULL; ++ + CRM_ASSERT(op); + CRM_ASSERT(systemd_init()); + op->rc = PCMK_OCF_UNKNOWN_ERROR; +@@ -580,7 +592,9 @@ systemd_unit_exec(svc_action_t * op) + return TRUE; + } + +- systemd_unit_by_name(op->agent, op); ++ unit = systemd_unit_by_name(op->agent, op); ++ free(unit); ++ + if (op->synchronous == FALSE) { + return TRUE; + } +diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c +index 7075b9f..d3ede18 100644 +--- a/lrmd/lrmd.c ++++ b/lrmd/lrmd.c +@@ -837,7 +837,9 @@ action_complete(svc_action_t * action) + } + + cmd_reset(cmd); +- rsc->active = NULL; ++ if(rsc) { ++ rsc->active = NULL; ++ } + schedule_lrmd_cmd(rsc, cmd); + return; + +diff --git a/mcp/pacemaker.c b/mcp/pacemaker.c +index ba3c88f..c7852c3 100644 +--- a/mcp/pacemaker.c ++++ b/mcp/pacemaker.c +@@ -1038,6 +1038,10 @@ main(int argc, char **argv) + crm_exit(ENOPROTOOPT); + } + ++ if(pcmk_locate_sbd() > 0) { ++ setenv("PCMK_watchdog", "true", 1); ++ } ++ + find_and_track_existing_processes(); + + cluster.destroy = mcp_cpg_destroy; +diff --git a/mcp/pacemaker.service.in b/mcp/pacemaker.service.in +index b9f3336..7871167 100644 +--- a/mcp/pacemaker.service.in ++++ b/mcp/pacemaker.service.in +@@ -18,6 +18,7 @@ KillMode=process + NotifyAccess=main + SysVStartPriority=99 + EnvironmentFile=-@sysconfdir@/sysconfig/pacemaker ++EnvironmentFile=-@sysconfdir@/sysconfig/sbd + SuccessExitStatus=100 + + ExecStart=@sbindir@/pacemakerd -f +diff --git a/pengine/allocate.c b/pengine/allocate.c +index 8d02d9b..e708e26 100644 +--- a/pengine/allocate.c ++++ b/pengine/allocate.c +@@ -755,7 +755,7 @@ apply_system_health(pe_working_set_t * data_set) + for (; gIter2 != NULL; gIter2 = gIter2->next) { + resource_t *rsc = (resource_t *) gIter2->data; + +- rsc2node_new(health_strategy, rsc, system_health, node, data_set); ++ rsc2node_new(health_strategy, rsc, system_health, NULL, node, data_set); + } + } + +@@ -861,6 +861,10 @@ probe_resources(pe_working_set_t * data_set) + /* TODO enable container node probes once ordered probing is implemented. */ + continue; + ++ } else if (node->details->rsc_discovery_enabled == FALSE) { ++ /* resource discovery is disabled for this node */ ++ continue; ++ + } else if (probe_complete == NULL) { + probe_complete = get_pseudo_op(CRM_OP_PROBED, data_set); + if (is_set(data_set->flags, pe_flag_have_remote_nodes)) { +diff --git a/pengine/constraints.c b/pengine/constraints.c +index 1aa848e..88e382b 100644 +--- a/pengine/constraints.c ++++ b/pengine/constraints.c +@@ -658,6 +658,7 @@ unpack_rsc_location(xmlNode * xml_obj, resource_t * rsc_lh, const char * role, + const char *id_lh = crm_element_value(xml_obj, XML_COLOC_ATTR_SOURCE); + const char *id = crm_element_value(xml_obj, XML_ATTR_ID); + const char *node = crm_element_value(xml_obj, XML_CIB_TAG_NODE); ++ const char *discovery = crm_element_value(xml_obj, XML_LOCATION_ATTR_DISCOVERY); + + if (rsc_lh == NULL) { + /* only a warn as BSC adds the constraint then the resource */ +@@ -676,7 +677,7 @@ unpack_rsc_location(xmlNode * xml_obj, resource_t * rsc_lh, const char * role, + if (!match) { + return FALSE; + } +- location = rsc2node_new(id, rsc_lh, score_i, match, data_set); ++ location = rsc2node_new(id, rsc_lh, score_i, discovery, match, data_set); + + } else { + xmlNode *rule_xml = NULL; +@@ -720,6 +721,7 @@ unpack_rsc_location(xmlNode * xml_obj, resource_t * rsc_lh, const char * role, + } + } + } ++ + return TRUE; + } + +@@ -958,7 +960,7 @@ generate_location_rule(resource_t * rsc, xmlNode * rule_xml, pe_working_set_t * + do_and = FALSE; + } + +- location_rule = rsc2node_new(rule_id, rsc, 0, NULL, data_set); ++ location_rule = rsc2node_new(rule_id, rsc, 0, NULL, NULL, data_set); + + if (location_rule == NULL) { + return NULL; +diff --git a/pengine/native.c b/pengine/native.c +index 5db8c60..0020344 100644 +--- a/pengine/native.c ++++ b/pengine/native.c +@@ -2097,9 +2097,14 @@ native_rsc_location(resource_t * rsc, rsc_to_node_t * constraint) + other_node->weight = merge_weights(other_node->weight, node->weight); + + } else { +- node_t *new_node = node_copy(node); ++ other_node = node_copy(node); + +- g_hash_table_insert(rsc->allowed_nodes, (gpointer) new_node->details->id, new_node); ++ g_hash_table_insert(rsc->allowed_nodes, (gpointer) other_node->details->id, other_node); ++ } ++ ++ if (other_node->rsc_discover_mode < constraint->discover_mode) { ++ /* exclusive > never > always... always is default */ ++ other_node->rsc_discover_mode = constraint->discover_mode; + } + } + +@@ -2704,6 +2709,7 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, + char *key = NULL; + action_t *probe = NULL; + node_t *running = NULL; ++ node_t *allowed = NULL; + resource_t *top = uber_parent(rsc); + + static const char *rc_master = NULL; +@@ -2780,6 +2786,23 @@ native_create_probe(resource_t * rsc, node_t * node, action_t * complete, + return FALSE; + } + ++ allowed = g_hash_table_lookup(rsc->allowed_nodes, node->details->id); ++ if (rsc->exclusive_discover || top->exclusive_discover) { ++ if (allowed == NULL) { ++ /* exclusive discover is enabled and this node is not in the allowed list. */ ++ return FALSE; ++ } else if (allowed->rsc_discover_mode != discover_exclusive) { ++ /* exclusive discover is enabled and this node is not marked ++ * as a node this resource should be discovered on */ ++ return FALSE; ++ } ++ } ++ if (allowed && allowed->rsc_discover_mode == discover_never) { ++ /* this resource is marked as not needing to be discovered on this node */ ++ return FALSE; ++ } ++ ++ + key = generate_op_key(rsc->id, RSC_STATUS, 0); + probe = custom_action(rsc, key, RSC_STATUS, node, FALSE, TRUE, data_set); + update_action_flags(probe, pe_action_optional | pe_action_clear); +diff --git a/pengine/pengine.h b/pengine/pengine.h +index 653fadf..87fa150 100644 +--- a/pengine/pengine.h ++++ b/pengine/pengine.h +@@ -75,11 +75,18 @@ struct rsc_ticket_s { + int role_lh; + }; + ++enum rsc_discover_e { ++ discover_always = 0, ++ discover_never, ++ discover_exclusive, ++}; ++ + struct rsc_to_node_s { + const char *id; + resource_t *rsc_lh; + + enum rsc_role_e role_filter; ++ enum rsc_discover_e discover_mode; + GListPtr node_list_rh; /* node_t* */ + }; + +diff --git a/pengine/regression.sh b/pengine/regression.sh +index bdc7d3a..a9a5605 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -768,5 +768,10 @@ do_test remote-disable "Disable a baremetal remote-node" + do_test remote-orphaned "Properly shutdown orphaned connection resource" + do_test remote-recover "Recover connection resource after cluster-node fails." + do_test remote-stale-node-entry "Make sure we properly handle leftover remote-node entries in the node section" ++ ++echo "" ++do_test resource-discovery "Exercises resource-discovery location constraint option." ++do_test rsc-discovery-per-node "Disable resource discovery per node" ++ + echo "" + test_results +diff --git a/pengine/test10/remote-disable.dot b/pengine/test10/remote-disable.dot +index 2e21fef..fbcea60 100644 +--- a/pengine/test10/remote-disable.dot ++++ b/pengine/test10/remote-disable.dot +@@ -1,8 +1,4 @@ + digraph "g" { +-"FAKE2_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] +-"FAKE2_start_0 18builder" -> "FAKE2_monitor_60000 18builder" [ style = bold] +-"FAKE2_start_0 18builder" [ style=bold color="green" fontcolor="black"] +-"FAKE2_stop_0 remote1" -> "FAKE2_start_0 18builder" [ style = bold] + "FAKE2_stop_0 remote1" -> "all_stopped" [ style = bold] + "FAKE2_stop_0 remote1" -> "remote1_stop_0 18builder" [ style = bold] + "FAKE2_stop_0 remote1" [ style=bold color="green" fontcolor="black"] +diff --git a/pengine/test10/remote-disable.exp b/pengine/test10/remote-disable.exp +index 3273bb2..99c1c55 100644 +--- a/pengine/test10/remote-disable.exp ++++ b/pengine/test10/remote-disable.exp +@@ -14,32 +14,6 @@ + </synapse> + <synapse id="1"> + <action_set> +- <rsc_op id="20" operation="monitor" operation_key="FAKE2_monitor_60000" on_node="18builder" on_node_uuid="5"> +- <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> +- </rsc_op> +- </action_set> +- <inputs> +- <trigger> +- <rsc_op id="19" operation="start" operation_key="FAKE2_start_0" on_node="18builder" on_node_uuid="5"/> +- </trigger> +- </inputs> +- </synapse> +- <synapse id="2"> +- <action_set> +- <rsc_op id="19" operation="start" operation_key="FAKE2_start_0" on_node="18builder" on_node_uuid="5"> +- <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> +- <attributes CRM_meta_timeout="20000" /> +- </rsc_op> +- </action_set> +- <inputs> +- <trigger> +- <rsc_op id="18" operation="stop" operation_key="FAKE2_stop_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> +- </trigger> +- </inputs> +- </synapse> +- <synapse id="3"> +- <action_set> + <rsc_op id="18" operation="stop" operation_key="FAKE2_stop_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> + <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> + <attributes CRM_meta_timeout="20000" /> +@@ -47,7 +21,7 @@ + </action_set> + <inputs/> + </synapse> +- <synapse id="4"> ++ <synapse id="2"> + <action_set> + <pseudo_event id="7" operation="all_stopped" operation_key="all_stopped"> + <attributes /> +diff --git a/pengine/test10/remote-disable.scores b/pengine/test10/remote-disable.scores +index 4efd7d8..d66861f 100644 +--- a/pengine/test10/remote-disable.scores ++++ b/pengine/test10/remote-disable.scores +@@ -3,9 +3,9 @@ native_color: FAKE1 allocation score on 18builder: 0 + native_color: FAKE1 allocation score on 18node1: 0 + native_color: FAKE1 allocation score on 18node2: 0 + native_color: FAKE1 allocation score on remote1: 0 +-native_color: FAKE2 allocation score on 18builder: 0 +-native_color: FAKE2 allocation score on 18node1: 0 +-native_color: FAKE2 allocation score on 18node2: 0 ++native_color: FAKE2 allocation score on 18builder: -INFINITY ++native_color: FAKE2 allocation score on 18node1: -INFINITY ++native_color: FAKE2 allocation score on 18node2: -INFINITY + native_color: FAKE2 allocation score on remote1: 0 + native_color: FAKE3 allocation score on 18builder: 0 + native_color: FAKE3 allocation score on 18node1: 0 +diff --git a/pengine/test10/remote-disable.summary b/pengine/test10/remote-disable.summary +index 57b06fe..0627647 100644 +--- a/pengine/test10/remote-disable.summary ++++ b/pengine/test10/remote-disable.summary +@@ -12,14 +12,12 @@ RemoteOnline: [ remote1 ] + + Transition Summary: + * Stop remote1 (18builder) +- * Move FAKE2 (Started remote1 -> 18builder) ++ * Stop FAKE2 (remote1) + + Executing cluster transition: + * Resource action: FAKE2 stop on remote1 + * Resource action: remote1 stop on 18builder +- * Resource action: FAKE2 start on 18builder + * Pseudo action: all_stopped +- * Resource action: FAKE2 monitor=60000 on 18builder + + Revised cluster status: + Online: [ 18builder 18node1 18node2 ] +@@ -28,7 +26,7 @@ RemoteOFFLINE: [ remote1 ] + shooter (stonith:fence_xvm): Started 18node1 + remote1 (ocf::pacemaker:remote): Stopped + FAKE1 (ocf::heartbeat:Dummy): Started 18node2 +- FAKE2 (ocf::heartbeat:Dummy): Started 18builder ++ FAKE2 (ocf::heartbeat:Dummy): Stopped + FAKE3 (ocf::heartbeat:Dummy): Started 18builder + FAKE4 (ocf::heartbeat:Dummy): Started 18node1 + +diff --git a/pengine/test10/remote-disable.xml b/pengine/test10/remote-disable.xml +index eae0055..1637801 100644 +--- a/pengine/test10/remote-disable.xml ++++ b/pengine/test10/remote-disable.xml +@@ -52,7 +52,13 @@ + </operations> + </primitive> + </resources> +- <constraints/> ++ <constraints> ++ <rsc_location id="FAKE2-location" rsc="FAKE2"> ++ <rule id="FAKE2-on-remote" score="-INFINITY"> ++ <expression id="FAKE2-on-remote-exp" attribute="#kind" operation="ne" value="remote"/> ++ </rule> ++ </rsc_location> ++ </constraints> + </configuration> + <status> + <node_state id="5" uname="18builder" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> +diff --git a/pengine/test10/resource-discovery.dot b/pengine/test10/resource-discovery.dot +new file mode 100644 +index 0000000..efb2434 +--- /dev/null ++++ b/pengine/test10/resource-discovery.dot +@@ -0,0 +1,185 @@ ++ digraph "g" { ++"FAKE1_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] ++"FAKE1_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKE1_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKE1_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE1_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE1_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE1_start_0 18node2" -> "FAKE1_monitor_60000 18node2" [ style = bold] ++"FAKE1_start_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE2_start_0 18node3" -> "FAKE2_monitor_60000 18node3" [ style = bold] ++"FAKE2_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE2_stop_0 18node2" -> "FAKE2_start_0 18node3" [ style = bold] ++"FAKE2_stop_0 18node2" -> "all_stopped" [ style = bold] ++"FAKE2_stop_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE3_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE3_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE3_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE3_start_0 18node3" -> "FAKE3_monitor_60000 18node3" [ style = bold] ++"FAKE3_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE3_stop_0 18builder" -> "FAKE3_start_0 18node3" [ style = bold] ++"FAKE3_stop_0 18builder" -> "all_stopped" [ style = bold] ++"FAKE3_stop_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKE4_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE4_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE4_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE4_start_0 18node4" -> "FAKE4_monitor_60000 18node4" [ style = bold] ++"FAKE4_start_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE4_stop_0 18node1" -> "FAKE4_start_0 18node4" [ style = bold] ++"FAKE4_stop_0 18node1" -> "all_stopped" [ style = bold] ++"FAKE4_stop_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] ++"FAKE5_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKE5_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKE5_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE5_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE5_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 remote1" -> "probe_complete remote1" [ style = bold] ++"FAKE5_monitor_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE5_start_0 remote1" -> "FAKE5_monitor_60000 remote1" [ style = bold] ++"FAKE5_start_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:0_start_0 18builder" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:1_start_0 18node1" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:2_start_0 18node2" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:3_start_0 18node4" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:5_start_0 18node3" [ style = bold] ++"FAKECLONE1-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE1:0_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:0_start_0 18builder" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:0_start_0 18builder" -> "FAKECLONE1:0_monitor_60000 18builder" [ style = bold] ++"FAKECLONE1:0_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_start_0 18node1" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:1_start_0 18node1" -> "FAKECLONE1:1_monitor_60000 18node1" [ style = bold] ++"FAKECLONE1:1_start_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:2_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:2_start_0 18node2" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:2_start_0 18node2" -> "FAKECLONE1:2_monitor_60000 18node2" [ style = bold] ++"FAKECLONE1:2_start_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:3_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:3_start_0 18node4" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:3_start_0 18node4" -> "FAKECLONE1:3_monitor_60000 18node4" [ style = bold] ++"FAKECLONE1:3_start_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:4_monitor_0 remote1" -> "probe_complete remote1" [ style = bold] ++"FAKECLONE1:4_monitor_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:4_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:4_start_0 remote1" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:4_start_0 remote1" -> "FAKECLONE1:4_monitor_60000 remote1" [ style = bold] ++"FAKECLONE1:4_start_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:5_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:5_start_0 18node3" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:5_start_0 18node3" -> "FAKECLONE1:5_monitor_60000 18node3" [ style = bold] ++"FAKECLONE1:5_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:0_start_0 18builder" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:1_start_0 18node1" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:2_start_0 18node2" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:3_start_0 18node4" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:5_start_0 18node3" [ style = bold] ++"FAKECLONE2-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE2:0_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] ++"FAKECLONE2:0_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:0_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:0_start_0 18builder" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:0_start_0 18builder" -> "FAKECLONE2:0_monitor_60000 18builder" [ style = bold] ++"FAKECLONE2:0_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:1_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKECLONE2:1_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:1_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:1_start_0 18node1" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:1_start_0 18node1" -> "FAKECLONE2:1_monitor_60000 18node1" [ style = bold] ++"FAKECLONE2:1_start_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:2_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:2_start_0 18node2" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:2_start_0 18node2" -> "FAKECLONE2:2_monitor_60000 18node2" [ style = bold] ++"FAKECLONE2:2_start_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:3_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKECLONE2:3_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:3_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:3_start_0 18node4" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:3_start_0 18node4" -> "FAKECLONE2:3_monitor_60000 18node4" [ style = bold] ++"FAKECLONE2:3_start_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:4_monitor_0 remote1" -> "probe_complete remote1" [ style = bold] ++"FAKECLONE2:4_monitor_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:4_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:4_start_0 remote1" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:4_start_0 remote1" -> "FAKECLONE2:4_monitor_60000 remote1" [ style = bold] ++"FAKECLONE2:4_start_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:5_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKECLONE2:5_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:5_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:5_start_0 18node3" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:5_start_0 18node3" -> "FAKECLONE2:5_monitor_60000 18node3" [ style = bold] ++"FAKECLONE2:5_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"probe_complete 18builder" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18builder" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node1" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node1" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node2" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node2" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node3" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node3" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node4" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node4" [ style=bold color="green" fontcolor="black"] ++"probe_complete remote1" -> "probe_complete" [ style = bold] ++"probe_complete remote1" [ style=bold color="green" fontcolor="black"] ++"probe_complete" -> "FAKE1_start_0 18node2" [ style = bold] ++"probe_complete" -> "FAKE2_stop_0 18node2" [ style = bold] ++"probe_complete" -> "FAKE3_start_0 18node3" [ style = bold] ++"probe_complete" -> "FAKE3_stop_0 18builder" [ style = bold] ++"probe_complete" -> "FAKE4_start_0 18node4" [ style = bold] ++"probe_complete" -> "FAKE4_stop_0 18node1" [ style = bold] ++"probe_complete" -> "FAKE5_start_0 remote1" [ style = bold] ++"probe_complete" -> "FAKECLONE1:0_start_0 18builder" [ style = bold] ++"probe_complete" -> "FAKECLONE1:1_start_0 18node1" [ style = bold] ++"probe_complete" -> "FAKECLONE1:2_start_0 18node2" [ style = bold] ++"probe_complete" -> "FAKECLONE1:3_start_0 18node4" [ style = bold] ++"probe_complete" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] ++"probe_complete" -> "FAKECLONE1:5_start_0 18node3" [ style = bold] ++"probe_complete" -> "FAKECLONE2:0_start_0 18builder" [ style = bold] ++"probe_complete" -> "FAKECLONE2:1_start_0 18node1" [ style = bold] ++"probe_complete" -> "FAKECLONE2:2_start_0 18node2" [ style = bold] ++"probe_complete" -> "FAKECLONE2:3_start_0 18node4" [ style = bold] ++"probe_complete" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] ++"probe_complete" -> "FAKECLONE2:5_start_0 18node3" [ style = bold] ++"probe_complete" [ style=bold color="green" fontcolor="orange"] ++"probe_nodes_complete" -> "remote1_start_0 18builder" [ style = bold] ++"probe_nodes_complete" [ style=bold color="green" fontcolor="orange"] ++"remote1_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"remote1_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"remote1_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"remote1_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"remote1_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] ++"remote1_start_0 18builder" -> "FAKE5_monitor_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKE5_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKE5_start_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE1:4_monitor_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE1:4_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE2:4_monitor_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE2:4_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "remote1_monitor_60000 18builder" [ style = bold] ++"remote1_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"shooter_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"shooter_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/resource-discovery.exp b/pengine/test10/resource-discovery.exp +new file mode 100644 +index 0000000..2770f4e +--- /dev/null ++++ b/pengine/test10/resource-discovery.exp +@@ -0,0 +1,1041 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="27" operation="monitor" operation_key="shooter_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="20" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="40" operation="monitor" operation_key="remote1_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="7" operation="probe_nodes_complete" operation_key="probe_nodes_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="28" operation="monitor" operation_key="remote1_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="21" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="42" operation="monitor" operation_key="FAKE1_monitor_60000" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="41" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="41" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="29" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="22" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="17" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="13" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="9" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="45" operation="monitor" operation_key="FAKE2_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="44" operation="start" operation_key="FAKE2_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14"> ++ <action_set> ++ <rsc_op id="44" operation="start" operation_key="FAKE2_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="43" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <rsc_op id="43" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <rsc_op id="48" operation="monitor" operation_key="FAKE3_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="47" operation="start" operation_key="FAKE3_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="17"> ++ <action_set> ++ <rsc_op id="47" operation="start" operation_key="FAKE3_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="46" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="18"> ++ <action_set> ++ <rsc_op id="46" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="19"> ++ <action_set> ++ <rsc_op id="23" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="20"> ++ <action_set> ++ <rsc_op id="51" operation="monitor" operation_key="FAKE4_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="50" operation="start" operation_key="FAKE4_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="21"> ++ <action_set> ++ <rsc_op id="50" operation="start" operation_key="FAKE4_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="49" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="22"> ++ <action_set> ++ <rsc_op id="49" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="23"> ++ <action_set> ++ <rsc_op id="30" operation="monitor" operation_key="FAKE4_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="24"> ++ <action_set> ++ <rsc_op id="53" operation="monitor" operation_key="FAKE5_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="52" operation="start" operation_key="FAKE5_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="25"> ++ <action_set> ++ <rsc_op id="52" operation="start" operation_key="FAKE5_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="26"> ++ <action_set> ++ <rsc_op id="34" operation="monitor" operation_key="FAKE5_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="27"> ++ <action_set> ++ <rsc_op id="31" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="28"> ++ <action_set> ++ <rsc_op id="24" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="29"> ++ <action_set> ++ <rsc_op id="18" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="30"> ++ <action_set> ++ <rsc_op id="14" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="31"> ++ <action_set> ++ <rsc_op id="10" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="32"> ++ <action_set> ++ <rsc_op id="55" operation="monitor" operation_key="FAKECLONE1:0_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="54" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="33"> ++ <action_set> ++ <rsc_op id="54" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="34"> ++ <action_set> ++ <rsc_op id="57" operation="monitor" operation_key="FAKECLONE1:1_monitor_60000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="56" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="35"> ++ <action_set> ++ <rsc_op id="56" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="36"> ++ <action_set> ++ <rsc_op id="59" operation="monitor" operation_key="FAKECLONE1:2_monitor_60000" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="58" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="37"> ++ <action_set> ++ <rsc_op id="58" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="38"> ++ <action_set> ++ <rsc_op id="61" operation="monitor" operation_key="FAKECLONE1:3_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="60" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="39"> ++ <action_set> ++ <rsc_op id="60" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="40"> ++ <action_set> ++ <rsc_op id="63" operation="monitor" operation_key="FAKECLONE1:4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="62" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="41"> ++ <action_set> ++ <rsc_op id="62" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="42"> ++ <action_set> ++ <rsc_op id="35" operation="monitor" operation_key="FAKECLONE1:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="43"> ++ <action_set> ++ <rsc_op id="65" operation="monitor" operation_key="FAKECLONE1:5_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="64" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="44"> ++ <action_set> ++ <rsc_op id="64" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="45" priority="1000000"> ++ <action_set> ++ <pseudo_event id="67" operation="running" operation_key="FAKECLONE1-clone_running_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="54" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="56" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="58" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="60" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="62" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="64" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="46"> ++ <action_set> ++ <pseudo_event id="66" operation="start" operation_key="FAKECLONE1-clone_start_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="47"> ++ <action_set> ++ <rsc_op id="71" operation="monitor" operation_key="FAKECLONE2:0_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="70" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="48"> ++ <action_set> ++ <rsc_op id="70" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="49"> ++ <action_set> ++ <rsc_op id="11" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="50"> ++ <action_set> ++ <rsc_op id="73" operation="monitor" operation_key="FAKECLONE2:1_monitor_60000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="72" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="51"> ++ <action_set> ++ <rsc_op id="72" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="52"> ++ <action_set> ++ <rsc_op id="15" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="53"> ++ <action_set> ++ <rsc_op id="75" operation="monitor" operation_key="FAKECLONE2:2_monitor_60000" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="74" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="54"> ++ <action_set> ++ <rsc_op id="74" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="55"> ++ <action_set> ++ <rsc_op id="77" operation="monitor" operation_key="FAKECLONE2:3_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="56"> ++ <action_set> ++ <rsc_op id="76" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="57"> ++ <action_set> ++ <rsc_op id="32" operation="monitor" operation_key="FAKECLONE2:3_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="58"> ++ <action_set> ++ <rsc_op id="79" operation="monitor" operation_key="FAKECLONE2:4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="78" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="59"> ++ <action_set> ++ <rsc_op id="78" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="60"> ++ <action_set> ++ <rsc_op id="36" operation="monitor" operation_key="FAKECLONE2:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="61"> ++ <action_set> ++ <rsc_op id="81" operation="monitor" operation_key="FAKECLONE2:5_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="80" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="62"> ++ <action_set> ++ <rsc_op id="80" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="63"> ++ <action_set> ++ <rsc_op id="25" operation="monitor" operation_key="FAKECLONE2:5_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="64" priority="1000000"> ++ <action_set> ++ <pseudo_event id="83" operation="running" operation_key="FAKECLONE2-clone_running_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="70" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="72" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="74" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="78" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="80" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="65"> ++ <action_set> ++ <pseudo_event id="82" operation="start" operation_key="FAKECLONE2-clone_start_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="66" priority="1000000"> ++ <action_set> ++ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="34" operation="monitor" operation_key="FAKE5_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="35" operation="monitor" operation_key="FAKECLONE1:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="36" operation="monitor" operation_key="FAKECLONE2:4_monitor_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="67" priority="1000000"> ++ <action_set> ++ <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-18node4" on_node="18node4" on_node_uuid="4"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="27" operation="monitor" operation_key="shooter_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="28" operation="monitor" operation_key="remote1_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="29" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="30" operation="monitor" operation_key="FAKE4_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="31" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="32" operation="monitor" operation_key="FAKECLONE2:3_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="68" priority="1000000"> ++ <action_set> ++ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="20" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="21" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="22" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="23" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="24" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="25" operation="monitor" operation_key="FAKECLONE2:5_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="69" priority="1000000"> ++ <action_set> ++ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="17" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="18" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="70" priority="1000000"> ++ <action_set> ++ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="13" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="14" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="15" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="71" priority="1000000"> ++ <action_set> ++ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="9" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="10" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="11" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="72"> ++ <action_set> ++ <pseudo_event id="7" operation="probe_nodes_complete" operation_key="probe_nodes_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="12" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="16" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="19" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="26" operation="probe_complete" operation_key="probe_complete-18node4" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="73"> ++ <action_set> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-remote1" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="74"> ++ <action_set> ++ <pseudo_event id="5" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="43" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="46" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="49" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/resource-discovery.scores b/pengine/test10/resource-discovery.scores +new file mode 100644 +index 0000000..e1fa78e +--- /dev/null ++++ b/pengine/test10/resource-discovery.scores +@@ -0,0 +1,199 @@ ++Allocation scores: ++clone_color: FAKECLONE1-clone allocation score on 18builder: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node1: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node2: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node3: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node4: 0 ++clone_color: FAKECLONE1-clone allocation score on remote1: 0 ++clone_color: FAKECLONE1:0 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:0 allocation score on remote1: 0 ++clone_color: FAKECLONE1:1 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:1 allocation score on remote1: 0 ++clone_color: FAKECLONE1:2 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:2 allocation score on remote1: 0 ++clone_color: FAKECLONE1:3 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:3 allocation score on remote1: 0 ++clone_color: FAKECLONE1:4 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:4 allocation score on remote1: 0 ++clone_color: FAKECLONE1:5 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:5 allocation score on remote1: 0 ++clone_color: FAKECLONE2-clone allocation score on 18builder: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node1: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node2: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node3: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node4: 0 ++clone_color: FAKECLONE2-clone allocation score on remote1: 0 ++clone_color: FAKECLONE2:0 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:0 allocation score on remote1: 0 ++clone_color: FAKECLONE2:1 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:1 allocation score on remote1: 0 ++clone_color: FAKECLONE2:2 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:2 allocation score on remote1: 0 ++clone_color: FAKECLONE2:3 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:3 allocation score on remote1: 0 ++clone_color: FAKECLONE2:4 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:4 allocation score on remote1: 0 ++clone_color: FAKECLONE2:5 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:5 allocation score on remote1: 0 ++native_color: FAKE1 allocation score on 18builder: 0 ++native_color: FAKE1 allocation score on 18node1: 0 ++native_color: FAKE1 allocation score on 18node2: 0 ++native_color: FAKE1 allocation score on 18node3: 0 ++native_color: FAKE1 allocation score on 18node4: 0 ++native_color: FAKE1 allocation score on remote1: -INFINITY ++native_color: FAKE2 allocation score on 18builder: 0 ++native_color: FAKE2 allocation score on 18node1: 0 ++native_color: FAKE2 allocation score on 18node2: -INFINITY ++native_color: FAKE2 allocation score on 18node3: 0 ++native_color: FAKE2 allocation score on 18node4: 0 ++native_color: FAKE2 allocation score on remote1: 0 ++native_color: FAKE3 allocation score on 18builder: 0 ++native_color: FAKE3 allocation score on 18node1: 0 ++native_color: FAKE3 allocation score on 18node2: 0 ++native_color: FAKE3 allocation score on 18node3: INFINITY ++native_color: FAKE3 allocation score on 18node4: 0 ++native_color: FAKE3 allocation score on remote1: 0 ++native_color: FAKE4 allocation score on 18builder: 0 ++native_color: FAKE4 allocation score on 18node1: 0 ++native_color: FAKE4 allocation score on 18node2: 0 ++native_color: FAKE4 allocation score on 18node3: 0 ++native_color: FAKE4 allocation score on 18node4: 0 ++native_color: FAKE4 allocation score on remote1: 0 ++native_color: FAKE5 allocation score on 18builder: 0 ++native_color: FAKE5 allocation score on 18node1: 0 ++native_color: FAKE5 allocation score on 18node2: 0 ++native_color: FAKE5 allocation score on 18node3: 0 ++native_color: FAKE5 allocation score on 18node4: 0 ++native_color: FAKE5 allocation score on remote1: 0 ++native_color: FAKECLONE1:0 allocation score on 18builder: 0 ++native_color: FAKECLONE1:0 allocation score on 18node1: 0 ++native_color: FAKECLONE1:0 allocation score on 18node2: 0 ++native_color: FAKECLONE1:0 allocation score on 18node3: 0 ++native_color: FAKECLONE1:0 allocation score on 18node4: 0 ++native_color: FAKECLONE1:0 allocation score on remote1: 0 ++native_color: FAKECLONE1:1 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE1:1 allocation score on 18node1: 0 ++native_color: FAKECLONE1:1 allocation score on 18node2: 0 ++native_color: FAKECLONE1:1 allocation score on 18node3: 0 ++native_color: FAKECLONE1:1 allocation score on 18node4: 0 ++native_color: FAKECLONE1:1 allocation score on remote1: 0 ++native_color: FAKECLONE1:2 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE1:2 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:2 allocation score on 18node2: 0 ++native_color: FAKECLONE1:2 allocation score on 18node3: 0 ++native_color: FAKECLONE1:2 allocation score on 18node4: 0 ++native_color: FAKECLONE1:2 allocation score on remote1: 0 ++native_color: FAKECLONE1:3 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node3: 0 ++native_color: FAKECLONE1:3 allocation score on 18node4: 0 ++native_color: FAKECLONE1:3 allocation score on remote1: 0 ++native_color: FAKECLONE1:4 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE1:4 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:4 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:4 allocation score on 18node3: 0 ++native_color: FAKECLONE1:4 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE1:4 allocation score on remote1: 0 ++native_color: FAKECLONE1:5 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE1:5 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:5 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:5 allocation score on 18node3: 0 ++native_color: FAKECLONE1:5 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE1:5 allocation score on remote1: -INFINITY ++native_color: FAKECLONE2:0 allocation score on 18builder: 0 ++native_color: FAKECLONE2:0 allocation score on 18node1: 0 ++native_color: FAKECLONE2:0 allocation score on 18node2: 0 ++native_color: FAKECLONE2:0 allocation score on 18node3: 0 ++native_color: FAKECLONE2:0 allocation score on 18node4: 0 ++native_color: FAKECLONE2:0 allocation score on remote1: 0 ++native_color: FAKECLONE2:1 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE2:1 allocation score on 18node1: 0 ++native_color: FAKECLONE2:1 allocation score on 18node2: 0 ++native_color: FAKECLONE2:1 allocation score on 18node3: 0 ++native_color: FAKECLONE2:1 allocation score on 18node4: 0 ++native_color: FAKECLONE2:1 allocation score on remote1: 0 ++native_color: FAKECLONE2:2 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE2:2 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:2 allocation score on 18node2: 0 ++native_color: FAKECLONE2:2 allocation score on 18node3: 0 ++native_color: FAKECLONE2:2 allocation score on 18node4: 0 ++native_color: FAKECLONE2:2 allocation score on remote1: 0 ++native_color: FAKECLONE2:3 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE2:3 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:3 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE2:3 allocation score on 18node3: 0 ++native_color: FAKECLONE2:3 allocation score on 18node4: 0 ++native_color: FAKECLONE2:3 allocation score on remote1: 0 ++native_color: FAKECLONE2:4 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE2:4 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:4 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE2:4 allocation score on 18node3: 0 ++native_color: FAKECLONE2:4 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE2:4 allocation score on remote1: 0 ++native_color: FAKECLONE2:5 allocation score on 18builder: -INFINITY ++native_color: FAKECLONE2:5 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:5 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE2:5 allocation score on 18node3: 0 ++native_color: FAKECLONE2:5 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE2:5 allocation score on remote1: -INFINITY ++native_color: remote1 allocation score on 18builder: 0 ++native_color: remote1 allocation score on 18node1: 0 ++native_color: remote1 allocation score on 18node2: 0 ++native_color: remote1 allocation score on 18node3: 0 ++native_color: remote1 allocation score on 18node4: 0 ++native_color: remote1 allocation score on remote1: -INFINITY ++native_color: shooter allocation score on 18builder: 0 ++native_color: shooter allocation score on 18node1: 0 ++native_color: shooter allocation score on 18node2: 0 ++native_color: shooter allocation score on 18node3: 0 ++native_color: shooter allocation score on 18node4: 0 ++native_color: shooter allocation score on remote1: -INFINITY +diff --git a/pengine/test10/resource-discovery.summary b/pengine/test10/resource-discovery.summary +new file mode 100644 +index 0000000..af0e5b3 +--- /dev/null ++++ b/pengine/test10/resource-discovery.summary +@@ -0,0 +1,124 @@ ++ ++Current cluster status: ++Online: [ 18builder 18node1 18node2 18node3 18node4 ] ++RemoteOFFLINE: [ remote1 ] ++ ++ shooter (stonith:fence_xvm): Started 18node1 ++ remote1 (ocf::pacemaker:remote): Stopped ++ FAKE1 (ocf::heartbeat:Dummy): Stopped ++ FAKE2 (ocf::heartbeat:Dummy): Started 18node2 ++ FAKE3 (ocf::heartbeat:Dummy): Started 18builder ++ FAKE4 (ocf::heartbeat:Dummy): Started 18node1 ++ FAKE5 (ocf::heartbeat:Dummy): Stopped ++ Clone Set: FAKECLONE1-clone [FAKECLONE1] ++ Stopped: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Clone Set: FAKECLONE2-clone [FAKECLONE2] ++ Stopped: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ ++Transition Summary: ++ * Start remote1 (18builder) ++ * Start FAKE1 (18node2) ++ * Move FAKE2 (Started 18node2 -> 18node3) ++ * Move FAKE3 (Started 18builder -> 18node3) ++ * Move FAKE4 (Started 18node1 -> 18node4) ++ * Start FAKE5 (remote1) ++ * Start FAKECLONE1:0 (18builder) ++ * Start FAKECLONE1:1 (18node1) ++ * Start FAKECLONE1:2 (18node2) ++ * Start FAKECLONE1:3 (18node4) ++ * Start FAKECLONE1:4 (remote1) ++ * Start FAKECLONE1:5 (18node3) ++ * Start FAKECLONE2:0 (18builder) ++ * Start FAKECLONE2:1 (18node1) ++ * Start FAKECLONE2:2 (18node2) ++ * Start FAKECLONE2:3 (18node4) ++ * Start FAKECLONE2:4 (remote1) ++ * Start FAKECLONE2:5 (18node3) ++ ++Executing cluster transition: ++ * Resource action: shooter monitor on 18node4 ++ * Resource action: shooter monitor on 18node3 ++ * Resource action: remote1 monitor on 18node4 ++ * Resource action: remote1 monitor on 18node3 ++ * Resource action: FAKE1 monitor on 18node4 ++ * Resource action: FAKE1 monitor on 18node3 ++ * Resource action: FAKE1 monitor on 18node2 ++ * Resource action: FAKE1 monitor on 18node1 ++ * Resource action: FAKE1 monitor on 18builder ++ * Resource action: FAKE3 monitor on 18node3 ++ * Resource action: FAKE4 monitor on 18node4 ++ * Resource action: FAKE5 monitor on 18node4 ++ * Resource action: FAKE5 monitor on 18node3 ++ * Resource action: FAKE5 monitor on 18node2 ++ * Resource action: FAKE5 monitor on 18node1 ++ * Resource action: FAKE5 monitor on 18builder ++ * Pseudo action: FAKECLONE1-clone_start_0 ++ * Resource action: FAKECLONE2:0 monitor on 18builder ++ * Resource action: FAKECLONE2:1 monitor on 18node1 ++ * Resource action: FAKECLONE2:3 monitor on 18node4 ++ * Resource action: FAKECLONE2:5 monitor on 18node3 ++ * Pseudo action: FAKECLONE2-clone_start_0 ++ * Pseudo action: probe_nodes_complete ++ * Resource action: remote1 start on 18builder ++ * Resource action: FAKE5 monitor on remote1 ++ * Resource action: FAKECLONE1:4 monitor on remote1 ++ * Resource action: FAKECLONE2:4 monitor on remote1 ++ * Pseudo action: probe_complete ++ * Resource action: remote1 monitor=60000 on 18builder ++ * Resource action: FAKE1 start on 18node2 ++ * Resource action: FAKE2 stop on 18node2 ++ * Resource action: FAKE3 stop on 18builder ++ * Resource action: FAKE4 stop on 18node1 ++ * Resource action: FAKE5 start on remote1 ++ * Resource action: FAKECLONE1:0 start on 18builder ++ * Resource action: FAKECLONE1:1 start on 18node1 ++ * Resource action: FAKECLONE1:2 start on 18node2 ++ * Resource action: FAKECLONE1:3 start on 18node4 ++ * Resource action: FAKECLONE1:4 start on remote1 ++ * Resource action: FAKECLONE1:5 start on 18node3 ++ * Pseudo action: FAKECLONE1-clone_running_0 ++ * Resource action: FAKECLONE2:0 start on 18builder ++ * Resource action: FAKECLONE2:1 start on 18node1 ++ * Resource action: FAKECLONE2:2 start on 18node2 ++ * Resource action: FAKECLONE2:3 start on 18node4 ++ * Resource action: FAKECLONE2:4 start on remote1 ++ * Resource action: FAKECLONE2:5 start on 18node3 ++ * Pseudo action: FAKECLONE2-clone_running_0 ++ * Pseudo action: all_stopped ++ * Resource action: FAKE1 monitor=60000 on 18node2 ++ * Resource action: FAKE2 start on 18node3 ++ * Resource action: FAKE3 start on 18node3 ++ * Resource action: FAKE4 start on 18node4 ++ * Resource action: FAKE5 monitor=60000 on remote1 ++ * Resource action: FAKECLONE1:0 monitor=60000 on 18builder ++ * Resource action: FAKECLONE1:1 monitor=60000 on 18node1 ++ * Resource action: FAKECLONE1:2 monitor=60000 on 18node2 ++ * Resource action: FAKECLONE1:3 monitor=60000 on 18node4 ++ * Resource action: FAKECLONE1:4 monitor=60000 on remote1 ++ * Resource action: FAKECLONE1:5 monitor=60000 on 18node3 ++ * Resource action: FAKECLONE2:0 monitor=60000 on 18builder ++ * Resource action: FAKECLONE2:1 monitor=60000 on 18node1 ++ * Resource action: FAKECLONE2:2 monitor=60000 on 18node2 ++ * Resource action: FAKECLONE2:3 monitor=60000 on 18node4 ++ * Resource action: FAKECLONE2:4 monitor=60000 on remote1 ++ * Resource action: FAKECLONE2:5 monitor=60000 on 18node3 ++ * Resource action: FAKE2 monitor=60000 on 18node3 ++ * Resource action: FAKE3 monitor=60000 on 18node3 ++ * Resource action: FAKE4 monitor=60000 on 18node4 ++ ++Revised cluster status: ++Online: [ 18builder 18node1 18node2 18node3 18node4 ] ++RemoteOnline: [ remote1 ] ++ ++ shooter (stonith:fence_xvm): Started 18node1 ++ remote1 (ocf::pacemaker:remote): Started 18builder ++ FAKE1 (ocf::heartbeat:Dummy): Started 18node2 ++ FAKE2 (ocf::heartbeat:Dummy): Started 18node3 ++ FAKE3 (ocf::heartbeat:Dummy): Started 18node3 ++ FAKE4 (ocf::heartbeat:Dummy): Started 18node4 ++ FAKE5 (ocf::heartbeat:Dummy): Started remote1 ++ Clone Set: FAKECLONE1-clone [FAKECLONE1] ++ Started: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Clone Set: FAKECLONE2-clone [FAKECLONE2] ++ Started: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ +diff --git a/pengine/test10/resource-discovery.xml b/pengine/test10/resource-discovery.xml +new file mode 100644 +index 0000000..5836804 +--- /dev/null ++++ b/pengine/test10/resource-discovery.xml +@@ -0,0 +1,185 @@ ++<cib epoch="11" num_updates="1" admin_epoch="0" validate-with="pacemaker-next" cib-last-written="Tue Sep 3 17:59:24 2013" update-origin="18builder" update-client="crm_resource" crm_feature_set="3.0.7" have-quorum="1" dc-uuid="5"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.10-ab50afe"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="18node1"/> ++ <node id="2" uname="18node2"/> ++ <node id="3" uname="18node3"/> ++ <node id="4" uname="18node4"/> ++ <node id="5" uname="18builder"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="remote1" provider="pacemaker" type="remote"> ++ <instance_attributes id="remote1-instance_attributes"/> ++ <operations> ++ <op id="remote1-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ <meta_attributes id="remote1-meta_attributes"/> ++ </primitive> ++ <primitive class="ocf" id="FAKE1" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE1-instance_attributes"/> ++ <meta_attributes id="FAKE1-meta_attributes"> ++ </meta_attributes> ++ <operations> ++ <op id="FAKE1-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE2" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE2-instance_attributes"/> ++ <meta_attributes id="FAKE2-meta_attributes"> ++ </meta_attributes> ++ <operations> ++ <op id="FAKE2-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE3" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE3-instance_attributes"/> ++ <operations> ++ <op id="FAKE3-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE4" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE4-instance_attributes"/> ++ <operations> ++ <op id="FAKE4-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE5" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE5-instance_attributes"/> ++ <operations> ++ <op id="FAKE5-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="FAKECLONE1-clone"> ++ <primitive class="ocf" id="FAKECLONE1" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKECLONE1-instance_attributes"/> ++ <operations> ++ <op id="FAKECLONE1-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ </clone> ++ <clone id="FAKECLONE2-clone"> ++ <primitive class="ocf" id="FAKECLONE2" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKECLONE2-instance_attributes"/> ++ <operations> ++ <op id="FAKECLONE2-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ </clone> ++ </resources> ++ <constraints> ++ <rsc_location id="location-FAKE1-remote1--INFINITY" node="remote1" rsc="FAKE1" score="-INFINITY" resource-discovery="never" /> ++ <rsc_location id="location-FAKE2-18node2--INFINITY" node="18node2" rsc="FAKE2" score="-INFINITY" resource-discovery="exclusive" /> ++ <rsc_location id="location-FAKE3-18node3--INFINITY" node="18node3" rsc="FAKE3" score="INFINITY" resource-discovery="exclusive" /> ++ <rsc_location id="location-FAKE4-1-18node3--INFINITY" node="18node4" rsc="FAKE4" score="0" resource-discovery="always" /> ++ <rsc_location id="location-FAKE4-2-18node3--INFINITY" node="18node4" rsc="FAKE4" score="0" resource-discovery="never" /> ++ <rsc_location id="location-FAKE4-3-18node3--INFINITY" node="18node4" rsc="FAKE4" score="0" resource-discovery="exclusive" /> ++ <rsc_location id="location-FAKE5-18node3--INFINITY" node="18node4" rsc="FAKE5" score="0" resource-discovery="always" /> ++ <rsc_location id="location-FAKECLONE1-remote--INFINITY" node="remote1" rsc="FAKECLONE1-clone" score="0" resource-discovery="exclusive" /> ++ <rsc_location id="location-FAKECLONE2-18node2--INFINITY" node="18node2" rsc="FAKECLONE2-clone" score="0" resource-discovery="never" /> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="5" uname="18builder" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="5"> ++ <instance_attributes id="status-5"> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="5"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="11:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;11:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="16" rc-code="0" op-status="0" interval="0" last-run="1378248545" last-rc-change="1378248545" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:3:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;10:3:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="11" rc-code="0" op-status="0" interval="60000" last-rc-change="1378248534" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="remote1_last_0" operation_key="remote1_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:6:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;12:6:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="13" rc-code="0" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="remote1_monitor_60000" operation_key="remote1_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:5:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;13:5:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="3" rc-code="0" op-status="0" interval="60000" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="7:9:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;7:9:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="39" rc-code="7" op-status="0" interval="0" last-run="1378249145" last-rc-change="1378249145" exec-time="61" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="18:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;18:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="53" rc-code="0" op-status="0" interval="0" last-run="1378249147" last-rc-change="1378249147" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE3_monitor_60000" operation_key="FAKE3_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="19:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;19:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="56" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249147" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:12:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;9:12:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="61" rc-code="7" op-status="0" interval="0" last-run="1378249149" last-rc-change="1378249149" exec-time="65" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="18node1" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;12:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="9" rc-code="0" op-status="0" interval="0" last-run="1378248547" last-rc-change="1378248547" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;13:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1378248548" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="remote1_last_0" operation_key="remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="8:4:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;8:4:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:9:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;9:9:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="25" rc-code="7" op-status="0" interval="0" last-run="1378249144" last-rc-change="1378249144" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_failure_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:10:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;10:10:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="30" rc-code="0" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="17:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;17:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="33" rc-code="0" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:12:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;22:12:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="40" rc-code="0" op-status="0" interval="0" last-run="1378249148" last-rc-change="1378249148" exec-time="36" queue-time="38" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE4_monitor_60000" operation_key="FAKE4_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:12:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;23:12:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="44" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249148" exec-time="14" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="2" uname="18node2" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="8:3:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;8:3:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1378248530" last-rc-change="1378248530" exec-time="980" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="remote1_last_0" operation_key="remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:4:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;10:4:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="16:9:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;16:9:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="18" rc-code="0" op-status="0" interval="0" last-run="1378249144" last-rc-change="1378249144" exec-time="18" queue-time="9" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE2_monitor_60000" operation_key="FAKE2_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="17:9:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;17:9:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="22" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249144" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:10:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;12:10:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="27" rc-code="7" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:12:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;13:12:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="32" rc-code="7" op-status="0" interval="0" last-run="1378249148" last-rc-change="1378249148" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="3" uname="18node3" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"/> ++ <node_state id="4" uname="18node4" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"/> ++ <node_state remote_node="true" id="remote1" uname="remote1" crm-debug-origin="remote_init_cib_status"> ++ <transient_attributes id="remote1"> ++ <instance_attributes id="status-remote1"> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/rsc-discovery-per-node.dot b/pengine/test10/rsc-discovery-per-node.dot +new file mode 100644 +index 0000000..8f5889a +--- /dev/null ++++ b/pengine/test10/rsc-discovery-per-node.dot +@@ -0,0 +1,195 @@ ++ digraph "g" { ++"FAKE1_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] ++"FAKE1_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKE1_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKE1_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE1_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE1_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE1_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE1_start_0 18node2" -> "FAKE1_monitor_60000 18node2" [ style = bold] ++"FAKE1_start_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE2_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE2_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE2_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE2_start_0 18node3" -> "FAKE2_monitor_60000 18node3" [ style = bold] ++"FAKE2_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE2_stop_0 18node2" -> "FAKE2_start_0 18node3" [ style = bold] ++"FAKE2_stop_0 18node2" -> "all_stopped" [ style = bold] ++"FAKE2_stop_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE3_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE3_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE3_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE3_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE3_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE3_start_0 18node4" -> "FAKE3_monitor_60000 18node4" [ style = bold] ++"FAKE3_start_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE3_stop_0 18builder" -> "FAKE3_start_0 18node4" [ style = bold] ++"FAKE3_stop_0 18builder" -> "all_stopped" [ style = bold] ++"FAKE3_stop_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKE4_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE4_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE4_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE4_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE4_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE4_start_0 remote1" -> "FAKE4_monitor_60000 remote1" [ style = bold] ++"FAKE4_start_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKE4_stop_0 18node1" -> "FAKE4_start_0 remote1" [ style = bold] ++"FAKE4_stop_0 18node1" -> "all_stopped" [ style = bold] ++"FAKE4_stop_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] ++"FAKE5_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKE5_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKE5_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKE5_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKE5_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKE5_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKE5_start_0 18builder" -> "FAKE5_monitor_60000 18builder" [ style = bold] ++"FAKE5_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:0_start_0 18node1" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:1_start_0 18node2" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:2_start_0 18node3" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:3_start_0 18node4" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] ++"FAKECLONE1-clone_start_0" -> "FAKECLONE1:5_start_0 18builder" [ style = bold] ++"FAKECLONE1-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE1:0_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKECLONE1:0_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:0_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:0_start_0 18node1" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:0_start_0 18node1" -> "FAKECLONE1:0_monitor_60000 18node1" [ style = bold] ++"FAKECLONE1:0_start_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKECLONE1:1_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:1_start_0 18node2" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:1_start_0 18node2" -> "FAKECLONE1:1_monitor_60000 18node2" [ style = bold] ++"FAKECLONE1:1_start_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:2_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKECLONE1:2_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:2_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:2_start_0 18node3" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:2_start_0 18node3" -> "FAKECLONE1:2_monitor_60000 18node3" [ style = bold] ++"FAKECLONE1:2_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:3_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKECLONE1:3_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:3_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:3_start_0 18node4" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:3_start_0 18node4" -> "FAKECLONE1:3_monitor_60000 18node4" [ style = bold] ++"FAKECLONE1:3_start_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:4_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:4_start_0 remote1" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:4_start_0 remote1" -> "FAKECLONE1:4_monitor_60000 remote1" [ style = bold] ++"FAKECLONE1:4_start_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:5_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] ++"FAKECLONE1:5_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:5_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE1:5_start_0 18builder" -> "FAKECLONE1-clone_running_0" [ style = bold] ++"FAKECLONE1:5_start_0 18builder" -> "FAKECLONE1:5_monitor_60000 18builder" [ style = bold] ++"FAKECLONE1:5_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2-clone_running_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:0_start_0 18node1" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:1_start_0 18node2" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:2_start_0 18node3" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:3_start_0 18node4" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] ++"FAKECLONE2-clone_start_0" -> "FAKECLONE2:5_start_0 18builder" [ style = bold] ++"FAKECLONE2-clone_start_0" [ style=bold color="green" fontcolor="orange"] ++"FAKECLONE2:0_monitor_0 18node1" -> "probe_complete 18node1" [ style = bold] ++"FAKECLONE2:0_monitor_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:0_monitor_60000 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:0_start_0 18node1" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:0_start_0 18node1" -> "FAKECLONE2:0_monitor_60000 18node1" [ style = bold] ++"FAKECLONE2:0_start_0 18node1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:1_monitor_0 18node2" -> "probe_complete 18node2" [ style = bold] ++"FAKECLONE2:1_monitor_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:1_monitor_60000 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:1_start_0 18node2" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:1_start_0 18node2" -> "FAKECLONE2:1_monitor_60000 18node2" [ style = bold] ++"FAKECLONE2:1_start_0 18node2" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:2_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"FAKECLONE2:2_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:2_monitor_60000 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:2_start_0 18node3" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:2_start_0 18node3" -> "FAKECLONE2:2_monitor_60000 18node3" [ style = bold] ++"FAKECLONE2:2_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:3_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"FAKECLONE2:3_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:3_monitor_60000 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:3_start_0 18node4" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:3_start_0 18node4" -> "FAKECLONE2:3_monitor_60000 18node4" [ style = bold] ++"FAKECLONE2:3_start_0 18node4" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:4_monitor_60000 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:4_start_0 remote1" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:4_start_0 remote1" -> "FAKECLONE2:4_monitor_60000 remote1" [ style = bold] ++"FAKECLONE2:4_start_0 remote1" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:5_monitor_0 18builder" -> "probe_complete 18builder" [ style = bold] ++"FAKECLONE2:5_monitor_0 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:5_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] ++"FAKECLONE2:5_start_0 18builder" -> "FAKECLONE2-clone_running_0" [ style = bold] ++"FAKECLONE2:5_start_0 18builder" -> "FAKECLONE2:5_monitor_60000 18builder" [ style = bold] ++"FAKECLONE2:5_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"probe_complete 18builder" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18builder" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node1" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node1" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node2" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node2" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node3" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node3" [ style=bold color="green" fontcolor="black"] ++"probe_complete 18node4" -> "probe_nodes_complete" [ style = bold] ++"probe_complete 18node4" [ style=bold color="green" fontcolor="black"] ++"probe_complete" -> "FAKE1_start_0 18node2" [ style = bold] ++"probe_complete" -> "FAKE2_start_0 18node3" [ style = bold] ++"probe_complete" -> "FAKE2_stop_0 18node2" [ style = bold] ++"probe_complete" -> "FAKE3_start_0 18node4" [ style = bold] ++"probe_complete" -> "FAKE3_stop_0 18builder" [ style = bold] ++"probe_complete" -> "FAKE4_start_0 remote1" [ style = bold] ++"probe_complete" -> "FAKE4_stop_0 18node1" [ style = bold] ++"probe_complete" -> "FAKE5_start_0 18builder" [ style = bold] ++"probe_complete" -> "FAKECLONE1:0_start_0 18node1" [ style = bold] ++"probe_complete" -> "FAKECLONE1:1_start_0 18node2" [ style = bold] ++"probe_complete" -> "FAKECLONE1:2_start_0 18node3" [ style = bold] ++"probe_complete" -> "FAKECLONE1:3_start_0 18node4" [ style = bold] ++"probe_complete" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] ++"probe_complete" -> "FAKECLONE1:5_start_0 18builder" [ style = bold] ++"probe_complete" -> "FAKECLONE2:0_start_0 18node1" [ style = bold] ++"probe_complete" -> "FAKECLONE2:1_start_0 18node2" [ style = bold] ++"probe_complete" -> "FAKECLONE2:2_start_0 18node3" [ style = bold] ++"probe_complete" -> "FAKECLONE2:3_start_0 18node4" [ style = bold] ++"probe_complete" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] ++"probe_complete" -> "FAKECLONE2:5_start_0 18builder" [ style = bold] ++"probe_complete" [ style=bold color="green" fontcolor="orange"] ++"probe_nodes_complete" -> "remote1_start_0 18builder" [ style = bold] ++"probe_nodes_complete" [ style=bold color="green" fontcolor="orange"] ++"remote1_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"remote1_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"remote1_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"remote1_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++"remote1_monitor_60000 18builder" [ style=bold color="green" fontcolor="black"] ++"remote1_start_0 18builder" -> "FAKE4_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKE4_start_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE1:4_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE1:4_start_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE2:4_monitor_60000 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "FAKECLONE2:4_start_0 remote1" [ style = bold] ++"remote1_start_0 18builder" -> "remote1_monitor_60000 18builder" [ style = bold] ++"remote1_start_0 18builder" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_0 18node3" -> "probe_complete 18node3" [ style = bold] ++"shooter_monitor_0 18node3" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_0 18node4" -> "probe_complete 18node4" [ style = bold] ++"shooter_monitor_0 18node4" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/rsc-discovery-per-node.exp b/pengine/test10/rsc-discovery-per-node.exp +new file mode 100644 +index 0000000..8de04cd +--- /dev/null ++++ b/pengine/test10/rsc-discovery-per-node.exp +@@ -0,0 +1,1103 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="34" operation="monitor" operation_key="shooter_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="24" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="46" operation="monitor" operation_key="remote1_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="7" operation="probe_nodes_complete" operation_key="probe_nodes_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="35" operation="monitor" operation_key="remote1_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="25" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="remote1" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="48" operation="monitor" operation_key="FAKE1_monitor_60000" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="47" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="47" operation="start" operation_key="FAKE1_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="36" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="26" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="19" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="14" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="12"> ++ <action_set> ++ <rsc_op id="9" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="13"> ++ <action_set> ++ <rsc_op id="51" operation="monitor" operation_key="FAKE2_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="50" operation="start" operation_key="FAKE2_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="14"> ++ <action_set> ++ <rsc_op id="50" operation="start" operation_key="FAKE2_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="49" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="15"> ++ <action_set> ++ <rsc_op id="49" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="16"> ++ <action_set> ++ <rsc_op id="37" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="17"> ++ <action_set> ++ <rsc_op id="27" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="18"> ++ <action_set> ++ <rsc_op id="54" operation="monitor" operation_key="FAKE3_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="53" operation="start" operation_key="FAKE3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="19"> ++ <action_set> ++ <rsc_op id="53" operation="start" operation_key="FAKE3_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="52" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="20"> ++ <action_set> ++ <rsc_op id="52" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="21"> ++ <action_set> ++ <rsc_op id="38" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="22"> ++ <action_set> ++ <rsc_op id="28" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="23"> ++ <action_set> ++ <rsc_op id="57" operation="monitor" operation_key="FAKE4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="56" operation="start" operation_key="FAKE4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="24"> ++ <action_set> ++ <rsc_op id="56" operation="start" operation_key="FAKE4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="55" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="25"> ++ <action_set> ++ <rsc_op id="55" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="26"> ++ <action_set> ++ <rsc_op id="39" operation="monitor" operation_key="FAKE4_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="27"> ++ <action_set> ++ <rsc_op id="29" operation="monitor" operation_key="FAKE4_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="28"> ++ <action_set> ++ <rsc_op id="59" operation="monitor" operation_key="FAKE5_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="58" operation="start" operation_key="FAKE5_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="29"> ++ <action_set> ++ <rsc_op id="58" operation="start" operation_key="FAKE5_start_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="30"> ++ <action_set> ++ <rsc_op id="40" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="31"> ++ <action_set> ++ <rsc_op id="30" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="32"> ++ <action_set> ++ <rsc_op id="20" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="33"> ++ <action_set> ++ <rsc_op id="15" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="34"> ++ <action_set> ++ <rsc_op id="10" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKE5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="35"> ++ <action_set> ++ <rsc_op id="61" operation="monitor" operation_key="FAKECLONE1:0_monitor_60000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="60" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="36"> ++ <action_set> ++ <rsc_op id="60" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="37"> ++ <action_set> ++ <rsc_op id="16" operation="monitor" operation_key="FAKECLONE1:0_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="38"> ++ <action_set> ++ <rsc_op id="63" operation="monitor" operation_key="FAKECLONE1:1_monitor_60000" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="62" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="39"> ++ <action_set> ++ <rsc_op id="62" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="40"> ++ <action_set> ++ <rsc_op id="21" operation="monitor" operation_key="FAKECLONE1:1_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="41"> ++ <action_set> ++ <rsc_op id="65" operation="monitor" operation_key="FAKECLONE1:2_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="64" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="42"> ++ <action_set> ++ <rsc_op id="64" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="43"> ++ <action_set> ++ <rsc_op id="31" operation="monitor" operation_key="FAKECLONE1:2_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="44"> ++ <action_set> ++ <rsc_op id="67" operation="monitor" operation_key="FAKECLONE1:3_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="66" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="45"> ++ <action_set> ++ <rsc_op id="66" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="46"> ++ <action_set> ++ <rsc_op id="41" operation="monitor" operation_key="FAKECLONE1:3_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="47"> ++ <action_set> ++ <rsc_op id="69" operation="monitor" operation_key="FAKECLONE1:4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="68" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="48"> ++ <action_set> ++ <rsc_op id="68" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="49"> ++ <action_set> ++ <rsc_op id="71" operation="monitor" operation_key="FAKECLONE1:5_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="70" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="50"> ++ <action_set> ++ <rsc_op id="70" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="51"> ++ <action_set> ++ <rsc_op id="11" operation="monitor" operation_key="FAKECLONE1:5_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE1" long-id="FAKECLONE1:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="52" priority="1000000"> ++ <action_set> ++ <pseudo_event id="73" operation="running" operation_key="FAKECLONE1-clone_running_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="60" operation="start" operation_key="FAKECLONE1:0_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="62" operation="start" operation_key="FAKECLONE1:1_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="64" operation="start" operation_key="FAKECLONE1:2_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="66" operation="start" operation_key="FAKECLONE1:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="68" operation="start" operation_key="FAKECLONE1:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="70" operation="start" operation_key="FAKECLONE1:5_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="53"> ++ <action_set> ++ <pseudo_event id="72" operation="start" operation_key="FAKECLONE1-clone_start_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="54"> ++ <action_set> ++ <rsc_op id="77" operation="monitor" operation_key="FAKECLONE2:0_monitor_60000" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="55"> ++ <action_set> ++ <rsc_op id="76" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="56"> ++ <action_set> ++ <rsc_op id="17" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:0" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="0" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="57"> ++ <action_set> ++ <rsc_op id="79" operation="monitor" operation_key="FAKECLONE2:1_monitor_60000" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="78" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="58"> ++ <action_set> ++ <rsc_op id="78" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="59"> ++ <action_set> ++ <rsc_op id="22" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node2" on_node_uuid="2"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:1" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="1" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="60"> ++ <action_set> ++ <rsc_op id="81" operation="monitor" operation_key="FAKECLONE2:2_monitor_60000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="80" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="61"> ++ <action_set> ++ <rsc_op id="80" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="62"> ++ <action_set> ++ <rsc_op id="32" operation="monitor" operation_key="FAKECLONE2:2_monitor_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:2" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="2" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="63"> ++ <action_set> ++ <rsc_op id="83" operation="monitor" operation_key="FAKECLONE2:3_monitor_60000" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="82" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="64"> ++ <action_set> ++ <rsc_op id="82" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="65"> ++ <action_set> ++ <rsc_op id="42" operation="monitor" operation_key="FAKECLONE2:3_monitor_0" on_node="18node4" on_node_uuid="4"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:3" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="3" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="66"> ++ <action_set> ++ <rsc_op id="85" operation="monitor" operation_key="FAKECLONE2:4_monitor_60000" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="84" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="67"> ++ <action_set> ++ <rsc_op id="84" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:4" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="4" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="remote1_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="68"> ++ <action_set> ++ <rsc_op id="87" operation="monitor" operation_key="FAKECLONE2:5_monitor_60000" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="86" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="69"> ++ <action_set> ++ <rsc_op id="86" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="70"> ++ <action_set> ++ <rsc_op id="12" operation="monitor" operation_key="FAKECLONE2:5_monitor_0" on_node="18builder" on_node_uuid="5"> ++ <primitive id="FAKECLONE2" long-id="FAKECLONE2:5" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_clone="5" CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_op_target_rc="7" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="71" priority="1000000"> ++ <action_set> ++ <pseudo_event id="89" operation="running" operation_key="FAKECLONE2-clone_running_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="76" operation="start" operation_key="FAKECLONE2:0_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="78" operation="start" operation_key="FAKECLONE2:1_start_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="80" operation="start" operation_key="FAKECLONE2:2_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="82" operation="start" operation_key="FAKECLONE2:3_start_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="84" operation="start" operation_key="FAKECLONE2:4_start_0" on_node="remote1" on_node_uuid="remote1" router_node="18builder"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="86" operation="start" operation_key="FAKECLONE2:5_start_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="72"> ++ <action_set> ++ <pseudo_event id="88" operation="start" operation_key="FAKECLONE2-clone_start_0"> ++ <attributes CRM_meta_clone_max="6" CRM_meta_clone_node_max="1" CRM_meta_globally_unique="false" CRM_meta_notify="false" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="73" priority="1000000"> ++ <action_set> ++ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-18node4" on_node="18node4" on_node_uuid="4"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="34" operation="monitor" operation_key="shooter_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="35" operation="monitor" operation_key="remote1_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="36" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="37" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="38" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="39" operation="monitor" operation_key="FAKE4_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="40" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="41" operation="monitor" operation_key="FAKECLONE1:3_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="42" operation="monitor" operation_key="FAKECLONE2:3_monitor_0" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="74" priority="1000000"> ++ <action_set> ++ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="24" operation="monitor" operation_key="shooter_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="25" operation="monitor" operation_key="remote1_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="26" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="27" operation="monitor" operation_key="FAKE2_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="28" operation="monitor" operation_key="FAKE3_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="29" operation="monitor" operation_key="FAKE4_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="30" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="31" operation="monitor" operation_key="FAKECLONE1:2_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="32" operation="monitor" operation_key="FAKECLONE2:2_monitor_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="75" priority="1000000"> ++ <action_set> ++ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="19" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="20" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="21" operation="monitor" operation_key="FAKECLONE1:1_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="22" operation="monitor" operation_key="FAKECLONE2:1_monitor_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="76" priority="1000000"> ++ <action_set> ++ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="14" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="15" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="16" operation="monitor" operation_key="FAKECLONE1:0_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="17" operation="monitor" operation_key="FAKECLONE2:0_monitor_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="77" priority="1000000"> ++ <action_set> ++ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"> ++ <attributes CRM_meta_op_no_wait="true" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="9" operation="monitor" operation_key="FAKE1_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="10" operation="monitor" operation_key="FAKE5_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="11" operation="monitor" operation_key="FAKECLONE1:5_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="12" operation="monitor" operation_key="FAKECLONE2:5_monitor_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="78"> ++ <action_set> ++ <pseudo_event id="7" operation="probe_nodes_complete" operation_key="probe_nodes_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="8" operation="probe_complete" operation_key="probe_complete-18builder" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="13" operation="probe_complete" operation_key="probe_complete-18node1" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="18" operation="probe_complete" operation_key="probe_complete-18node2" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="23" operation="probe_complete" operation_key="probe_complete-18node3" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="33" operation="probe_complete" operation_key="probe_complete-18node4" on_node="18node4" on_node_uuid="4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="79"> ++ <action_set> ++ <pseudo_event id="6" operation="probe_complete" operation_key="probe_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="80"> ++ <action_set> ++ <pseudo_event id="5" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="49" operation="stop" operation_key="FAKE2_stop_0" on_node="18node2" on_node_uuid="2"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="52" operation="stop" operation_key="FAKE3_stop_0" on_node="18builder" on_node_uuid="5"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="55" operation="stop" operation_key="FAKE4_stop_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/rsc-discovery-per-node.scores b/pengine/test10/rsc-discovery-per-node.scores +new file mode 100644 +index 0000000..a0ad11f +--- /dev/null ++++ b/pengine/test10/rsc-discovery-per-node.scores +@@ -0,0 +1,199 @@ ++Allocation scores: ++clone_color: FAKECLONE1-clone allocation score on 18builder: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node1: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node2: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node3: 0 ++clone_color: FAKECLONE1-clone allocation score on 18node4: 0 ++clone_color: FAKECLONE1-clone allocation score on remote1: 0 ++clone_color: FAKECLONE1:0 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:0 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:0 allocation score on remote1: 0 ++clone_color: FAKECLONE1:1 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:1 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:1 allocation score on remote1: 0 ++clone_color: FAKECLONE1:2 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:2 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:2 allocation score on remote1: 0 ++clone_color: FAKECLONE1:3 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:3 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:3 allocation score on remote1: 0 ++clone_color: FAKECLONE1:4 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:4 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:4 allocation score on remote1: 0 ++clone_color: FAKECLONE1:5 allocation score on 18builder: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node1: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node2: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node3: 0 ++clone_color: FAKECLONE1:5 allocation score on 18node4: 0 ++clone_color: FAKECLONE1:5 allocation score on remote1: 0 ++clone_color: FAKECLONE2-clone allocation score on 18builder: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node1: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node2: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node3: 0 ++clone_color: FAKECLONE2-clone allocation score on 18node4: 0 ++clone_color: FAKECLONE2-clone allocation score on remote1: 0 ++clone_color: FAKECLONE2:0 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:0 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:0 allocation score on remote1: 0 ++clone_color: FAKECLONE2:1 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:1 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:1 allocation score on remote1: 0 ++clone_color: FAKECLONE2:2 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:2 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:2 allocation score on remote1: 0 ++clone_color: FAKECLONE2:3 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:3 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:3 allocation score on remote1: 0 ++clone_color: FAKECLONE2:4 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:4 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:4 allocation score on remote1: 0 ++clone_color: FAKECLONE2:5 allocation score on 18builder: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node1: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node2: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node3: 0 ++clone_color: FAKECLONE2:5 allocation score on 18node4: 0 ++clone_color: FAKECLONE2:5 allocation score on remote1: 0 ++native_color: FAKE1 allocation score on 18builder: 0 ++native_color: FAKE1 allocation score on 18node1: 0 ++native_color: FAKE1 allocation score on 18node2: 0 ++native_color: FAKE1 allocation score on 18node3: 0 ++native_color: FAKE1 allocation score on 18node4: 0 ++native_color: FAKE1 allocation score on remote1: 0 ++native_color: FAKE2 allocation score on 18builder: 0 ++native_color: FAKE2 allocation score on 18node1: 0 ++native_color: FAKE2 allocation score on 18node2: 0 ++native_color: FAKE2 allocation score on 18node3: 0 ++native_color: FAKE2 allocation score on 18node4: 0 ++native_color: FAKE2 allocation score on remote1: 0 ++native_color: FAKE3 allocation score on 18builder: 0 ++native_color: FAKE3 allocation score on 18node1: 0 ++native_color: FAKE3 allocation score on 18node2: 0 ++native_color: FAKE3 allocation score on 18node3: 0 ++native_color: FAKE3 allocation score on 18node4: 0 ++native_color: FAKE3 allocation score on remote1: 0 ++native_color: FAKE4 allocation score on 18builder: 0 ++native_color: FAKE4 allocation score on 18node1: 0 ++native_color: FAKE4 allocation score on 18node2: 0 ++native_color: FAKE4 allocation score on 18node3: 0 ++native_color: FAKE4 allocation score on 18node4: 0 ++native_color: FAKE4 allocation score on remote1: 0 ++native_color: FAKE5 allocation score on 18builder: 0 ++native_color: FAKE5 allocation score on 18node1: 0 ++native_color: FAKE5 allocation score on 18node2: 0 ++native_color: FAKE5 allocation score on 18node3: 0 ++native_color: FAKE5 allocation score on 18node4: 0 ++native_color: FAKE5 allocation score on remote1: 0 ++native_color: FAKECLONE1:0 allocation score on 18builder: 0 ++native_color: FAKECLONE1:0 allocation score on 18node1: 0 ++native_color: FAKECLONE1:0 allocation score on 18node2: 0 ++native_color: FAKECLONE1:0 allocation score on 18node3: 0 ++native_color: FAKECLONE1:0 allocation score on 18node4: 0 ++native_color: FAKECLONE1:0 allocation score on remote1: 0 ++native_color: FAKECLONE1:1 allocation score on 18builder: 0 ++native_color: FAKECLONE1:1 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:1 allocation score on 18node2: 0 ++native_color: FAKECLONE1:1 allocation score on 18node3: 0 ++native_color: FAKECLONE1:1 allocation score on 18node4: 0 ++native_color: FAKECLONE1:1 allocation score on remote1: 0 ++native_color: FAKECLONE1:2 allocation score on 18builder: 0 ++native_color: FAKECLONE1:2 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:2 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:2 allocation score on 18node3: 0 ++native_color: FAKECLONE1:2 allocation score on 18node4: 0 ++native_color: FAKECLONE1:2 allocation score on remote1: 0 ++native_color: FAKECLONE1:3 allocation score on 18builder: 0 ++native_color: FAKECLONE1:3 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE1:3 allocation score on 18node4: 0 ++native_color: FAKECLONE1:3 allocation score on remote1: 0 ++native_color: FAKECLONE1:4 allocation score on 18builder: 0 ++native_color: FAKECLONE1:4 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:4 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:4 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE1:4 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE1:4 allocation score on remote1: 0 ++native_color: FAKECLONE1:5 allocation score on 18builder: 0 ++native_color: FAKECLONE1:5 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE1:5 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE1:5 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE1:5 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE1:5 allocation score on remote1: -INFINITY ++native_color: FAKECLONE2:0 allocation score on 18builder: 0 ++native_color: FAKECLONE2:0 allocation score on 18node1: 0 ++native_color: FAKECLONE2:0 allocation score on 18node2: 0 ++native_color: FAKECLONE2:0 allocation score on 18node3: 0 ++native_color: FAKECLONE2:0 allocation score on 18node4: 0 ++native_color: FAKECLONE2:0 allocation score on remote1: 0 ++native_color: FAKECLONE2:1 allocation score on 18builder: 0 ++native_color: FAKECLONE2:1 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:1 allocation score on 18node2: 0 ++native_color: FAKECLONE2:1 allocation score on 18node3: 0 ++native_color: FAKECLONE2:1 allocation score on 18node4: 0 ++native_color: FAKECLONE2:1 allocation score on remote1: 0 ++native_color: FAKECLONE2:2 allocation score on 18builder: 0 ++native_color: FAKECLONE2:2 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:2 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE2:2 allocation score on 18node3: 0 ++native_color: FAKECLONE2:2 allocation score on 18node4: 0 ++native_color: FAKECLONE2:2 allocation score on remote1: 0 ++native_color: FAKECLONE2:3 allocation score on 18builder: 0 ++native_color: FAKECLONE2:3 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:3 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE2:3 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE2:3 allocation score on 18node4: 0 ++native_color: FAKECLONE2:3 allocation score on remote1: 0 ++native_color: FAKECLONE2:4 allocation score on 18builder: 0 ++native_color: FAKECLONE2:4 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:4 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE2:4 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE2:4 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE2:4 allocation score on remote1: 0 ++native_color: FAKECLONE2:5 allocation score on 18builder: 0 ++native_color: FAKECLONE2:5 allocation score on 18node1: -INFINITY ++native_color: FAKECLONE2:5 allocation score on 18node2: -INFINITY ++native_color: FAKECLONE2:5 allocation score on 18node3: -INFINITY ++native_color: FAKECLONE2:5 allocation score on 18node4: -INFINITY ++native_color: FAKECLONE2:5 allocation score on remote1: -INFINITY ++native_color: remote1 allocation score on 18builder: 0 ++native_color: remote1 allocation score on 18node1: 0 ++native_color: remote1 allocation score on 18node2: 0 ++native_color: remote1 allocation score on 18node3: 0 ++native_color: remote1 allocation score on 18node4: 0 ++native_color: remote1 allocation score on remote1: -INFINITY ++native_color: shooter allocation score on 18builder: 0 ++native_color: shooter allocation score on 18node1: 0 ++native_color: shooter allocation score on 18node2: 0 ++native_color: shooter allocation score on 18node3: 0 ++native_color: shooter allocation score on 18node4: 0 ++native_color: shooter allocation score on remote1: -INFINITY +diff --git a/pengine/test10/rsc-discovery-per-node.summary b/pengine/test10/rsc-discovery-per-node.summary +new file mode 100644 +index 0000000..69d5ee3 +--- /dev/null ++++ b/pengine/test10/rsc-discovery-per-node.summary +@@ -0,0 +1,131 @@ ++ ++Current cluster status: ++Online: [ 18builder 18node1 18node2 18node3 18node4 ] ++RemoteOFFLINE: [ remote1 ] ++ ++ shooter (stonith:fence_xvm): Started 18node1 ++ remote1 (ocf::pacemaker:remote): Stopped ++ FAKE1 (ocf::heartbeat:Dummy): Stopped ++ FAKE2 (ocf::heartbeat:Dummy): Started 18node2 ++ FAKE3 (ocf::heartbeat:Dummy): Started 18builder ++ FAKE4 (ocf::heartbeat:Dummy): Started 18node1 ++ FAKE5 (ocf::heartbeat:Dummy): Stopped ++ Clone Set: FAKECLONE1-clone [FAKECLONE1] ++ Stopped: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Clone Set: FAKECLONE2-clone [FAKECLONE2] ++ Stopped: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ ++Transition Summary: ++ * Start remote1 (18builder) ++ * Start FAKE1 (18node2) ++ * Move FAKE2 (Started 18node2 -> 18node3) ++ * Move FAKE3 (Started 18builder -> 18node4) ++ * Move FAKE4 (Started 18node1 -> remote1) ++ * Start FAKE5 (18builder) ++ * Start FAKECLONE1:0 (18node1) ++ * Start FAKECLONE1:1 (18node2) ++ * Start FAKECLONE1:2 (18node3) ++ * Start FAKECLONE1:3 (18node4) ++ * Start FAKECLONE1:4 (remote1) ++ * Start FAKECLONE1:5 (18builder) ++ * Start FAKECLONE2:0 (18node1) ++ * Start FAKECLONE2:1 (18node2) ++ * Start FAKECLONE2:2 (18node3) ++ * Start FAKECLONE2:3 (18node4) ++ * Start FAKECLONE2:4 (remote1) ++ * Start FAKECLONE2:5 (18builder) ++ ++Executing cluster transition: ++ * Resource action: shooter monitor on 18node4 ++ * Resource action: shooter monitor on 18node3 ++ * Resource action: remote1 monitor on 18node4 ++ * Resource action: remote1 monitor on 18node3 ++ * Resource action: FAKE1 monitor on 18node4 ++ * Resource action: FAKE1 monitor on 18node3 ++ * Resource action: FAKE1 monitor on 18node2 ++ * Resource action: FAKE1 monitor on 18node1 ++ * Resource action: FAKE1 monitor on 18builder ++ * Resource action: FAKE2 monitor on 18node4 ++ * Resource action: FAKE2 monitor on 18node3 ++ * Resource action: FAKE3 monitor on 18node4 ++ * Resource action: FAKE3 monitor on 18node3 ++ * Resource action: FAKE4 monitor on 18node4 ++ * Resource action: FAKE4 monitor on 18node3 ++ * Resource action: FAKE5 monitor on 18node4 ++ * Resource action: FAKE5 monitor on 18node3 ++ * Resource action: FAKE5 monitor on 18node2 ++ * Resource action: FAKE5 monitor on 18node1 ++ * Resource action: FAKE5 monitor on 18builder ++ * Resource action: FAKECLONE1:0 monitor on 18node1 ++ * Resource action: FAKECLONE1:1 monitor on 18node2 ++ * Resource action: FAKECLONE1:2 monitor on 18node3 ++ * Resource action: FAKECLONE1:3 monitor on 18node4 ++ * Resource action: FAKECLONE1:5 monitor on 18builder ++ * Pseudo action: FAKECLONE1-clone_start_0 ++ * Resource action: FAKECLONE2:0 monitor on 18node1 ++ * Resource action: FAKECLONE2:1 monitor on 18node2 ++ * Resource action: FAKECLONE2:2 monitor on 18node3 ++ * Resource action: FAKECLONE2:3 monitor on 18node4 ++ * Resource action: FAKECLONE2:5 monitor on 18builder ++ * Pseudo action: FAKECLONE2-clone_start_0 ++ * Pseudo action: probe_nodes_complete ++ * Pseudo action: probe_complete ++ * Resource action: remote1 start on 18builder ++ * Resource action: FAKE1 start on 18node2 ++ * Resource action: FAKE2 stop on 18node2 ++ * Resource action: FAKE3 stop on 18builder ++ * Resource action: FAKE4 stop on 18node1 ++ * Resource action: FAKE5 start on 18builder ++ * Resource action: FAKECLONE1:0 start on 18node1 ++ * Resource action: FAKECLONE1:1 start on 18node2 ++ * Resource action: FAKECLONE1:2 start on 18node3 ++ * Resource action: FAKECLONE1:3 start on 18node4 ++ * Resource action: FAKECLONE1:4 start on remote1 ++ * Resource action: FAKECLONE1:5 start on 18builder ++ * Pseudo action: FAKECLONE1-clone_running_0 ++ * Resource action: FAKECLONE2:0 start on 18node1 ++ * Resource action: FAKECLONE2:1 start on 18node2 ++ * Resource action: FAKECLONE2:2 start on 18node3 ++ * Resource action: FAKECLONE2:3 start on 18node4 ++ * Resource action: FAKECLONE2:4 start on remote1 ++ * Resource action: FAKECLONE2:5 start on 18builder ++ * Pseudo action: FAKECLONE2-clone_running_0 ++ * Pseudo action: all_stopped ++ * Resource action: remote1 monitor=60000 on 18builder ++ * Resource action: FAKE1 monitor=60000 on 18node2 ++ * Resource action: FAKE2 start on 18node3 ++ * Resource action: FAKE3 start on 18node4 ++ * Resource action: FAKE4 start on remote1 ++ * Resource action: FAKE5 monitor=60000 on 18builder ++ * Resource action: FAKECLONE1:0 monitor=60000 on 18node1 ++ * Resource action: FAKECLONE1:1 monitor=60000 on 18node2 ++ * Resource action: FAKECLONE1:2 monitor=60000 on 18node3 ++ * Resource action: FAKECLONE1:3 monitor=60000 on 18node4 ++ * Resource action: FAKECLONE1:4 monitor=60000 on remote1 ++ * Resource action: FAKECLONE1:5 monitor=60000 on 18builder ++ * Resource action: FAKECLONE2:0 monitor=60000 on 18node1 ++ * Resource action: FAKECLONE2:1 monitor=60000 on 18node2 ++ * Resource action: FAKECLONE2:2 monitor=60000 on 18node3 ++ * Resource action: FAKECLONE2:3 monitor=60000 on 18node4 ++ * Resource action: FAKECLONE2:4 monitor=60000 on remote1 ++ * Resource action: FAKECLONE2:5 monitor=60000 on 18builder ++ * Resource action: FAKE2 monitor=60000 on 18node3 ++ * Resource action: FAKE3 monitor=60000 on 18node4 ++ * Resource action: FAKE4 monitor=60000 on remote1 ++ ++Revised cluster status: ++Online: [ 18builder 18node1 18node2 18node3 18node4 ] ++RemoteOnline: [ remote1 ] ++ ++ shooter (stonith:fence_xvm): Started 18node1 ++ remote1 (ocf::pacemaker:remote): Started 18builder ++ FAKE1 (ocf::heartbeat:Dummy): Started 18node2 ++ FAKE2 (ocf::heartbeat:Dummy): Started 18node3 ++ FAKE3 (ocf::heartbeat:Dummy): Started 18node4 ++ FAKE4 (ocf::heartbeat:Dummy): Started remote1 ++ FAKE5 (ocf::heartbeat:Dummy): Started 18builder ++ Clone Set: FAKECLONE1-clone [FAKECLONE1] ++ Started: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ Clone Set: FAKECLONE2-clone [FAKECLONE2] ++ Started: [ 18builder 18node1 18node2 18node3 18node4 remote1 ] ++ +diff --git a/pengine/test10/rsc-discovery-per-node.xml b/pengine/test10/rsc-discovery-per-node.xml +new file mode 100644 +index 0000000..c111de8 +--- /dev/null ++++ b/pengine/test10/rsc-discovery-per-node.xml +@@ -0,0 +1,182 @@ ++<cib epoch="11" num_updates="1" admin_epoch="0" validate-with="pacemaker-next" cib-last-written="Tue Sep 3 17:59:24 2013" update-origin="18builder" update-client="crm_resource" crm_feature_set="3.0.7" have-quorum="1" dc-uuid="5"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.10-ab50afe"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="18node1"> ++ <instance_attributes id="instance_attributes-18node1"> ++ <nvpair name="resource-discovery-enabled" id="discovery-18node1" value="false"/> ++ </instance_attributes> ++ </node> ++ <node id="2" uname="18node2"/> ++ <node id="3" uname="18node3"/> ++ <node id="4" uname="18node4"/> ++ <node id="5" uname="18builder"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="remote1" provider="pacemaker" type="remote"> ++ <instance_attributes id="remote1-instance_attributes"/> ++ <operations> ++ <op id="remote1-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ <meta_attributes id="remote1-meta_attributes"/> ++ </primitive> ++ <primitive class="ocf" id="FAKE1" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE1-instance_attributes"/> ++ <meta_attributes id="FAKE1-meta_attributes"> ++ </meta_attributes> ++ <operations> ++ <op id="FAKE1-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE2" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE2-instance_attributes"/> ++ <meta_attributes id="FAKE2-meta_attributes"> ++ </meta_attributes> ++ <operations> ++ <op id="FAKE2-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE3" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE3-instance_attributes"/> ++ <operations> ++ <op id="FAKE3-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE4" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE4-instance_attributes"/> ++ <operations> ++ <op id="FAKE4-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="FAKE5" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKE5-instance_attributes"/> ++ <operations> ++ <op id="FAKE5-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <clone id="FAKECLONE1-clone"> ++ <primitive class="ocf" id="FAKECLONE1" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKECLONE1-instance_attributes"/> ++ <operations> ++ <op id="FAKECLONE1-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ </clone> ++ <clone id="FAKECLONE2-clone"> ++ <primitive class="ocf" id="FAKECLONE2" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="FAKECLONE2-instance_attributes"/> ++ <operations> ++ <op id="FAKECLONE2-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ </clone> ++ </resources> ++ <constraints> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="5" uname="18builder" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> ++ <transient_attributes id="5"> ++ <instance_attributes id="status-5"> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="5"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="11:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;11:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="16" rc-code="0" op-status="0" interval="0" last-run="1378248545" last-rc-change="1378248545" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:3:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;10:3:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="11" rc-code="0" op-status="0" interval="60000" last-rc-change="1378248534" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="remote1_last_0" operation_key="remote1_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:6:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;12:6:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="13" rc-code="0" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="remote1_monitor_60000" operation_key="remote1_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:5:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;13:5:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="3" rc-code="0" op-status="0" interval="60000" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="7:9:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;7:9:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="39" rc-code="7" op-status="0" interval="0" last-run="1378249145" last-rc-change="1378249145" exec-time="61" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="18:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;18:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="53" rc-code="0" op-status="0" interval="0" last-run="1378249147" last-rc-change="1378249147" exec-time="11" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE3_monitor_60000" operation_key="FAKE3_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="19:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;19:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="56" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249147" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:12:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;9:12:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="61" rc-code="7" op-status="0" interval="0" last-run="1378249149" last-rc-change="1378249149" exec-time="65" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="18node1" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;12:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="9" rc-code="0" op-status="0" interval="0" last-run="1378248547" last-rc-change="1378248547" exec-time="19" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:4:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;13:4:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1378248548" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="remote1_last_0" operation_key="remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="8:4:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;8:4:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="9:9:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;9:9:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="25" rc-code="7" op-status="0" interval="0" last-run="1378249144" last-rc-change="1378249144" exec-time="28" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_failure_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:10:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;10:10:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="30" rc-code="0" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="32" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="17:11:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;17:11:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="33" rc-code="0" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="15" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="22:12:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;22:12:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="40" rc-code="0" op-status="0" interval="0" last-run="1378249148" last-rc-change="1378249148" exec-time="36" queue-time="38" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE4_monitor_60000" operation_key="FAKE4_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="23:12:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;23:12:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="44" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249148" exec-time="14" queue-time="1" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="2" uname="18node2" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="8:3:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;8:3:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1378248530" last-rc-change="1378248530" exec-time="980" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="remote1" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="remote1_last_0" operation_key="remote1_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="10:4:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;10:4:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE2" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE2_last_0" operation_key="FAKE2_start_0" operation="start" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="16:9:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;16:9:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="18" rc-code="0" op-status="0" interval="0" last-run="1378249144" last-rc-change="1378249144" exec-time="18" queue-time="9" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="FAKE2_monitor_60000" operation_key="FAKE2_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="17:9:0:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:0;17:9:0:6277c962-3d23-450c-8410-560e51c1302b" call-id="22" rc-code="0" op-status="0" interval="60000" last-rc-change="1378249144" exec-time="20" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE3" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE3_last_0" operation_key="FAKE3_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="12:10:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;12:10:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="27" rc-code="7" op-status="0" interval="0" last-run="1378249146" last-rc-change="1378249146" exec-time="35" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ <lrm_resource id="FAKE4" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="FAKE4_last_0" operation_key="FAKE4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="13:12:7:6277c962-3d23-450c-8410-560e51c1302b" transition-magic="0:7;13:12:7:6277c962-3d23-450c-8410-560e51c1302b" call-id="32" rc-code="7" op-status="0" interval="0" last-run="1378249148" last-rc-change="1378249148" exec-time="33" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair name="resource-discovery-enabled" id="discovery-18node2" value="false"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="3" uname="18node3" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"/> ++ <node_state id="4" uname="18node4" crmd="online" crm-debug-origin="do_update_resource" in_ccm="true" join="member" expected="member"/> ++ <node_state remote_node="true" id="remote1" uname="remote1" crm-debug-origin="remote_init_cib_status"> ++ <transient_attributes id="remote1"> ++ <instance_attributes id="status-remote1"> ++ <nvpair name="resource-discovery-enabled" id="discovery-18node2" value="false"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/whitebox-start.dot b/pengine/test10/whitebox-start.dot +index bec57b0..659ea97 100644 +--- a/pengine/test10/whitebox-start.dot ++++ b/pengine/test10/whitebox-start.dot +@@ -1,4 +1,16 @@ + digraph "g" { ++"A_monitor_10000 lxc1" [ style=bold color="green" fontcolor="black"] ++"A_start_0 lxc1" -> "A_monitor_10000 lxc1" [ style = bold] ++"A_start_0 lxc1" [ style=bold color="green" fontcolor="black"] ++"A_stop_0 18node1" -> "A_start_0 lxc1" [ style = bold] ++"A_stop_0 18node1" -> "all_stopped" [ style = bold] ++"A_stop_0 18node1" [ style=bold color="green" fontcolor="black"] ++"B_monitor_10000 18node3" [ style=bold color="green" fontcolor="black"] ++"B_start_0 18node3" -> "B_monitor_10000 18node3" [ style = bold] ++"B_start_0 18node3" [ style=bold color="green" fontcolor="black"] ++"B_stop_0 lxc2" -> "B_start_0 18node3" [ style = bold] ++"B_stop_0 lxc2" -> "all_stopped" [ style = bold] ++"B_stop_0 lxc2" [ style=bold color="green" fontcolor="black"] + "M-clone_running_0" [ style=bold color="green" fontcolor="orange"] + "M-clone_start_0" -> "M-clone_running_0" [ style = bold] + "M-clone_start_0" -> "M_start_0 lxc1" [ style = bold] +@@ -7,9 +19,12 @@ digraph "g" { + "M_start_0 lxc1" -> "M-clone_running_0" [ style = bold] + "M_start_0 lxc1" -> "M_monitor_10000 lxc1" [ style = bold] + "M_start_0 lxc1" [ style=bold color="green" fontcolor="black"] ++"all_stopped" [ style=bold color="green" fontcolor="orange"] + "container1_start_0 18node1" -> "lxc1_start_0 18node1" [ style = bold] + "container1_start_0 18node1" [ style=bold color="green" fontcolor="black"] + "lxc1_monitor_30000 18node1" [ style=bold color="green" fontcolor="black"] ++"lxc1_start_0 18node1" -> "A_monitor_10000 lxc1" [ style = bold] ++"lxc1_start_0 18node1" -> "A_start_0 lxc1" [ style = bold] + "lxc1_start_0 18node1" -> "M_monitor_10000 lxc1" [ style = bold] + "lxc1_start_0 18node1" -> "M_start_0 lxc1" [ style = bold] + "lxc1_start_0 18node1" -> "lxc1_monitor_30000 18node1" [ style = bold] +diff --git a/pengine/test10/whitebox-start.exp b/pengine/test10/whitebox-start.exp +index 0ee104c..68ede8e 100644 +--- a/pengine/test10/whitebox-start.exp ++++ b/pengine/test10/whitebox-start.exp +@@ -20,7 +20,7 @@ + <rsc_op id="29" operation="start" operation_key="M_start_0" internal_operation_key="M:4_start_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> + </trigger> + <trigger> +- <rsc_op id="43" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="45" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +@@ -36,7 +36,7 @@ + <pseudo_event id="31" operation="start" operation_key="M-clone_start_0"/> + </trigger> + <trigger> +- <rsc_op id="43" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="45" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +@@ -65,20 +65,96 @@ + </synapse> + <synapse id="5"> + <action_set> +- <rsc_op id="44" operation="monitor" operation_key="lxc1_monitor_30000" on_node="18node1" on_node_uuid="1"> ++ <rsc_op id="37" operation="monitor" operation_key="A_monitor_10000" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> ++ <primitive id="A" class="ocf" provider="pacemaker" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="36" operation="start" operation_key="A_start_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="36" operation="start" operation_key="A_start_0" on_node="lxc1" on_node_uuid="lxc1" router_node="18node1"> ++ <primitive id="A" class="ocf" provider="pacemaker" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="35" operation="stop" operation_key="A_stop_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="45" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <rsc_op id="35" operation="stop" operation_key="A_stop_0" on_node="18node1" on_node_uuid="1"> ++ <primitive id="A" class="ocf" provider="pacemaker" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="8"> ++ <action_set> ++ <rsc_op id="40" operation="monitor" operation_key="B_monitor_10000" on_node="18node3" on_node_uuid="3"> ++ <primitive id="B" class="ocf" provider="pacemaker" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="39" operation="start" operation_key="B_start_0" on_node="18node3" on_node_uuid="3"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="9"> ++ <action_set> ++ <rsc_op id="39" operation="start" operation_key="B_start_0" on_node="18node3" on_node_uuid="3"> ++ <primitive id="B" class="ocf" provider="pacemaker" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="38" operation="stop" operation_key="B_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node2"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="10"> ++ <action_set> ++ <rsc_op id="38" operation="stop" operation_key="B_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node2"> ++ <primitive id="B" class="ocf" provider="pacemaker" type="Dummy"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="11"> ++ <action_set> ++ <rsc_op id="46" operation="monitor" operation_key="lxc1_monitor_30000" on_node="18node1" on_node_uuid="1"> + <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_container="container1" CRM_meta_interval="30000" CRM_meta_name="monitor" CRM_meta_timeout="30000" /> + </rsc_op> + </action_set> + <inputs> + <trigger> +- <rsc_op id="43" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> ++ <rsc_op id="45" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"/> + </trigger> + </inputs> + </synapse> +- <synapse id="6"> ++ <synapse id="12"> + <action_set> +- <rsc_op id="43" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"> ++ <rsc_op id="45" operation="start" operation_key="lxc1_start_0" on_node="18node1" on_node_uuid="1"> + <primitive id="lxc1" class="ocf" provider="pacemaker" type="remote"/> + <attributes CRM_meta_container="container1" CRM_meta_name="start" CRM_meta_timeout="60000" /> + </rsc_op> +@@ -89,5 +165,19 @@ + </trigger> + </inputs> + </synapse> ++ <synapse id="13"> ++ <action_set> ++ <pseudo_event id="10" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="35" operation="stop" operation_key="A_stop_0" on_node="18node1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="38" operation="stop" operation_key="B_stop_0" on_node="lxc2" on_node_uuid="lxc2" router_node="18node2"/> ++ </trigger> ++ </inputs> ++ </synapse> + </transition_graph> +- +diff --git a/pengine/test10/whitebox-start.scores b/pengine/test10/whitebox-start.scores +index 1a00b28..1f0f273 100644 +--- a/pengine/test10/whitebox-start.scores ++++ b/pengine/test10/whitebox-start.scores +@@ -32,11 +32,11 @@ clone_color: M:4 allocation score on lxc2: 0 + native_color: A allocation score on 18node1: 100 + native_color: A allocation score on 18node2: 0 + native_color: A allocation score on 18node3: 0 +-native_color: A allocation score on lxc1: 0 +-native_color: A allocation score on lxc2: 0 +-native_color: B allocation score on 18node1: 0 +-native_color: B allocation score on 18node2: 0 +-native_color: B allocation score on 18node3: 0 ++native_color: A allocation score on lxc1: INFINITY ++native_color: A allocation score on lxc2: INFINITY ++native_color: B allocation score on 18node1: INFINITY ++native_color: B allocation score on 18node2: INFINITY ++native_color: B allocation score on 18node3: INFINITY + native_color: B allocation score on lxc1: 0 + native_color: B allocation score on lxc2: 100 + native_color: C allocation score on 18node1: 0 +diff --git a/pengine/test10/whitebox-start.summary b/pengine/test10/whitebox-start.summary +index 2801abe..6819ebc 100644 +--- a/pengine/test10/whitebox-start.summary ++++ b/pengine/test10/whitebox-start.summary +@@ -17,16 +17,25 @@ Containers: [ lxc2:container2 ] + Transition Summary: + * Start container1 (18node1) + * Start M:4 (lxc1) ++ * Move A (Started 18node1 -> lxc1) ++ * Move B (Started lxc2 -> 18node3) + * Start lxc1 (18node1) + + Executing cluster transition: + * Resource action: container1 start on 18node1 + * Pseudo action: M-clone_start_0 ++ * Resource action: A stop on 18node1 ++ * Resource action: B stop on lxc2 + * Resource action: lxc1 start on 18node1 ++ * Pseudo action: all_stopped + * Resource action: M start on lxc1 + * Pseudo action: M-clone_running_0 ++ * Resource action: A start on lxc1 ++ * Resource action: B start on 18node3 + * Resource action: lxc1 monitor=30000 on 18node1 + * Resource action: M monitor=10000 on lxc1 ++ * Resource action: A monitor=10000 on lxc1 ++ * Resource action: B monitor=10000 on 18node3 + + Revised cluster status: + Online: [ 18node1 18node2 18node3 ] +@@ -37,8 +46,8 @@ Containers: [ lxc1:container1 lxc2:container2 ] + shoot1 (stonith:fence_xvm): Started 18node3 + Clone Set: M-clone [M] + Started: [ 18node1 18node2 18node3 lxc1 lxc2 ] +- A (ocf::pacemaker:Dummy): Started 18node1 +- B (ocf::pacemaker:Dummy): Started lxc2 ++ A (ocf::pacemaker:Dummy): Started lxc1 ++ B (ocf::pacemaker:Dummy): Started 18node3 + C (ocf::pacemaker:Dummy): Started lxc2 + D (ocf::pacemaker:Dummy): Started 18node1 + +diff --git a/pengine/test10/whitebox-start.xml b/pengine/test10/whitebox-start.xml +index 2dad074..67fcbaf 100644 +--- a/pengine/test10/whitebox-start.xml ++++ b/pengine/test10/whitebox-start.xml +@@ -78,7 +78,18 @@ + </operations> + </primitive> + </resources> +- <constraints/> ++ <constraints> ++ <rsc_location id="A-location" rsc="A"> ++ <rule id="A-on-remote" score="INFINITY"> ++ <expression id="A-on-remote-exp" attribute="#kind" operation="eq" value="container"/> ++ </rule> ++ </rsc_location> ++ <rsc_location id="B-location" rsc="B"> ++ <rule id="B-on-cluster" score="INFINITY"> ++ <expression id="B-on-cluster-exp" attribute="#kind" operation="eq" value="cluster"/> ++ </rule> ++ </rsc_location> ++ </constraints> + <rsc_defaults> + <meta_attributes id="rsc_defaults-options"> + <nvpair id="rsc_defaults-options-resource-stickiness" name="resource-stickiness" value="100"/> +diff --git a/pengine/utils.c b/pengine/utils.c +index 7dfaf95..9782cb6 100644 +--- a/pengine/utils.c ++++ b/pengine/utils.c +@@ -60,7 +60,8 @@ pe_free_rsc_to_node(GListPtr constraints) + + rsc_to_node_t * + rsc2node_new(const char *id, resource_t * rsc, +- int node_weight, node_t * foo_node, pe_working_set_t * data_set) ++ int node_weight, const char *discover_mode, ++ node_t * foo_node, pe_working_set_t * data_set) + { + rsc_to_node_t *new_con = NULL; + +@@ -79,6 +80,18 @@ rsc2node_new(const char *id, resource_t * rsc, + new_con->node_list_rh = NULL; + new_con->role_filter = RSC_ROLE_UNKNOWN; + ++ ++ if (discover_mode == NULL || safe_str_eq(discover_mode, "always")) { ++ new_con->discover_mode = discover_always; ++ } else if (safe_str_eq(discover_mode, "never")) { ++ new_con->discover_mode = discover_never; ++ } else if (safe_str_eq(discover_mode, "exclusive")) { ++ new_con->discover_mode = discover_exclusive; ++ rsc->exclusive_discover = TRUE; ++ } else { ++ pe_err("Invalid %s value %s in location constraint", XML_LOCATION_ATTR_DISCOVERY, discover_mode); ++ } ++ + if (foo_node != NULL) { + node_t *copy = node_copy(foo_node); + +diff --git a/pengine/utils.h b/pengine/utils.h +index 1939d40..5142e68 100644 +--- a/pengine/utils.h ++++ b/pengine/utils.h +@@ -23,7 +23,8 @@ extern rsc_colocation_t *invert_constraint(rsc_colocation_t * constraint); + + extern rsc_to_node_t *copy_constraint(rsc_to_node_t * constraint); + +-extern rsc_to_node_t *rsc2node_new(const char *id, resource_t * rsc, int weight, node_t * node, ++extern rsc_to_node_t *rsc2node_new(const char *id, resource_t * rsc, int weight, ++ const char *discovery_mode, node_t * node, + pe_working_set_t * data_set); + + extern void pe_free_rsc_to_node(GListPtr constraints); +diff --git a/tools/crm_resource.c b/tools/crm_resource.c +index 56583e0..ff5effd 100644 +--- a/tools/crm_resource.c ++++ b/tools/crm_resource.c +@@ -94,6 +94,10 @@ resource_ipc_connection_destroy(gpointer user_data) + static void + start_mainloop(void) + { ++ if (crmd_replies_needed == 0) { ++ return; ++ } ++ + mainloop = g_main_new(FALSE); + fprintf(stderr, "Waiting for %d replies from the CRMd", crmd_replies_needed); + crm_debug("Waiting for %d replies from the CRMd", crmd_replies_needed); +@@ -789,6 +793,7 @@ delete_lrm_rsc(cib_t *cib_conn, crm_ipc_t * crmd_channel, const char *host_uname + resource_t * rsc, pe_working_set_t * data_set) + { + int rc = pcmk_ok; ++ node_t *node = NULL; + + if (rsc == NULL) { + return -ENXIO; +@@ -807,7 +812,7 @@ delete_lrm_rsc(cib_t *cib_conn, crm_ipc_t * crmd_channel, const char *host_uname + GListPtr lpc = NULL; + + for (lpc = data_set->nodes; lpc != NULL; lpc = lpc->next) { +- node_t *node = (node_t *) lpc->data; ++ node = (node_t *) lpc->data; + + if (node->details->online) { + delete_lrm_rsc(cib_conn, crmd_channel, node->details->uname, rsc, data_set); +@@ -817,15 +822,20 @@ delete_lrm_rsc(cib_t *cib_conn, crm_ipc_t * crmd_channel, const char *host_uname + return pcmk_ok; + } + +- printf("Cleaning up %s on %s\n", rsc->id, host_uname); +- rc = send_lrm_rsc_op(crmd_channel, CRM_OP_LRM_DELETE, host_uname, rsc->id, TRUE, data_set); ++ node = pe_find_node(data_set->nodes, host_uname); ++ ++ if (node && node->details->rsc_discovery_enabled) { ++ printf("Cleaning up %s on %s\n", rsc->id, host_uname); ++ rc = send_lrm_rsc_op(crmd_channel, CRM_OP_LRM_DELETE, host_uname, rsc->id, TRUE, data_set); ++ } else { ++ printf("Resource discovery disabled on %s. Unable to delete lrm state.\n", host_uname); ++ } + + if (rc == pcmk_ok) { + char *attr_name = NULL; + const char *id = rsc->id; +- node_t *node = pe_find_node(data_set->nodes, host_uname); + +- if(node && node->details->remote_rsc == NULL) { ++ if(node && node->details->remote_rsc == NULL && node->details->rsc_discovery_enabled) { + crmd_replies_needed++; + } + if (rsc->clone_name) { +@@ -1970,6 +1980,7 @@ main(int argc, char **argv) + node_t *current = NULL; + node_t *dest = pe_find_node(data_set.nodes, host_uname); + resource_t *rsc = pe_find_resource(data_set.resources, rsc_id); ++ gboolean cur_is_dest = FALSE; + + rc = -EINVAL; + +@@ -2032,11 +2043,16 @@ main(int argc, char **argv) + + } else if(scope_master && rsc->fns->state(rsc, TRUE) != RSC_ROLE_MASTER) { + crm_trace("%s is already active on %s but not in correct state", rsc_id, dest->details->uname); +- + } else if (safe_str_eq(current->details->uname, dest->details->uname)) { +- CMD_ERR("Error performing operation: %s is already %s on %s\n", +- rsc_id, scope_master?"promoted":"active", dest->details->uname); +- goto bail; ++ cur_is_dest = TRUE; ++ if (do_force) { ++ crm_info("%s is already %s on %s, reinforcing placement with location constraint.\n", ++ rsc_id, scope_master?"promoted":"active", dest->details->uname); ++ } else { ++ CMD_ERR("Error performing operation: %s is already %s on %s\n", ++ rsc_id, scope_master?"promoted":"active", dest->details->uname); ++ goto bail; ++ } + } + + /* Clear any previous constraints for 'dest' */ +@@ -2048,7 +2064,10 @@ main(int argc, char **argv) + crm_trace("%s%s now prefers node %s%s", + rsc->id, scope_master?" (master)":"", dest->details->uname, do_force?"(forced)":""); + +- if(do_force) { ++ /* only ban the previous location if current location != destination location. ++ * it is possible to use -M to enforce a location without regard of where the ++ * resource is currently located */ ++ if(do_force && (cur_is_dest == FALSE)) { + /* Ban the original location if possible */ + if(current) { + ban_resource(rsc_id, current->details->uname, NULL, cib_conn); +diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c +index 07f0871..7c0dcc7 100644 +--- a/tools/crm_simulate.c ++++ b/tools/crm_simulate.c +@@ -964,7 +964,7 @@ set_ticket_state_attr(const char *ticket_id, const char *attr_name, + + static void + modify_configuration(pe_working_set_t * data_set, +- const char *quorum, GListPtr node_up, GListPtr node_down, GListPtr node_fail, ++ const char *quorum, const char *watchdog, GListPtr node_up, GListPtr node_down, GListPtr node_fail, + GListPtr op_inject, GListPtr ticket_grant, GListPtr ticket_revoke, + GListPtr ticket_standby, GListPtr ticket_activate) + { +@@ -988,6 +988,16 @@ modify_configuration(pe_working_set_t * data_set, + CRM_ASSERT(rc == pcmk_ok); + } + ++ if (watchdog) { ++ quiet_log(" + Setting watchdog: %s\n", watchdog); ++ ++ rc = update_attr_delegate(global_cib, cib_sync_call | cib_scope_local, ++ XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, ++ XML_ATTR_HAVE_WATCHDOG, watchdog, FALSE, NULL, NULL); ++ ++ CRM_ASSERT(rc == pcmk_ok); ++ } ++ + for (gIter = node_up; gIter != NULL; gIter = gIter->next) { + char *node = (char *)gIter->data; + +@@ -1245,6 +1255,7 @@ static struct crm_option long_options[] = { + {"-spacer-", 0, 0, '-', "\t\tThe transition will normally stop at the failed action. Save the result with --save-output and re-run with --xml-file"}, + {"set-datetime", 1, 0, 't', "Set date/time"}, + {"quorum", 1, 0, 'q', "\tSpecify a value for quorum"}, ++ {"watchdog", 1, 0, 'w', "\tAssume a watchdog device is active"}, + {"ticket-grant", 1, 0, 'g', "Grant a ticket"}, + {"ticket-revoke", 1, 0, 'r', "Revoke a ticket"}, + {"ticket-standby", 1, 0, 'b', "Make a ticket standby"}, +@@ -1359,6 +1370,7 @@ main(int argc, char **argv) + + const char *xml_file = "-"; + const char *quorum = NULL; ++ const char *watchdog = NULL; + const char *test_dir = NULL; + const char *dot_file = NULL; + const char *graph_file = NULL; +@@ -1445,6 +1457,10 @@ main(int argc, char **argv) + simulate = TRUE; + op_fail = g_list_append(op_fail, optarg); + break; ++ case 'w': ++ modified++; ++ watchdog = optarg; ++ break; + case 'q': + modified++; + quorum = optarg; +@@ -1555,7 +1571,7 @@ main(int argc, char **argv) + + if (modified) { + quiet_log("Performing requested modifications\n"); +- modify_configuration(&data_set, quorum, node_up, node_down, node_fail, op_inject, ++ modify_configuration(&data_set, quorum, watchdog, node_up, node_down, node_fail, op_inject, + ticket_grant, ticket_revoke, ticket_standby, ticket_activate); + + rc = global_cib->cmds->query(global_cib, NULL, &input, cib_sync_call); +diff --git a/tools/regression.acls.exp b/tools/regression.acls.exp +index 2abdf97..2cea125 100644 +--- a/tools/regression.acls.exp ++++ b/tools/regression.acls.exp +@@ -1,4 +1,4 @@ +-Created new pacemaker-1.3 configuration ++Created new pacemaker configuration + Setting up shadow instance + A new shadow instance was created. To begin using it paste the following into your shell: + CIB_shadow=tools-regression ; export CIB_shadow +diff --git a/tools/regression.sh b/tools/regression.sh +index 285dcba..0c4896c 100755 +--- a/tools/regression.sh ++++ b/tools/regression.sh +@@ -578,6 +578,7 @@ for t in $tests; do + -e 's/ last-run=\"[0-9]*\"//' \ + -e 's/crm_feature_set="[^"]*" //'\ + -e 's/validate-with="[^"]*" //'\ ++ -e 's/Created new pacemaker-.* configuration/Created new pacemaker configuration/'\ + -e 's/.*__xml_acl_check/__xml_acl_check/g'\ + -e 's/.*__xml_acl_post_process/__xml_acl_post_process/g'\ + -e 's/.*error: unpack_resources:/error: unpack_resources:/g'\ +diff --git a/tools/regression.tools.exp b/tools/regression.tools.exp +index 5b12c84..287caf9 100644 +--- a/tools/regression.tools.exp ++++ b/tools/regression.tools.exp +@@ -1,4 +1,4 @@ +-Created new pacemaker-2.1 configuration ++Created new pacemaker configuration + Setting up shadow instance + A new shadow instance was created. To begin using it paste the following into your shell: + CIB_shadow=tools-regression ; export CIB_shadow +diff --git a/xml/Makefile.am b/xml/Makefile.am +index 4c21e55..e3a3d04 100644 +--- a/xml/Makefile.am ++++ b/xml/Makefile.am +@@ -26,8 +26,8 @@ xslt_SCRIPTS = upgrade06.xsl upgrade-*.xsl + RNGdir = $(dtddir) + + # See Readme.md for details on updating schema files +-RNG_max = $(firstword $(shell ls -1 *.rng | sed -e 's/.*-//' -e 's/.rng//' | sort -unr)) +-RNG_last = $(shell ls -1 *.rng | sed -e 's/.*-//' -e 's/.rng//' | sort -unr | head -n 2 | tail -n 1) ++RNG_max ?= $(firstword $(shell ls -1 *.rng | sed -e 's/.*-//' -e 's/.rng//' | sort -unr)) ++RNG_last ?= $(shell ls -1 *.rng | sed -e 's/.*-//' -e 's/.rng//' | sort -unr | head -n 2 | tail -n 1) + RNG_versions = $(shell ls -1 *.rng | sed -e 's/.*-//' -e 's/.rng//' | sort -un) + RNG_generated = pacemaker.rng $(foreach base,$(RNG_versions),pacemaker-$(base).rng) versions.rng + +diff --git a/xml/constraints-2.2.rng b/xml/constraints-2.2.rng +new file mode 100644 +index 0000000..216bf9c +--- /dev/null ++++ b/xml/constraints-2.2.rng +@@ -0,0 +1,249 @@ ++<?xml version="1.0" encoding="UTF-8"?> ++<grammar xmlns="http://relaxng.org/ns/structure/1.0" ++ datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> ++ <start> ++ <ref name="element-constraints"/> ++ </start> ++ ++ <define name="element-constraints"> ++ <element name="constraints"> ++ <zeroOrMore> ++ <choice> ++ <ref name="element-location"/> ++ <ref name="element-colocation"/> ++ <ref name="element-order"/> ++ <ref name="element-rsc_ticket"/> ++ </choice> ++ </zeroOrMore> ++ </element> ++ </define> ++ ++ <define name="element-location"> ++ <element name="rsc_location"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <choice> ++ <group> ++ <attribute name="rsc"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ </group> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ </choice> ++ <choice> ++ <group> ++ <externalRef href="score.rng"/> ++ <attribute name="node"><text/></attribute> ++ </group> ++ <oneOrMore> ++ <externalRef href="rule.rng"/> ++ </oneOrMore> ++ </choice> ++ <optional> ++ <ref name="element-lifetime"/> ++ </optional> ++ <optional> ++ <attribute name="resource-discovery"> ++ <ref name="attribute-discovery"/> ++ </attribute> ++ </optional> ++ </element> ++ </define> ++ ++ <define name="element-resource-set"> ++ <element name="resource_set"> ++ <choice> ++ <attribute name="id-ref"><data type="IDREF"/></attribute> ++ <group> ++ <attribute name="id"><data type="ID"/></attribute> ++ <optional> ++ <attribute name="sequential"><data type="boolean"/></attribute> ++ </optional> ++ <optional> ++ <attribute name="require-all"><data type="boolean"/></attribute> ++ </optional> ++ <optional> ++ <attribute name="ordering"> ++ <choice> ++ <value>group</value> ++ <value>listed</value> ++ </choice> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="action"> ++ <ref name="attribute-actions"/> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ <optional> ++ <externalRef href="score.rng"/> ++ </optional> ++ <oneOrMore> ++ <element name="resource_ref"> ++ <attribute name="id"><data type="IDREF"/></attribute> ++ </element> ++ </oneOrMore> ++ </group> ++ </choice> ++ </element> ++ </define> ++ ++ <define name="element-colocation"> ++ <element name="rsc_colocation"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <optional> ++ <choice> ++ <externalRef href="score.rng"/> ++ <attribute name="score-attribute"><text/></attribute> ++ <attribute name="score-attribute-mangle"><text/></attribute> ++ </choice> ++ </optional> ++ <optional> ++ <ref name="element-lifetime"/> ++ </optional> ++ <choice> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ <group> ++ <attribute name="rsc"><data type="IDREF"/></attribute> ++ <attribute name="with-rsc"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="node-attribute"><text/></attribute> ++ </optional> ++ <optional> ++ <attribute name="rsc-role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="with-rsc-role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ </group> ++ </choice> ++ </element> ++ </define> ++ ++ <define name="element-order"> ++ <element name="rsc_order"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <optional> ++ <ref name="element-lifetime"/> ++ </optional> ++ <optional> ++ <attribute name="symmetrical"><data type="boolean"/></attribute> ++ </optional> ++ <optional> ++ <choice> ++ <externalRef href="score.rng"/> ++ <attribute name="kind"> ++ <ref name="order-types"/> ++ </attribute> ++ </choice> ++ </optional> ++ <choice> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ <group> ++ <attribute name="first"><data type="IDREF"/></attribute> ++ <attribute name="then"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="first-action"> ++ <ref name="attribute-actions"/> ++ </attribute> ++ </optional> ++ <optional> ++ <attribute name="then-action"> ++ <ref name="attribute-actions"/> ++ </attribute> ++ </optional> ++ </group> ++ </choice> ++ </element> ++ </define> ++ ++ <define name="element-rsc_ticket"> ++ <element name="rsc_ticket"> ++ <attribute name="id"><data type="ID"/></attribute> ++ <choice> ++ <oneOrMore> ++ <ref name="element-resource-set"/> ++ </oneOrMore> ++ <group> ++ <attribute name="rsc"><data type="IDREF"/></attribute> ++ <optional> ++ <attribute name="rsc-role"> ++ <ref name="attribute-roles"/> ++ </attribute> ++ </optional> ++ </group> ++ </choice> ++ <attribute name="ticket"><text/></attribute> ++ <optional> ++ <attribute name="loss-policy"> ++ <choice> ++ <value>stop</value> ++ <value>demote</value> ++ <value>fence</value> ++ <value>freeze</value> ++ </choice> ++ </attribute> ++ </optional> ++ </element> ++ </define> ++ ++ <define name="attribute-discovery"> ++ <choice> ++ <value>always</value> ++ <value>never</value> ++ <value>exclusive</value> ++ </choice> ++ </define> ++ ++ <define name="attribute-actions"> ++ <choice> ++ <value>start</value> ++ <value>promote</value> ++ <value>demote</value> ++ <value>stop</value> ++ </choice> ++ </define> ++ ++ <define name="attribute-roles"> ++ <choice> ++ <value>Stopped</value> ++ <value>Started</value> ++ <value>Master</value> ++ <value>Slave</value> ++ </choice> ++ </define> ++ ++ <define name="order-types"> ++ <choice> ++ <value>Optional</value> ++ <value>Mandatory</value> ++ <value>Serialize</value> ++ </choice> ++ </define> ++ ++ <define name="element-lifetime"> ++ <element name="lifetime"> ++ <oneOrMore> ++ <externalRef href="rule.rng"/> ++ </oneOrMore> ++ </element> ++ </define> ++ ++</grammar> +diff --git a/xml/constraints-next.rng b/xml/constraints-next.rng +index 051603d..0defe8f 100644 +--- a/xml/constraints-next.rng ++++ b/xml/constraints-next.rng +@@ -49,6 +49,11 @@ + <optional> + <ref name="element-lifetime"/> + </optional> ++ <optional> ++ <attribute name="resource-discovery"> ++ <ref name="attribute-discovery"/> ++ </attribute> ++ </optional> + </element> + </define> + +@@ -65,6 +70,14 @@ + <attribute name="require-all"><data type="boolean"/></attribute> + </optional> + <optional> ++ <attribute name="ordering"> ++ <choice> ++ <value>group</value> ++ <value>listed</value> ++ </choice> ++ </attribute> ++ </optional> ++ <optional> + <attribute name="action"> + <ref name="attribute-actions"/> + </attribute> +@@ -206,6 +219,14 @@ + </element> + </define> + ++ <define name="attribute-discovery"> ++ <choice> ++ <value>always</value> ++ <value>never</value> ++ <value>exclusive</value> ++ </choice> ++ </define> ++ + <define name="attribute-actions"> + <choice> + <value>start</value> diff --git a/SOURCES/pacemaker-rollup-be1e835.patch b/SOURCES/pacemaker-rollup-be1e835.patch new file mode 100644 index 0000000..0963b13 --- /dev/null +++ b/SOURCES/pacemaker-rollup-be1e835.patch @@ -0,0 +1,3001 @@ +commit 0fa5ce2c14fa36610630469c14c07537eb4f4807 +Author: Andrew Beekhof <andrew@beekhof.net> +Date: Wed Oct 1 16:56:59 2014 +1000 + + Import: pacemaker-rollup-be1e835 + +diff --git a/attrd/Makefile.am b/attrd/Makefile.am +index 802a3fa..9d5e223 100644 +--- a/attrd/Makefile.am ++++ b/attrd/Makefile.am +@@ -32,25 +32,12 @@ attrd_LDADD = $(top_builddir)/lib/cluster/libcrmcluster.la \ + $(top_builddir)/lib/cib/libcib.la \ + $(CLUSTERLIBS) + +-if BUILD_HEARTBEAT_SUPPORT +-attrd_SOURCES += legacy.c +-else +- +-if BUILD_CS_SUPPORT +- +-if BUILD_CS_PLUGIN +-attrd_SOURCES += legacy.c +-else +-# Only build the new version where CPG is exclusively used for communication ++if BUILD_ATOMIC_ATTRD + attrd_SOURCES += main.c commands.c +-endif +- + else + attrd_SOURCES += legacy.c + endif + +-endif +- + clean-generic: + rm -f *.log *.debug *.xml *~ + +diff --git a/attrd/commands.c b/attrd/commands.c +index 038e7e4..c48ef1b 100644 +--- a/attrd/commands.c ++++ b/attrd/commands.c +@@ -17,6 +17,8 @@ + */ + #include <crm_internal.h> + ++#include <sys/types.h> ++#include <regex.h> + #include <glib.h> + + #include <crm/msg_xml.h> +@@ -63,7 +65,7 @@ typedef struct attribute_value_s { + + void write_attribute(attribute_t *a); + void write_or_elect_attribute(attribute_t *a); +-void attrd_peer_update(crm_node_t *peer, xmlNode *xml, bool filter); ++void attrd_peer_update(crm_node_t *peer, xmlNode *xml, const char *host, bool filter); + void attrd_peer_sync(crm_node_t *peer, xmlNode *xml); + void attrd_peer_remove(uint32_t nodeid, const char *host, gboolean uncache, const char *source); + +@@ -191,16 +193,41 @@ attrd_client_message(crm_client_t *client, xmlNode *xml) + char *host = crm_element_value_copy(xml, F_ATTRD_HOST); + const char *attr = crm_element_value(xml, F_ATTRD_ATTRIBUTE); + const char *value = crm_element_value(xml, F_ATTRD_VALUE); ++ const char *regex = crm_element_value(xml, F_ATTRD_REGEX); + +- a = g_hash_table_lookup(attributes, attr); ++ if(attr == NULL && regex) { ++ GHashTableIter aIter; ++ regex_t *r_patt = calloc(1, sizeof(regex_t)); ++ ++ crm_debug("Setting %s to %s", regex, value); ++ if (regcomp(r_patt, regex, REG_EXTENDED)) { ++ crm_err("Bad regex '%s' for update", regex); ++ regfree(r_patt); ++ free(r_patt); ++ return; ++ } + +- if(host == NULL) { ++ g_hash_table_iter_init(&aIter, attributes); ++ while (g_hash_table_iter_next(&aIter, (gpointer *) & attr, NULL)) { ++ int status = regexec(r_patt, attr, 0, NULL, 0); ++ ++ if(status == 0) { ++ crm_trace("Matched %s with %s", attr, regex); ++ crm_xml_add(xml, F_ATTRD_ATTRIBUTE, attr); ++ send_attrd_message(NULL, xml); ++ } ++ } ++ return; ++ ++ } else if(host == NULL) { + crm_trace("Inferring host"); + host = strdup(attrd_cluster->uname); + crm_xml_add(xml, F_ATTRD_HOST, host); + crm_xml_add_int(xml, F_ATTRD_HOST_ID, attrd_cluster->nodeid); + } + ++ a = g_hash_table_lookup(attributes, attr); ++ + if (value) { + int offset = 1; + int int_value = 0; +@@ -254,6 +281,7 @@ attrd_client_message(crm_client_t *client, xmlNode *xml) + } + + if(broadcast) { ++ /* Ends up at attrd_peer_message() */ + send_attrd_message(NULL, xml); + } + } +@@ -265,6 +293,7 @@ attrd_peer_message(crm_node_t *peer, xmlNode *xml) + const char *v = crm_element_value(xml, F_ATTRD_VERSION); + const char *op = crm_element_value(xml, F_ATTRD_TASK); + const char *election_op = crm_element_value(xml, F_CRM_TASK); ++ const char *host = crm_element_value(xml, F_ATTRD_HOST); + + if(election_op) { + enum election_result rc = 0; +@@ -293,7 +322,7 @@ attrd_peer_message(crm_node_t *peer, xmlNode *xml) + const char *name = crm_element_value(xml, F_ATTRD_ATTRIBUTE); + + crm_trace("Compatibility update of %s from %s", name, peer->uname); +- attrd_peer_update(peer, xml, FALSE); ++ attrd_peer_update(peer, xml, host, FALSE); + + } else if(safe_str_eq(op, "flush")) { + const char *name = crm_element_value(xml, F_ATTRD_ATTRIBUTE); +@@ -336,13 +365,12 @@ attrd_peer_message(crm_node_t *peer, xmlNode *xml) + } + + if(safe_str_eq(op, "update")) { +- attrd_peer_update(peer, xml, FALSE); ++ attrd_peer_update(peer, xml, host, FALSE); + + } else if(safe_str_eq(op, "sync")) { + attrd_peer_sync(peer, xml); + + } else if(safe_str_eq(op, "peer-remove")) { +- const char *host = crm_element_value(xml, F_ATTRD_HOST); + attrd_peer_remove(0, host, TRUE, peer->uname); + + } else if(safe_str_eq(op, "sync-response") +@@ -351,7 +379,8 @@ attrd_peer_message(crm_node_t *peer, xmlNode *xml) + + crm_notice("Processing %s from %s", op, peer->uname); + for (child = __xml_first_child(xml); child != NULL; child = __xml_next(child)) { +- attrd_peer_update(peer, child, TRUE); ++ host = crm_element_value(child, F_ATTRD_HOST); ++ attrd_peer_update(peer, child, host, TRUE); + } + } + } +@@ -409,12 +438,11 @@ attrd_peer_remove(uint32_t nodeid, const char *host, gboolean uncache, const cha + } + + void +-attrd_peer_update(crm_node_t *peer, xmlNode *xml, bool filter) ++attrd_peer_update(crm_node_t *peer, xmlNode *xml, const char *host, bool filter) + { + bool changed = FALSE; + attribute_value_t *v = NULL; + +- const char *host = crm_element_value(xml, F_ATTRD_HOST); + const char *attr = crm_element_value(xml, F_ATTRD_ATTRIBUTE); + const char *value = crm_element_value(xml, F_ATTRD_VALUE); + +@@ -424,6 +452,19 @@ attrd_peer_update(crm_node_t *peer, xmlNode *xml, bool filter) + a = create_attribute(xml); + } + ++ if(host == NULL) { ++ GHashTableIter vIter; ++ g_hash_table_iter_init(&vIter, a->values); ++ ++ crm_debug("Setting %s for all hosts to %s", attr, value); ++ ++ xml_remove_prop(xml, F_ATTRD_HOST_ID); ++ while (g_hash_table_iter_next(&vIter, (gpointer *) & host, NULL)) { ++ attrd_peer_update(peer, xml, host, filter); ++ } ++ return; ++ } ++ + v = g_hash_table_lookup(a->values, host); + + if(v == NULL) { +diff --git a/cib/messages.c b/cib/messages.c +index 4b79912..9c66349 100644 +--- a/cib/messages.c ++++ b/cib/messages.c +@@ -292,6 +292,11 @@ cib_process_upgrade_server(const char *op, int options, const char *section, xml + crm_xml_add(up, F_TYPE, "cib"); + crm_xml_add(up, F_CIB_OPERATION, CIB_OP_UPGRADE); + crm_xml_add(up, F_CIB_SCHEMA_MAX, get_schema_name(new_version)); ++ crm_xml_add(up, F_CIB_DELEGATED, host); ++ crm_xml_add(up, F_CIB_CLIENTID, crm_element_value(req, F_CIB_CLIENTID)); ++ crm_xml_add(up, F_CIB_CALLOPTS, crm_element_value(req, F_CIB_CALLOPTS)); ++ crm_xml_add(up, F_CIB_CALLID, crm_element_value(req, F_CIB_CALLID)); ++ + send_cluster_message(NULL, crm_msg_cib, up, FALSE); + free_xml(up); + +diff --git a/configure.ac b/configure.ac +index 40adffe..1edff40 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -75,6 +75,7 @@ CC_IN_CONFIGURE=yes + export CC_IN_CONFIGURE + + LDD=ldd ++BUILD_ATOMIC_ATTRD=1 + + dnl ======================================================================== + dnl Compiler characteristics +@@ -1260,6 +1261,7 @@ case $SUPPORT_HEARTBEAT in + dnl objdump -x ${libdir}/libccmclient.so | grep SONAME | awk '{print $2}' + AC_DEFINE_UNQUOTED(CCM_LIBRARY, "libccmclient.so.1", Library to load for ccm support) + AC_DEFINE_UNQUOTED(HEARTBEAT_LIBRARY, "libhbclient.so.1", Library to load for heartbeat support) ++ BUILD_ATOMIC_ATTRD=0 + else + SUPPORT_HEARTBEAT=0 + fi +@@ -1341,6 +1343,7 @@ SUPPORT_PLUGIN=0 + if test $SUPPORT_CS = 1 -a x$HAVE_confdb = x1; then + dnl Need confdb to support cman and the plugins + SUPPORT_PLUGIN=1 ++ BUILD_ATOMIC_ATTRD=0 + LCRSODIR=`$PKGCONFIG corosync --variable=lcrsodir` + STACKS="$STACKS corosync-plugin" + COROSYNC_LIBS="$COROSYNC_LIBS $confdb_LIBS" +@@ -1382,6 +1385,9 @@ AM_CONDITIONAL(BUILD_CS_SUPPORT, test $SUPPORT_CS = 1) + AM_CONDITIONAL(BUILD_CS_PLUGIN, test $SUPPORT_PLUGIN = 1) + AM_CONDITIONAL(BUILD_CMAN, test $SUPPORT_CMAN = 1) + ++AM_CONDITIONAL(BUILD_ATOMIC_ATTRD, test $BUILD_ATOMIC_ATTRD = 1) ++AC_DEFINE_UNQUOTED(HAVE_ATOMIC_ATTRD, $BUILD_ATOMIC_ATTRD, Support the new atomic attrd) ++ + AC_SUBST(SUPPORT_CMAN) + AC_SUBST(SUPPORT_CS) + +@@ -1401,6 +1407,9 @@ else + PCMK_FEATURES="$PCMK_FEATURES $STACKS" + fi + ++if test ${BUILD_ATOMIC_ATTRD} = 1; then ++ PCMK_FEATURES="$PCMK_FEATURES atomic-attrd" ++fi + AC_SUBST(CLUSTERLIBS) + AC_SUBST(LCRSODIR) + +@@ -1871,6 +1880,7 @@ tools/Makefile \ + tools/crm_report \ + tools/report.common \ + tools/cibsecret \ ++ tools/crm_mon.upstart \ + xml/Makefile \ + lib/gnu/Makefile \ + ) +diff --git a/crmd/lrm.c b/crmd/lrm.c +index db0bffb..44634fb 100644 +--- a/crmd/lrm.c ++++ b/crmd/lrm.c +@@ -1162,7 +1162,7 @@ get_lrm_resource(lrm_state_t * lrm_state, xmlNode * resource, xmlNode * op_msg, + if (!rsc) { + fsa_data_t *msg_data = NULL; + +- crm_err("Could not add resource %s to LRM", id); ++ crm_err("Could not add resource %s to LRM %s", id, lrm_state->node_name); + register_fsa_error(C_FSA_INTERNAL, I_FAIL, NULL); + } + } +@@ -1175,13 +1175,17 @@ delete_resource(lrm_state_t * lrm_state, + const char *id, + lrmd_rsc_info_t * rsc, + GHashTableIter * gIter, +- const char *sys, const char *host, const char *user, ha_msg_input_t * request) ++ const char *sys, ++ const char *host, ++ const char *user, ++ ha_msg_input_t * request, ++ gboolean unregister) + { + int rc = pcmk_ok; + + crm_info("Removing resource %s for %s (%s) on %s", id, sys, user ? user : "internal", host); + +- if (rsc) { ++ if (rsc && unregister) { + rc = lrm_state_unregister_rsc(lrm_state, id, 0); + } + +@@ -1224,6 +1228,7 @@ do_lrm_invoke(long long action, + const char *user_name = NULL; + const char *target_node = NULL; + gboolean is_remote_node = FALSE; ++ gboolean crm_rsc_delete = FALSE; + + if (input->xml != NULL) { + /* Remote node operations are routed here to their remote connections */ +@@ -1259,6 +1264,8 @@ do_lrm_invoke(long long action, + crm_trace("LRM command from: %s", from_sys); + + if (safe_str_eq(crm_op, CRM_OP_LRM_DELETE)) { ++ /* remember this delete op came from crm_resource */ ++ crm_rsc_delete = TRUE; + operation = CRMD_ACTION_DELETE; + + } else if (safe_str_eq(crm_op, CRM_OP_LRM_REFRESH)) { +@@ -1370,13 +1377,17 @@ do_lrm_invoke(long long action, + } else if (safe_str_eq(operation, CRM_OP_REPROBE) || safe_str_eq(crm_op, CRM_OP_REPROBE)) { + GHashTableIter gIter; + rsc_history_t *entry = NULL; ++ gboolean unregister = is_remote_lrmd_ra(NULL, NULL, entry->id) ? FALSE : TRUE; + + crm_notice("Forcing the status of all resources to be redetected"); + + g_hash_table_iter_init(&gIter, lrm_state->resource_history); + while (g_hash_table_iter_next(&gIter, NULL, (void **)&entry)) { ++ /* only unregister the resource during a reprobe if it is not a remote connection ++ * resource. otherwise unregistering the connection will terminate remote-node ++ * membership */ + delete_resource(lrm_state, entry->id, &entry->rsc, &gIter, from_sys, from_host, +- user_name, NULL); ++ user_name, NULL, unregister); + } + + /* Now delete the copy in the CIB */ +@@ -1499,6 +1510,7 @@ do_lrm_invoke(long long action, + free(op_key); + + } else if (rsc != NULL && safe_str_eq(operation, CRMD_ACTION_DELETE)) { ++ gboolean unregister = TRUE; + + #if ENABLE_ACL + int cib_rc = delete_rsc_status(lrm_state, rsc->id, cib_dryrun | cib_sync_call, user_name); +@@ -1523,7 +1535,11 @@ do_lrm_invoke(long long action, + return; + } + #endif +- delete_resource(lrm_state, rsc->id, rsc, NULL, from_sys, from_host, user_name, input); ++ if (crm_rsc_delete == TRUE && is_remote_lrmd_ra(NULL, NULL, rsc->id)) { ++ unregister = FALSE; ++ } ++ ++ delete_resource(lrm_state, rsc->id, rsc, NULL, from_sys, from_host, user_name, input, unregister); + + } else if (rsc != NULL) { + do_lrm_rsc_op(lrm_state, rsc, operation, input->xml, input->msg); +diff --git a/crmd/remote_lrmd_ra.c b/crmd/remote_lrmd_ra.c +index 98f59c8..f3dedeb 100644 +--- a/crmd/remote_lrmd_ra.c ++++ b/crmd/remote_lrmd_ra.c +@@ -251,6 +251,8 @@ connection_takeover_timeout_cb(gpointer data) + crm_debug("takeover event timed out for node %s", cmd->rsc_id); + cmd->takeover_timeout_id = 0; + ++ lrm_state = lrm_state_find(cmd->rsc_id); ++ + handle_remote_ra_stop(lrm_state, cmd); + free_cmd(cmd); + +@@ -379,6 +381,11 @@ remote_lrm_op_callback(lrmd_event_data_t * op) + cmd->rc = PCMK_OCF_UNKNOWN_ERROR; + + } else { ++ ++ if (safe_str_eq(cmd->action, "start")) { ++ /* clear PROBED value if it happens to be set after start completes. */ ++ update_attrd(lrm_state->node_name, CRM_OP_PROBED, NULL, NULL, TRUE); ++ } + lrm_state_reset_tables(lrm_state); + cmd->rc = PCMK_OCF_OK; + cmd->op_status = PCMK_LRM_OP_DONE; +diff --git a/crmd/te_actions.c b/crmd/te_actions.c +index 926996b..a3aa78b 100644 +--- a/crmd/te_actions.c ++++ b/crmd/te_actions.c +@@ -546,17 +546,26 @@ te_update_job_count(crm_action_t * action, int offset) + return; + } + +- if (safe_str_eq(task, CRMD_ACTION_MIGRATE) || safe_str_eq(task, CRMD_ACTION_MIGRATED)) { ++ /* if we have a router node, this means the action is performing ++ * on a remote node. For now, we count all action occuring on a ++ * remote node against the job list on the cluster node hosting ++ * the connection resources */ ++ target = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); ++ ++ if ((target == NULL) && ++ (safe_str_eq(task, CRMD_ACTION_MIGRATE) || safe_str_eq(task, CRMD_ACTION_MIGRATED))) { ++ + const char *t1 = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_SOURCE); + const char *t2 = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_TARGET); + + te_update_job_count_on(t1, offset, TRUE); + te_update_job_count_on(t2, offset, TRUE); +- +- } else { +- +- te_update_job_count_on(target, offset, FALSE); ++ return; ++ } else if (target == NULL) { ++ target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); + } ++ ++ te_update_job_count_on(target, offset, FALSE); + } + + static gboolean +@@ -597,6 +606,8 @@ te_should_perform_action_on(crm_graph_t * graph, crm_action_t * action, const ch + } + } + ++ crm_trace("Peer %s has not hit their limit yet. current jobs = %d limit= %d limit", target, r->jobs, limit); ++ + return TRUE; + } + +@@ -611,7 +622,15 @@ te_should_perform_action(crm_graph_t * graph, crm_action_t * action) + return TRUE; + } + +- if (safe_str_eq(task, CRMD_ACTION_MIGRATE) || safe_str_eq(task, CRMD_ACTION_MIGRATED)) { ++ /* if we have a router node, this means the action is performing ++ * on a remote node. For now, we count all action occuring on a ++ * remote node against the job list on the cluster node hosting ++ * the connection resources */ ++ target = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); ++ ++ if ((target == NULL) && ++ (safe_str_eq(task, CRMD_ACTION_MIGRATE) || safe_str_eq(task, CRMD_ACTION_MIGRATED))) { ++ + target = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_SOURCE); + if(te_should_perform_action_on(graph, action, target) == FALSE) { + return FALSE; +@@ -619,7 +638,7 @@ te_should_perform_action(crm_graph_t * graph, crm_action_t * action) + + target = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_TARGET); + +- } else { ++ } else if (target == NULL) { + target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); + } + +diff --git a/crmd/te_events.c b/crmd/te_events.c +index afe3072..b81a13e 100644 +--- a/crmd/te_events.c ++++ b/crmd/te_events.c +@@ -161,10 +161,6 @@ update_failcount(xmlNode * event, const char *event_node_uuid, int rc, int targe + do_update = TRUE; + value = failed_stop_offset; + +- } else if (safe_str_eq(task, CRMD_ACTION_STOP)) { +- do_update = TRUE; +- value = failed_stop_offset; +- + } else if (safe_str_eq(task, CRMD_ACTION_PROMOTE)) { + do_update = TRUE; + +diff --git a/crmd/throttle.c b/crmd/throttle.c +index 04a3cf1..6e853ae 100644 +--- a/crmd/throttle.c ++++ b/crmd/throttle.c +@@ -430,7 +430,7 @@ throttle_mode(void) + unsigned int blocked = 0; + enum throttle_state_e mode = throttle_none; + +-#ifndef ON_SOLARIS ++#ifdef ON_SOLARIS + return throttle_none; + #endif + +@@ -508,44 +508,41 @@ static void + throttle_send_command(enum throttle_state_e mode) + { + xmlNode *xml = NULL; ++ static enum throttle_state_e last = -1; + +- xml = create_request(CRM_OP_THROTTLE, NULL, NULL, CRM_SYSTEM_CRMD, CRM_SYSTEM_CRMD, NULL); +- crm_xml_add_int(xml, F_CRM_THROTTLE_MODE, mode); +- crm_xml_add_int(xml, F_CRM_THROTTLE_MAX, throttle_job_max); ++ if(mode != last) { ++ crm_info("New throttle mode: %.4x (was %.4x)", mode, last); ++ last = mode; + +- send_cluster_message(NULL, crm_msg_crmd, xml, TRUE); +- free_xml(xml); ++ xml = create_request(CRM_OP_THROTTLE, NULL, NULL, CRM_SYSTEM_CRMD, CRM_SYSTEM_CRMD, NULL); ++ crm_xml_add_int(xml, F_CRM_THROTTLE_MODE, mode); ++ crm_xml_add_int(xml, F_CRM_THROTTLE_MAX, throttle_job_max); + +- crm_info("Updated throttle state to %.4x", mode); ++ send_cluster_message(NULL, crm_msg_crmd, xml, TRUE); ++ free_xml(xml); ++ } + } + + static gboolean + throttle_timer_cb(gpointer data) + { + static bool send_updates = FALSE; +- static enum throttle_state_e last = -1; +- + enum throttle_state_e now = throttle_none; + +- if(send_updates == FALSE) { +- /* Optimize for the true case */ +- if(compare_version(fsa_our_dc_version, "3.0.8") < 0) { +- crm_trace("DC version %s doesn't support throttling", fsa_our_dc_version); +- +- } else { +- send_updates = TRUE; +- } +- } +- + if(send_updates) { + now = throttle_mode(); +- } ++ throttle_send_command(now); ++ ++ } else if(compare_version(fsa_our_dc_version, "3.0.8") < 0) { ++ /* Optimize for the true case */ ++ crm_trace("DC version %s doesn't support throttling", fsa_our_dc_version); + +- if(send_updates && now != last) { +- crm_debug("New throttle mode: %.4x (was %.4x)", now, last); ++ } else { ++ send_updates = TRUE; ++ now = throttle_mode(); + throttle_send_command(now); +- last = now; + } ++ + return TRUE; + } + +@@ -595,9 +592,11 @@ throttle_update_job_max(const char *preference) + void + throttle_init(void) + { +- throttle_records = g_hash_table_new_full( +- crm_str_hash, g_str_equal, NULL, throttle_record_free); +- throttle_timer = mainloop_timer_add("throttle", 30* 1000, TRUE, throttle_timer_cb, NULL); ++ if(throttle_records == NULL) { ++ throttle_records = g_hash_table_new_full( ++ crm_str_hash, g_str_equal, NULL, throttle_record_free); ++ throttle_timer = mainloop_timer_add("throttle", 30 * 1000, TRUE, throttle_timer_cb, NULL); ++ } + + throttle_update_job_max(NULL); + mainloop_timer_start(throttle_timer); +diff --git a/cts/CTS.py b/cts/CTS.py +index 04189f2..f4198c4 100644 +--- a/cts/CTS.py ++++ b/cts/CTS.py +@@ -225,10 +225,13 @@ class CtsLab: + + class NodeStatus: + def __init__(self, env): +- pass ++ self.Env = env + + def IsNodeBooted(self, node): + '''Return TRUE if the given node is booted (responds to pings)''' ++ if self.Env["docker"]: ++ return RemoteFactory().getInstance()("localhost", "docker inspect --format {{.State.Running}} %s | grep -q true" % node, silent=True) == 0 ++ + return RemoteFactory().getInstance()("localhost", "ping -nq -c1 -w1 %s" % node, silent=True) == 0 + + def IsSshdUp(self, node): +@@ -442,6 +445,9 @@ class ClusterManager(UserDict): + self.debug("Quorum: %d Len: %d" % (q, len(self.Env["nodes"]))) + return peer_list + ++ for n in self.Env["nodes"]: ++ peer_state[n] = "unknown" ++ + # Now see if any states need to be updated + self.debug("looking for: " + repr(stonith.regexes)) + shot = stonith.look(0) +@@ -457,7 +463,8 @@ class ClusterManager(UserDict): + peer_state[peer] = "complete" + self.__instance_errorstoignore.append(self.templates["Pat:Fencing_ok"] % peer) + +- elif re.search(self.templates["Pat:Fencing_start"] % n, shot): ++ elif peer_state[n] != "complete" and re.search(self.templates["Pat:Fencing_start"] % n, shot): ++ # TODO: Correctly detect multiple fencing operations for the same host + peer = n + peer_state[peer] = "in-progress" + self.__instance_errorstoignore.append(self.templates["Pat:Fencing_start"] % peer) +diff --git a/cts/CTSlab.py b/cts/CTSlab.py +index 314c347..9b336a5 100755 +--- a/cts/CTSlab.py ++++ b/cts/CTSlab.py +@@ -107,9 +107,9 @@ if __name__ == '__main__': + + if Environment["ListTests"] == 1: + Tests = TestList(cm, Audits) +- Environment.log("Total %d tests"%len(Tests)) ++ LogFactory().log("Total %d tests"%len(Tests)) + for test in Tests : +- Environment.log(str(test.name)); ++ LogFactory().log(str(test.name)); + sys.exit(0) + + elif len(Environment["tests"]) == 0: +diff --git a/cts/CTStests.py b/cts/CTStests.py +index 918dff0..cd5b7ce 100644 +--- a/cts/CTStests.py ++++ b/cts/CTStests.py +@@ -83,6 +83,7 @@ class CTSTest: + self.passed = 1 + self.is_loop = 0 + self.is_unsafe = 0 ++ self.is_docker_unsafe = 0 + self.is_experimental = 0 + self.is_container = 0 + self.is_valgrind = 0 +@@ -224,6 +225,8 @@ class CTSTest: + return 0 + elif self.is_experimental and not self.Env["experimental-tests"]: + return 0 ++ elif self.is_docker_unsafe and self.Env["docker"]: ++ return 0 + elif self.is_container and not self.Env["container-tests"]: + return 0 + elif self.Env["benchmark"] and self.benchmark == 0: +@@ -1359,6 +1362,8 @@ class ComponentFail(CTSTest): + def __init__(self, cm): + CTSTest.__init__(self,cm) + self.name = "ComponentFail" ++ # TODO make this work correctly in docker. ++ self.is_docker_unsafe = 1 + self.startall = SimulStartLite(cm) + self.complist = cm.Components() + self.patterns = [] +@@ -1419,6 +1424,15 @@ class ComponentFail(CTSTest): + self.okerrpatterns.append(self.templates["Pat:ChildRespawn"] %(node, chosen.name)) + self.okerrpatterns.append(self.templates["Pat:ChildExit"]) + ++ if chosen.name == "stonith": ++ # Ignore actions for STONITH resources ++ (rc, lines) = self.rsh(node, "crm_resource -c", None) ++ for line in lines: ++ if re.search("^Resource", line): ++ r = AuditResource(self.CM, line) ++ if r.rclass == "stonith": ++ self.okerrpatterns.append(self.templates["LogActions: Recover.*%s"] % r.id) ++ + # supply a copy so self.patterns doesnt end up empty + tmpPats = [] + tmpPats.extend(self.patterns) +@@ -2512,6 +2526,7 @@ class RemoteLXC(CTSTest): + self.startall = SimulStartLite(cm) + self.num_containers = 2 + self.is_container = 1 ++ self.is_docker_unsafe = 1 + self.failed = 0 + self.fail_string = "" + +@@ -2624,6 +2639,7 @@ class RemoteBaremetal(CTSTest): + def __init__(self, cm): + CTSTest.__init__(self,cm) + self.name = "RemoteBaremetal" ++ self.is_docker_unsafe = 1 + self.start = StartTest(cm) + self.startall = SimulStartLite(cm) + self.stop = StopTest(cm) +diff --git a/cts/environment.py b/cts/environment.py +index de1d099..d741452 100644 +--- a/cts/environment.py ++++ b/cts/environment.py +@@ -71,6 +71,7 @@ class Environment: + self["loop-tests"] = 1 + self["scenario"] = "random" + self["stats"] = 0 ++ self["docker"] = 0 + + self.RandomGen = random.Random() + self.logger = LogFactory() +@@ -143,7 +144,9 @@ class Environment: + # GoodThing(tm). + try: + n = node.strip() +- gethostbyname_ex(n) ++ if self.data["docker"] == 0: ++ gethostbyname_ex(n) ++ + self.Nodes.append(n) + except: + self.logger.log(node+" not found in DNS... aborting") +@@ -191,7 +194,10 @@ class Environment: + return "crm-lha" + + elif self.data["Stack"] == "corosync 2.x": +- return "crm-mcp" ++ if self["docker"]: ++ return "crm-mcp-docker" ++ else: ++ return "crm-mcp" + + elif self.data["Stack"] == "corosync (cman)": + return "crm-cman" +@@ -342,6 +348,10 @@ class Environment: + elif args[i] == "--qarsh": + RemoteFactory().enable_qarsh() + ++ elif args[i] == "--docker": ++ self["docker"] = 1 ++ RemoteFactory().enable_docker() ++ + elif args[i] == "--stonith" or args[i] == "--fencing": + skipthis=1 + if args[i+1] == "1" or args[i+1] == "yes": +@@ -352,6 +362,9 @@ class Environment: + self["DoStonith"]=1 + self["stonith-type"] = "fence_xvm" + self["stonith-params"] = "pcmk_arg_map=domain:uname,delay=0" ++ elif args[i+1] == "docker": ++ self["DoStonith"]=1 ++ self["stonith-type"] = "fence_docker_cts" + elif args[i+1] == "scsi": + self["DoStonith"]=1 + self["stonith-type"] = "fence_scsi" +@@ -644,6 +657,7 @@ class Environment: + print "\t [--container-tests] include pacemaker_remote tests that run in lxc container resources" + print "\t [--oprofile 'node list'] list of cluster nodes to run oprofile on]" + print "\t [--qarsh] use the QARSH backdoor to access nodes instead of SSH" ++ print "\t [--docker] Indicates nodes are docker nodes." + print "\t [--seed random_seed]" + print "\t [--set option=value]" + print "\t " +diff --git a/cts/lxc_autogen.sh.in b/cts/lxc_autogen.sh.in +index 6900b67..e11532b 100755 +--- a/cts/lxc_autogen.sh.in ++++ b/cts/lxc_autogen.sh.in +@@ -72,6 +72,7 @@ if [ $verify -eq 1 ]; then + virsh -c lxc:/// list --all > /dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "Could not connect 'virsh -c lxc:///' check that libvirt lxc driver is installed" ++ # yum install -y libvirt-daemon-driver-lxc libvirt-daemon-lxc libvirt-login-shell + exit 1 + fi + +diff --git a/cts/patterns.py b/cts/patterns.py +index f651965..8d34e1c 100644 +--- a/cts/patterns.py ++++ b/cts/patterns.py +@@ -364,9 +364,12 @@ class crm_cs_v0(BasePatterns): + self.components["stonith-ignore"] = [ + "LogActions: Recover Fencing", + "Updating failcount for Fencing", ++ "error: crm_ipc_read: Connection to stonith-ng failed", ++ "error: mainloop_gio_callback: Connection to stonith-ng.*closed (I/O condition=17)", ++ "crit: tengine_stonith_connection_destroy: Fencing daemon connection failed", + "error: te_connect_stonith:.*Sign-in failed: triggered a retry", + "STONITH connection failed, finalizing .* pending operations.", +- "process_lrm_event:.*Operation Fencing.* Error" ++ "process_lrm_event:.*Operation Fencing.* Error", + ] + self.components["stonith-ignore"].extend(self.components["common-ignore"]) + +@@ -409,6 +412,20 @@ class crm_mcp(crm_cs_v0): + # "Pat:We_stopped" : "%s.*Stopped Corosync Cluster Engine", + # }) + ++class crm_mcp_docker(crm_mcp): ++ ''' ++ The crm version 4 cluster manager class. ++ It implements the things we need to talk to and manipulate ++ crm clusters running on top of native corosync (no plugins) ++ ''' ++ def __init__(self, name): ++ crm_mcp.__init__(self, name) ++ ++ self.commands.update({ ++ "StartCmd" : "pcmk_start", ++ "StopCmd" : "pcmk_stop", ++ }) ++ + class crm_cman(crm_cs_v0): + ''' + The crm version 3 cluster manager class. +@@ -454,6 +471,8 @@ class PatternSelector: + crm_cman(name) + elif name == "crm-mcp": + crm_mcp(name) ++ elif name == "crm-mcp-docker": ++ crm_mcp_docker(name) + + def get_variant(self, variant): + if patternvariants.has_key(variant): +diff --git a/cts/remote.py b/cts/remote.py +index c8253c3..7920fc9 100644 +--- a/cts/remote.py ++++ b/cts/remote.py +@@ -261,6 +261,12 @@ class RemoteFactory: + def new(self, silent=False): + return RemoteExec(RemoteFactory.rsh, silent) + ++ def enable_docker(self): ++ print "Using DOCKER backend for connections to cluster nodes" ++ ++ RemoteFactory.rsh.Command = "/usr/libexec/phd/docker/phd_docker_remote_cmd " ++ RemoteFactory.rsh.CpCommand = "/usr/libexec/phd/docker/phd_docker_cp" ++ + def enable_qarsh(self): + # http://nstraz.wordpress.com/2008/12/03/introducing-qarsh/ + print "Using QARSH for connections to cluster nodes" +diff --git a/cts/watcher.py b/cts/watcher.py +index d33e580..5e6ee43 100644 +--- a/cts/watcher.py ++++ b/cts/watcher.py +@@ -165,7 +165,11 @@ class FileObj(SearchObj): + global log_watcher_bin + + self.debug("Installing %s on %s" % (log_watcher_bin, host)) +- self.rsh(host, '''echo "%s" > %s''' % (log_watcher, log_watcher_bin), silent=True) ++ ++ os.system("cat << END >> %s\n%s\nEND" %(log_watcher_bin, log_watcher)) ++ os.system("chmod 755 %s" %(log_watcher_bin)) ++ ++ self.rsh.cp(log_watcher_bin, "root@%s:%s" % (host, log_watcher_bin)) + has_log_watcher[host] = 1 + + self.harvest() +@@ -176,7 +180,8 @@ class FileObj(SearchObj): + if match: + last_offset = self.offset + self.offset = match.group(1) +- #if last_offset == "EOF": self.debug("Got %d lines, new offset: %s" % (len(lines), self.offset)) ++ #if last_offset == "EOF": self.debug("Got %d lines, new offset: %s" % (len(outLines), self.offset)) ++ self.debug("Got %d lines, new offset: %s %s" % (len(outLines), self.offset, repr(self.delegate))) + + elif re.search("^CTSwatcher:.*truncated", line): + self.log(line) +@@ -199,7 +204,7 @@ class FileObj(SearchObj): + + global log_watcher_bin + return self.rsh.call_async(self.host, +- "python %s -t %s -p CTSwatcher: -l 200 -f %s -o %s" % (log_watcher_bin, self.name, self.filename, self.offset), ++ "python %s -t %s -p CTSwatcher: -l 200 -f %s -o %s -t %s" % (log_watcher_bin, self.name, self.filename, self.offset, self.name), + completionDelegate=self) + + def setend(self): +@@ -208,7 +213,7 @@ class FileObj(SearchObj): + + global log_watcher_bin + (rc, lines) = self.rsh(self.host, +- "python %s -t %s -p CTSwatcher: -l 2 -f %s -o %s" % (log_watcher_bin, self.name, self.filename, "EOF"), ++ "python %s -t %s -p CTSwatcher: -l 2 -f %s -o %s -t %s" % (log_watcher_bin, self.name, self.filename, "EOF", self.name), + None, silent=True) + + for line in lines: +@@ -386,7 +391,7 @@ class LogWatcher(RemoteExec): + + def async_complete(self, pid, returncode, outLines, errLines): + # TODO: Probably need a lock for updating self.line_cache +- self.logger.debug("%s: Got %d lines from %d" % (self.name, len(outLines), pid)) ++ self.logger.debug("%s: Got %d lines from %d (total %d)" % (self.name, len(outLines), pid, len(self.line_cache))) + if len(outLines): + self.cache_lock.acquire() + self.line_cache.extend(outLines) +@@ -407,7 +412,7 @@ class LogWatcher(RemoteExec): + for t in pending: + t.join(60.0) + if t.isAlive(): +- self.logger.log("%s: Aborting after 20s waiting for %d logging commands" % (self.name, repr(t))) ++ self.logger.log("%s: Aborting after 20s waiting for %s logging commands" % (self.name, repr(t))) + return + + #print "Got %d lines" % len(self.line_cache) +@@ -484,9 +489,6 @@ class LogWatcher(RemoteExec): + if len(self.line_cache) == 0 and end < time.time(): + self.debug("Single search terminated: start=%d, end=%d, now=%d, lines=%d" % (begin, end, time.time(), lines)) + return None +- elif len(self.line_cache) == 0: +- self.debug("Single search timed out: start=%d, end=%d, now=%d, lines=%d" % (begin, end, time.time(), lines)) +- return None + else: + self.debug("Waiting: start=%d, end=%d, now=%d, lines=%d" % (begin, end, time.time(), len(self.line_cache))) + time.sleep(1) +@@ -520,6 +522,7 @@ class LogWatcher(RemoteExec): + self.unmatched = self.regexes + self.matched = returnresult + self.regexes = save_regexes ++ self.end() + return None + + returnresult.append(oneresult) +diff --git a/extra/resources/remote b/extra/resources/remote +index 9e0482b..9f141a2 100644 +--- a/extra/resources/remote ++++ b/extra/resources/remote +@@ -62,11 +62,11 @@ meta_data() { + </parameter> + </parameters> + <actions> +- <action name="start" timeout="15" /> +- <action name="stop" timeout="15" /> +- <action name="monitor" timeout="15" /> +- <action name="migrate_to" timeout="15" /> +- <action name="migrate_from" timeout="15" /> ++ <action name="start" timeout="40" /> ++ <action name="stop" timeout="40" /> ++ <action name="monitor" timeout="30" /> ++ <action name="migrate_to" timeout="60" /> ++ <action name="migrate_from" timeout="60" /> + <action name="meta-data" timeout="5" /> + </actions> + </resource-agent> +diff --git a/fencing/commands.c b/fencing/commands.c +index a4e9f30..577ea95 100644 +--- a/fencing/commands.c ++++ b/fencing/commands.c +@@ -1094,7 +1094,10 @@ stonith_device_action(xmlNode * msg, char **output) + device = g_hash_table_lookup(device_list, id); + } + +- if (device) { ++ if (device && device->api_registered == FALSE) { ++ rc = -ENODEV; ++ ++ } else if (device) { + cmd = create_async_command(msg); + if (cmd == NULL) { + free_device(device); +diff --git a/fencing/main.c b/fencing/main.c +index 5ae36cf..b03659e 100644 +--- a/fencing/main.c ++++ b/fencing/main.c +@@ -415,7 +415,7 @@ topology_remove_helper(const char *node, int level) + xmlNode *data = create_xml_node(NULL, F_STONITH_LEVEL); + xmlNode *notify_data = create_xml_node(NULL, STONITH_OP_LEVEL_DEL); + +- crm_xml_add(data, "origin", __FUNCTION__); ++ crm_xml_add(data, F_STONITH_ORIGIN, __FUNCTION__); + crm_xml_add_int(data, XML_ATTR_ID, level); + crm_xml_add(data, F_STONITH_TARGET, node); + +diff --git a/include/crm/services.h b/include/crm/services.h +index e8bc172..5310709 100644 +--- a/include/crm/services.h ++++ b/include/crm/services.h +@@ -152,6 +152,7 @@ enum nagios_exitcode { + int status; + int sequence; + int expected_rc; ++ int synchronous; + + char *stderr_data; + char *stdout_data; +diff --git a/include/crm_internal.h b/include/crm_internal.h +index ba78da2..3eb88de 100644 +--- a/include/crm_internal.h ++++ b/include/crm_internal.h +@@ -220,7 +220,7 @@ gboolean crm_remote_recv(crm_remote_t * remote, int total_timeout /*ms */ , int + xmlNode *crm_remote_parse_buffer(crm_remote_t * remote); + int crm_remote_tcp_connect(const char *host, int port); + int crm_remote_tcp_connect_async(const char *host, int port, int timeout, /*ms */ +- void *userdata, void (*callback) (void *userdata, int sock)); ++ int *timer_id, void *userdata, void (*callback) (void *userdata, int sock)); + + # ifdef HAVE_GNUTLS_GNUTLS_H + /*! +@@ -276,6 +276,7 @@ int crm_read_pidfile(const char *filename); + # define attrd_channel T_ATTRD + # define F_ATTRD_KEY "attr_key" + # define F_ATTRD_ATTRIBUTE "attr_name" ++# define F_ATTRD_REGEX "attr_regex" + # define F_ATTRD_TASK "task" + # define F_ATTRD_VALUE "attr_value" + # define F_ATTRD_SET "attr_set" +diff --git a/lib/cluster/membership.c b/lib/cluster/membership.c +index 9410506..24700e5 100644 +--- a/lib/cluster/membership.c ++++ b/lib/cluster/membership.c +@@ -389,7 +389,9 @@ crm_find_peer(unsigned int id, const char *uname) + } + + } else if(uname && by_id->uname) { +- crm_warn("Node '%s' and '%s' share the same cluster nodeid: %u", by_id->uname, by_name->uname, id); ++ crm_dump_peer_hash(LOG_INFO, __FUNCTION__); ++ crm_warn("Node '%s' and '%s' share the same cluster nodeid: %u %s", by_id->uname, by_name->uname, id, uname); ++ crm_abort(__FILE__, __FUNCTION__, __LINE__, "member weirdness", TRUE, TRUE); + + } else if(id && by_name->id) { + crm_warn("Node %u and %u share the same name: '%s'", by_id->id, by_name->id, uname); +diff --git a/lib/common/ipc.c b/lib/common/ipc.c +index c1801a4..f26225f 100644 +--- a/lib/common/ipc.c ++++ b/lib/common/ipc.c +@@ -806,7 +806,7 @@ crm_ipc_connect(crm_ipc_t * client) + + #ifdef HAVE_IPCS_GET_BUFFER_SIZE + client->max_buf_size = qb_ipcc_get_buffer_size(client->ipc); +- if (client->max_buf_size < client->buf_size) { ++ if (client->max_buf_size > client->buf_size) { + free(client->buffer); + client->buffer = calloc(1, client->max_buf_size); + client->buf_size = client->max_buf_size; +diff --git a/lib/common/remote.c b/lib/common/remote.c +index 0a7cd93..e2492b9 100644 +--- a/lib/common/remote.c ++++ b/lib/common/remote.c +@@ -737,11 +737,12 @@ check_connect_finished(gpointer userdata) + static int + internal_tcp_connect_async(int sock, + const struct sockaddr *addr, socklen_t addrlen, int timeout /* ms */ , +- void *userdata, void (*callback) (void *userdata, int sock)) ++ int *timer_id, void *userdata, void (*callback) (void *userdata, int sock)) + { + int rc = 0; + int flag = 0; + int interval = 500; ++ int timer; + struct tcp_async_cb_data *cb_data = NULL; + + if ((flag = fcntl(sock, F_GETFL)) >= 0) { +@@ -782,7 +783,10 @@ internal_tcp_connect_async(int sock, + * Something about the way mainloop is currently polling prevents this from working at the + * moment though. */ + crm_trace("fd %d: scheduling to check if connect finished in %dms second", sock, interval); +- g_timeout_add(interval, check_connect_finished, cb_data); ++ timer = g_timeout_add(interval, check_connect_finished, cb_data); ++ if (timer_id) { ++ *timer_id = timer; ++ } + + return 0; + } +@@ -809,10 +813,11 @@ internal_tcp_connect(int sock, const struct sockaddr *addr, socklen_t addrlen) + * \internal + * \brief tcp connection to server at specified port + * \retval negative, failed to connect. ++ * \retval positive, sock fd + */ + int +-crm_remote_tcp_connect_async(const char *host, int port, int timeout, /*ms */ +- void *userdata, void (*callback) (void *userdata, int sock)) ++crm_remote_tcp_connect_async(const char *host, int port, int timeout, /*ms */ ++ int *timer_id, void *userdata, void (*callback) (void *userdata, int sock)) + { + char buffer[256]; + struct addrinfo *res = NULL; +@@ -877,8 +882,7 @@ crm_remote_tcp_connect_async(const char *host, int port, int timeout, /*ms */ + + if (callback) { + if (internal_tcp_connect_async +- (sock, rp->ai_addr, rp->ai_addrlen, timeout, userdata, callback) == 0) { +- sock = 0; ++ (sock, rp->ai_addr, rp->ai_addrlen, timeout, timer_id, userdata, callback) == 0) { + goto async_cleanup; /* Success for now, we'll hear back later in the callback */ + } + +@@ -903,5 +907,5 @@ async_cleanup: + int + crm_remote_tcp_connect(const char *host, int port) + { +- return crm_remote_tcp_connect_async(host, port, -1, NULL, NULL); ++ return crm_remote_tcp_connect_async(host, port, -1, NULL, NULL, NULL); + } +diff --git a/lib/common/utils.c b/lib/common/utils.c +index e559c51..dc54e6d 100644 +--- a/lib/common/utils.c ++++ b/lib/common/utils.c +@@ -2005,6 +2005,9 @@ attrd_update_delegate(crm_ipc_t * ipc, char command, const char *host, const cha + } + + switch (command) { ++ case 'u': ++ crm_xml_add(update, F_ATTRD_TASK, "update"); ++ crm_xml_add(update, F_ATTRD_REGEX, name); + case 'D': + case 'U': + case 'v': +diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c +index 2837682..06b9492 100644 +--- a/lib/fencing/st_client.c ++++ b/lib/fencing/st_client.c +@@ -192,7 +192,7 @@ create_device_registration_xml(const char *id, const char *namespace, const char + #endif + + crm_xml_add(data, XML_ATTR_ID, id); +- crm_xml_add(data, "origin", __FUNCTION__); ++ crm_xml_add(data, F_STONITH_ORIGIN, __FUNCTION__); + crm_xml_add(data, "agent", agent); + crm_xml_add(data, "namespace", namespace); + if (rsc_provides) { +@@ -229,7 +229,7 @@ stonith_api_remove_device(stonith_t * st, int call_options, const char *name) + xmlNode *data = NULL; + + data = create_xml_node(NULL, F_STONITH_DEVICE); +- crm_xml_add(data, "origin", __FUNCTION__); ++ crm_xml_add(data, F_STONITH_ORIGIN, __FUNCTION__); + crm_xml_add(data, XML_ATTR_ID, name); + rc = stonith_send_command(st, STONITH_OP_DEVICE_DEL, data, NULL, call_options, 0); + free_xml(data); +@@ -244,7 +244,7 @@ stonith_api_remove_level(stonith_t * st, int options, const char *node, int leve + xmlNode *data = NULL; + + data = create_xml_node(NULL, F_STONITH_LEVEL); +- crm_xml_add(data, "origin", __FUNCTION__); ++ crm_xml_add(data, F_STONITH_ORIGIN, __FUNCTION__); + crm_xml_add(data, F_STONITH_TARGET, node); + crm_xml_add_int(data, XML_ATTR_ID, level); + rc = stonith_send_command(st, STONITH_OP_LEVEL_DEL, data, NULL, options, 0); +@@ -260,7 +260,7 @@ create_level_registration_xml(const char *node, int level, stonith_key_value_t * + + crm_xml_add_int(data, XML_ATTR_ID, level); + crm_xml_add(data, F_STONITH_TARGET, node); +- crm_xml_add(data, "origin", __FUNCTION__); ++ crm_xml_add(data, F_STONITH_ORIGIN, __FUNCTION__); + + for (; device_list; device_list = device_list->next) { + xmlNode *dev = create_xml_node(data, F_STONITH_DEVICE); +@@ -1255,7 +1255,7 @@ stonith_api_query(stonith_t * stonith, int call_options, const char *target, + CRM_CHECK(devices != NULL, return -EINVAL); + + data = create_xml_node(NULL, F_STONITH_DEVICE); +- crm_xml_add(data, "origin", __FUNCTION__); ++ crm_xml_add(data, F_STONITH_ORIGIN, __FUNCTION__); + crm_xml_add(data, F_STONITH_TARGET, target); + crm_xml_add(data, F_STONITH_ACTION, "off"); + rc = stonith_send_command(stonith, STONITH_OP_QUERY, data, &output, call_options, timeout); +@@ -1296,7 +1296,7 @@ stonith_api_call(stonith_t * stonith, + xmlNode *data = NULL; + + data = create_xml_node(NULL, F_STONITH_DEVICE); +- crm_xml_add(data, "origin", __FUNCTION__); ++ crm_xml_add(data, F_STONITH_ORIGIN, __FUNCTION__); + crm_xml_add(data, F_STONITH_DEVICE, id); + crm_xml_add(data, F_STONITH_ACTION, action); + crm_xml_add(data, F_STONITH_TARGET, victim); +diff --git a/lib/lrmd/lrmd_client.c b/lib/lrmd/lrmd_client.c +index 3496098..b8c5d23 100644 +--- a/lib/lrmd/lrmd_client.c ++++ b/lib/lrmd/lrmd_client.c +@@ -89,6 +89,9 @@ typedef struct lrmd_private_s { + int port; + gnutls_psk_client_credentials_t psk_cred_c; + ++ /* while the async connection is occuring, this is the id ++ * of the connection timeout timer. */ ++ int async_timer; + int sock; + /* since tls requires a round trip across the network for a + * request/reply, there are times where we just want to be able +@@ -1101,6 +1104,8 @@ lrmd_tcp_connect_cb(void *userdata, int sock) + int rc = sock; + gnutls_datum_t psk_key = { NULL, 0 }; + ++ native->async_timer = 0; ++ + if (rc < 0) { + lrmd_tls_connection_destroy(lrmd); + crm_info("remote lrmd connect to %s at port %d failed", native->server, native->port); +@@ -1152,14 +1157,23 @@ lrmd_tcp_connect_cb(void *userdata, int sock) + static int + lrmd_tls_connect_async(lrmd_t * lrmd, int timeout /*ms */ ) + { +- int rc = 0; ++ int rc = -1; ++ int sock = 0; ++ int timer_id = 0; ++ + lrmd_private_t *native = lrmd->private; + + lrmd_gnutls_global_init(); + +- rc = crm_remote_tcp_connect_async(native->server, native->port, timeout, lrmd, ++ sock = crm_remote_tcp_connect_async(native->server, native->port, timeout, &timer_id, lrmd, + lrmd_tcp_connect_cb); + ++ if (sock != -1) { ++ native->sock = sock; ++ rc = 0; ++ native->async_timer = timer_id; ++ } ++ + return rc; + } + +@@ -1319,6 +1333,11 @@ lrmd_tls_disconnect(lrmd_t * lrmd) + native->remote->tls_session = 0; + } + ++ if (native->async_timer) { ++ g_source_remove(native->async_timer); ++ native->async_timer = 0; ++ } ++ + if (native->source != NULL) { + /* Attached to mainloop */ + mainloop_del_ipc_client(native->source); +diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c +index b699201..7127c12 100644 +--- a/lib/pengine/unpack.c ++++ b/lib/pengine/unpack.c +@@ -1756,6 +1756,7 @@ process_rsc_state(resource_t * rsc, node_t * node, + if (rsc->role > RSC_ROLE_STOPPED + && node->details->online == FALSE && is_set(rsc->flags, pe_rsc_managed)) { + ++ char *reason = NULL; + gboolean should_fence = FALSE; + + /* if this is a remote_node living in a container, fence the container +@@ -1768,14 +1769,25 @@ process_rsc_state(resource_t * rsc, node_t * node, + + should_fence = TRUE; + } else if (is_set(data_set->flags, pe_flag_stonith_enabled)) { ++ if (is_baremetal_remote_node(node) && is_not_set(node->details->remote_rsc->flags, pe_rsc_failed)) { ++ /* setting unceen = true means that fencing of the remote node will ++ * only occur if the connection resource is not going to start somewhere. ++ * This allows connection resources on a failed cluster-node to move to ++ * another node without requiring the baremetal remote nodes to be fenced ++ * as well. */ ++ node->details->unseen = TRUE; ++ reason = g_strdup_printf("because %s is active there. Fencing will be revoked if remote-node connection can be re-established on another cluster-node.", rsc->id); ++ } + should_fence = TRUE; + } + + if (should_fence) { +- char *reason = g_strdup_printf("because %s is thought to be active there", rsc->id); ++ if (reason == NULL) { ++ reason = g_strdup_printf("because %s is thought to be active there", rsc->id); ++ } + pe_fence_node(data_set, node, reason); +- g_free(reason); + } ++ g_free(reason); + } + + if (node->details->unclean) { +@@ -1840,6 +1852,17 @@ process_rsc_state(resource_t * rsc, node_t * node, + break; + } + ++ /* ensure a remote-node connection failure forces an unclean remote-node ++ * to be fenced. By setting unseen = FALSE, the remote-node failure will ++ * result in a fencing operation regardless if we're going to attempt to ++ * reconnect to the remote-node in this transition or not. */ ++ if (is_set(rsc->flags, pe_rsc_failed) && rsc->is_remote_node) { ++ node_t *tmpnode = pe_find_node(data_set->nodes, rsc->id); ++ if (tmpnode->details->unclean) { ++ tmpnode->details->unseen = FALSE; ++ } ++ } ++ + if (rsc->role != RSC_ROLE_STOPPED && rsc->role != RSC_ROLE_UNKNOWN) { + if (is_set(rsc->flags, pe_rsc_orphan)) { + if (is_set(rsc->flags, pe_rsc_managed)) { +@@ -2160,7 +2183,7 @@ unpack_lrm_resources(node_t * node, xmlNode * lrm_rsc_list, pe_working_set_t * d + for (gIter = unexpected_containers; gIter != NULL; gIter = gIter->next) { + remote = (resource_t *) gIter->data; + if (remote->role != RSC_ROLE_STARTED) { +- crm_warn("Recovering container resource %s. Resource is unexpectedly running and involves a remote-node."); ++ crm_warn("Recovering container resource %s. Resource is unexpectedly running and involves a remote-node.", remote->container->id); + set_bit(remote->container->flags, pe_rsc_failed); + } + } +diff --git a/lib/services/dbus.c b/lib/services/dbus.c +index 8b8aee1..587589c 100644 +--- a/lib/services/dbus.c ++++ b/lib/services/dbus.c +@@ -6,6 +6,14 @@ + + #define BUS_PROPERTY_IFACE "org.freedesktop.DBus.Properties" + ++struct db_getall_data ++{ ++ char *name; ++ char *target; ++ char *object; ++ void *userdata; ++ void (*callback)(const char *name, const char *value, void *userdata); ++}; + + static bool pcmk_dbus_error_check(DBusError *err, const char *prefix, const char *function, int line) + { +@@ -107,8 +115,9 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, D + method = dbus_message_get_member (msg); + + // send message and get a handle for a reply +- if (!dbus_connection_send_with_reply (connection, msg, &pending, -1)) { // -1 is default timeout ++ if (!dbus_connection_send_with_reply (connection, msg, &pending, -1/* aka. DBUS_TIMEOUT_USE_DEFAULT */)) { + if(error) { ++ dbus_error_init(error); + error->message = "Call to dbus_connection_send_with_reply() failed"; + error->name = "org.clusterlabs.pacemaker.SendFailed"; + } +@@ -126,13 +135,7 @@ DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, D + reply = dbus_pending_call_steal_reply(pending); + } + +- if(pcmk_dbus_find_error(method, pending, reply, error)) { +- crm_trace("Was error: '%s' '%s'", error->name, error->message); +- if(reply) { +- dbus_message_unref(reply); +- reply = NULL; +- } +- } ++ pcmk_dbus_find_error(method, pending, reply, error); + + if(pending) { + /* free the pending message handle */ +@@ -156,7 +159,7 @@ bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, + method = dbus_message_get_member (msg); + + // send message and get a handle for a reply +- if (!dbus_connection_send_with_reply (connection, msg, &pending, -1)) { // -1 is default timeout ++ if (!dbus_connection_send_with_reply (connection, msg, &pending, -1/* aka. DBUS_TIMEOUT_USE_DEFAULT */)) { // -1 is default timeout + crm_err("Send with reply failed for %s", method); + return FALSE; + +@@ -205,65 +208,38 @@ bool pcmk_dbus_type_check(DBusMessage *msg, DBusMessageIter *field, int expected + + dbus_message_iter_init(msg, &args); + do_crm_log_alias(LOG_ERR, __FILE__, function, line, +- "Unexepcted DBus type, expected %c instead of %c in '%s'", +- expected, dtype, dbus_message_iter_get_signature(&args)); ++ "Unexepcted DBus type, expected %c in '%s' instead of %c", ++ expected, dbus_message_iter_get_signature(&args), dtype); + return FALSE; + } + + return TRUE; + } + +-char * +-pcmk_dbus_get_property( +- DBusConnection *connection, const char *target, const char *obj, const gchar * iface, const char *name) ++static char * ++pcmk_dbus_lookup_result(DBusMessage *reply, struct db_getall_data *data) + { +- DBusMessage *msg; +- DBusMessageIter args; +- DBusMessageIter dict; +- DBusMessage *reply = NULL; +- /* DBusBasicValue value; */ +- const char *method = "GetAll"; +- char *output = NULL; + DBusError error; ++ char *output = NULL; ++ DBusMessageIter dict; ++ DBusMessageIter args; + +- /* desc = systemd_unit_property(path, BUS_NAME ".Unit", "Description"); */ +- +- dbus_error_init(&error); +- crm_info("Calling: %s on %s", method, target); +- msg = dbus_message_new_method_call(target, // target for the method call +- obj, // object to call on +- BUS_PROPERTY_IFACE, // interface to call on +- method); // method name +- +- if (NULL == msg) { +- crm_err("Call to %s failed: No message", method); +- return NULL; +- } +- +- CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &iface, DBUS_TYPE_INVALID)); +- +- reply = pcmk_dbus_send_recv(msg, connection, &error); +- dbus_message_unref(msg); +- +- if(error.name) { +- crm_err("Call to %s for %s failed: No reply", method, iface); +- return NULL; +- +- } else if (!dbus_message_iter_init(reply, &args)) { +- crm_err("Cannot get properties for %s from %s", obj, iface); +- return NULL; ++ if(pcmk_dbus_find_error("GetAll", (void*)&error, reply, &error)) { ++ crm_err("Cannot get properties from %s for %s", data->target, data->object); ++ goto cleanup; + } + ++ dbus_message_iter_init(reply, &args); + if(!pcmk_dbus_type_check(reply, &args, DBUS_TYPE_ARRAY, __FUNCTION__, __LINE__)) { +- crm_err("Call to %s failed: Message has invalid arguments", method); +- dbus_message_unref(reply); +- return NULL; ++ crm_err("Invalid reply from %s for %s", data->target, data->object); ++ goto cleanup; + } + + dbus_message_iter_recurse(&args, &dict); + while (dbus_message_iter_get_arg_type (&dict) != DBUS_TYPE_INVALID) { + DBusMessageIter sv; + DBusMessageIter v; ++ DBusBasicValue name; + DBusBasicValue value; + + if(!pcmk_dbus_type_check(reply, &dict, DBUS_TYPE_DICT_ENTRY, __FUNCTION__, __LINE__)) { +@@ -277,10 +253,9 @@ pcmk_dbus_get_property( + + switch(dtype) { + case DBUS_TYPE_STRING: +- dbus_message_iter_get_basic(&sv, &value); ++ dbus_message_iter_get_basic(&sv, &name); + +- crm_trace("Got: %s", value.str); +- if(strcmp(value.str, name) != 0) { ++ if(data->name && strcmp(name.str, data->name) != 0) { + dbus_message_iter_next (&sv); /* Skip the value */ + } + break; +@@ -289,8 +264,17 @@ pcmk_dbus_get_property( + if(pcmk_dbus_type_check(reply, &v, DBUS_TYPE_STRING, __FUNCTION__, __LINE__)) { + dbus_message_iter_get_basic(&v, &value); + +- crm_trace("Result: %s", value.str); +- output = strdup(value.str); ++ crm_trace("Property %s[%s] is '%s'", data->object, name.str, value.str); ++ if(data->callback) { ++ data->callback(name.str, value.str, data->userdata); ++ ++ } else { ++ output = strdup(value.str); ++ } ++ ++ if(data->name) { ++ goto cleanup; ++ } + } + break; + default: +@@ -302,8 +286,82 @@ pcmk_dbus_get_property( + dbus_message_iter_next (&dict); + } + ++ cleanup: ++ free(data->target); ++ free(data->object); ++ free(data->name); ++ free(data); ++ ++ return output; ++} ++ ++static void ++pcmk_dbus_lookup_cb(DBusPendingCall *pending, void *user_data) ++{ ++ DBusMessage *reply = NULL; ++ ++ if(pending) { ++ reply = dbus_pending_call_steal_reply(pending); ++ } ++ ++ pcmk_dbus_lookup_result(reply, user_data); ++ ++ if(reply) { ++ dbus_message_unref(reply); ++ } ++} ++ ++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) ++{ ++ DBusMessage *msg; ++ const char *method = "GetAll"; ++ char *output = NULL; ++ ++ struct db_getall_data *query_data = NULL; ++ ++ /* char *state = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, unit, BUS_NAME ".Unit", "ActiveState"); */ ++ ++ crm_debug("Calling: %s on %s", method, target); ++ msg = dbus_message_new_method_call(target, // target for the method call ++ obj, // object to call on ++ BUS_PROPERTY_IFACE, // interface to call on ++ method); // method name ++ ++ if (NULL == msg) { ++ crm_err("Call to %s failed: No message", method); ++ return NULL; ++ } ++ ++ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &iface, DBUS_TYPE_INVALID)); ++ ++ query_data = malloc(sizeof(struct db_getall_data)); ++ query_data->target = strdup(target); ++ query_data->object = strdup(obj); ++ query_data->callback = callback; ++ query_data->userdata = userdata; ++ query_data->name = NULL; ++ ++ if(name) { ++ query_data->name = strdup(name); ++ } ++ ++ if(query_data->callback) { ++ pcmk_dbus_send(msg, connection, pcmk_dbus_lookup_cb, query_data); ++ ++ } else { ++ DBusMessage *reply = pcmk_dbus_send_recv(msg, connection, NULL); ++ ++ output = pcmk_dbus_lookup_result(reply, query_data); ++ if(reply) { ++ dbus_message_unref(reply); ++ } ++ } ++ ++ dbus_message_unref(msg); + +- crm_trace("Property %s[%s] is '%s'", obj, name, output); + return output; + } + +@@ -354,6 +412,14 @@ pcmk_dbus_watch_add(DBusWatch *watch, void *data){ + } + + static void ++pcmk_dbus_watch_toggle(DBusWatch *watch, void *data) ++{ ++ mainloop_io_t *client = dbus_watch_get_data(watch); ++ crm_notice("DBus client %p is now %s", client, dbus_watch_get_enabled(watch)?"enabled":"disabled"); ++} ++ ++ ++static void + pcmk_dbus_watch_remove(DBusWatch *watch, void *data){ + mainloop_io_t *client = dbus_watch_get_data(watch); + +@@ -404,7 +470,7 @@ pcmk_dbus_timeout_toggle(DBusTimeout *timeout, void *data){ + void pcmk_dbus_connection_setup_with_select(DBusConnection *c){ + dbus_connection_set_timeout_functions( + c, pcmk_dbus_timeout_add, pcmk_dbus_timeout_remove, pcmk_dbus_timeout_toggle, NULL, NULL); +- dbus_connection_set_watch_functions(c, pcmk_dbus_watch_add, pcmk_dbus_watch_remove, NULL, NULL, NULL); ++ dbus_connection_set_watch_functions(c, pcmk_dbus_watch_add, pcmk_dbus_watch_remove, pcmk_dbus_watch_toggle, NULL, NULL); + dbus_connection_set_dispatch_status_function(c, pcmk_dbus_connection_dispatch, NULL, NULL); + + pcmk_dbus_connection_dispatch(c, dbus_connection_get_dispatch_status(c), NULL); +diff --git a/lib/services/pcmk-dbus.h b/lib/services/pcmk-dbus.h +index 3b7a598..ed80c5f 100644 +--- a/lib/services/pcmk-dbus.h ++++ b/lib/services/pcmk-dbus.h +@@ -6,7 +6,9 @@ bool pcmk_dbus_send(DBusMessage *msg, DBusConnection *connection, + void(*done)(DBusPendingCall *pending, void *user_data), void *user_data); + DBusMessage *pcmk_dbus_send_recv(DBusMessage *msg, DBusConnection *connection, DBusError *error); + 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); ++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); + + bool pcmk_dbus_find_error(const char *method, DBusPendingCall* pending, DBusMessage *reply, DBusError *error); + +diff --git a/lib/services/services.c b/lib/services/services.c +index 7b32405..8590b56 100644 +--- a/lib/services/services.c ++++ b/lib/services/services.c +@@ -473,6 +473,7 @@ handle_duplicate_recurring(svc_action_t * op, void (*action_callback) (svc_actio + gboolean + services_action_async(svc_action_t * op, void (*action_callback) (svc_action_t *)) + { ++ op->synchronous = false; + if (action_callback) { + op->opaque->callback = action_callback; + } +@@ -491,7 +492,7 @@ services_action_async(svc_action_t * op, void (*action_callback) (svc_action_t * + } + if (op->standard && strcasecmp(op->standard, "systemd") == 0) { + #if SUPPORT_SYSTEMD +- return systemd_unit_exec(op, FALSE); ++ return systemd_unit_exec(op); + #endif + } + return services_os_action_execute(op, FALSE); +@@ -502,6 +503,7 @@ services_action_sync(svc_action_t * op) + { + gboolean rc = TRUE; + ++ op->synchronous = true; + if (op == NULL) { + crm_trace("No operation to execute"); + return FALSE; +@@ -512,7 +514,7 @@ services_action_sync(svc_action_t * op) + #endif + } else if (op->standard && strcasecmp(op->standard, "systemd") == 0) { + #if SUPPORT_SYSTEMD +- rc = systemd_unit_exec(op, TRUE); ++ rc = systemd_unit_exec(op); + #endif + } else { + rc = services_os_action_execute(op, TRUE); +diff --git a/lib/services/systemd.c b/lib/services/systemd.c +index e81d178..c967430 100644 +--- a/lib/services/systemd.c ++++ b/lib/services/systemd.c +@@ -35,6 +35,9 @@ + /* + /usr/share/dbus-1/interfaces/org.freedesktop.systemd1.Manager.xml + */ ++gboolean ++systemd_unit_exec_with_unit(svc_action_t * op, const char *unit); ++ + + struct unit_info { + const char *id; +@@ -49,6 +52,15 @@ struct unit_info { + const char *job_path; + }; + ++struct pcmk_dbus_data ++{ ++ char *name; ++ char *unit; ++ DBusError error; ++ svc_action_t *op; ++ void (*callback)(DBusMessage *reply, svc_action_t *op); ++}; ++ + static DBusMessage *systemd_new_method(const char *iface, const char *method) + { + crm_trace("Calling: %s on %s", method, iface); +@@ -101,6 +113,7 @@ systemd_service_name(const char *name) + static bool + systemd_daemon_reload(void) + { ++ /* TODO: Make this asynchronous */ + const char *method = "Reload"; + DBusMessage *reply = NULL; + DBusMessage *msg = systemd_new_method(BUS_NAME".Manager", method); +@@ -114,21 +127,55 @@ systemd_daemon_reload(void) + return TRUE; + } + +-static gboolean +-systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) ++static const char * ++systemd_loadunit_result(DBusMessage *reply, svc_action_t * op) ++{ ++ const char *path = NULL; ++ ++ if(pcmk_dbus_find_error("LoadUnit", (void*)&path, reply, NULL)) { ++ if(op) { ++ crm_warn("No unit found for %s", op->rsc); ++ } ++ ++ } else if(pcmk_dbus_type_check(reply, NULL, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { ++ dbus_message_get_args (reply, NULL, ++ DBUS_TYPE_OBJECT_PATH, &path, ++ DBUS_TYPE_INVALID); ++ } ++ ++ if(op) { ++ systemd_unit_exec_with_unit(op, path); ++ } ++ ++ return path; ++} ++ ++ ++static void ++systemd_loadunit_cb(DBusPendingCall *pending, void *user_data) ++{ ++ DBusMessage *reply = NULL; ++ ++ if(pending) { ++ reply = dbus_pending_call_steal_reply(pending); ++ } ++ ++ systemd_loadunit_result(reply, user_data); ++ ++ if(reply) { ++ dbus_message_unref(reply); ++ } ++} ++ ++static char * ++systemd_unit_by_name(const gchar * arg_name, svc_action_t *op) + { + DBusMessage *msg; + DBusMessage *reply = NULL; +- const char *method = "GetUnit"; + char *name = NULL; +- DBusError error; + + /* +- <method name="GetUnit"> +- <arg name="name" type="s" direction="in"/> +- <arg name="unit" type="o" direction="out"/> +- </method> +- ++ Equivalent to GetUnit if its already loaded + <method name="LoadUnit"> + <arg name="name" type="s" direction="in"/> + <arg name="unit" type="o" direction="out"/> +@@ -139,51 +186,34 @@ systemd_unit_by_name(const gchar * arg_name, gchar ** out_unit) + return FALSE; + } + +- name = systemd_service_name(arg_name); ++ msg = systemd_new_method(BUS_NAME".Manager", "LoadUnit"); ++ CRM_ASSERT(msg != NULL); + +- while(TRUE) { +- msg = systemd_new_method(BUS_NAME".Manager", method); +- CRM_ASSERT(msg != NULL); ++ name = systemd_service_name(arg_name); ++ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)); ++ free(name); + +- CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)); ++ if(op == NULL || op->synchronous) { ++ const char *unit = NULL; ++ char *munit = NULL; ++ DBusError error; + + dbus_error_init(&error); + reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); + dbus_message_unref(msg); + +- if(error.name) { +- crm_info("Call to %s failed: %s", method, error.name); +- +- } else if(pcmk_dbus_type_check(reply, NULL, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { +- if(out_unit) { +- char *path = NULL; +- +- dbus_message_get_args (reply, NULL, +- DBUS_TYPE_OBJECT_PATH, &path, +- DBUS_TYPE_INVALID); +- +- *out_unit = strdup(path); +- } +- dbus_message_unref(reply); +- free(name); +- return TRUE; ++ unit = systemd_loadunit_result(reply, op); ++ if(unit) { ++ munit = strdup(unit); + } +- +- if(strcmp(method, "LoadUnit") != 0) { +- method = "LoadUnit"; +- crm_debug("Cannot find %s, reloading the systemd manager configuration", name); +- systemd_daemon_reload(); +- if(reply) { +- dbus_message_unref(reply); +- reply = NULL; +- } +- +- } else { +- free(name); +- return FALSE; ++ if(reply) { ++ dbus_message_unref(reply); + } ++ return munit; + } +- return FALSE; ++ ++ pcmk_dbus_send(msg, systemd_proxy, systemd_loadunit_cb, op); ++ return NULL; + } + + GList * +@@ -220,6 +250,10 @@ systemd_unit_listall(void) + crm_err("Call to %s failed: %s", method, error.name); + return NULL; + ++ } else if (reply == NULL) { ++ crm_err("Call to %s failed: Message has no reply", method); ++ return NULL; ++ + } else if (!dbus_message_iter_init(reply, &args)) { + crm_err("Call to %s failed: Message has no arguments", method); + dbus_message_unref(reply); +@@ -269,21 +303,27 @@ systemd_unit_listall(void) + gboolean + systemd_unit_exists(const char *name) + { +- return systemd_unit_by_name(name, NULL); ++ /* Note: Makes a blocking dbus calls ++ * Used by resources_find_service_class() when resource class=service ++ */ ++ if(systemd_unit_by_name(name, NULL)) { ++ return TRUE; ++ } ++ return FALSE; + } + + static char * + systemd_unit_metadata(const char *name) + { +- char *path = NULL; + char *meta = NULL; + char *desc = NULL; ++ char *path = systemd_unit_by_name(name, NULL); + +- if (systemd_unit_by_name(name, &path)) { +- CRM_ASSERT(path); +- desc = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, path, BUS_NAME ".Unit", "Description"); ++ 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); + } else { +- desc = g_strdup_printf("systemd unit file for %s", name); ++ desc = g_strdup_printf("Systemd unit file for %s", name); + } + + meta = g_strdup_printf("<?xml version=\"1.0\"?>\n" +@@ -335,24 +375,15 @@ systemd_mask_error(svc_action_t *op, const char *error) + } + + static void +-systemd_async_dispatch(DBusPendingCall *pending, void *user_data) ++systemd_exec_result(DBusMessage *reply, svc_action_t *op) + { + DBusError error; +- DBusMessage *reply = NULL; +- svc_action_t *op = user_data; + +- dbus_error_init(&error); +- if(pending) { +- reply = dbus_pending_call_steal_reply(pending); +- } +- if(reply == NULL) { +- crm_err("No reply for %s action on %s", op->action, op->rsc); +- +- } else if(pcmk_dbus_find_error(op->action, pending, reply, &error)) { ++ if(pcmk_dbus_find_error(op->action, (void*)&error, reply, &error)) { + + /* ignore "already started" or "not running" errors */ + if (!systemd_mask_error(op, error.name)) { +- crm_err("%s for %s: %s", op->action, op->rsc, error.message); ++ crm_err("Could not issue %s for %s: %s (%s)", op->action, op->rsc, error.message); + } + + } else { +@@ -372,6 +403,21 @@ systemd_async_dispatch(DBusPendingCall *pending, void *user_data) + } + + operation_finalize(op); ++} ++ ++static void ++systemd_async_dispatch(DBusPendingCall *pending, void *user_data) ++{ ++ DBusError error; ++ DBusMessage *reply = NULL; ++ svc_action_t *op = user_data; ++ ++ dbus_error_init(&error); ++ if(pending) { ++ reply = dbus_pending_call_steal_reply(pending); ++ } ++ ++ systemd_exec_result(reply, op); + + if(pending) { + dbus_pending_call_unref(pending); +@@ -383,61 +429,56 @@ systemd_async_dispatch(DBusPendingCall *pending, void *user_data) + + #define SYSTEMD_OVERRIDE_ROOT "/run/systemd/system/" + ++static void ++systemd_unit_check(const char *name, const char *state, void *userdata) ++{ ++ svc_action_t * op = userdata; ++ ++ CRM_ASSERT(state != NULL); ++ ++ if (g_strcmp0(state, "active") == 0) { ++ op->rc = PCMK_OCF_OK; ++ } else if (g_strcmp0(state, "activating") == 0) { ++ op->rc = PCMK_OCF_PENDING; ++ } else { ++ op->rc = PCMK_OCF_NOT_RUNNING; ++ } ++ ++ if (op->synchronous == FALSE) { ++ operation_finalize(op); ++ } ++} ++ + gboolean +-systemd_unit_exec(svc_action_t * op, gboolean synchronous) ++systemd_unit_exec_with_unit(svc_action_t * op, const char *unit) + { +- DBusError error; +- char *unit = NULL; +- const char *replace_s = "replace"; +- gboolean pass = FALSE; + const char *method = op->action; +- char *name = systemd_service_name(op->agent); + DBusMessage *msg = NULL; + DBusMessage *reply = NULL; + +- dbus_error_init(&error); +- op->rc = PCMK_OCF_UNKNOWN_ERROR; +- CRM_ASSERT(systemd_init()); +- +- crm_debug("Performing %ssynchronous %s op on systemd unit %s named '%s'", +- synchronous ? "" : "a", op->action, op->agent, op->rsc); +- +- if (safe_str_eq(op->action, "meta-data")) { +- op->stdout_data = systemd_unit_metadata(op->agent); +- op->rc = PCMK_OCF_OK; +- goto cleanup; +- } ++ CRM_ASSERT(unit); + +- pass = systemd_unit_by_name(op->agent, &unit); +- if (pass == FALSE) { ++ if (unit == NULL) { + crm_debug("Could not obtain unit named '%s'", op->agent); +-#if 0 +- if (error && strstr(error->message, "systemd1.NoSuchUnit")) { +- op->rc = PCMK_OCF_NOT_INSTALLED; +- op->status = PCMK_LRM_OP_NOT_INSTALLED; +- } +-#endif ++ op->rc = PCMK_OCF_NOT_INSTALLED; ++ op->status = PCMK_LRM_OP_NOT_INSTALLED; + goto cleanup; + } + + 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"); +- +- if (g_strcmp0(state, "active") == 0) { +- op->rc = PCMK_OCF_OK; +- } else if (g_strcmp0(state, "activating") == 0) { +- op->rc = PCMK_OCF_PENDING; +- } else { +- op->rc = PCMK_OCF_NOT_RUNNING; ++ char *state = pcmk_dbus_get_property(systemd_proxy, BUS_NAME, unit, BUS_NAME ".Unit", "ActiveState", ++ op->synchronous?NULL:systemd_unit_check, op); ++ if (op->synchronous) { ++ systemd_unit_check("ActiveState", state, op); ++ free(state); ++ return op->rc == PCMK_OCF_OK; + } +- +- free(state); +- goto cleanup; ++ return TRUE; + + } else if (g_strcmp0(method, "start") == 0) { + FILE *file_strm = NULL; + char *override_dir = g_strdup_printf("%s/%s", SYSTEMD_OVERRIDE_ROOT, unit); +- char *override_file = g_strdup_printf("%s/50-pacemaker.conf", override_dir); ++ char *override_file = g_strdup_printf("%s/%s/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, unit); + + method = "StartUnit"; + crm_build_path(override_dir, 0755); +@@ -446,11 +487,11 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) + if (file_strm != NULL) { + int rc = fprintf(file_strm, "[Service]\nRestart=no"); + if (rc < 0) { +- crm_perror(LOG_ERR, "Cannot write to systemd override file %s: %s (%d)", override_file, pcmk_strerror(errno), errno); ++ crm_perror(LOG_ERR, "Cannot write to systemd override file %s", override_file); + } + + } else { +- crm_err("Cannot open systemd override file %s for writing: %s (%d)", override_file, pcmk_strerror(errno), errno); ++ crm_err("Cannot open systemd override file %s for writing", override_file); + } + + if (file_strm != NULL) { +@@ -471,6 +512,7 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) + + } else if (g_strcmp0(method, "restart") == 0) { + method = "RestartUnit"; ++ + } else { + op->rc = PCMK_OCF_UNIMPLEMENT_FEATURE; + goto cleanup; +@@ -482,54 +524,66 @@ systemd_unit_exec(svc_action_t * op, gboolean synchronous) + CRM_ASSERT(msg != NULL); + + /* (ss) */ +- CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)); +- CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &replace_s, DBUS_TYPE_INVALID)); ++ { ++ const char *replace_s = "replace"; ++ char *name = systemd_service_name(op->agent); ++ ++ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)); ++ CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_STRING, &replace_s, DBUS_TYPE_INVALID)); + +- if (synchronous == FALSE) { +- free(unit); + free(name); +- return pcmk_dbus_send(msg, systemd_proxy, systemd_async_dispatch, op); + } + +- dbus_error_init(&error); +- reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); +- +- if(error.name) { +- /* ignore "already started" or "not running" errors */ +- if(!systemd_mask_error(op, error.name)) { +- crm_err("Could not issue %s for %s: %s (%s)", method, op->rsc, error.name, unit); +- } +- goto cleanup; +- +- } else if(!pcmk_dbus_type_check(reply, NULL, DBUS_TYPE_OBJECT_PATH, __FUNCTION__, __LINE__)) { +- crm_warn("Call to %s passed but return type was unexpected", op->action); +- op->rc = PCMK_OCF_OK; ++ if (op->synchronous == FALSE) { ++ return pcmk_dbus_send(msg, systemd_proxy, systemd_async_dispatch, op); + + } else { +- const char *path = NULL; ++ DBusError error; + +- dbus_message_get_args (reply, NULL, +- DBUS_TYPE_OBJECT_PATH, &path, +- DBUS_TYPE_INVALID); +- crm_info("Call to %s passed: %s", op->action, path); +- op->rc = PCMK_OCF_OK; ++ reply = pcmk_dbus_send_recv(msg, systemd_proxy, &error); ++ systemd_exec_result(reply, op); ++ if(reply) { ++ dbus_message_unref(reply); ++ } + } + +- cleanup: +- free(unit); +- free(name); +- + if(msg) { + dbus_message_unref(msg); + } + +- if(reply) { +- dbus_message_unref(reply); ++ cleanup: ++ if (op->synchronous == FALSE) { ++ operation_finalize(op); ++ return TRUE; + } + +- if (synchronous == FALSE) { +- operation_finalize(op); ++ return op->rc == PCMK_OCF_OK; ++} ++ ++gboolean ++systemd_unit_exec(svc_action_t * op) ++{ ++ CRM_ASSERT(op); ++ CRM_ASSERT(systemd_init()); ++ op->rc = PCMK_OCF_UNKNOWN_ERROR; ++ crm_debug("Performing %ssynchronous %s op on systemd unit %s named '%s'", ++ op->synchronous ? "" : "a", op->action, op->agent, op->rsc); ++ ++ if (safe_str_eq(op->action, "meta-data")) { ++ /* TODO: See if we can teach the lrmd not to make these calls synchronously */ ++ op->stdout_data = systemd_unit_metadata(op->agent); ++ op->rc = PCMK_OCF_OK; ++ ++ if (op->synchronous == FALSE) { ++ operation_finalize(op); ++ } + return TRUE; + } ++ ++ systemd_unit_by_name(op->agent, op); ++ if (op->synchronous == FALSE) { ++ return TRUE; ++ } ++ + return op->rc == PCMK_OCF_OK; + } +diff --git a/lib/services/systemd.h b/lib/services/systemd.h +index 6e1b80b..c86bafe 100644 +--- a/lib/services/systemd.h ++++ b/lib/services/systemd.h +@@ -17,7 +17,7 @@ + */ + + G_GNUC_INTERNAL GList *systemd_unit_listall(void); +-G_GNUC_INTERNAL int systemd_unit_exec(svc_action_t * op, gboolean synchronous); ++G_GNUC_INTERNAL int systemd_unit_exec(svc_action_t * op); + G_GNUC_INTERNAL gboolean systemd_unit_exists(const gchar * name); + G_GNUC_INTERNAL gboolean systemd_unit_running(const gchar * name); + G_GNUC_INTERNAL void systemd_cleanup(void); +diff --git a/lib/services/upstart.c b/lib/services/upstart.c +index f47e8ff..4c7211d 100644 +--- a/lib/services/upstart.c ++++ b/lib/services/upstart.c +@@ -275,6 +275,10 @@ get_first_instance(const gchar * job) + crm_err("Call to %s failed: %s", method, error.name); + goto done; + ++ } else if(reply == NULL) { ++ crm_err("Call to %s failed: no reply", method); ++ goto done; ++ + } else if (!dbus_message_iter_init(reply, &args)) { + crm_err("Call to %s failed: Message has no arguments", method); + goto done; +@@ -304,31 +308,22 @@ get_first_instance(const gchar * job) + return instance; + } + +-gboolean +-upstart_job_running(const gchar * name) ++static void ++upstart_job_check(const char *name, const char *state, void *userdata) + { +- bool running = FALSE; +- char *job = NULL; +- +- if(upstart_job_by_name(name, &job)) { +- char *path = get_first_instance(job); ++ svc_action_t * op = userdata; + +- if (path) { +- char *state = pcmk_dbus_get_property( +- upstart_proxy, BUS_NAME, path, UPSTART_06_API ".Instance", "state"); +- +- crm_info("State of %s: %s", name, state); +- if (state) { +- running = !g_strcmp0(state, "running"); +- } +- free(state); +- } +- free(path); ++ if (state && g_strcmp0(state, "running") == 0) { ++ op->rc = PCMK_OCF_OK; ++ /* } else if (g_strcmp0(state, "activating") == 0) { */ ++ /* op->rc = PCMK_OCF_PENDING; */ ++ } else { ++ op->rc = PCMK_OCF_NOT_RUNNING; + } + +- free(job); +- crm_info("%s is%s running", name, running ? "" : " not"); +- return running; ++ if (op->synchronous == FALSE) { ++ operation_finalize(op); ++ } + } + + static char * +@@ -465,10 +460,24 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) + } + + if (safe_str_eq(op->action, "monitor") || safe_str_eq(action, "status")) { +- if (upstart_job_running(op->agent)) { +- op->rc = PCMK_OCF_OK; +- } else { +- op->rc = PCMK_OCF_NOT_RUNNING; ++ ++ char *path = get_first_instance(job); ++ ++ op->rc = PCMK_OCF_NOT_RUNNING; ++ if(path) { ++ char *state = pcmk_dbus_get_property( ++ upstart_proxy, BUS_NAME, path, UPSTART_06_API ".Instance", "state", ++ op->synchronous?NULL:upstart_job_check, op); ++ ++ free(job); ++ free(path); ++ ++ if(op->synchronous) { ++ upstart_job_check("state", state, op); ++ free(state); ++ return op->rc == PCMK_OCF_OK; ++ } ++ return TRUE; + } + goto cleanup; + +@@ -503,7 +512,7 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) + + CRM_LOG_ASSERT(dbus_message_append_args(msg, DBUS_TYPE_BOOLEAN, &arg_wait, DBUS_TYPE_INVALID)); + +- if (synchronous == FALSE) { ++ if (op->synchronous == FALSE) { + free(job); + return pcmk_dbus_send(msg, upstart_proxy, upstart_async_dispatch, op); + } +@@ -545,7 +554,7 @@ upstart_job_exec(svc_action_t * op, gboolean synchronous) + dbus_message_unref(reply); + } + +- if (synchronous == FALSE) { ++ if (op->synchronous == FALSE) { + operation_finalize(op); + return TRUE; + } +diff --git a/lrmd/lrmd.c b/lrmd/lrmd.c +index f3abfdb..7075b9f 100644 +--- a/lrmd/lrmd.c ++++ b/lrmd/lrmd.c +@@ -874,6 +874,12 @@ stonith_action_complete(lrmd_cmd_t * cmd, int rc) + if (cmd->lrmd_op_status == PCMK_LRM_OP_CANCELLED) { + recurring = 0; + /* do nothing */ ++ ++ } else if (rc == -ENODEV && safe_str_eq(cmd->action, "monitor")) { ++ /* Not registered == inactive */ ++ cmd->lrmd_op_status = PCMK_LRM_OP_DONE; ++ cmd->exec_rc = PCMK_OCF_NOT_RUNNING; ++ + } else if (rc) { + /* Attempt to map return codes to op status if possible */ + switch (rc) { +@@ -884,6 +890,7 @@ stonith_action_complete(lrmd_cmd_t * cmd, int rc) + cmd->lrmd_op_status = PCMK_LRM_OP_TIMEOUT; + break; + default: ++ /* TODO: This looks wrong. Status should be _DONE and exec_rc set to an error */ + cmd->lrmd_op_status = PCMK_LRM_OP_ERROR; + } + } else { +diff --git a/lrmd/regression.py.in b/lrmd/regression.py.in +index b6b6718..a9a32ef 100755 +--- a/lrmd/regression.py.in ++++ b/lrmd/regression.py.in +@@ -240,6 +240,13 @@ class Tests: + self.action_timeout = " -t 5000 " + if self.tls: + self.rsc_classes.remove("stonith") ++ if "systemd" in self.rsc_classes: ++ # the lrmd_dummy_daemon requires this, we are importing it ++ # here just to guarantee it is installed before allowing this ++ # script to run. Otherwise, running without this import being ++ # available will make all the systemd tests look like they fail, ++ # which is really scary looking. I'd rather see the import fail. ++ import systemd.daemon + + print "Testing "+repr(self.rsc_classes) + +diff --git a/mcp/pacemaker.combined.upstart.in b/mcp/pacemaker.combined.upstart.in +index 9540019..6301d10 100644 +--- a/mcp/pacemaker.combined.upstart.in ++++ b/mcp/pacemaker.combined.upstart.in +@@ -30,6 +30,9 @@ pre-start script + # give it time to fail. + sleep 2 + pidof corosync || { exit 1; } ++ ++ # if you use crm_mon, uncomment the line below. ++ #start crm_mon + end script + + post-start script +@@ -59,6 +62,9 @@ post-stop script + # and invalidate above "respawn" stanza. + #pidof crmd && killall -q -9 corosync + ++ # if you use crm_mon, uncomment the line below. ++ #stop crm_mon ++ + # if you use corosync-notifyd, uncomment the line below. + #stop corosync-notifyd || true + end script +diff --git a/pacemaker.spec.in b/pacemaker.spec.in +index bee6bfc..597fb3a 100644 +--- a/pacemaker.spec.in ++++ b/pacemaker.spec.in +@@ -283,11 +283,13 @@ make DESTDIR=%{buildroot} docdir=%{pcmk_docdir} V=1 install + mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig + mkdir -p ${RPM_BUILD_ROOT}%{_var}/lib/pacemaker/cores + install -m 644 mcp/pacemaker.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/pacemaker ++install -m 644 tools/crm_mon.sysconfig ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/crm_mon + + %if %{with upstart_job} + mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/init + install -m 644 mcp/pacemaker.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/pacemaker.conf + install -m 644 mcp/pacemaker.combined.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/pacemaker.combined.conf ++install -m 644 tools/crm_mon.upstart ${RPM_BUILD_ROOT}%{_sysconfdir}/init/crm_mon.conf + %endif + + # Scripts that should be executable +@@ -395,6 +397,7 @@ exit 0 + %exclude %{_datadir}/pacemaker/tests + + %config(noreplace) %{_sysconfdir}/sysconfig/pacemaker ++%config(noreplace) %{_sysconfdir}/sysconfig/crm_mon + %config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker + %{_sbindir}/pacemakerd + +@@ -451,6 +454,7 @@ exit 0 + %if %{with upstart_job} + %config(noreplace) %{_sysconfdir}/init/pacemaker.conf + %config(noreplace) %{_sysconfdir}/init/pacemaker.combined.conf ++%config(noreplace) %{_sysconfdir}/init/crm_mon.conf + %endif + + %files cli +diff --git a/pengine/allocate.c b/pengine/allocate.c +index f9f9f3c..8d02d9b 100644 +--- a/pengine/allocate.c ++++ b/pengine/allocate.c +@@ -1680,16 +1680,41 @@ apply_remote_node_ordering(pe_working_set_t *data_set) + action, + pe_order_preserve | pe_order_implies_then | pe_order_runnable_left, + data_set); +- + } else if (safe_str_eq(action->task, "stop")) { +- custom_action_order(action->rsc, +- NULL, +- action, +- remote_rsc, +- generate_op_key(remote_rsc->id, RSC_STOP, 0), +- NULL, +- pe_order_preserve | pe_order_implies_first, +- data_set); ++ gboolean after_start = FALSE; ++ ++ /* handle special case with baremetal remote where stop actions need to be ++ * ordered after the connection resource starts somewhere else. */ ++ if (is_baremetal_remote_node(action->node)) { ++ node_t *cluster_node = remote_rsc->running_on ? remote_rsc->running_on->data : NULL; ++ ++ /* if the current cluster node a baremetal connection resource ++ * is residing on is unclean, we can't process any operations on that ++ * remote node until after it starts somewhere else. */ ++ if (cluster_node && cluster_node->details->unclean == TRUE) { ++ after_start = TRUE; ++ } ++ } ++ ++ if (after_start) { ++ custom_action_order(remote_rsc, ++ generate_op_key(remote_rsc->id, RSC_START, 0), ++ NULL, ++ action->rsc, ++ NULL, ++ action, ++ pe_order_preserve | pe_order_implies_then | pe_order_runnable_left, ++ data_set); ++ } else { ++ custom_action_order(action->rsc, ++ NULL, ++ action, ++ remote_rsc, ++ generate_op_key(remote_rsc->id, RSC_STOP, 0), ++ NULL, ++ pe_order_preserve | pe_order_implies_first, ++ data_set); ++ } + } + } + } +diff --git a/pengine/regression.sh b/pengine/regression.sh +index 5f98215..bdc7d3a 100755 +--- a/pengine/regression.sh ++++ b/pengine/regression.sh +@@ -762,9 +762,11 @@ echo "" + do_test remote-startup-probes "Baremetal remote-node startup probes" + do_test remote-startup "Startup a newly discovered remote-nodes with no status." + do_test remote-fence-unclean "Fence unclean baremetal remote-node" ++do_test remote-fence-unclean2 "Fence baremetal remote-node after cluster node fails and connection can not be recovered" + do_test remote-move "Move remote-node connection resource" + do_test remote-disable "Disable a baremetal remote-node" + do_test remote-orphaned "Properly shutdown orphaned connection resource" ++do_test remote-recover "Recover connection resource after cluster-node fails." + do_test remote-stale-node-entry "Make sure we properly handle leftover remote-node entries in the node section" + echo "" + test_results +diff --git a/pengine/test10/remote-fence-unclean2.dot b/pengine/test10/remote-fence-unclean2.dot +new file mode 100644 +index 0000000..6cff564 +--- /dev/null ++++ b/pengine/test10/remote-fence-unclean2.dot +@@ -0,0 +1,10 @@ ++digraph "g" { ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"fake_stop_0 rhel7-alt4" -> "all_stopped" [ style = bold] ++"fake_stop_0 rhel7-alt4" [ style=bold color="green" fontcolor="orange"] ++"stonith 'reboot' rhel7-alt4" -> "fake_stop_0 rhel7-alt4" [ style = bold] ++"stonith 'reboot' rhel7-alt4" -> "stonith_complete" [ style = bold] ++"stonith 'reboot' rhel7-alt4" [ style=bold color="green" fontcolor="black"] ++"stonith_complete" -> "all_stopped" [ style = bold] ++"stonith_complete" [ style=bold color="green" fontcolor="orange"] ++} +diff --git a/pengine/test10/remote-fence-unclean2.exp b/pengine/test10/remote-fence-unclean2.exp +new file mode 100644 +index 0000000..e58b617 +--- /dev/null ++++ b/pengine/test10/remote-fence-unclean2.exp +@@ -0,0 +1,49 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <pseudo_event id="6" operation="stop" operation_key="fake_stop_0"> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="8" operation="stonith" operation_key="stonith-rhel7-alt4-reboot" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <crm_event id="8" operation="stonith" operation_key="stonith-rhel7-alt4-reboot" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4"> ++ <attributes CRM_meta_last_failure_fake="1411503989" CRM_meta_on_node="rhel7-alt4" CRM_meta_on_node_uuid="rhel7-alt4" CRM_meta_probe_complete="true" CRM_meta_stonith_action="reboot" /> ++ </crm_event> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <pseudo_event id="7" operation="stonith_complete" operation_key="stonith_complete"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <crm_event id="8" operation="stonith" operation_key="stonith-rhel7-alt4-reboot" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <pseudo_event id="6" operation="stop" operation_key="fake_stop_0"/> ++ </trigger> ++ <trigger> ++ <pseudo_event id="7" operation="stonith_complete" operation_key="stonith_complete"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/remote-fence-unclean2.scores b/pengine/test10/remote-fence-unclean2.scores +new file mode 100644 +index 0000000..10fc7fd +--- /dev/null ++++ b/pengine/test10/remote-fence-unclean2.scores +@@ -0,0 +1,13 @@ ++Allocation scores: ++native_color: fake allocation score on rhel7-alt1: 0 ++native_color: fake allocation score on rhel7-alt2: 0 ++native_color: fake allocation score on rhel7-alt3: 0 ++native_color: fake allocation score on rhel7-alt4: INFINITY ++native_color: rhel7-alt4 allocation score on rhel7-alt1: 0 ++native_color: rhel7-alt4 allocation score on rhel7-alt2: 0 ++native_color: rhel7-alt4 allocation score on rhel7-alt3: 0 ++native_color: rhel7-alt4 allocation score on rhel7-alt4: -INFINITY ++native_color: shooter allocation score on rhel7-alt1: 0 ++native_color: shooter allocation score on rhel7-alt2: 0 ++native_color: shooter allocation score on rhel7-alt3: 0 ++native_color: shooter allocation score on rhel7-alt4: -INFINITY +diff --git a/pengine/test10/remote-fence-unclean2.summary b/pengine/test10/remote-fence-unclean2.summary +new file mode 100644 +index 0000000..bfaf77b +--- /dev/null ++++ b/pengine/test10/remote-fence-unclean2.summary +@@ -0,0 +1,30 @@ ++ ++Current cluster status: ++Node rhel7-alt1 (1): standby ++Node rhel7-alt2 (2): standby ++RemoteNode rhel7-alt4: UNCLEAN (offline) ++OFFLINE: [ rhel7-alt3 ] ++ ++ shooter (stonith:fence_xvm): Stopped ++ rhel7-alt4 (ocf::pacemaker:remote): Stopped ++ fake (ocf::heartbeat:Dummy): Started rhel7-alt4 ++ ++Transition Summary: ++ * Stop fake (rhel7-alt4) ++ ++Executing cluster transition: ++ * Fencing rhel7-alt4 (reboot) ++ * Pseudo action: stonith_complete ++ * Pseudo action: fake_stop_0 ++ * Pseudo action: all_stopped ++ ++Revised cluster status: ++Node rhel7-alt1 (1): standby ++Node rhel7-alt2 (2): standby ++OFFLINE: [ rhel7-alt3 ] ++RemoteOFFLINE: [ rhel7-alt4 ] ++ ++ shooter (stonith:fence_xvm): Stopped ++ rhel7-alt4 (ocf::pacemaker:remote): Stopped ++ fake (ocf::heartbeat:Dummy): Stopped ++ +diff --git a/pengine/test10/remote-fence-unclean2.xml b/pengine/test10/remote-fence-unclean2.xml +new file mode 100644 +index 0000000..78fc4f1 +--- /dev/null ++++ b/pengine/test10/remote-fence-unclean2.xml +@@ -0,0 +1,115 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.1" epoch="13" num_updates="8" admin_epoch="0" cib-last-written="Tue Sep 23 16:28:22 2014" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-6da3f72"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1411504087"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-alt1"> ++ <instance_attributes id="nodes-1"> ++ <nvpair id="nodes-1-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="2" uname="rhel7-alt2"> ++ <instance_attributes id="nodes-2"> ++ <nvpair id="nodes-2-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="3" uname="rhel7-alt3"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="rhel7-alt4" provider="pacemaker" type="remote"> ++ <instance_attributes id="rhel7-alt4-instance_attributes"/> ++ <operations> ++ <op id="rhel7-alt4-start-timeout-15" interval="0s" name="start" timeout="15"/> ++ <op id="rhel7-alt4-stop-timeout-15" interval="0s" name="stop" timeout="15"/> ++ <op id="rhel7-alt4-monitor-timeout-15" interval="60s" name="monitor" timeout="15"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="fake" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="fake-instance_attributes"/> ++ <operations> ++ <op id="fake-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="fake-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="fake-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ </resources> ++ <constraints> ++ <rsc_location id="location-fake-rhel7-alt4-INFINITY" node="rhel7-alt4" rsc="fake" score="INFINITY"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="2" uname="rhel7-alt2" in_ccm="true" crmd="online" crm-debug-origin="post_cache_update" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:8:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;11:8:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="14" rc-code="0" op-status="0" interval="0" last-run="1411503701" last-rc-change="1411503701" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt2"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-alt4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-alt4_last_0" operation_key="rhel7-alt4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:5:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;8:5:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt2"/> ++ </lrm_resource> ++ <lrm_resource id="fake" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="fake_last_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="8:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;8:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="19" rc-code="7" op-status="0" interval="0" last-run="1411504086" last-rc-change="1411504086" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="rhel7-alt1" in_ccm="true" crmd="online" crm-debug-origin="post_cache_update" join="member" expected="member"> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="11:23:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;11:23:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1411504102" last-rc-change="1411504102" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="16:15:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;16:15:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1411504079" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-alt1"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-alt4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-alt4_last_0" operation_key="rhel7-alt4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="9:15:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;9:15:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt1"/> ++ </lrm_resource> ++ <lrm_resource id="fake" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="fake_last_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="8:18:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;8:18:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="17" rc-code="7" op-status="0" interval="0" last-run="1411504087" last-rc-change="1411504087" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="3" uname="rhel7-alt3" in_ccm="false" crmd="offline" crm-debug-origin="send_stonith_update" join="down" expected="down"/> ++ <node_state id="rhel7-alt4" remote_node="true" uname="rhel7-alt4" crm-debug-origin="post_cache_update"> ++ <lrm id="rhel7-alt4"> ++ <lrm_resources> ++ <lrm_resource id="fake" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="fake_last_failure_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="34" rc-code="0" op-status="0" interval="0" last-run="1411504087" last-rc-change="1411504087" exec-time="29" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="fake_last_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="34" rc-code="0" op-status="0" interval="0" last-run="1411504087" last-rc-change="1411504087" exec-time="29" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="fake_monitor_10000" operation_key="fake_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="16:22:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;16:22:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="35" rc-code="0" op-status="0" interval="10000" last-rc-change="1411504087" exec-time="29" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-alt3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="rhel7-alt4"> ++ <instance_attributes id="status-rhel7-alt4"> ++ <nvpair id="status-rhel7-alt4-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-rhel7-alt4-last-failure-fake" name="last-failure-fake" value="1411503989"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> +diff --git a/pengine/test10/remote-recover.dot b/pengine/test10/remote-recover.dot +new file mode 100644 +index 0000000..1da6a7b +--- /dev/null ++++ b/pengine/test10/remote-recover.dot +@@ -0,0 +1,17 @@ ++ digraph "g" { ++"all_stopped" [ style=bold color="green" fontcolor="orange"] ++"fake_monitor_10000 rhel7-alt4" [ style=bold color="green" fontcolor="black"] ++"fake_start_0 rhel7-alt4" -> "fake_monitor_10000 rhel7-alt4" [ style = bold] ++"fake_start_0 rhel7-alt4" [ style=bold color="green" fontcolor="black"] ++"fake_stop_0 rhel7-alt4" -> "all_stopped" [ style = bold] ++"fake_stop_0 rhel7-alt4" -> "fake_start_0 rhel7-alt4" [ style = bold] ++"fake_stop_0 rhel7-alt4" [ style=bold color="green" fontcolor="black"] ++"rhel7-alt4_monitor_60000 rhel7-alt1" [ style=bold color="green" fontcolor="black"] ++"rhel7-alt4_start_0 rhel7-alt1" -> "fake_monitor_10000 rhel7-alt4" [ style = bold] ++"rhel7-alt4_start_0 rhel7-alt1" -> "fake_start_0 rhel7-alt4" [ style = bold] ++"rhel7-alt4_start_0 rhel7-alt1" -> "rhel7-alt4_monitor_60000 rhel7-alt1" [ style = bold] ++"rhel7-alt4_start_0 rhel7-alt1" [ style=bold color="green" fontcolor="black"] ++"shooter_monitor_60000 rhel7-alt1" [ style=bold color="green" fontcolor="black"] ++"shooter_start_0 rhel7-alt1" -> "shooter_monitor_60000 rhel7-alt1" [ style = bold] ++"shooter_start_0 rhel7-alt1" [ style=bold color="green" fontcolor="black"] ++} +diff --git a/pengine/test10/remote-recover.exp b/pengine/test10/remote-recover.exp +new file mode 100644 +index 0000000..37e4f71 +--- /dev/null ++++ b/pengine/test10/remote-recover.exp +@@ -0,0 +1,99 @@ ++<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" transition_id="0"> ++ <synapse id="0"> ++ <action_set> ++ <rsc_op id="8" operation="monitor" operation_key="shooter_monitor_60000" on_node="rhel7-alt1" on_node_uuid="1"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="7" operation="start" operation_key="shooter_start_0" on_node="rhel7-alt1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="1"> ++ <action_set> ++ <rsc_op id="7" operation="start" operation_key="shooter_start_0" on_node="rhel7-alt1" on_node_uuid="1"> ++ <primitive id="shooter" class="stonith" type="fence_xvm"/> ++ <attributes CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="2"> ++ <action_set> ++ <rsc_op id="10" operation="monitor" operation_key="rhel7-alt4_monitor_60000" on_node="rhel7-alt1" on_node_uuid="1"> ++ <primitive id="rhel7-alt4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_interval="60000" CRM_meta_name="monitor" CRM_meta_timeout="15000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="9" operation="start" operation_key="rhel7-alt4_start_0" on_node="rhel7-alt1" on_node_uuid="1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="3"> ++ <action_set> ++ <rsc_op id="9" operation="start" operation_key="rhel7-alt4_start_0" on_node="rhel7-alt1" on_node_uuid="1"> ++ <primitive id="rhel7-alt4" class="ocf" provider="pacemaker" type="remote"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="15000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="4"> ++ <action_set> ++ <rsc_op id="13" operation="monitor" operation_key="fake_monitor_10000" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4" router_node="rhel7-alt1"> ++ <primitive id="fake" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="9" operation="start" operation_key="rhel7-alt4_start_0" on_node="rhel7-alt1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="12" operation="start" operation_key="fake_start_0" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4" router_node="rhel7-alt1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="5"> ++ <action_set> ++ <rsc_op id="12" operation="start" operation_key="fake_start_0" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4" router_node="rhel7-alt1"> ++ <primitive id="fake" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="start" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="9" operation="start" operation_key="rhel7-alt4_start_0" on_node="rhel7-alt1" on_node_uuid="1"/> ++ </trigger> ++ <trigger> ++ <rsc_op id="11" operation="stop" operation_key="fake_stop_0" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4" router_node="rhel7-alt1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++ <synapse id="6"> ++ <action_set> ++ <rsc_op id="11" operation="stop" operation_key="fake_stop_0" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4" router_node="rhel7-alt1"> ++ <primitive id="fake" class="ocf" provider="heartbeat" type="Dummy"/> ++ <attributes CRM_meta_name="stop" CRM_meta_timeout="20000" /> ++ </rsc_op> ++ </action_set> ++ <inputs/> ++ </synapse> ++ <synapse id="7"> ++ <action_set> ++ <pseudo_event id="1" operation="all_stopped" operation_key="all_stopped"> ++ <attributes /> ++ </pseudo_event> ++ </action_set> ++ <inputs> ++ <trigger> ++ <rsc_op id="11" operation="stop" operation_key="fake_stop_0" on_node="rhel7-alt4" on_node_uuid="rhel7-alt4" router_node="rhel7-alt1"/> ++ </trigger> ++ </inputs> ++ </synapse> ++</transition_graph> +diff --git a/pengine/test10/remote-recover.scores b/pengine/test10/remote-recover.scores +new file mode 100644 +index 0000000..10fc7fd +--- /dev/null ++++ b/pengine/test10/remote-recover.scores +@@ -0,0 +1,13 @@ ++Allocation scores: ++native_color: fake allocation score on rhel7-alt1: 0 ++native_color: fake allocation score on rhel7-alt2: 0 ++native_color: fake allocation score on rhel7-alt3: 0 ++native_color: fake allocation score on rhel7-alt4: INFINITY ++native_color: rhel7-alt4 allocation score on rhel7-alt1: 0 ++native_color: rhel7-alt4 allocation score on rhel7-alt2: 0 ++native_color: rhel7-alt4 allocation score on rhel7-alt3: 0 ++native_color: rhel7-alt4 allocation score on rhel7-alt4: -INFINITY ++native_color: shooter allocation score on rhel7-alt1: 0 ++native_color: shooter allocation score on rhel7-alt2: 0 ++native_color: shooter allocation score on rhel7-alt3: 0 ++native_color: shooter allocation score on rhel7-alt4: -INFINITY +diff --git a/pengine/test10/remote-recover.summary b/pengine/test10/remote-recover.summary +new file mode 100644 +index 0000000..8fd7480 +--- /dev/null ++++ b/pengine/test10/remote-recover.summary +@@ -0,0 +1,36 @@ ++ ++Current cluster status: ++Node rhel7-alt2 (2): standby ++RemoteNode rhel7-alt4: UNCLEAN (offline) ++Online: [ rhel7-alt1 ] ++OFFLINE: [ rhel7-alt3 ] ++ ++ shooter (stonith:fence_xvm): Stopped ++ rhel7-alt4 (ocf::pacemaker:remote): Stopped ++ fake (ocf::heartbeat:Dummy): Started rhel7-alt4 ++ ++Transition Summary: ++ * Start shooter (rhel7-alt1) ++ * Start rhel7-alt4 (rhel7-alt1) ++ * Restart fake (Started rhel7-alt4) ++ ++Executing cluster transition: ++ * Resource action: shooter start on rhel7-alt1 ++ * Resource action: rhel7-alt4 start on rhel7-alt1 ++ * Resource action: fake stop on rhel7-alt4 ++ * Pseudo action: all_stopped ++ * Resource action: shooter monitor=60000 on rhel7-alt1 ++ * Resource action: rhel7-alt4 monitor=60000 on rhel7-alt1 ++ * Resource action: fake start on rhel7-alt4 ++ * Resource action: fake monitor=10000 on rhel7-alt4 ++ ++Revised cluster status: ++Node rhel7-alt2 (2): standby ++Online: [ rhel7-alt1 ] ++OFFLINE: [ rhel7-alt3 ] ++RemoteOnline: [ rhel7-alt4 ] ++ ++ shooter (stonith:fence_xvm): Started rhel7-alt1 ++ rhel7-alt4 (ocf::pacemaker:remote): Started rhel7-alt1 ++ fake (ocf::heartbeat:Dummy): Started rhel7-alt4 ++ +diff --git a/pengine/test10/remote-recover.xml b/pengine/test10/remote-recover.xml +new file mode 100644 +index 0000000..1a83dd9 +--- /dev/null ++++ b/pengine/test10/remote-recover.xml +@@ -0,0 +1,114 @@ ++<cib crm_feature_set="3.0.9" validate-with="pacemaker-2.1" epoch="13" num_updates="8" admin_epoch="0" cib-last-written="Tue Sep 23 16:28:22 2014" have-quorum="1" dc-uuid="2"> ++ <configuration> ++ <crm_config> ++ <cluster_property_set id="cib-bootstrap-options"> ++ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.12-6da3f72"/> ++ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="corosync"/> ++ <nvpair id="cib-bootstrap-options-cluster-name" name="cluster-name" value="phd"/> ++ <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1411504087"/> ++ </cluster_property_set> ++ </crm_config> ++ <nodes> ++ <node id="1" uname="rhel7-alt1"> ++ <instance_attributes id="nodes-1"> ++ </instance_attributes> ++ </node> ++ <node id="2" uname="rhel7-alt2"> ++ <instance_attributes id="nodes-2"> ++ <nvpair id="nodes-2-standby" name="standby" value="on"/> ++ </instance_attributes> ++ </node> ++ <node id="3" uname="rhel7-alt3"/> ++ </nodes> ++ <resources> ++ <primitive class="stonith" id="shooter" type="fence_xvm"> ++ <instance_attributes id="shooter-instance_attributes"/> ++ <operations> ++ <op id="shooter-monitor-interval-60s" interval="60s" name="monitor"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="rhel7-alt4" provider="pacemaker" type="remote"> ++ <instance_attributes id="rhel7-alt4-instance_attributes"/> ++ <operations> ++ <op id="rhel7-alt4-start-timeout-15" interval="0s" name="start" timeout="15"/> ++ <op id="rhel7-alt4-stop-timeout-15" interval="0s" name="stop" timeout="15"/> ++ <op id="rhel7-alt4-monitor-timeout-15" interval="60s" name="monitor" timeout="15"/> ++ </operations> ++ </primitive> ++ <primitive class="ocf" id="fake" provider="heartbeat" type="Dummy"> ++ <instance_attributes id="fake-instance_attributes"/> ++ <operations> ++ <op id="fake-start-timeout-20" interval="0s" name="start" timeout="20"/> ++ <op id="fake-stop-timeout-20" interval="0s" name="stop" timeout="20"/> ++ <op id="fake-monitor-interval-10" interval="10" name="monitor" timeout="20"/> ++ </operations> ++ </primitive> ++ </resources> ++ <constraints> ++ <rsc_location id="location-fake-rhel7-alt4-INFINITY" node="rhel7-alt4" rsc="fake" score="INFINITY"/> ++ </constraints> ++ </configuration> ++ <status> ++ <node_state id="2" uname="rhel7-alt2" in_ccm="true" crmd="online" crm-debug-origin="post_cache_update" join="member" expected="member"> ++ <transient_attributes id="2"> ++ <instance_attributes id="status-2"> ++ <nvpair id="status-2-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-2-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ <lrm id="2"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="11:8:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;11:8:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="14" rc-code="0" op-status="0" interval="0" last-run="1411503701" last-rc-change="1411503701" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt2"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-alt4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-alt4_last_0" operation_key="rhel7-alt4_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.9" transition-key="8:5:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;8:5:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt2"/> ++ </lrm_resource> ++ <lrm_resource id="fake" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="fake_last_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="8:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;8:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="19" rc-code="7" op-status="0" interval="0" last-run="1411504086" last-rc-change="1411504086" exec-time="34" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt2" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ </node_state> ++ <node_state id="1" uname="rhel7-alt1" in_ccm="true" crmd="online" crm-debug-origin="post_cache_update" join="member" expected="member"> ++ <lrm id="1"> ++ <lrm_resources> ++ <lrm_resource id="shooter" type="fence_xvm" class="stonith"> ++ <lrm_rsc_op id="shooter_last_0" operation_key="shooter_stop_0" operation="stop" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="11:23:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;11:23:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="19" rc-code="0" op-status="0" interval="0" last-run="1411504102" last-rc-change="1411504102" exec-time="1" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt1"/> ++ <lrm_rsc_op id="shooter_monitor_60000" operation_key="shooter_monitor_60000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="16:15:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;16:15:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="12" rc-code="0" op-status="0" interval="60000" last-rc-change="1411504079" exec-time="10" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-alt1"/> ++ </lrm_resource> ++ <lrm_resource id="rhel7-alt4" type="remote" class="ocf" provider="pacemaker"> ++ <lrm_rsc_op id="rhel7-alt4_last_0" operation_key="rhel7-alt4_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="9:15:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;9:15:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="1" rc-code="7" op-status="0" interval="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt1"/> ++ </lrm_resource> ++ <lrm_resource id="fake" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="fake_last_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="8:18:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:7;8:18:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="17" rc-code="7" op-status="0" interval="0" last-run="1411504087" last-rc-change="1411504087" exec-time="29" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt1" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="1"> ++ <instance_attributes id="status-1"> ++ <nvpair id="status-1-shutdown" name="shutdown" value="0"/> ++ <nvpair id="status-1-probe_complete" name="probe_complete" value="true"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ <node_state id="3" uname="rhel7-alt3" in_ccm="false" crmd="offline" crm-debug-origin="send_stonith_update" join="down" expected="down"/> ++ <node_state id="rhel7-alt4" remote_node="true" uname="rhel7-alt4" crm-debug-origin="post_cache_update"> ++ <lrm id="rhel7-alt4"> ++ <lrm_resources> ++ <lrm_resource id="fake" type="Dummy" class="ocf" provider="heartbeat"> ++ <lrm_rsc_op id="fake_last_failure_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="34" rc-code="0" op-status="0" interval="0" last-run="1411504087" last-rc-change="1411504087" exec-time="29" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="fake_last_0" operation_key="fake_monitor_0" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;12:21:7:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="34" rc-code="0" op-status="0" interval="0" last-run="1411504087" last-rc-change="1411504087" exec-time="29" queue-time="1" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8" on_node="rhel7-alt3" op-force-restart=" state " op-restart-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> ++ <lrm_rsc_op id="fake_monitor_10000" operation_key="fake_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.9" transition-key="16:22:0:68028369-58a1-453d-bcdd-c1d1ade99959" transition-magic="0:0;16:22:0:68028369-58a1-453d-bcdd-c1d1ade99959" call-id="35" rc-code="0" op-status="0" interval="10000" last-rc-change="1411504087" exec-time="29" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd" on_node="rhel7-alt3"/> ++ </lrm_resource> ++ </lrm_resources> ++ </lrm> ++ <transient_attributes id="rhel7-alt4"> ++ <instance_attributes id="status-rhel7-alt4"> ++ <nvpair id="status-rhel7-alt4-probe_complete" name="probe_complete" value="true"/> ++ <nvpair id="status-rhel7-alt4-last-failure-fake" name="last-failure-fake" value="1411503989"/> ++ </instance_attributes> ++ </transient_attributes> ++ </node_state> ++ </status> ++</cib> +diff --git a/tools/crm_attribute.c b/tools/crm_attribute.c +index 60d39b6..c37b096 100644 +--- a/tools/crm_attribute.c ++++ b/tools/crm_attribute.c +@@ -235,6 +235,7 @@ main(int argc, char **argv) + /* we're updating cluster options - dont populate dest_node */ + type = XML_CIB_TAG_CRMCONFIG; + ++ } else if (safe_str_eq(type, XML_CIB_TAG_CRMCONFIG)) { + } else if (safe_str_neq(type, XML_CIB_TAG_TICKETS)) { + if (dest_uname == NULL) { + dest_uname = get_node_name(0); +diff --git a/tools/crm_mon.upstart.in b/tools/crm_mon.upstart.in +new file mode 100644 +index 0000000..ef0fe7a +--- /dev/null ++++ b/tools/crm_mon.upstart.in +@@ -0,0 +1,39 @@ ++# crm_mon - Daemon for pacemaker monitor ++# ++# ++ ++kill timeout 3600 ++respawn ++respawn limit 10 3600 ++ ++expect fork ++ ++env prog=crm_mon ++env rpm_sysconf=@sysconfdir@/sysconfig/crm_mon ++env rpm_lockfile=@localstatedir@/lock/subsys/crm_mon ++env deb_sysconf=@sysconfdir@/default/crm_mon ++env deb_lockfile=@localstatedir@/lock/crm_mon ++ ++ ++script ++ [ -f "$rpm_sysconf" ] && . $rpm_sysconf ++ [ -f "$deb_sysconf" ] && . $deb_sysconf ++ exec $prog $OPTIONS ++end script ++ ++post-start script ++ [ -f "$rpm_sysconf" ] && . $rpm_sysconf ++ [ -f "$deb_sysconf" ] && . $deb_sysconf ++ [ -z "$LOCK_FILE" -a -d @sysconfdir@/sysconfig ] && LOCK_FILE="$rpm_lockfile" ++ [ -z "$LOCK_FILE" -a -d @sysconfdir@/default ] && LOCK_FILE="$deb_lockfile" ++ touch $LOCK_FILE ++end script ++ ++post-stop script ++ [ -f "$rpm_sysconf" ] && . $rpm_sysconf ++ [ -f "$deb_sysconf" ] && . $deb_sysconf ++ [ -z "$LOCK_FILE" -a -d @sysconfdir@/sysconfig ] && LOCK_FILE="$rpm_lockfile" ++ [ -z "$LOCK_FILE" -a -d @sysconfdir@/default ] && LOCK_FILE="$deb_lockfile" ++ rm -f $LOCK_FILE ++end script ++ +diff --git a/tools/crm_resource.c b/tools/crm_resource.c +index 6537520..56583e0 100644 +--- a/tools/crm_resource.c ++++ b/tools/crm_resource.c +@@ -2214,11 +2214,15 @@ main(int argc, char **argv) + } + + } else if (rsc_cmd == 'C') { +-#if 0 ++#if HAVE_ATOMIC_ATTRD + xmlNode *cmd = create_request(CRM_OP_REPROBE, NULL, host_uname, + CRM_SYSTEM_CRMD, crm_system_name, our_pid); + +- crm_debug("Re-checking the state of all resources on %s", host_uname); ++ crm_debug("Re-checking the state of all resources on %s", host_uname?host_uname:"all nodes"); ++ ++ rc = attrd_update_delegate( ++ NULL, 'u', host_uname, "fail-count-*", NULL, XML_CIB_TAG_STATUS, NULL, NULL, NULL, FALSE); ++ + if (crm_ipc_send(crmd_channel, cmd, 0, 0, NULL) > 0) { + start_mainloop(); + } diff --git a/SOURCES/pacemaker-startup-without-sbd.patch b/SOURCES/pacemaker-startup-without-sbd.patch new file mode 100644 index 0000000..3cdddae --- /dev/null +++ b/SOURCES/pacemaker-startup-without-sbd.patch @@ -0,0 +1,136 @@ +commit e073613f0727a3646732d0d9bb4f2050017476b3 +Author: Andrew Beekhof <andrew@beekhof.net> +Date: Tue Oct 28 10:32:02 2014 +1100 + + Fix: watchdog: Allow startup without sbd + +diff --git a/crmd/control.c b/crmd/control.c +index 0332f10..8cc1cfa 100644 +--- a/crmd/control.c ++++ b/crmd/control.c +@@ -874,7 +874,7 @@ pe_cluster_option crmd_opts[] = { + { "crmd-integration-timeout", NULL, "time", NULL, "3min", &check_timer, "*** Advanced Use Only ***.", "If need to adjust this value, it probably indicates the presence of a bug." }, + { "crmd-finalization-timeout", NULL, "time", NULL, "30min", &check_timer, "*** Advanced Use Only ***.", "If you need to adjust this value, it probably indicates the presence of a bug." }, + { "crmd-transition-delay", NULL, "time", NULL, "0s", &check_timer, "*** Advanced Use Only ***\nEnabling this option will slow down cluster recovery under all conditions", "Delay cluster recovery for the configured interval to allow for additional/related events to occur.\nUseful if your configuration is sensitive to the order in which ping updates arrive." }, +- { "stonith-watchdog-timeout", NULL, "time", NULL, "0s", &check_timer, ++ { "stonith-watchdog-timeout", NULL, "time", NULL, NULL, &check_timer, + "How long to wait before we can assume nodes are safely down", NULL }, + { "no-quorum-policy", "no_quorum_policy", "enum", "stop, freeze, ignore, suicide", "stop", &check_quorum, NULL, NULL }, + +@@ -911,6 +911,8 @@ config_query_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void + const char *value = NULL; + GHashTable *config_hash = NULL; + crm_time_t *now = crm_time_new(NULL); ++ long st_timeout = 0; ++ long sbd_timeout = 0; + + if (rc != pcmk_ok) { + fsa_data_t *msg_data = NULL; +@@ -946,17 +948,36 @@ config_query_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void + } + + value = getenv("SBD_WATCHDOG_TIMEOUT"); ++ sbd_timeout = crm_get_msec(value); + +- if(value == NULL) { +- value = crmd_pref(config_hash, "stonith-watchdog-timeout"); +- } ++ value = crmd_pref(config_hash, "stonith-watchdog-timeout"); ++ st_timeout = crm_get_msec(value); + +- if(crm_get_msec(value) > 0 && !daemon_option_enabled(crm_system_name, "watchdog")) { ++ if(st_timeout > 0 && !daemon_option_enabled(crm_system_name, "watchdog")) { + do_crm_log_always(LOG_EMERG, "Shutting down pacemaker, no watchdog device configured"); + crmd_exit(DAEMON_RESPAWN_STOP); + +- } else if(crm_get_msec(value) <= 0 && daemon_option_enabled(crm_system_name, "watchdog")) { +- crm_warn("Watchdog enabled but no stonith-watchdog-timeout configured"); ++ } else if(!daemon_option_enabled(crm_system_name, "watchdog")) { ++ crm_trace("Watchdog disabled"); ++ ++ } else if(value == NULL && sbd_timeout > 0) { ++ char *timeout = NULL; ++ ++ st_timeout = 2 * sbd_timeout / 1000; ++ timeout = g_strdup_printf("%lds", st_timeout); ++ crm_notice("Setting stonith-watchdog-timeout=%s", timeout); ++ ++ update_attr_delegate(fsa_cib_conn, cib_none, XML_CIB_TAG_CRMCONFIG, NULL, NULL, NULL, NULL, ++ "stonith-watchdog-timeout", timeout, FALSE, NULL, NULL); ++ free(timeout); ++ ++ } else if(st_timeout <= 0) { ++ crm_notice("Watchdog enabled but stonith-watchdog-timeout is disabled"); ++ ++ } else if(st_timeout < sbd_timeout) { ++ do_crm_log_always(LOG_EMERG, "Shutting down pacemaker, stonith-watchdog-timeout (%ldms) is too short (must be greater than %ldms)", ++ st_timeout, sbd_timeout); ++ crmd_exit(DAEMON_RESPAWN_STOP); + } + + value = crmd_pref(config_hash, "no-quorum-policy"); +diff --git a/fencing/main.c b/fencing/main.c +index fe6560d..2694452 100644 +--- a/fencing/main.c ++++ b/fencing/main.c +@@ -1003,7 +1003,8 @@ update_cib_cache_cb(const char *event, xmlNode * msg) + } + + if(daemon_option_enabled(crm_system_name, "watchdog")) { +- const char *value = getenv("SBD_WATCHDOG_TIMEOUT"); ++ const char *value = NULL; ++ long timeout_ms = 0; + + if(value == NULL) { + stonith_watchdog_xml = get_xpath_object("//nvpair[@name='stonith-watchdog-timeout']", local_cib, LOG_TRACE); +@@ -1013,10 +1014,12 @@ update_cib_cache_cb(const char *event, xmlNode * msg) + } + + if(value) { +- stonith_watchdog_timeout_ms = crm_get_msec(value); ++ timeout_ms = crm_get_msec(value); ++ } + +- } else { +- stonith_watchdog_timeout_ms = 0; ++ if(timeout_ms != stonith_watchdog_timeout_ms) { ++ crm_notice("New watchdog timeout %lds (was %lds)", timeout_ms/1000, stonith_watchdog_timeout_ms/1000); ++ stonith_watchdog_timeout_ms = timeout_ms; + } + } + +diff --git a/lib/common/utils.c b/lib/common/utils.c +index 6b8b12c..eacd8e9 100644 +--- a/lib/common/utils.c ++++ b/lib/common/utils.c +@@ -286,6 +286,9 @@ cluster_option(GHashTable * options, gboolean(*validate) (const char *), + + if (options == NULL) { + return def_value; ++ ++ } else if(def_value == NULL) { ++ return def_value; + } + + g_hash_table_insert(options, strdup(name), strdup(def_value)); +@@ -319,7 +322,6 @@ get_cluster_pref(GHashTable * options, pe_cluster_option * option_list, int len, + } + } + CRM_CHECK(found, crm_err("No option named: %s", name)); +- CRM_ASSERT(value != NULL); + return value; + } + +diff --git a/mcp/pacemaker.c b/mcp/pacemaker.c +index c7852c3..fa2c707 100644 +--- a/mcp/pacemaker.c ++++ b/mcp/pacemaker.c +@@ -1040,6 +1040,8 @@ main(int argc, char **argv) + + if(pcmk_locate_sbd() > 0) { + setenv("PCMK_watchdog", "true", 1); ++ } else { ++ setenv("PCMK_watchdog", "false", 1); + } + + find_and_track_existing_processes(); diff --git a/SOURCES/pacemaker-test_pe_better_indicate_when_a_resource_has_failed.patch b/SOURCES/pacemaker-test_pe_better_indicate_when_a_resource_has_failed.patch deleted file mode 100644 index d2b18e1..0000000 --- a/SOURCES/pacemaker-test_pe_better_indicate_when_a_resource_has_failed.patch +++ /dev/null @@ -1,1112 +0,0 @@ -commit 08495d3c9059eeb031f34814cac49d96e1156cbc -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 7 14:38:07 2013 +1000 - - Test: PE: Better indicate when a resource has failed - -diff --git a/pengine/test10/1484.summary b/pengine/test10/1484.summary -index c26139e..52cfebe 100644 ---- a/pengine/test10/1484.summary -+++ b/pengine/test10/1484.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ hb1 hb2 ] - OFFLINE: [ hb3 ] - -- the-future-of-vaj (ocf::heartbeat:Dummy): Started hb2 FAILED -+ the-future-of-vaj (ocf::heartbeat:Dummy): FAILED hb2 - - Transition Summary: - * Stop the-future-of-vaj (hb2) -diff --git a/pengine/test10/994-2.summary b/pengine/test10/994-2.summary -index 066fdc3..dc4b9d1 100644 ---- a/pengine/test10/994-2.summary -+++ b/pengine/test10/994-2.summary -@@ -6,7 +6,7 @@ Online: [ paul ] - datadisk_1 (heartbeat:datadisk): Started paul - Filesystem_2 (ocf::heartbeat:Filesystem): Started paul - IPaddr_5 (ocf::heartbeat:IPaddr): Started paul -- postfix_9 (lsb:postfix): Started paul FAILED -+ postfix_9 (lsb:postfix): FAILED paul - depends (lsb:postfix): Started paul - - Transition Summary: -diff --git a/pengine/test10/994.summary b/pengine/test10/994.summary -index 27db890..6e8e4a2 100644 ---- a/pengine/test10/994.summary -+++ b/pengine/test10/994.summary -@@ -6,7 +6,7 @@ Online: [ paul ] - datadisk_1 (heartbeat:datadisk): Started paul - Filesystem_2 (ocf::heartbeat:Filesystem): Started paul - IPaddr_5 (ocf::heartbeat:IPaddr): Started paul -- postfix_9 (lsb:postfix): Started paul FAILED -+ postfix_9 (lsb:postfix): FAILED paul - - Transition Summary: - * Recover postfix_9 (Started paul) -diff --git a/pengine/test10/bug-5028-bottom.summary b/pengine/test10/bug-5028-bottom.summary -index 479fb18..3aa7d1f 100644 ---- a/pengine/test10/bug-5028-bottom.summary -+++ b/pengine/test10/bug-5028-bottom.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ bl460g6a bl460g6b ] - - Resource Group: dummy-g -- dummy01 (ocf::heartbeat:Dummy): Started bl460g6a (unmanaged) FAILED -+ dummy01 (ocf::heartbeat:Dummy): FAILED bl460g6a (unmanaged) - dummy02 (ocf::heartbeat:Dummy-stop-NG): Started bl460g6a - - Transition Summary: -@@ -18,6 +18,6 @@ Revised cluster status: - Online: [ bl460g6a bl460g6b ] - - Resource Group: dummy-g -- dummy01 (ocf::heartbeat:Dummy): Started bl460g6a (unmanaged) FAILED -+ dummy01 (ocf::heartbeat:Dummy): FAILED bl460g6a (unmanaged) - dummy02 (ocf::heartbeat:Dummy-stop-NG): Stopped - -diff --git a/pengine/test10/bug-5028-detach.summary b/pengine/test10/bug-5028-detach.summary -index 193b1a1..0f3247f 100644 ---- a/pengine/test10/bug-5028-detach.summary -+++ b/pengine/test10/bug-5028-detach.summary -@@ -4,7 +4,7 @@ Online: [ bl460g6a bl460g6b ] - - Resource Group: dummy-g - dummy01 (ocf::heartbeat:Dummy): Started bl460g6a (unmanaged) -- dummy02 (ocf::heartbeat:Dummy-stop-NG): Started bl460g6a (unmanaged) FAILED -+ dummy02 (ocf::heartbeat:Dummy-stop-NG): FAILED bl460g6a (unmanaged) - - Transition Summary: - -@@ -16,5 +16,5 @@ Online: [ bl460g6a bl460g6b ] - - Resource Group: dummy-g - dummy01 (ocf::heartbeat:Dummy): Started bl460g6a (unmanaged) -- dummy02 (ocf::heartbeat:Dummy-stop-NG): Started bl460g6a (unmanaged) FAILED -+ dummy02 (ocf::heartbeat:Dummy-stop-NG): FAILED bl460g6a (unmanaged) - -diff --git a/pengine/test10/bug-5028.summary b/pengine/test10/bug-5028.summary -index f092285..95f19ac 100644 ---- a/pengine/test10/bug-5028.summary -+++ b/pengine/test10/bug-5028.summary -@@ -4,7 +4,7 @@ Online: [ bl460g6a bl460g6b ] - - Resource Group: dummy-g - dummy01 (ocf::heartbeat:Dummy): Started bl460g6a -- dummy02 (ocf::heartbeat:Dummy-stop-NG): Started bl460g6a (unmanaged) FAILED -+ dummy02 (ocf::heartbeat:Dummy-stop-NG): FAILED bl460g6a (unmanaged) - - Transition Summary: - * Stop dummy01 (Started bl460g6b) -@@ -18,5 +18,5 @@ Online: [ bl460g6a bl460g6b ] - - Resource Group: dummy-g - dummy01 (ocf::heartbeat:Dummy): Started bl460g6a -- dummy02 (ocf::heartbeat:Dummy-stop-NG): Started bl460g6a (unmanaged) FAILED -+ dummy02 (ocf::heartbeat:Dummy-stop-NG): FAILED bl460g6a (unmanaged) - -diff --git a/pengine/test10/bug-cl-5170.summary b/pengine/test10/bug-cl-5170.summary -index 3b4bcb9..97d2034 100644 ---- a/pengine/test10/bug-cl-5170.summary -+++ b/pengine/test10/bug-cl-5170.summary -@@ -7,7 +7,7 @@ Online: [ TCS-2 ] - ip_trf (ocf::heartbeat:IPaddr2): Started TCS-2 - ip_mgmt (ocf::heartbeat:IPaddr2): Started TCS-2 - Clone Set: cl_tomcat_nms [d_tomcat_nms] -- d_tomcat_nms (ocf::ntc:tomcat): Started TCS-2 (unmanaged) FAILED -+ d_tomcat_nms (ocf::ntc:tomcat): FAILED TCS-2 (unmanaged) - Stopped: [ TCS-1 ] - - Transition Summary: -@@ -29,6 +29,6 @@ Online: [ TCS-2 ] - ip_trf (ocf::heartbeat:IPaddr2): Stopped - ip_mgmt (ocf::heartbeat:IPaddr2): Stopped - Clone Set: cl_tomcat_nms [d_tomcat_nms] -- d_tomcat_nms (ocf::ntc:tomcat): Started TCS-2 (unmanaged) FAILED -+ d_tomcat_nms (ocf::ntc:tomcat): FAILED TCS-2 (unmanaged) - Stopped: [ TCS-1 ] - -diff --git a/pengine/test10/bug-lf-2606.summary b/pengine/test10/bug-lf-2606.summary -index 535b3d9..c03ed6a 100644 ---- a/pengine/test10/bug-lf-2606.summary -+++ b/pengine/test10/bug-lf-2606.summary -@@ -4,7 +4,7 @@ Node node2: UNCLEAN (online) - Online: [ node1 ] - - rsc_stonith (stonith:null): Started node1 -- rsc1 (ocf::pacemaker:Dummy): Started node2 FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node2 - rsc2 (ocf::pacemaker:Dummy): Started node2 - Master/Slave Set: ms3 [rsc3] - Masters: [ node2 ] -diff --git a/pengine/test10/bug-lf-2613.summary b/pengine/test10/bug-lf-2613.summary -index 23cfe62..4312c51 100644 ---- a/pengine/test10/bug-lf-2613.summary -+++ b/pengine/test10/bug-lf-2613.summary -@@ -8,7 +8,7 @@ Online: [ act1 act2 act3 sby1 sby2 ] - prmFsPostgreSQLDB1-2 (ocf::pacemaker:Dummy): Started act1 - prmFsPostgreSQLDB1-3 (ocf::pacemaker:Dummy): Started act1 - prmIpPostgreSQLDB1 (ocf::pacemaker:Dummy): Started act1 -- prmApPostgreSQLDB1 (ocf::pacemaker:Dummy): Started act1 FAILED -+ prmApPostgreSQLDB1 (ocf::pacemaker:Dummy): FAILED act1 - Resource Group: grpPostgreSQLDB2 - prmExPostgreSQLDB2 (ocf::pacemaker:Dummy): Started act2 - prmFsPostgreSQLDB2-1 (ocf::pacemaker:Dummy): Started act2 -diff --git a/pengine/test10/bug-lf-2619.summary b/pengine/test10/bug-lf-2619.summary -index ad94dd4..2816ac3 100644 ---- a/pengine/test10/bug-lf-2619.summary -+++ b/pengine/test10/bug-lf-2619.summary -@@ -24,7 +24,7 @@ Online: [ act1 act2 act3 sby1 sby2 ] - prmIpPostgreSQLDB3 (ocf::pacemaker:Dummy): Started act3 - prmApPostgreSQLDB3 (ocf::pacemaker:Dummy): Started act3 - Clone Set: clnPingd [prmPingd] -- prmPingd (ocf::pacemaker:ping): Started act1 FAILED -+ prmPingd (ocf::pacemaker:ping): FAILED act1 - Started: [ act2 act3 sby1 sby2 ] - - Transition Summary: -diff --git a/pengine/test10/bug-n-385265-2.summary b/pengine/test10/bug-n-385265-2.summary -index a4d593b..f02554d 100644 ---- a/pengine/test10/bug-n-385265-2.summary -+++ b/pengine/test10/bug-n-385265-2.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ ih01 ih02 ] - - Resource Group: group_common -- resource_ip_common (ocf::heartbeat:IPaddr2): Started ih02 FAILED -+ resource_ip_common (ocf::heartbeat:IPaddr2): FAILED ih02 - resource_idvscommon (ocf::dfs:idvs): Started ih02 - - Transition Summary: -diff --git a/pengine/test10/bug-n-385265.summary b/pengine/test10/bug-n-385265.summary -index 7b70f2b..8f95787 100644 ---- a/pengine/test10/bug-n-385265.summary -+++ b/pengine/test10/bug-n-385265.summary -@@ -4,7 +4,7 @@ Online: [ ih01 ih02 ] - - Resource Group: group_common - resource_ip_common (ocf::heartbeat:IPaddr2): Started ih02 -- resource_idvscommon (ocf::dfs:idvs): Started ih02 FAILED -+ resource_idvscommon (ocf::dfs:idvs): FAILED ih02 - - Transition Summary: - * Stop resource_idvscommon (ih02) -diff --git a/pengine/test10/clone-anon-failcount.summary b/pengine/test10/clone-anon-failcount.summary -index 7e899b3..cd4349c 100644 ---- a/pengine/test10/clone-anon-failcount.summary -+++ b/pengine/test10/clone-anon-failcount.summary -@@ -23,7 +23,7 @@ Online: [ srv01 srv02 srv03 srv04 ] - prmStonithN4 (stonith:external/ssh): Started srv03 - Clone Set: clnUMgroup01 [clnUmResource] - Resource Group: clnUmResource:0 -- clnUMdummy01 (ocf::pacemaker:Dummy): Started srv04 FAILED -+ clnUMdummy01 (ocf::pacemaker:Dummy): FAILED srv04 - clnUMdummy02 (ocf::pacemaker:Dummy): Started srv04 - Started: [ srv01 ] - Stopped: [ srv02 srv03 ] -diff --git a/pengine/test10/clone-fail-block-colocation.summary b/pengine/test10/clone-fail-block-colocation.summary -index 7b066ee..68fc7a0 100644 ---- a/pengine/test10/clone-fail-block-colocation.summary -+++ b/pengine/test10/clone-fail-block-colocation.summary -@@ -10,7 +10,7 @@ Online: [ DEM-1 DEM-2 ] - Clone Set: cl_bird [d_bird] - Started: [ DEM-1 DEM-2 ] - Clone Set: cl_bird6 [d_bird6] -- d_bird6 (lsb:bird6): Started DEM-1 (unmanaged) FAILED -+ d_bird6 (lsb:bird6): FAILED DEM-1 (unmanaged) - Started: [ DEM-2 ] - Clone Set: cl_tomcat_nms [d_tomcat_nms] - Started: [ DEM-1 DEM-2 ] -@@ -51,7 +51,7 @@ Online: [ DEM-1 DEM-2 ] - Clone Set: cl_bird [d_bird] - Started: [ DEM-1 DEM-2 ] - Clone Set: cl_bird6 [d_bird6] -- d_bird6 (lsb:bird6): Started DEM-1 (unmanaged) FAILED -+ d_bird6 (lsb:bird6): FAILED DEM-1 (unmanaged) - Started: [ DEM-2 ] - Clone Set: cl_tomcat_nms [d_tomcat_nms] - Started: [ DEM-1 DEM-2 ] -diff --git a/pengine/test10/container-2.summary b/pengine/test10/container-2.summary -index 0451747..b0c08b8 100644 ---- a/pengine/test10/container-2.summary -+++ b/pengine/test10/container-2.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ node1 node2 ] - - container1 (ocf::pacemaker:Dummy): Started node1 -- rsc1 (ocf::pacemaker:Dummy): Started node1 FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 - rsc2 (ocf::pacemaker:Dummy): Started node1 - - Transition Summary: -diff --git a/pengine/test10/container-3.summary b/pengine/test10/container-3.summary -index 51575a9..194c687 100644 ---- a/pengine/test10/container-3.summary -+++ b/pengine/test10/container-3.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ node1 node2 ] - - container1 (ocf::pacemaker:Dummy): Started node1 -- rsc1 (ocf::pacemaker:Dummy): Stopped FAILED (failure ignored) -+ rsc1 (ocf::pacemaker:Dummy): FAILED (failure ignored) - rsc2 (ocf::pacemaker:Dummy): Started node1 - - Transition Summary: -diff --git a/pengine/test10/container-4.summary b/pengine/test10/container-4.summary -index c7f6282..c5852de 100644 ---- a/pengine/test10/container-4.summary -+++ b/pengine/test10/container-4.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ node1 node2 ] - - container1 (ocf::pacemaker:Dummy): Started node1 -- rsc1 (ocf::pacemaker:Dummy): Started node1 FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 - rsc2 (ocf::pacemaker:Dummy): Started node1 - - Transition Summary: -diff --git a/pengine/test10/container-group-2.summary b/pengine/test10/container-group-2.summary -index c4039e6..4451c63 100644 ---- a/pengine/test10/container-group-2.summary -+++ b/pengine/test10/container-group-2.summary -@@ -4,7 +4,7 @@ Online: [ node1 node2 ] - - Resource Group: container-group - container1 (ocf::pacemaker:Dummy): Started node1 -- rsc1 (ocf::pacemaker:Dummy): Started node1 FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 - rsc2 (ocf::pacemaker:Dummy): Started node1 - - Transition Summary: -diff --git a/pengine/test10/container-group-3.summary b/pengine/test10/container-group-3.summary -index bd408ef..d5fac46 100644 ---- a/pengine/test10/container-group-3.summary -+++ b/pengine/test10/container-group-3.summary -@@ -4,7 +4,7 @@ Online: [ node1 node2 ] - - Resource Group: container-group - container1 (ocf::pacemaker:Dummy): Started node1 -- rsc1 (ocf::pacemaker:Dummy): Stopped FAILED (failure ignored) -+ rsc1 (ocf::pacemaker:Dummy): FAILED (failure ignored) - rsc2 (ocf::pacemaker:Dummy): Stopped - - Transition Summary: -diff --git a/pengine/test10/container-group-4.summary b/pengine/test10/container-group-4.summary -index 7f6dd4f..3ee85bc 100644 ---- a/pengine/test10/container-group-4.summary -+++ b/pengine/test10/container-group-4.summary -@@ -4,7 +4,7 @@ Online: [ node1 node2 ] - - Resource Group: container-group - container1 (ocf::pacemaker:Dummy): Started node1 -- rsc1 (ocf::pacemaker:Dummy): Started node1 FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 - rsc2 (ocf::pacemaker:Dummy): Started node1 - - Transition Summary: -diff --git a/pengine/test10/failcount-block.summary b/pengine/test10/failcount-block.summary -index 93a2022..edd91b2 100644 ---- a/pengine/test10/failcount-block.summary -+++ b/pengine/test10/failcount-block.summary -@@ -4,7 +4,7 @@ Online: [ pcmk-1 ] - OFFLINE: [ pcmk-4 ] - - rsc_pcmk-1 (ocf::heartbeat:IPaddr2): Started pcmk-1 -- rsc_pcmk-2 (ocf::heartbeat:IPaddr2): Started pcmk-1 (unmanaged) FAILED -+ rsc_pcmk-2 (ocf::heartbeat:IPaddr2): FAILED pcmk-1 (unmanaged) - rsc_pcmk-3 (ocf::heartbeat:IPaddr2): Stopped - rsc_pcmk-4 (ocf::heartbeat:IPaddr2): Stopped - rsc_pcmk-5 (ocf::heartbeat:IPaddr2): Started pcmk-1 -@@ -28,7 +28,7 @@ Online: [ pcmk-1 ] - OFFLINE: [ pcmk-4 ] - - rsc_pcmk-1 (ocf::heartbeat:IPaddr2): Started pcmk-1 -- rsc_pcmk-2 (ocf::heartbeat:IPaddr2): Started pcmk-1 (unmanaged) FAILED -+ rsc_pcmk-2 (ocf::heartbeat:IPaddr2): FAILED pcmk-1 (unmanaged) - rsc_pcmk-3 (ocf::heartbeat:IPaddr2): Started pcmk-1 - rsc_pcmk-4 (ocf::heartbeat:IPaddr2): Started pcmk-1 - rsc_pcmk-5 (ocf::heartbeat:IPaddr2): Started pcmk-1 -diff --git a/pengine/test10/group10.summary b/pengine/test10/group10.summary -index 0f45f6b..5cf890a 100644 ---- a/pengine/test10/group10.summary -+++ b/pengine/test10/group10.summary -@@ -4,7 +4,7 @@ Online: [ c001n01 c001n02 c001n03 c001n08 ] - - DcIPaddr (ocf::heartbeat:IPaddr): Started c001n08 - Resource Group: group-1 -- child_192.168.100.181 (ocf::heartbeat:IPaddr): Started c001n01 FAILED -+ child_192.168.100.181 (ocf::heartbeat:IPaddr): FAILED c001n01 - child_192.168.100.182 (ocf::heartbeat:IPaddr): Started c001n01 - child_192.168.100.183 (ocf::heartbeat:IPaddr): Started c001n01 - rsc_c001n08 (ocf::heartbeat:IPaddr): Started c001n08 -diff --git a/pengine/test10/group9.summary b/pengine/test10/group9.summary -index be0f5c8..c5c9a6a 100644 ---- a/pengine/test10/group9.summary -+++ b/pengine/test10/group9.summary -@@ -6,11 +6,11 @@ Online: [ node1 node2 ] - rsc2 (heartbeat:apache): Started node1 - Resource Group: foo - rsc3 (heartbeat:apache): Started node1 -- rsc4 (heartbeat:apache): Started node1 FAILED -+ rsc4 (heartbeat:apache): FAILED node1 - rsc5 (heartbeat:apache): Started node1 - Resource Group: bar - rsc6 (heartbeat:apache): Started node1 -- rsc7 (heartbeat:apache): Started node1 FAILED -+ rsc7 (heartbeat:apache): FAILED node1 - rsc8 (heartbeat:apache): Started node1 - - Transition Summary: -diff --git a/pengine/test10/interleave-restart.summary b/pengine/test10/interleave-restart.summary -index 32ff592..7f1b1e4 100644 ---- a/pengine/test10/interleave-restart.summary -+++ b/pengine/test10/interleave-restart.summary -@@ -5,7 +5,7 @@ Online: [ node1 node2 ] - Clone Set: stonithcloneset [stonithclone] - Started: [ node1 node2 ] - Clone Set: evmscloneset [evmsclone] -- evmsclone (ocf::heartbeat:EvmsSCC): Started node1 FAILED -+ evmsclone (ocf::heartbeat:EvmsSCC): FAILED node1 - Started: [ node2 ] - Clone Set: imagestorecloneset [imagestoreclone] - Started: [ node1 node2 ] -diff --git a/pengine/test10/master-demote-2.summary b/pengine/test10/master-demote-2.summary -index 53259a7..02fe055 100644 ---- a/pengine/test10/master-demote-2.summary -+++ b/pengine/test10/master-demote-2.summary -@@ -16,7 +16,7 @@ Online: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - Clone Set: Connectivity [ping-1] - Started: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - Master/Slave Set: master-1 [stateful-1] -- stateful-1 (ocf::pacemaker:Stateful): Slave pcmk-1 FAILED -+ stateful-1 (ocf::pacemaker:Stateful): FAILED pcmk-1 - Slaves: [ pcmk-2 pcmk-3 pcmk-4 ] - - Transition Summary: -diff --git a/pengine/test10/master-demote-block.summary b/pengine/test10/master-demote-block.summary -index 97fb20b..a35923f 100644 ---- a/pengine/test10/master-demote-block.summary -+++ b/pengine/test10/master-demote-block.summary -@@ -4,7 +4,7 @@ Node dl380g5c (21c624bd-c426-43dc-9665-bbfb92054bcd): standby - Online: [ dl380g5d ] - - Master/Slave Set: stateful [dummy] -- dummy (ocf::pacemaker:Stateful): Master dl380g5c (unmanaged) FAILED -+ dummy (ocf::pacemaker:Stateful): FAILED Master dl380g5c (unmanaged) - Slaves: [ dl380g5d ] - - Transition Summary: -@@ -17,6 +17,6 @@ Node dl380g5c (21c624bd-c426-43dc-9665-bbfb92054bcd): standby - Online: [ dl380g5d ] - - Master/Slave Set: stateful [dummy] -- dummy (ocf::pacemaker:Stateful): Master dl380g5c (unmanaged) FAILED -+ dummy (ocf::pacemaker:Stateful): FAILED Master dl380g5c (unmanaged) - Slaves: [ dl380g5d ] - -diff --git a/pengine/test10/master-failed-demote-2.summary b/pengine/test10/master-failed-demote-2.summary -index b6bec8d..6a754bc 100644 ---- a/pengine/test10/master-failed-demote-2.summary -+++ b/pengine/test10/master-failed-demote-2.summary -@@ -4,7 +4,7 @@ Online: [ dl380g5a dl380g5b ] - - Master/Slave Set: ms-sf [group] (unique) - Resource Group: group:0 -- stateful-1:0 (ocf::heartbeat:Stateful): Slave dl380g5b FAILED -+ stateful-1:0 (ocf::heartbeat:Stateful): FAILED dl380g5b - stateful-2:0 (ocf::heartbeat:Stateful): Stopped - Resource Group: group:1 - stateful-1:1 (ocf::heartbeat:Stateful): Started dl380g5a -diff --git a/pengine/test10/master-failed-demote.summary b/pengine/test10/master-failed-demote.summary -index e86e813..9288c0b 100644 ---- a/pengine/test10/master-failed-demote.summary -+++ b/pengine/test10/master-failed-demote.summary -@@ -4,7 +4,7 @@ Online: [ dl380g5a dl380g5b ] - - Master/Slave Set: ms-sf [group] (unique) - Resource Group: group:0 -- stateful-1:0 (ocf::heartbeat:Stateful): Slave dl380g5b FAILED -+ stateful-1:0 (ocf::heartbeat:Stateful): FAILED dl380g5b - stateful-2:0 (ocf::heartbeat:Stateful): Stopped - Resource Group: group:1 - stateful-1:1 (ocf::heartbeat:Stateful): Started dl380g5a -diff --git a/pengine/test10/master-move.summary b/pengine/test10/master-move.summary -index 6886712..2f7d877 100644 ---- a/pengine/test10/master-move.summary -+++ b/pengine/test10/master-move.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ bl460g1n13 bl460g1n14 ] - - Resource Group: grpDRBD -- dummy01 (ocf::pacemaker:Dummy): Started bl460g1n13 FAILED -+ dummy01 (ocf::pacemaker:Dummy): FAILED bl460g1n13 - dummy02 (ocf::pacemaker:Dummy): Started bl460g1n13 - dummy03 (ocf::pacemaker:Dummy): Stopped - Master/Slave Set: msDRBD [prmDRBD] -diff --git a/pengine/test10/migrate-3.summary b/pengine/test10/migrate-3.summary -index 9825c3b..c4c510e 100644 ---- a/pengine/test10/migrate-3.summary -+++ b/pengine/test10/migrate-3.summary -@@ -3,7 +3,7 @@ Current cluster status: - Node node1: standby - Online: [ node2 ] - -- rsc3 (heartbeat:apache): Started node1 FAILED -+ rsc3 (heartbeat:apache): FAILED node1 - - Transition Summary: - * Recover rsc3 (Started node1 -> node2) -diff --git a/pengine/test10/migrate-4.summary b/pengine/test10/migrate-4.summary -index aacb53b..32449a7 100644 ---- a/pengine/test10/migrate-4.summary -+++ b/pengine/test10/migrate-4.summary -@@ -3,7 +3,7 @@ Current cluster status: - Node node1: standby - Online: [ node2 ] - -- rsc3 (heartbeat:apache): Started node2 FAILED -+ rsc3 (heartbeat:apache): FAILED node2 - - Transition Summary: - * Recover rsc3 (Started node2) -diff --git a/pengine/test10/migrate-fail-2.summary b/pengine/test10/migrate-fail-2.summary -index 1d795d2..3786533 100644 ---- a/pengine/test10/migrate-fail-2.summary -+++ b/pengine/test10/migrate-fail-2.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ hex-13 hex-14 ] - -- test-vm (ocf::heartbeat:Xen): Started FAILED [ hex-13 hex-14 ] -+ test-vm (ocf::heartbeat:Xen): FAILED [ hex-13 hex-14 ] - Clone Set: c-clusterfs [dlm] - Started: [ hex-13 hex-14 ] - -diff --git a/pengine/test10/migrate-fail-3.summary b/pengine/test10/migrate-fail-3.summary -index c392937..547c110 100644 ---- a/pengine/test10/migrate-fail-3.summary -+++ b/pengine/test10/migrate-fail-3.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ hex-13 hex-14 ] - -- test-vm (ocf::heartbeat:Xen): Started hex-13 FAILED -+ test-vm (ocf::heartbeat:Xen): FAILED hex-13 - Clone Set: c-clusterfs [dlm] - Started: [ hex-13 hex-14 ] - -diff --git a/pengine/test10/migrate-fail-6.summary b/pengine/test10/migrate-fail-6.summary -index be51c7a..dfde8bb 100644 ---- a/pengine/test10/migrate-fail-6.summary -+++ b/pengine/test10/migrate-fail-6.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ hex-13 hex-14 ] - -- test-vm (ocf::heartbeat:Xen): Started FAILED [ hex-13 hex-14 ] -+ test-vm (ocf::heartbeat:Xen): FAILED [ hex-13 hex-14 ] - Clone Set: c-clusterfs [dlm] - Started: [ hex-13 hex-14 ] - -diff --git a/pengine/test10/migrate-fail-8.summary b/pengine/test10/migrate-fail-8.summary -index 058523a..9a651eb 100644 ---- a/pengine/test10/migrate-fail-8.summary -+++ b/pengine/test10/migrate-fail-8.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ hex-13 hex-14 ] - -- test-vm (ocf::heartbeat:Xen): Started hex-14 FAILED -+ test-vm (ocf::heartbeat:Xen): FAILED hex-14 - Clone Set: c-clusterfs [dlm] - Started: [ hex-13 hex-14 ] - -diff --git a/pengine/test10/migrate-partial-3.summary b/pengine/test10/migrate-partial-3.summary -index cf27c9f..516e470 100644 ---- a/pengine/test10/migrate-partial-3.summary -+++ b/pengine/test10/migrate-partial-3.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ hex-13 hex-14 ] - OFFLINE: [ hex-15 ] - -- test-vm (ocf::heartbeat:Xen): Started hex-14 FAILED -+ test-vm (ocf::heartbeat:Xen): FAILED hex-14 - Clone Set: c-clusterfs [dlm] - Started: [ hex-13 hex-14 ] - Stopped: [ hex-15 ] -diff --git a/pengine/test10/monitor-onfail-restart.summary b/pengine/test10/monitor-onfail-restart.summary -index d77963a..34bc76a 100644 ---- a/pengine/test10/monitor-onfail-restart.summary -+++ b/pengine/test10/monitor-onfail-restart.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ fc16-builder ] - OFFLINE: [ fc16-builder2 ] - -- A (ocf::pacemaker:Dummy): Started fc16-builder FAILED -+ A (ocf::pacemaker:Dummy): FAILED fc16-builder - - Transition Summary: - * Recover A (Started fc16-builder) -diff --git a/pengine/test10/monitor-onfail-stop.summary b/pengine/test10/monitor-onfail-stop.summary -index 8027fc5..54ad25a 100644 ---- a/pengine/test10/monitor-onfail-stop.summary -+++ b/pengine/test10/monitor-onfail-stop.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ fc16-builder ] - OFFLINE: [ fc16-builder2 ] - -- A (ocf::pacemaker:Dummy): Started fc16-builder FAILED -+ A (ocf::pacemaker:Dummy): FAILED fc16-builder - - Transition Summary: - * Stop A (fc16-builder) -diff --git a/pengine/test10/novell-252693-3.summary b/pengine/test10/novell-252693-3.summary -index 9d42229..77bc781 100644 ---- a/pengine/test10/novell-252693-3.summary -+++ b/pengine/test10/novell-252693-3.summary -@@ -12,7 +12,7 @@ Online: [ node1 node2 ] - Started: [ node2 ] - Stopped: [ node1 ] - Clone Set: imagestorecloneset [imagestoreclone] -- imagestoreclone (ocf::heartbeat:Filesystem): Started node2 FAILED -+ imagestoreclone (ocf::heartbeat:Filesystem): FAILED node2 - Stopped: [ node1 ] - Clone Set: configstorecloneset [configstoreclone] - Started: [ node2 ] -diff --git a/pengine/test10/order7.summary b/pengine/test10/order7.summary -index c82ca4a..a7724f1 100644 ---- a/pengine/test10/order7.summary -+++ b/pengine/test10/order7.summary -@@ -5,7 +5,7 @@ Online: [ node1 ] - rsc1 (heartbeat:apache): Started node1 - rsc2 (heartbeat:apache): Stopped - rsc3 (heartbeat:apache): Stopped -- rscA (heartbeat:apache): Started node1 (unmanaged) FAILED -+ rscA (heartbeat:apache): FAILED node1 (unmanaged) - rscB (heartbeat:apache): Stopped - rscC (heartbeat:apache): Stopped - -@@ -31,7 +31,7 @@ Online: [ node1 ] - rsc1 (heartbeat:apache): Started node1 - rsc2 (heartbeat:apache): Started node1 - rsc3 (heartbeat:apache): Started node1 -- rscA (heartbeat:apache): Started node1 (unmanaged) FAILED -+ rscA (heartbeat:apache): FAILED node1 (unmanaged) - rscB (heartbeat:apache): Started node1 - rscC (heartbeat:apache): Stopped - -diff --git a/pengine/test10/rec-node-13.summary b/pengine/test10/rec-node-13.summary -index 2833d0b..356b67d 100644 ---- a/pengine/test10/rec-node-13.summary -+++ b/pengine/test10/rec-node-13.summary -@@ -26,7 +26,7 @@ OFFLINE: [ c001n03 c001n05 ] - ocf_msdummy:3 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): Stopped - ocf_msdummy:4 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): Started c001n02 - ocf_msdummy:5 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): Stopped -- ocf_msdummy:6 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): Started c001n04 FAILED -+ ocf_msdummy:6 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): FAILED c001n04 - ocf_msdummy:7 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): Stopped - ocf_msdummy:8 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): Started c001n06 - ocf_msdummy:9 (ocf::heartbeat:/usr/lib/heartbeat/cts/OCFMSDummy): Started c001n07 -diff --git a/pengine/test10/rec-rsc-0.summary b/pengine/test10/rec-rsc-0.summary -index 6607ffc..e33ffeb 100644 ---- a/pengine/test10/rec-rsc-0.summary -+++ b/pengine/test10/rec-rsc-0.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (heartbeat:apache): Started FAILED [ node1 node2 ] -+ rsc1 (heartbeat:apache): FAILED [ node1 node2 ] - - Transition Summary: - * Stop rsc1 (node1) -diff --git a/pengine/test10/rec-rsc-1.summary b/pengine/test10/rec-rsc-1.summary -index fe7ad10..6bce529 100644 ---- a/pengine/test10/rec-rsc-1.summary -+++ b/pengine/test10/rec-rsc-1.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (heartbeat:apache): Started node1 FAILED -+ rsc1 (heartbeat:apache): FAILED node1 - - Transition Summary: - * Recover rsc1 (Started node1 -> node2) -diff --git a/pengine/test10/rec-rsc-2.summary b/pengine/test10/rec-rsc-2.summary -index 45ac5ba..b2c9cd4 100644 ---- a/pengine/test10/rec-rsc-2.summary -+++ b/pengine/test10/rec-rsc-2.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (heartbeat:apache): Started node1 FAILED -+ rsc1 (heartbeat:apache): FAILED node1 - - Transition Summary: - * Recover rsc1 (Started node1) -diff --git a/pengine/test10/rec-rsc-4.summary b/pengine/test10/rec-rsc-4.summary -index fc0b8bf..24ccbf7 100644 ---- a/pengine/test10/rec-rsc-4.summary -+++ b/pengine/test10/rec-rsc-4.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (heartbeat:apache): Started node2 (unmanaged) FAILED -+ rsc1 (heartbeat:apache): FAILED node2 (unmanaged) - - Transition Summary: - -@@ -13,5 +13,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (heartbeat:apache): Started node2 (unmanaged) FAILED -+ rsc1 (heartbeat:apache): FAILED node2 (unmanaged) - -diff --git a/pengine/test10/rec-rsc-5.summary b/pengine/test10/rec-rsc-5.summary -index 1a95402..9c9239b 100644 ---- a/pengine/test10/rec-rsc-5.summary -+++ b/pengine/test10/rec-rsc-5.summary -@@ -4,7 +4,7 @@ Node node2 (uuid2): UNCLEAN (online) - Online: [ node1 ] - - stonith-1 (stonith:dummy): Stopped -- rsc1 (heartbeat:apache): Started node2 FAILED -+ rsc1 (heartbeat:apache): FAILED node2 - rsc2 (heartbeat:apache): Started node2 - - Transition Summary: -diff --git a/pengine/test10/rec-rsc-9.summary b/pengine/test10/rec-rsc-9.summary -index 3184afb..1c06087 100644 ---- a/pengine/test10/rec-rsc-9.summary -+++ b/pengine/test10/rec-rsc-9.summary -@@ -6,7 +6,7 @@ Online: [ node1 ] - Resource Group: foo - rsc2 (heartbeat:apache): Started node1 - Resource Group: bar -- rsc3 (heartbeat:apache): Started node1 FAILED -+ rsc3 (heartbeat:apache): FAILED node1 - - Transition Summary: - * Restart rsc1 (Started node1) -diff --git a/pengine/test10/simple4.summary b/pengine/test10/simple4.summary -index c0966b6..fc81964 100644 ---- a/pengine/test10/simple4.summary -+++ b/pengine/test10/simple4.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 ] - -- rsc1 (heartbeat:apache): Started node1 FAILED -+ rsc1 (heartbeat:apache): FAILED node1 - - Transition Summary: - * Stop rsc1 (node1) -diff --git a/pengine/test10/stonith-0.summary b/pengine/test10/stonith-0.summary -index a91a06c..9330291 100644 ---- a/pengine/test10/stonith-0.summary -+++ b/pengine/test10/stonith-0.summary -@@ -8,7 +8,7 @@ Online: [ c001n02 c001n04 c001n06 c001n07 c001n08 ] - Resource Group: group-1 - ocf_192.168.100.181 (ocf::heartbeat:IPaddr): Started [ c001n03 c001n05 ] - heartbeat_192.168.100.182 (heartbeat:IPaddr): Started c001n03 -- ocf_192.168.100.183 (ocf::heartbeat:IPaddr): Started FAILED [ c001n03 c001n05 ] -+ ocf_192.168.100.183 (ocf::heartbeat:IPaddr): FAILED [ c001n03 c001n05 ] - lsb_dummy (lsb:/usr/lib/heartbeat/cts/LSBDummy): Started c001n04 - rsc_c001n03 (ocf::heartbeat:IPaddr): Started c001n06 - rsc_c001n02 (ocf::heartbeat:IPaddr): Started c001n02 -diff --git a/pengine/test10/stop-failure-no-fencing.summary b/pengine/test10/stop-failure-no-fencing.summary -index 3b6b40d..4fc1ed1 100644 ---- a/pengine/test10/stop-failure-no-fencing.summary -+++ b/pengine/test10/stop-failure-no-fencing.summary -@@ -7,7 +7,7 @@ Online: [ pcmk-1 pcmk-2 ] - Clone Set: dlm-clone [dlm] - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - Clone Set: clvm-clone [clvm] -- clvm (lsb:clvmd): Started pcmk-3 (unmanaged) FAILED -+ clvm (lsb:clvmd): FAILED pcmk-3 (unmanaged) - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - ClusterIP (ocf::heartbeat:IPaddr2): Stopped - -@@ -23,7 +23,7 @@ Online: [ pcmk-1 pcmk-2 ] - Clone Set: dlm-clone [dlm] - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - Clone Set: clvm-clone [clvm] -- clvm (lsb:clvmd): Started pcmk-3 (unmanaged) FAILED -+ clvm (lsb:clvmd): FAILED pcmk-3 (unmanaged) - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - ClusterIP (ocf::heartbeat:IPaddr2): Stopped - -diff --git a/pengine/test10/stop-failure-no-quorum.summary b/pengine/test10/stop-failure-no-quorum.summary -index 1cab287..49a0f54 100644 ---- a/pengine/test10/stop-failure-no-quorum.summary -+++ b/pengine/test10/stop-failure-no-quorum.summary -@@ -8,8 +8,8 @@ Online: [ pcmk-1 ] - Clone Set: dlm-clone [dlm] - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - Clone Set: clvm-clone [clvm] -- clvm (lsb:clvmd): Started pcmk-2 FAILED -- clvm (lsb:clvmd): Started pcmk-3 (unmanaged) FAILED -+ clvm (lsb:clvmd): FAILED pcmk-2 -+ clvm (lsb:clvmd): FAILED pcmk-3 (unmanaged) - Stopped: [ pcmk-1 pcmk-3 pcmk-4 ] - ClusterIP (ocf::heartbeat:IPaddr2): Stopped - Fencing (stonith:fence_xvm): Stopped -@@ -38,7 +38,7 @@ OFFLINE: [ pcmk-2 ] - Clone Set: dlm-clone [dlm] - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - Clone Set: clvm-clone [clvm] -- clvm (lsb:clvmd): Started pcmk-3 (unmanaged) FAILED -+ clvm (lsb:clvmd): FAILED pcmk-3 (unmanaged) - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - ClusterIP (ocf::heartbeat:IPaddr2): Stopped - Fencing (stonith:fence_xvm): Stopped -diff --git a/pengine/test10/stop-failure-with-fencing.summary b/pengine/test10/stop-failure-with-fencing.summary -index 06c517e..0473b80 100644 ---- a/pengine/test10/stop-failure-with-fencing.summary -+++ b/pengine/test10/stop-failure-with-fencing.summary -@@ -8,7 +8,7 @@ Online: [ pcmk-1 ] - Clone Set: dlm-clone [dlm] - Stopped: [ pcmk-1 pcmk-2 pcmk-3 pcmk-4 ] - Clone Set: clvm-clone [clvm] -- clvm (lsb:clvmd): Started pcmk-2 FAILED -+ clvm (lsb:clvmd): FAILED pcmk-2 - Stopped: [ pcmk-1 pcmk-3 pcmk-4 ] - ClusterIP (ocf::heartbeat:IPaddr2): Stopped - Fencing (stonith:fence_xvm): Stopped -diff --git a/pengine/test10/stopped-monitor-01.summary b/pengine/test10/stopped-monitor-01.summary -index e633ef1..43cc177 100644 ---- a/pengine/test10/stopped-monitor-01.summary -+++ b/pengine/test10/stopped-monitor-01.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started node1 FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 - - Transition Summary: - * Recover rsc1 (Started node1) -diff --git a/pengine/test10/stopped-monitor-02.summary b/pengine/test10/stopped-monitor-02.summary -index 03a9517..6d97bfb 100644 ---- a/pengine/test10/stopped-monitor-02.summary -+++ b/pengine/test10/stopped-monitor-02.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED [ node1 node2 ] - - Transition Summary: - * Recover rsc1 (Started node1) -diff --git a/pengine/test10/stopped-monitor-04.summary b/pengine/test10/stopped-monitor-04.summary -index 2c28752..f5fafaf 100644 ---- a/pengine/test10/stopped-monitor-04.summary -+++ b/pengine/test10/stopped-monitor-04.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started node1 (unmanaged) FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 (unmanaged) - - Transition Summary: - -@@ -11,5 +11,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started node1 (unmanaged) FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 (unmanaged) - -diff --git a/pengine/test10/stopped-monitor-05.summary b/pengine/test10/stopped-monitor-05.summary -index 2c28752..f5fafaf 100644 ---- a/pengine/test10/stopped-monitor-05.summary -+++ b/pengine/test10/stopped-monitor-05.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started node1 (unmanaged) FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 (unmanaged) - - Transition Summary: - -@@ -11,5 +11,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started node1 (unmanaged) FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 (unmanaged) - -diff --git a/pengine/test10/stopped-monitor-06.summary b/pengine/test10/stopped-monitor-06.summary -index 23dc001..1f6d440 100644 ---- a/pengine/test10/stopped-monitor-06.summary -+++ b/pengine/test10/stopped-monitor-06.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - - Transition Summary: - -@@ -11,5 +11,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - -diff --git a/pengine/test10/stopped-monitor-07.summary b/pengine/test10/stopped-monitor-07.summary -index 23dc001..1f6d440 100644 ---- a/pengine/test10/stopped-monitor-07.summary -+++ b/pengine/test10/stopped-monitor-07.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - - Transition Summary: - -@@ -11,5 +11,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - -diff --git a/pengine/test10/stopped-monitor-10.summary b/pengine/test10/stopped-monitor-10.summary -index 23dc001..1f6d440 100644 ---- a/pengine/test10/stopped-monitor-10.summary -+++ b/pengine/test10/stopped-monitor-10.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - - Transition Summary: - -@@ -11,5 +11,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - -diff --git a/pengine/test10/stopped-monitor-12.summary b/pengine/test10/stopped-monitor-12.summary -index 23dc001..1f6d440 100644 ---- a/pengine/test10/stopped-monitor-12.summary -+++ b/pengine/test10/stopped-monitor-12.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - - Transition Summary: - -@@ -11,5 +11,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - -diff --git a/pengine/test10/stopped-monitor-21.summary b/pengine/test10/stopped-monitor-21.summary -index 22ccf8d..d2d3852 100644 ---- a/pengine/test10/stopped-monitor-21.summary -+++ b/pengine/test10/stopped-monitor-21.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started node1 FAILED -+ rsc1 (ocf::pacemaker:Dummy): FAILED node1 - - Transition Summary: - * Stop rsc1 (node1) -diff --git a/pengine/test10/stopped-monitor-22.summary b/pengine/test10/stopped-monitor-22.summary -index 489f730..84bf62f 100644 ---- a/pengine/test10/stopped-monitor-22.summary -+++ b/pengine/test10/stopped-monitor-22.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED [ node1 node2 ] - - Transition Summary: - * Stop rsc1 (node1) -diff --git a/pengine/test10/stopped-monitor-25.summary b/pengine/test10/stopped-monitor-25.summary -index ed5fcf4..8473c69 100644 ---- a/pengine/test10/stopped-monitor-25.summary -+++ b/pengine/test10/stopped-monitor-25.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - - Transition Summary: - -@@ -13,5 +13,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - -diff --git a/pengine/test10/stopped-monitor-27.summary b/pengine/test10/stopped-monitor-27.summary -index ed5fcf4..8473c69 100644 ---- a/pengine/test10/stopped-monitor-27.summary -+++ b/pengine/test10/stopped-monitor-27.summary -@@ -2,7 +2,7 @@ - Current cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - - Transition Summary: - -@@ -13,5 +13,5 @@ Executing cluster transition: - Revised cluster status: - Online: [ node1 node2 ] - -- rsc1 (ocf::pacemaker:Dummy): Started (unmanaged) FAILED [ node1 node2 ] -+ rsc1 (ocf::pacemaker:Dummy): FAILED (unmanaged) [ node1 node2 ] - -diff --git a/pengine/test10/unmanaged-stop-1.summary b/pengine/test10/unmanaged-stop-1.summary -index 7a0f680..ebde009 100644 ---- a/pengine/test10/unmanaged-stop-1.summary -+++ b/pengine/test10/unmanaged-stop-1.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ yingying.site ] - - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - - Transition Summary: - * Stop rsc1 (yingying.site - blocked) -@@ -14,5 +14,5 @@ Revised cluster status: - Online: [ yingying.site ] - - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - -diff --git a/pengine/test10/unmanaged-stop-2.summary b/pengine/test10/unmanaged-stop-2.summary -index 7a0f680..ebde009 100644 ---- a/pengine/test10/unmanaged-stop-2.summary -+++ b/pengine/test10/unmanaged-stop-2.summary -@@ -3,7 +3,7 @@ Current cluster status: - Online: [ yingying.site ] - - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - - Transition Summary: - * Stop rsc1 (yingying.site - blocked) -@@ -14,5 +14,5 @@ Revised cluster status: - Online: [ yingying.site ] - - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - -diff --git a/pengine/test10/unmanaged-stop-3.summary b/pengine/test10/unmanaged-stop-3.summary -index 9edcfd5..b37c76e 100644 ---- a/pengine/test10/unmanaged-stop-3.summary -+++ b/pengine/test10/unmanaged-stop-3.summary -@@ -4,7 +4,7 @@ Online: [ yingying.site ] - - Resource Group: group1 - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - - Transition Summary: - * Stop rsc1 (yingying.site - blocked) -@@ -17,5 +17,5 @@ Online: [ yingying.site ] - - Resource Group: group1 - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - -diff --git a/pengine/test10/unmanaged-stop-4.summary b/pengine/test10/unmanaged-stop-4.summary -index 96996c3..dae6cf3 100644 ---- a/pengine/test10/unmanaged-stop-4.summary -+++ b/pengine/test10/unmanaged-stop-4.summary -@@ -4,7 +4,7 @@ Online: [ yingying.site ] - - Resource Group: group1 - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - rsc3 (ocf::heartbeat:Dummy): Stopped - - Transition Summary: -@@ -18,6 +18,6 @@ Online: [ yingying.site ] - - Resource Group: group1 - rsc1 (ocf::pacemaker:Dummy): Started yingying.site -- rsc2 (ocf::pacemaker:Dummy): Started yingying.site (unmanaged) FAILED -+ rsc2 (ocf::pacemaker:Dummy): FAILED yingying.site (unmanaged) - rsc3 (ocf::heartbeat:Dummy): Stopped - -diff --git a/pengine/test10/whitebox-fail1.summary b/pengine/test10/whitebox-fail1.summary -index 8bf6d52..02d0f8e 100644 ---- a/pengine/test10/whitebox-fail1.summary -+++ b/pengine/test10/whitebox-fail1.summary -@@ -3,13 +3,13 @@ Current cluster status: - Online: [ 18node1 18node2 18node3 lxc2:container2 ] - OFFLINE: [ lxc1:container1 ] - -- container1 (ocf::heartbeat:VirtualDomain): Started 18node2 FAILED -+ container1 (ocf::heartbeat:VirtualDomain): FAILED 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 - shoot1 (stonith:fence_xvm): Started 18node3 - Clone Set: M-clone [M] - Started: [ 18node1 18node2 18node3 lxc2 ] - A (ocf::pacemaker:Dummy): Started 18node1 -- B (ocf::pacemaker:Dummy): Started lxc1 FAILED -+ B (ocf::pacemaker:Dummy): FAILED lxc1 - C (ocf::pacemaker:Dummy): Started lxc2 - D (ocf::pacemaker:Dummy): Started 18node1 - -diff --git a/pengine/test10/whitebox-fail2.summary b/pengine/test10/whitebox-fail2.summary -index 81407d3..0e53524 100644 ---- a/pengine/test10/whitebox-fail2.summary -+++ b/pengine/test10/whitebox-fail2.summary -@@ -3,13 +3,13 @@ Current cluster status: - Online: [ 18node1 18node2 18node3 lxc2:container2 ] - OFFLINE: [ lxc1:container1 ] - -- container1 (ocf::heartbeat:VirtualDomain): Started 18node2 FAILED -+ container1 (ocf::heartbeat:VirtualDomain): FAILED 18node2 - container2 (ocf::heartbeat:VirtualDomain): Started 18node2 - shoot1 (stonith:fence_xvm): Started 18node3 - Clone Set: M-clone [M] - Started: [ 18node1 18node2 18node3 lxc2 ] - A (ocf::pacemaker:Dummy): Started 18node1 -- B (ocf::pacemaker:Dummy): Started lxc1 FAILED -+ B (ocf::pacemaker:Dummy): FAILED lxc1 - C (ocf::pacemaker:Dummy): Started lxc2 - D (ocf::pacemaker:Dummy): Started 18node1 - diff --git a/SOURCES/pacemaker-test_pe_do_not_allow_colocation_with_blocked_clone_instances.patch b/SOURCES/pacemaker-test_pe_do_not_allow_colocation_with_blocked_clone_instances.patch deleted file mode 100644 index f32beff..0000000 --- a/SOURCES/pacemaker-test_pe_do_not_allow_colocation_with_blocked_clone_instances.patch +++ /dev/null @@ -1,841 +0,0 @@ -commit d226cf1f6b3f46863a6cf07dab9a11fbdd89d6f3 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Fri Aug 2 13:44:34 2013 +1000 - - Test: PE: Do not allow colocation with blocked clone instances - -diff --git a/pengine/regression.sh b/pengine/regression.sh -index 6ab0b8a..aa7d43d 100755 ---- a/pengine/regression.sh -+++ b/pengine/regression.sh -@@ -316,6 +316,7 @@ do_test bug-lf-2574 "Avoid clone shuffle" - do_test bug-lf-2581 "Avoid group restart due to unrelated clone (re)start" - do_test bug-cl-5168 "Don't shuffle clones" - do_test bug-cl-5170 "Prevent clone from starting with on-fail=block" -+do_test clone-fail-block-colocation "Move colocated group when failed clone has on-fail=block" - - echo "" - do_test master-0 "Stopped -> Slave" -diff --git a/pengine/test10/bug-cl-5170.dot b/pengine/test10/bug-cl-5170.dot -index 93a63d5..ca63383 100644 ---- a/pengine/test10/bug-cl-5170.dot -+++ b/pengine/test10/bug-cl-5170.dot -@@ -1,32 +1,15 @@ - digraph "g" { - "all_stopped" [ style=bold color="green" fontcolor="orange"] --"ip_mgmt_monitor_10000 TCS-2" [ style=dashed color="red" fontcolor="black"] --"ip_mgmt_start_0 TCS-2" -> "ip_mgmt_monitor_10000 TCS-2" [ style = dashed] --"ip_mgmt_start_0 TCS-2" -> "svc_running_0" [ style = dashed] --"ip_mgmt_start_0 TCS-2" [ style=dashed color="red" fontcolor="black"] - "ip_mgmt_stop_0 TCS-2" -> "all_stopped" [ style = bold] --"ip_mgmt_stop_0 TCS-2" -> "ip_mgmt_start_0 TCS-2" [ style = dashed] - "ip_mgmt_stop_0 TCS-2" -> "ip_trf_stop_0 TCS-2" [ style = bold] - "ip_mgmt_stop_0 TCS-2" -> "svc_stopped_0" [ style = bold] - "ip_mgmt_stop_0 TCS-2" [ style=bold color="green" fontcolor="black"] --"ip_trf_monitor_10000 TCS-2" [ style=dashed color="red" fontcolor="black"] --"ip_trf_start_0 TCS-2" -> "ip_mgmt_start_0 TCS-2" [ style = dashed] --"ip_trf_start_0 TCS-2" -> "ip_trf_monitor_10000 TCS-2" [ style = dashed] --"ip_trf_start_0 TCS-2" -> "svc_running_0" [ style = dashed] --"ip_trf_start_0 TCS-2" [ style=dashed color="red" fontcolor="black"] - "ip_trf_stop_0 TCS-2" -> "all_stopped" [ style = bold] --"ip_trf_stop_0 TCS-2" -> "ip_trf_start_0 TCS-2" [ style = dashed] - "ip_trf_stop_0 TCS-2" -> "svc_stopped_0" [ style = bold] - "ip_trf_stop_0 TCS-2" [ style=bold color="green" fontcolor="black"] --"svc_running_0" [ style=dashed color="red" fontcolor="orange"] --"svc_start_0" -> "ip_mgmt_start_0 TCS-2" [ style = dashed] --"svc_start_0" -> "ip_trf_start_0 TCS-2" [ style = dashed] --"svc_start_0" -> "svc_running_0" [ style = dashed] --"svc_start_0" [ style=dashed color="red" fontcolor="orange"] - "svc_stop_0" -> "ip_mgmt_stop_0 TCS-2" [ style = bold] - "svc_stop_0" -> "ip_trf_stop_0 TCS-2" [ style = bold] - "svc_stop_0" -> "svc_stopped_0" [ style = bold] - "svc_stop_0" [ style=bold color="green" fontcolor="orange"] --"svc_stopped_0" -> "svc_start_0" [ style = dashed] - "svc_stopped_0" [ style=bold color="green" fontcolor="orange"] - } -diff --git a/pengine/test10/bug-cl-5170.exp b/pengine/test10/bug-cl-5170.exp -index cef2020..39c8469 100644 ---- a/pengine/test10/bug-cl-5170.exp -+++ b/pengine/test10/bug-cl-5170.exp -@@ -1,7 +1,7 @@ - <transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> - <synapse id="0"> - <action_set> -- <pseudo_event id="14" operation="stopped" operation_key="svc_stopped_0"> -+ <pseudo_event id="12" operation="stopped" operation_key="svc_stopped_0"> - <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> -@@ -10,16 +10,16 @@ - <rsc_op id="7" operation="stop" operation_key="ip_trf_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> -+ <rsc_op id="8" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> - </trigger> - <trigger> -- <pseudo_event id="13" operation="stop" operation_key="svc_stop_0"/> -+ <pseudo_event id="11" operation="stop" operation_key="svc_stop_0"/> - </trigger> - </inputs> - </synapse> - <synapse id="1"> - <action_set> -- <pseudo_event id="13" operation="stop" operation_key="svc_stop_0"> -+ <pseudo_event id="11" operation="stop" operation_key="svc_stop_0"> - <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> - </pseudo_event> - </action_set> -@@ -34,23 +34,23 @@ - </action_set> - <inputs> - <trigger> -- <rsc_op id="9" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> -+ <rsc_op id="8" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> - </trigger> - <trigger> -- <pseudo_event id="13" operation="stop" operation_key="svc_stop_0"/> -+ <pseudo_event id="11" operation="stop" operation_key="svc_stop_0"/> - </trigger> - </inputs> - </synapse> - <synapse id="3"> - <action_set> -- <rsc_op id="9" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"> -+ <rsc_op id="8" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"> - <primitive id="ip_mgmt" class="ocf" provider="heartbeat" type="IPaddr2"/> - <attributes CRM_meta_timeout="20000" broadcast="172.20.1.51" crm_feature_set="3.0.7" iflabel="ha" ip="172.20.1.51" nic="bond0"/> - </rsc_op> - </action_set> - <inputs> - <trigger> -- <pseudo_event id="13" operation="stop" operation_key="svc_stop_0"/> -+ <pseudo_event id="11" operation="stop" operation_key="svc_stop_0"/> - </trigger> - </inputs> - </synapse> -@@ -65,7 +65,7 @@ - <rsc_op id="7" operation="stop" operation_key="ip_trf_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> - </trigger> - <trigger> -- <rsc_op id="9" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> -+ <rsc_op id="8" operation="stop" operation_key="ip_mgmt_stop_0" on_node="TCS-2" on_node_uuid="TCS-2"/> - </trigger> - </inputs> - </synapse> -diff --git a/pengine/test10/bug-cl-5170.scores b/pengine/test10/bug-cl-5170.scores -index 26daf48..ed9815a 100644 ---- a/pengine/test10/bug-cl-5170.scores -+++ b/pengine/test10/bug-cl-5170.scores -@@ -16,6 +16,6 @@ native_color: d_tomcat_nms:0 allocation score on TCS-2: INFINITY - native_color: d_tomcat_nms:1 allocation score on TCS-1: -INFINITY - native_color: d_tomcat_nms:1 allocation score on TCS-2: -INFINITY - native_color: ip_mgmt allocation score on TCS-1: -INFINITY --native_color: ip_mgmt allocation score on TCS-2: 0 -+native_color: ip_mgmt allocation score on TCS-2: -INFINITY - native_color: ip_trf allocation score on TCS-1: -INFINITY --native_color: ip_trf allocation score on TCS-2: 0 -+native_color: ip_trf allocation score on TCS-2: -INFINITY -diff --git a/pengine/test10/bug-cl-5170.summary b/pengine/test10/bug-cl-5170.summary -index 723be33..3b4bcb9 100644 ---- a/pengine/test10/bug-cl-5170.summary -+++ b/pengine/test10/bug-cl-5170.summary -@@ -11,8 +11,8 @@ Online: [ TCS-2 ] - Stopped: [ TCS-1 ] - - Transition Summary: -- * Stop ip_trf (Started TCS-2) -- * Stop ip_mgmt (Started TCS-2) -+ * Stop ip_trf (TCS-2) -+ * Stop ip_mgmt (TCS-2) - - Executing cluster transition: - * Pseudo action: svc_stop_0 -diff --git a/pengine/test10/clone-fail-block-colocation.dot b/pengine/test10/clone-fail-block-colocation.dot -new file mode 100644 -index 0000000..6356bd2 ---- /dev/null -+++ b/pengine/test10/clone-fail-block-colocation.dot -@@ -0,0 +1,56 @@ -+digraph "g" { -+"all_stopped" [ style=bold color="green" fontcolor="orange"] -+"d_bird_subnet_state_monitor_10000 DEM-2" [ style=bold color="green" fontcolor="black"] -+"d_bird_subnet_state_start_0 DEM-2" -> "d_bird_subnet_state_monitor_10000 DEM-2" [ style = bold] -+"d_bird_subnet_state_start_0 DEM-2" -> "ip_mgmt_start_0 DEM-2" [ style = bold] -+"d_bird_subnet_state_start_0 DEM-2" -> "svc_running_0" [ style = bold] -+"d_bird_subnet_state_start_0 DEM-2" [ style=bold color="green" fontcolor="black"] -+"d_bird_subnet_state_stop_0 DEM-1" -> "all_stopped" [ style = bold] -+"d_bird_subnet_state_stop_0 DEM-1" -> "d_bird_subnet_state_start_0 DEM-2" [ style = bold] -+"d_bird_subnet_state_stop_0 DEM-1" -> "ipv6_dem_tas_dns_stop_0 DEM-1" [ style = bold] -+"d_bird_subnet_state_stop_0 DEM-1" -> "svc_stopped_0" [ style = bold] -+"d_bird_subnet_state_stop_0 DEM-1" [ style=bold color="green" fontcolor="black"] -+"ip_mgmt_monitor_10000 DEM-2" [ style=bold color="green" fontcolor="black"] -+"ip_mgmt_start_0 DEM-2" -> "ip_mgmt_monitor_10000 DEM-2" [ style = bold] -+"ip_mgmt_start_0 DEM-2" -> "ip_trf_tas_start_0 DEM-2" [ style = bold] -+"ip_mgmt_start_0 DEM-2" -> "svc_running_0" [ style = bold] -+"ip_mgmt_start_0 DEM-2" [ style=bold color="green" fontcolor="black"] -+"ip_mgmt_stop_0 DEM-1" -> "all_stopped" [ style = bold] -+"ip_mgmt_stop_0 DEM-1" -> "d_bird_subnet_state_stop_0 DEM-1" [ style = bold] -+"ip_mgmt_stop_0 DEM-1" -> "ip_mgmt_start_0 DEM-2" [ style = bold] -+"ip_mgmt_stop_0 DEM-1" -> "svc_stopped_0" [ style = bold] -+"ip_mgmt_stop_0 DEM-1" [ style=bold color="green" fontcolor="black"] -+"ip_trf_tas_monitor_10000 DEM-2" [ style=bold color="green" fontcolor="black"] -+"ip_trf_tas_start_0 DEM-2" -> "ip_trf_tas_monitor_10000 DEM-2" [ style = bold] -+"ip_trf_tas_start_0 DEM-2" -> "svc_running_0" [ style = bold] -+"ip_trf_tas_start_0 DEM-2" [ style=bold color="green" fontcolor="black"] -+"ip_trf_tas_stop_0 DEM-1" -> "all_stopped" [ style = bold] -+"ip_trf_tas_stop_0 DEM-1" -> "ip_mgmt_stop_0 DEM-1" [ style = bold] -+"ip_trf_tas_stop_0 DEM-1" -> "ip_trf_tas_start_0 DEM-2" [ style = bold] -+"ip_trf_tas_stop_0 DEM-1" -> "svc_stopped_0" [ style = bold] -+"ip_trf_tas_stop_0 DEM-1" [ style=bold color="green" fontcolor="black"] -+"ipv6_dem_tas_dns_monitor_10000 DEM-2" [ style=bold color="green" fontcolor="black"] -+"ipv6_dem_tas_dns_start_0 DEM-2" -> "d_bird_subnet_state_start_0 DEM-2" [ style = bold] -+"ipv6_dem_tas_dns_start_0 DEM-2" -> "ipv6_dem_tas_dns_monitor_10000 DEM-2" [ style = bold] -+"ipv6_dem_tas_dns_start_0 DEM-2" -> "svc_running_0" [ style = bold] -+"ipv6_dem_tas_dns_start_0 DEM-2" [ style=bold color="green" fontcolor="black"] -+"ipv6_dem_tas_dns_stop_0 DEM-1" -> "all_stopped" [ style = bold] -+"ipv6_dem_tas_dns_stop_0 DEM-1" -> "ipv6_dem_tas_dns_start_0 DEM-2" [ style = bold] -+"ipv6_dem_tas_dns_stop_0 DEM-1" -> "svc_stopped_0" [ style = bold] -+"ipv6_dem_tas_dns_stop_0 DEM-1" [ style=bold color="green" fontcolor="black"] -+"svc_running_0" [ style=bold color="green" fontcolor="orange"] -+"svc_start_0" -> "d_bird_subnet_state_start_0 DEM-2" [ style = bold] -+"svc_start_0" -> "ip_mgmt_start_0 DEM-2" [ style = bold] -+"svc_start_0" -> "ip_trf_tas_start_0 DEM-2" [ style = bold] -+"svc_start_0" -> "ipv6_dem_tas_dns_start_0 DEM-2" [ style = bold] -+"svc_start_0" -> "svc_running_0" [ style = bold] -+"svc_start_0" [ style=bold color="green" fontcolor="orange"] -+"svc_stop_0" -> "d_bird_subnet_state_stop_0 DEM-1" [ style = bold] -+"svc_stop_0" -> "ip_mgmt_stop_0 DEM-1" [ style = bold] -+"svc_stop_0" -> "ip_trf_tas_stop_0 DEM-1" [ style = bold] -+"svc_stop_0" -> "ipv6_dem_tas_dns_stop_0 DEM-1" [ style = bold] -+"svc_stop_0" -> "svc_stopped_0" [ style = bold] -+"svc_stop_0" [ style=bold color="green" fontcolor="orange"] -+"svc_stopped_0" -> "svc_start_0" [ style = bold] -+"svc_stopped_0" [ style=bold color="green" fontcolor="orange"] -+} -diff --git a/pengine/test10/clone-fail-block-colocation.exp b/pengine/test10/clone-fail-block-colocation.exp -new file mode 100644 -index 0000000..f88139e ---- /dev/null -+++ b/pengine/test10/clone-fail-block-colocation.exp -@@ -0,0 +1,277 @@ -+<transition_graph cluster-delay="60s" stonith-timeout="60s" failed-stop-offset="INFINITY" failed-start-offset="INFINITY" batch-limit="30" transition_id="0"> -+ <synapse id="0"> -+ <action_set> -+ <pseudo_event id="30" operation="stopped" operation_key="svc_stopped_0"> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="15" operation="stop" operation_key="ipv6_dem_tas_dns_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="d_bird_subnet_state_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="ip_mgmt_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="ip_trf_tas_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="stop" operation_key="svc_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="1"> -+ <action_set> -+ <pseudo_event id="29" operation="stop" operation_key="svc_stop_0"> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ </pseudo_event> -+ </action_set> -+ <inputs/> -+ </synapse> -+ <synapse id="2"> -+ <action_set> -+ <pseudo_event id="28" operation="running" operation_key="svc_running_0"> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="16" operation="start" operation_key="ipv6_dem_tas_dns_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="d_bird_subnet_state_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="22" operation="start" operation_key="ip_mgmt_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="25" operation="start" operation_key="ip_trf_tas_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="start" operation_key="svc_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="3"> -+ <action_set> -+ <pseudo_event id="27" operation="start" operation_key="svc_start_0"> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="30" operation="stopped" operation_key="svc_stopped_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="4"> -+ <action_set> -+ <rsc_op id="17" operation="monitor" operation_key="ipv6_dem_tas_dns_monitor_10000" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="ipv6_dem_tas_dns" class="ocf" provider="heartbeat" type="IPv6addr"/> -+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" cidr_netmask="112" crm_feature_set="3.0.7" ipv6addr="fd15:a2c:8660:c828:172:16:10:241" nic="bond0.3010"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="16" operation="start" operation_key="ipv6_dem_tas_dns_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="5"> -+ <action_set> -+ <rsc_op id="16" operation="start" operation_key="ipv6_dem_tas_dns_start_0" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="ipv6_dem_tas_dns" class="ocf" provider="heartbeat" type="IPv6addr"/> -+ <attributes CRM_meta_timeout="20000" cidr_netmask="112" crm_feature_set="3.0.7" ipv6addr="fd15:a2c:8660:c828:172:16:10:241" nic="bond0.3010"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="15" operation="stop" operation_key="ipv6_dem_tas_dns_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="start" operation_key="svc_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="6"> -+ <action_set> -+ <rsc_op id="15" operation="stop" operation_key="ipv6_dem_tas_dns_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"> -+ <primitive id="ipv6_dem_tas_dns" class="ocf" provider="heartbeat" type="IPv6addr"/> -+ <attributes CRM_meta_timeout="20000" cidr_netmask="112" crm_feature_set="3.0.7" ipv6addr="fd15:a2c:8660:c828:172:16:10:241" nic="bond0.3010"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="d_bird_subnet_state_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="stop" operation_key="svc_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="7"> -+ <action_set> -+ <rsc_op id="20" operation="monitor" operation_key="d_bird_subnet_state_monitor_10000" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="d_bird_subnet_state" class="lsb" type="bird_subnet_state"/> -+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="d_bird_subnet_state_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="8"> -+ <action_set> -+ <rsc_op id="19" operation="start" operation_key="d_bird_subnet_state_start_0" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="d_bird_subnet_state" class="lsb" type="bird_subnet_state"/> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="16" operation="start" operation_key="ipv6_dem_tas_dns_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="d_bird_subnet_state_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="start" operation_key="svc_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="9"> -+ <action_set> -+ <rsc_op id="18" operation="stop" operation_key="d_bird_subnet_state_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"> -+ <primitive id="d_bird_subnet_state" class="lsb" type="bird_subnet_state"/> -+ <attributes CRM_meta_timeout="20000" crm_feature_set="3.0.7"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="ip_mgmt_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="stop" operation_key="svc_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="10"> -+ <action_set> -+ <rsc_op id="23" operation="monitor" operation_key="ip_mgmt_monitor_10000" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="ip_mgmt" class="ocf" provider="heartbeat" type="IPaddr2"/> -+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" broadcast="172.20.1.241" crm_feature_set="3.0.7" iflabel="ha" ip="172.20.1.241" nic="bond0"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="22" operation="start" operation_key="ip_mgmt_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="11"> -+ <action_set> -+ <rsc_op id="22" operation="start" operation_key="ip_mgmt_start_0" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="ip_mgmt" class="ocf" provider="heartbeat" type="IPaddr2"/> -+ <attributes CRM_meta_timeout="20000" broadcast="172.20.1.241" crm_feature_set="3.0.7" iflabel="ha" ip="172.20.1.241" nic="bond0"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="19" operation="start" operation_key="d_bird_subnet_state_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="ip_mgmt_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="start" operation_key="svc_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="12"> -+ <action_set> -+ <rsc_op id="21" operation="stop" operation_key="ip_mgmt_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"> -+ <primitive id="ip_mgmt" class="ocf" provider="heartbeat" type="IPaddr2"/> -+ <attributes CRM_meta_timeout="20000" broadcast="172.20.1.241" crm_feature_set="3.0.7" iflabel="ha" ip="172.20.1.241" nic="bond0"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="ip_trf_tas_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="29" operation="stop" operation_key="svc_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="13"> -+ <action_set> -+ <rsc_op id="26" operation="monitor" operation_key="ip_trf_tas_monitor_10000" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="ip_trf_tas" class="ocf" provider="heartbeat" type="IPaddr2"/> -+ <attributes CRM_meta_interval="10000" CRM_meta_name="monitor" CRM_meta_timeout="20000" broadcast="172.16.10.241" crm_feature_set="3.0.7" iflabel="ha" ip="172.16.10.241" nic="bond0.3010"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="25" operation="start" operation_key="ip_trf_tas_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="14"> -+ <action_set> -+ <rsc_op id="25" operation="start" operation_key="ip_trf_tas_start_0" on_node="DEM-2" on_node_uuid="DEM-2"> -+ <primitive id="ip_trf_tas" class="ocf" provider="heartbeat" type="IPaddr2"/> -+ <attributes CRM_meta_timeout="20000" broadcast="172.16.10.241" crm_feature_set="3.0.7" iflabel="ha" ip="172.16.10.241" nic="bond0.3010"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="22" operation="start" operation_key="ip_mgmt_start_0" on_node="DEM-2" on_node_uuid="DEM-2"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="ip_trf_tas_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <pseudo_event id="27" operation="start" operation_key="svc_start_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="15"> -+ <action_set> -+ <rsc_op id="24" operation="stop" operation_key="ip_trf_tas_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"> -+ <primitive id="ip_trf_tas" class="ocf" provider="heartbeat" type="IPaddr2"/> -+ <attributes CRM_meta_timeout="20000" broadcast="172.16.10.241" crm_feature_set="3.0.7" iflabel="ha" ip="172.16.10.241" nic="bond0.3010"/> -+ </rsc_op> -+ </action_set> -+ <inputs> -+ <trigger> -+ <pseudo_event id="29" operation="stop" operation_key="svc_stop_0"/> -+ </trigger> -+ </inputs> -+ </synapse> -+ <synapse id="16"> -+ <action_set> -+ <pseudo_event id="11" operation="all_stopped" operation_key="all_stopped"> -+ <attributes crm_feature_set="3.0.7"/> -+ </pseudo_event> -+ </action_set> -+ <inputs> -+ <trigger> -+ <rsc_op id="15" operation="stop" operation_key="ipv6_dem_tas_dns_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="18" operation="stop" operation_key="d_bird_subnet_state_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="21" operation="stop" operation_key="ip_mgmt_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ <trigger> -+ <rsc_op id="24" operation="stop" operation_key="ip_trf_tas_stop_0" on_node="DEM-1" on_node_uuid="DEM-1"/> -+ </trigger> -+ </inputs> -+ </synapse> -+</transition_graph> -diff --git a/pengine/test10/clone-fail-block-colocation.scores b/pengine/test10/clone-fail-block-colocation.scores -new file mode 100644 -index 0000000..9443744 ---- /dev/null -+++ b/pengine/test10/clone-fail-block-colocation.scores -@@ -0,0 +1,49 @@ -+Allocation scores: -+clone_color: cl_bird allocation score on DEM-1: 0 -+clone_color: cl_bird allocation score on DEM-2: 0 -+clone_color: cl_bird6 allocation score on DEM-1: 0 -+clone_color: cl_bird6 allocation score on DEM-2: 0 -+clone_color: cl_tomcat_nms allocation score on DEM-1: 0 -+clone_color: cl_tomcat_nms allocation score on DEM-2: 0 -+clone_color: d_bird6:0 allocation score on DEM-1: INFINITY -+clone_color: d_bird6:0 allocation score on DEM-2: 0 -+clone_color: d_bird6:1 allocation score on DEM-1: 0 -+clone_color: d_bird6:1 allocation score on DEM-2: 1 -+clone_color: d_bird:0 allocation score on DEM-1: 1 -+clone_color: d_bird:0 allocation score on DEM-2: 0 -+clone_color: d_bird:1 allocation score on DEM-1: 0 -+clone_color: d_bird:1 allocation score on DEM-2: 1 -+clone_color: d_tomcat_nms:0 allocation score on DEM-1: 1 -+clone_color: d_tomcat_nms:0 allocation score on DEM-2: 0 -+clone_color: d_tomcat_nms:1 allocation score on DEM-1: 0 -+clone_color: d_tomcat_nms:1 allocation score on DEM-2: 1 -+group_color: d_bird_subnet_state allocation score on DEM-1: 0 -+group_color: d_bird_subnet_state allocation score on DEM-2: 0 -+group_color: ip_mgmt allocation score on DEM-1: 0 -+group_color: ip_mgmt allocation score on DEM-2: 0 -+group_color: ip_trf_tas allocation score on DEM-1: 0 -+group_color: ip_trf_tas allocation score on DEM-2: 0 -+group_color: ipv6_dem_tas_dns allocation score on DEM-1: 0 -+group_color: ipv6_dem_tas_dns allocation score on DEM-2: 0 -+group_color: svc allocation score on DEM-1: 0 -+group_color: svc allocation score on DEM-2: 0 -+native_color: d_bird6:0 allocation score on DEM-1: INFINITY -+native_color: d_bird6:0 allocation score on DEM-2: -INFINITY -+native_color: d_bird6:1 allocation score on DEM-1: 0 -+native_color: d_bird6:1 allocation score on DEM-2: 1 -+native_color: d_bird:0 allocation score on DEM-1: 1 -+native_color: d_bird:0 allocation score on DEM-2: 0 -+native_color: d_bird:1 allocation score on DEM-1: -INFINITY -+native_color: d_bird:1 allocation score on DEM-2: 1 -+native_color: d_bird_subnet_state allocation score on DEM-1: -INFINITY -+native_color: d_bird_subnet_state allocation score on DEM-2: 0 -+native_color: d_tomcat_nms:0 allocation score on DEM-1: 1 -+native_color: d_tomcat_nms:0 allocation score on DEM-2: 0 -+native_color: d_tomcat_nms:1 allocation score on DEM-1: -INFINITY -+native_color: d_tomcat_nms:1 allocation score on DEM-2: 1 -+native_color: ip_mgmt allocation score on DEM-1: -INFINITY -+native_color: ip_mgmt allocation score on DEM-2: 0 -+native_color: ip_trf_tas allocation score on DEM-1: -INFINITY -+native_color: ip_trf_tas allocation score on DEM-2: 0 -+native_color: ipv6_dem_tas_dns allocation score on DEM-1: -INFINITY -+native_color: ipv6_dem_tas_dns allocation score on DEM-2: 0 -diff --git a/pengine/test10/clone-fail-block-colocation.summary b/pengine/test10/clone-fail-block-colocation.summary -new file mode 100644 -index 0000000..7b066ee ---- /dev/null -+++ b/pengine/test10/clone-fail-block-colocation.summary -@@ -0,0 +1,58 @@ -+ -+Current cluster status: -+Online: [ DEM-1 DEM-2 ] -+ -+ Resource Group: svc -+ ipv6_dem_tas_dns (ocf::heartbeat:IPv6addr): Started DEM-1 -+ d_bird_subnet_state (lsb:bird_subnet_state): Started DEM-1 -+ ip_mgmt (ocf::heartbeat:IPaddr2): Started DEM-1 -+ ip_trf_tas (ocf::heartbeat:IPaddr2): Started DEM-1 -+ Clone Set: cl_bird [d_bird] -+ Started: [ DEM-1 DEM-2 ] -+ Clone Set: cl_bird6 [d_bird6] -+ d_bird6 (lsb:bird6): Started DEM-1 (unmanaged) FAILED -+ Started: [ DEM-2 ] -+ Clone Set: cl_tomcat_nms [d_tomcat_nms] -+ Started: [ DEM-1 DEM-2 ] -+ -+Transition Summary: -+ * Move ipv6_dem_tas_dns (Started DEM-1 -> DEM-2) -+ * Move d_bird_subnet_state (Started DEM-1 -> DEM-2) -+ * Move ip_mgmt (Started DEM-1 -> DEM-2) -+ * Move ip_trf_tas (Started DEM-1 -> DEM-2) -+ -+Executing cluster transition: -+ * Pseudo action: svc_stop_0 -+ * Resource action: ip_trf_tas stop on DEM-1 -+ * Resource action: ip_mgmt stop on DEM-1 -+ * Resource action: d_bird_subnet_state stop on DEM-1 -+ * Resource action: ipv6_dem_tas_dns stop on DEM-1 -+ * Pseudo action: all_stopped -+ * Pseudo action: svc_stopped_0 -+ * Pseudo action: svc_start_0 -+ * Resource action: ipv6_dem_tas_dns start on DEM-2 -+ * Resource action: d_bird_subnet_state start on DEM-2 -+ * Resource action: ip_mgmt start on DEM-2 -+ * Resource action: ip_trf_tas start on DEM-2 -+ * Pseudo action: svc_running_0 -+ * Resource action: ipv6_dem_tas_dns monitor=10000 on DEM-2 -+ * Resource action: d_bird_subnet_state monitor=10000 on DEM-2 -+ * Resource action: ip_mgmt monitor=10000 on DEM-2 -+ * Resource action: ip_trf_tas monitor=10000 on DEM-2 -+ -+Revised cluster status: -+Online: [ DEM-1 DEM-2 ] -+ -+ Resource Group: svc -+ ipv6_dem_tas_dns (ocf::heartbeat:IPv6addr): Started DEM-2 -+ d_bird_subnet_state (lsb:bird_subnet_state): Started DEM-2 -+ ip_mgmt (ocf::heartbeat:IPaddr2): Started DEM-2 -+ ip_trf_tas (ocf::heartbeat:IPaddr2): Started DEM-2 -+ Clone Set: cl_bird [d_bird] -+ Started: [ DEM-1 DEM-2 ] -+ Clone Set: cl_bird6 [d_bird6] -+ d_bird6 (lsb:bird6): Started DEM-1 (unmanaged) FAILED -+ Started: [ DEM-2 ] -+ Clone Set: cl_tomcat_nms [d_tomcat_nms] -+ Started: [ DEM-1 DEM-2 ] -+ -diff --git a/pengine/test10/clone-fail-block-colocation.xml b/pengine/test10/clone-fail-block-colocation.xml -new file mode 100644 -index 0000000..02eac7d ---- /dev/null -+++ b/pengine/test10/clone-fail-block-colocation.xml -@@ -0,0 +1,192 @@ -+<cib epoch="29" num_updates="10" admin_epoch="0" validate-with="pacemaker-1.2" cib-last-written="Thu Aug 1 07:18:30 2013" update-origin="DEM-1" update-client="cibadmin" crm_feature_set="3.0.7" have-quorum="1" dc-uuid="DEM-1"> -+ <configuration> -+ <crm_config> -+ <cluster_property_set id="cib-bootstrap-options"> -+ <nvpair id="cib-bootstrap-options-dc-version" name="dc-version" value="1.1.11-1.el6-42f2063"/> -+ <nvpair id="cib-bootstrap-options-cluster-infrastructure" name="cluster-infrastructure" value="cman"/> -+ <nvpair id="cib-bootstrap-options-pe-warn-series-max" name="pe-warn-series-max" value="9"/> -+ <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> -+ <nvpair id="cib-bootstrap-options-cluster-recheck-interval" name="cluster-recheck-interval" value="3min"/> -+ <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="false"/> -+ <nvpair id="cib-bootstrap-options-pe-input-series-max" name="pe-input-series-max" value="9"/> -+ <nvpair id="cib-bootstrap-options-pe-error-series-max" name="pe-error-series-max" value="9"/> -+ <nvpair id="cib-bootstrap-options-last-lrm-refresh" name="last-lrm-refresh" value="1375341246"/> -+ </cluster_property_set> -+ </crm_config> -+ <nodes> -+ <node id="DEM-1" uname="DEM-1"/> -+ <node id="DEM-2" uname="DEM-2"/> -+ </nodes> -+ <resources> -+ <group id="svc"> -+ <primitive class="ocf" id="ipv6_dem_tas_dns" provider="heartbeat" type="IPv6addr"> -+ <operations> -+ <op id="ipv6_dem_tas_dns-monitor-10s" interval="10s" name="monitor"/> -+ </operations> -+ <instance_attributes id="ipv6_dem_tas_dns-instance_attributes"> -+ <nvpair id="ipv6_dem_tas_dns-instance_attributes-cidr_netmask" name="cidr_netmask" value="112"/> -+ <nvpair id="ipv6_dem_tas_dns-instance_attributes-nic" name="nic" value="bond0.3010"/> -+ <nvpair id="ipv6_dem_tas_dns-instance_attributes-ipv6addr" name="ipv6addr" value="fd15:a2c:8660:c828:172:16:10:241"/> -+ </instance_attributes> -+ <meta_attributes id="ipv6_dem_tas_dns-meta_attributes"> -+ <nvpair id="ipv6_dem_tas_dns-meta_attributes-migration-threshold" name="migration-threshold" value="1"/> -+ </meta_attributes> -+ </primitive> -+ <primitive class="lsb" id="d_bird_subnet_state" type="bird_subnet_state"> -+ <operations> -+ <op id="d_bird_subnet_state-monitor-10s" interval="10s" name="monitor"/> -+ </operations> -+ <meta_attributes id="d_bird_subnet_state-meta_attributes"> -+ <nvpair id="d_bird_subnet_state-meta_attributes-migration-threshold" name="migration-threshold" value="1"/> -+ </meta_attributes> -+ </primitive> -+ <primitive class="ocf" id="ip_mgmt" provider="heartbeat" type="IPaddr2"> -+ <operations> -+ <op id="ip_mgmt-monitor-10s" interval="10s" name="monitor"/> -+ </operations> -+ <instance_attributes id="ip_mgmt-instance_attributes"> -+ <nvpair id="ip_mgmt-instance_attributes-broadcast" name="broadcast" value="172.20.1.241"/> -+ <nvpair id="ip_mgmt-instance_attributes-iflabel" name="iflabel" value="ha"/> -+ <nvpair id="ip_mgmt-instance_attributes-nic" name="nic" value="bond0"/> -+ <nvpair id="ip_mgmt-instance_attributes-ip" name="ip" value="172.20.1.241"/> -+ </instance_attributes> -+ <meta_attributes id="ip_mgmt-meta_attributes"> -+ <nvpair id="ip_mgmt-meta_attributes-migration-threshold" name="migration-threshold" value="1"/> -+ </meta_attributes> -+ </primitive> -+ <primitive class="ocf" id="ip_trf_tas" provider="heartbeat" type="IPaddr2"> -+ <operations> -+ <op id="ip_trf_tas-monitor-10s" interval="10s" name="monitor"/> -+ </operations> -+ <instance_attributes id="ip_trf_tas-instance_attributes"> -+ <nvpair id="ip_trf_tas-instance_attributes-broadcast" name="broadcast" value="172.16.10.241"/> -+ <nvpair id="ip_trf_tas-instance_attributes-iflabel" name="iflabel" value="ha"/> -+ <nvpair id="ip_trf_tas-instance_attributes-nic" name="nic" value="bond0.3010"/> -+ <nvpair id="ip_trf_tas-instance_attributes-ip" name="ip" value="172.16.10.241"/> -+ </instance_attributes> -+ <meta_attributes id="ip_trf_tas-meta_attributes"> -+ <nvpair id="ip_trf_tas-meta_attributes-migration-threshold" name="migration-threshold" value="1"/> -+ </meta_attributes> -+ </primitive> -+ </group> -+ <clone id="cl_bird"> -+ <primitive class="lsb" id="d_bird" type="bird"> -+ <operations> -+ <op id="d_bird-monitor-10s" interval="10s" name="monitor" on-fail="block"/> -+ </operations> -+ </primitive> -+ </clone> -+ <clone id="cl_bird6"> -+ <primitive class="lsb" id="d_bird6" type="bird6"> -+ <operations> -+ <op id="d_bird6-monitor-10s" interval="10s" name="monitor" on-fail="block"/> -+ </operations> -+ </primitive> -+ </clone> -+ <clone id="cl_tomcat_nms"> -+ <primitive class="ocf" id="d_tomcat_nms" provider="ntc" type="tomcat"> -+ <operations> -+ <op id="d_tomcat_nms-monitor-15s" interval="15s" name="monitor" on-fail="block" timeout="510s"/> -+ <op id="d_tomcat_nms-stop-0" interval="0" name="stop" timeout="510s"/> -+ <op id="d_tomcat_nms-start-0" interval="0" name="start" timeout="510s"/> -+ </operations> -+ <instance_attributes id="d_tomcat_nms-instance_attributes"> -+ <nvpair id="d_tomcat_nms-instance_attributes-monitor_urls" name="monitor_urls" value="/dem-device-manager/health"/> -+ <nvpair id="d_tomcat_nms-instance_attributes-monitor_use_ssl" name="monitor_use_ssl" value="no"/> -+ <nvpair id="d_tomcat_nms-instance_attributes-instance_name" name="instance_name" value="NMS"/> -+ <nvpair id="d_tomcat_nms-instance_attributes-monitor_timeout" name="monitor_timeout" value="120"/> -+ </instance_attributes> -+ </primitive> -+ </clone> -+ </resources> -+ <constraints> -+ <rsc_order first="cl_bird" id="order_bird" score="INFINITY" symmetrical="true" then="svc"/> -+ <rsc_order first="cl_bird6" id="order_bird6" score="INFINITY" symmetrical="true" then="svc"/> -+ <rsc_order first="cl_tomcat_nms" id="order_tomcat_nms" score="INFINITY" symmetrical="true" then="svc"/> -+ <rsc_colocation id="colo_tomcat_nms" rsc="svc" score="INFINITY" with-rsc="cl_tomcat_nms"/> -+ <rsc_colocation id="colo_bird6" rsc="svc" score="INFINITY" with-rsc="cl_bird6"/> -+ <rsc_colocation id="colo_bird" rsc="svc" score="INFINITY" with-rsc="cl_bird"/> -+ </constraints> -+ </configuration> -+ <status> -+ <node_state id="DEM-1" uname="DEM-1" in_ccm="true" crmd="online" crm-debug-origin="do_update_resource" join="member" expected="member"> -+ <transient_attributes id="DEM-1"> -+ <instance_attributes id="status-DEM-1"> -+ <nvpair id="status-DEM-1-probe_complete" name="probe_complete" value="true"/> -+ <nvpair id="status-DEM-1-last-failure-d_bird" name="last-failure-d_bird" value="1375341129"/> -+ <nvpair id="status-DEM-1-fail-count-d_bird6" name="fail-count-d_bird6" value="1"/> -+ <nvpair id="status-DEM-1-last-failure-d_bird6" name="last-failure-d_bird6" value="1375341530"/> -+ </instance_attributes> -+ </transient_attributes> -+ <lrm id="DEM-1"> -+ <lrm_resources> -+ <lrm_resource id="ipv6_dem_tas_dns" type="IPv6addr" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="ipv6_dem_tas_dns_last_0" operation_key="ipv6_dem_tas_dns_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="11:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;11:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="58" rc-code="0" op-status="0" interval="0" last-run="1375341015" last-rc-change="1375341015" exec-time="7006" queue-time="0" op-digest="53af56d463bd7ec89aee6e087825e22b"/> -+ <lrm_rsc_op id="ipv6_dem_tas_dns_monitor_10000" operation_key="ipv6_dem_tas_dns_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="12:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;12:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="62" rc-code="0" op-status="0" interval="10000" last-rc-change="1375341022" exec-time="2" queue-time="1" op-digest="fd94b15c52be1857da5345d63a4bc0e5"/> -+ </lrm_resource> -+ <lrm_resource id="d_bird6" type="bird6" class="lsb"> -+ <lrm_rsc_op id="d_bird6_last_0" operation_key="d_bird6_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="29:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;29:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="43" rc-code="0" op-status="0" interval="0" last-run="1375340999" last-rc-change="1375340999" exec-time="49" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="d_bird6_monitor_10000" operation_key="d_bird6_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="30:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;30:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="48" rc-code="0" op-status="0" interval="10000" last-rc-change="1375340999" exec-time="21" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> -+ <lrm_rsc_op id="d_bird6_last_failure_0" operation_key="d_bird6_monitor_10000" operation="monitor" crm-debug-origin="do_update_resource" crm_feature_set="3.0.7" transition-key="30:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:7;30:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="48" rc-code="7" op-status="0" interval="10000" last-rc-change="1375341530" exec-time="0" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> -+ </lrm_resource> -+ <lrm_resource id="d_bird_subnet_state" type="bird_subnet_state" class="lsb"> -+ <lrm_rsc_op id="d_bird_subnet_state_last_0" operation_key="d_bird_subnet_state_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="13:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;13:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="64" rc-code="0" op-status="0" interval="0" last-run="1375341022" last-rc-change="1375341022" exec-time="4036" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="d_bird_subnet_state_monitor_10000" operation_key="d_bird_subnet_state_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="14:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;14:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="68" rc-code="0" op-status="0" interval="10000" last-rc-change="1375341026" exec-time="19" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> -+ </lrm_resource> -+ <lrm_resource id="ip_trf_tas" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="ip_trf_tas_last_0" operation_key="ip_trf_tas_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="17:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;17:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="76" rc-code="0" op-status="0" interval="0" last-run="1375341026" last-rc-change="1375341026" exec-time="53" queue-time="0" op-digest="b3cfedd8c3c97d0ac635474e24692dad"/> -+ <lrm_rsc_op id="ip_trf_tas_monitor_10000" operation_key="ip_trf_tas_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="18:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;18:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="80" rc-code="0" op-status="0" interval="10000" last-rc-change="1375341026" exec-time="21" queue-time="0" op-digest="20a32ab8c2aeec50b2bedda2f713ab57"/> -+ </lrm_resource> -+ <lrm_resource id="d_tomcat_nms" type="tomcat" class="ocf" provider="ntc"> -+ <lrm_rsc_op id="d_tomcat_nms_last_0" operation_key="d_tomcat_nms_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="35:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;35:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="45" rc-code="0" op-status="0" interval="0" last-run="1375340999" last-rc-change="1375340999" exec-time="15698" queue-time="0" op-digest="c030e52a1e91e58d4e2d6e57cb9cdea4" op-force-restart=" state instance_name monitor_urls monitor_use_ssl monitor_timeout cleanup " op-restart-digest="c030e52a1e91e58d4e2d6e57cb9cdea4"/> -+ <lrm_rsc_op id="d_tomcat_nms_monitor_15000" operation_key="d_tomcat_nms_monitor_15000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="36:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;36:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="56" rc-code="0" op-status="0" interval="15000" last-rc-change="1375341015" exec-time="439" queue-time="0" op-digest="9641e02fa4460a2cbfb71f4da59905c7"/> -+ </lrm_resource> -+ <lrm_resource id="d_bird" type="bird" class="lsb"> -+ <lrm_rsc_op id="d_bird_last_failure_0" operation_key="d_bird_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="12:10:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;12:10:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="92" rc-code="0" op-status="0" interval="0" last-run="1375341247" last-rc-change="1375341247" exec-time="37" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="d_bird_monitor_10000" operation_key="d_bird_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="27:11:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;27:11:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="95" rc-code="0" op-status="0" interval="10000" last-rc-change="1375341247" exec-time="30" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> -+ </lrm_resource> -+ <lrm_resource id="ip_mgmt" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="ip_mgmt_last_0" operation_key="ip_mgmt_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="15:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;15:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="70" rc-code="0" op-status="0" interval="0" last-run="1375341026" last-rc-change="1375341026" exec-time="43" queue-time="0" op-digest="c311e79fb95db5b1a4b80a95c8947ce1"/> -+ <lrm_rsc_op id="ip_mgmt_monitor_10000" operation_key="ip_mgmt_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="16:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;16:0:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="74" rc-code="0" op-status="0" interval="10000" last-rc-change="1375341026" exec-time="41" queue-time="0" op-digest="a1f082697015807cf60bb28fe877e82f"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ <node_state id="DEM-2" uname="DEM-2" crmd="online" join="member" crm-debug-origin="do_state_transition" in_ccm="true" expected="member"> -+ <transient_attributes id="DEM-2"> -+ <instance_attributes id="status-DEM-2"> -+ <nvpair id="status-DEM-2-probe_complete" name="probe_complete" value="true"/> -+ <nvpair id="status-DEM-2-last-failure-d_bird" name="last-failure-d_bird" value="1375341085"/> -+ </instance_attributes> -+ </transient_attributes> -+ <lrm id="DEM-2"> -+ <lrm_resources> -+ <lrm_resource id="ipv6_dem_tas_dns" type="IPv6addr" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="ipv6_dem_tas_dns_last_0" operation_key="ipv6_dem_tas_dns_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="12:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:7;12:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="5" rc-code="7" op-status="0" interval="0" last-run="1375341054" last-rc-change="1375341054" exec-time="19" queue-time="0" op-digest="53af56d463bd7ec89aee6e087825e22b"/> -+ </lrm_resource> -+ <lrm_resource id="d_bird6" type="bird6" class="lsb"> -+ <lrm_rsc_op id="d_bird6_last_0" operation_key="d_bird6_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="41:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;41:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="43" rc-code="0" op-status="0" interval="0" last-run="1375341055" last-rc-change="1375341055" exec-time="49" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="d_bird6_monitor_10000" operation_key="d_bird6_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="42:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;42:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="51" rc-code="0" op-status="0" interval="10000" last-rc-change="1375341055" exec-time="26" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> -+ </lrm_resource> -+ <lrm_resource id="d_bird_subnet_state" type="bird_subnet_state" class="lsb"> -+ <lrm_rsc_op id="d_bird_subnet_state_last_0" operation_key="d_bird_subnet_state_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="13:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:7;13:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="9" rc-code="7" op-status="0" interval="0" last-run="1375341054" last-rc-change="1375341054" exec-time="57" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ </lrm_resource> -+ <lrm_resource id="ip_trf_tas" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="ip_trf_tas_last_0" operation_key="ip_trf_tas_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="15:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:7;15:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="17" rc-code="7" op-status="0" interval="0" last-run="1375341054" last-rc-change="1375341054" exec-time="109" queue-time="0" op-digest="b3cfedd8c3c97d0ac635474e24692dad"/> -+ </lrm_resource> -+ <lrm_resource id="d_tomcat_nms" type="tomcat" class="ocf" provider="ntc"> -+ <lrm_rsc_op id="d_tomcat_nms_last_0" operation_key="d_tomcat_nms_start_0" operation="start" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="49:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;49:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="45" rc-code="0" op-status="0" interval="0" last-run="1375341055" last-rc-change="1375341055" exec-time="15714" queue-time="0" op-digest="c030e52a1e91e58d4e2d6e57cb9cdea4" op-force-restart=" state instance_name monitor_urls monitor_use_ssl monitor_timeout cleanup " op-restart-digest="c030e52a1e91e58d4e2d6e57cb9cdea4"/> -+ <lrm_rsc_op id="d_tomcat_nms_monitor_15000" operation_key="d_tomcat_nms_monitor_15000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="50:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;50:1:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="56" rc-code="0" op-status="0" interval="15000" last-rc-change="1375341070" exec-time="287" queue-time="0" op-digest="9641e02fa4460a2cbfb71f4da59905c7"/> -+ </lrm_resource> -+ <lrm_resource id="d_bird" type="bird" class="lsb"> -+ <lrm_rsc_op id="d_bird_last_failure_0" operation_key="d_bird_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="14:10:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;14:10:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="68" rc-code="0" op-status="0" interval="0" last-run="1375341246" last-rc-change="1375341246" exec-time="8" queue-time="0" op-digest="f2317cad3d54cec5d7d7aa7d0bf35cf8"/> -+ <lrm_rsc_op id="d_bird_monitor_10000" operation_key="d_bird_monitor_10000" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="30:11:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:0;30:11:0:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="71" rc-code="0" op-status="0" interval="10000" last-rc-change="1375341246" exec-time="8" queue-time="0" op-digest="4811cef7f7f94e3a35a70be7916cb2fd"/> -+ </lrm_resource> -+ <lrm_resource id="ip_mgmt" type="IPaddr2" class="ocf" provider="heartbeat"> -+ <lrm_rsc_op id="ip_mgmt_last_0" operation_key="ip_mgmt_monitor_0" operation="monitor" crm-debug-origin="build_active_RAs" crm_feature_set="3.0.7" transition-key="14:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" transition-magic="0:7;14:1:7:59c7d83a-c71b-4e79-bf04-be2b25b00846" call-id="13" rc-code="7" op-status="0" interval="0" last-run="1375341054" last-rc-change="1375341054" exec-time="114" queue-time="0" op-digest="c311e79fb95db5b1a4b80a95c8947ce1"/> -+ </lrm_resource> -+ </lrm_resources> -+ </lrm> -+ </node_state> -+ </status> -+</cib> -diff --git a/pengine/test10/stop-failure-no-fencing.scores b/pengine/test10/stop-failure-no-fencing.scores -index efe9888..93b2031 100644 ---- a/pengine/test10/stop-failure-no-fencing.scores -+++ b/pengine/test10/stop-failure-no-fencing.scores -@@ -41,7 +41,7 @@ clone_color: dlm:3 allocation score on pcmk-3: 0 - clone_color: dlm:3 allocation score on pcmk-4: 0 - native_color: ClusterIP allocation score on pcmk-1: -INFINITY - native_color: ClusterIP allocation score on pcmk-2: -INFINITY --native_color: ClusterIP allocation score on pcmk-3: 0 -+native_color: ClusterIP allocation score on pcmk-3: -INFINITY - native_color: ClusterIP allocation score on pcmk-4: -INFINITY - native_color: clvm:0 allocation score on pcmk-1: -INFINITY - native_color: clvm:0 allocation score on pcmk-2: -INFINITY -diff --git a/pengine/test10/stop-failure-no-quorum.scores b/pengine/test10/stop-failure-no-quorum.scores -index ce5d714..df30423 100644 ---- a/pengine/test10/stop-failure-no-quorum.scores -+++ b/pengine/test10/stop-failure-no-quorum.scores -@@ -41,7 +41,7 @@ clone_color: dlm:3 allocation score on pcmk-3: 0 - clone_color: dlm:3 allocation score on pcmk-4: 0 - native_color: ClusterIP allocation score on pcmk-1: 0 - native_color: ClusterIP allocation score on pcmk-2: -INFINITY --native_color: ClusterIP allocation score on pcmk-3: 0 -+native_color: ClusterIP allocation score on pcmk-3: -INFINITY - native_color: ClusterIP allocation score on pcmk-4: -INFINITY - native_color: Fencing allocation score on pcmk-1: 0 - native_color: Fencing allocation score on pcmk-2: 0 diff --git a/SOURCES/pacemaker-unknown-long-options.patch b/SOURCES/pacemaker-unknown-long-options.patch new file mode 100644 index 0000000..ff2f7b7 --- /dev/null +++ b/SOURCES/pacemaker-unknown-long-options.patch @@ -0,0 +1,18 @@ +commit 0f0ceb44be247cf894422d1dab6a67b474e77d12 +Author: Andrew Beekhof <andrew@beekhof.net> +Date: Thu Jan 15 13:43:48 2015 +1100 + + Fix: cli: Ensure subsequent unknown long options are correctly detected + +diff --git a/lib/common/utils.c b/lib/common/utils.c +index d70778d..50b5e91 100644 +--- a/lib/common/utils.c ++++ b/lib/common/utils.c +@@ -1802,6 +1802,7 @@ crm_get_option_long(int argc, char **argv, int *index, const char **longname) + long_opts = crm_create_long_opts(crm_long_options); + } + ++ *index = 0; + if (long_opts) { + int flag = getopt_long(argc, argv, crm_short_options, long_opts, index); + diff --git a/SOURCES/pcmk-crm_report_collect_corosync_quorum_data.patch b/SOURCES/pcmk-crm_report_collect_corosync_quorum_data.patch deleted file mode 100644 index cce0bf6..0000000 --- a/SOURCES/pcmk-crm_report_collect_corosync_quorum_data.patch +++ /dev/null @@ -1,18 +0,0 @@ -commit 706ca1cc698ceaeaf36d60f4cd83ea9691fa7667 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Wed Aug 14 12:13:01 2013 +1000 - - Fix: crm_report: Collect corosync quorum data - -diff --git a/tools/report.collector b/tools/report.collector -index 41ff00a..00bd319 100644 ---- a/tools/report.collector -+++ b/tools/report.collector -@@ -662,6 +662,7 @@ case $cluster in - *objctl) $tool -a > corosync.dump 2>/dev/null;; - *cmapctl) $tool > corosync.dump 2>/dev/null;; - esac -+ corosync-quorumtool -s -i > corosync.quorum - ;; - esac - diff --git a/SOURCES/pcmk-fencing_support_agents_that_need_the_host_to_be_unfenced_at_startup.patch b/SOURCES/pcmk-fencing_support_agents_that_need_the_host_to_be_unfenced_at_startup.patch deleted file mode 100644 index 916c1dc..0000000 --- a/SOURCES/pcmk-fencing_support_agents_that_need_the_host_to_be_unfenced_at_startup.patch +++ /dev/null @@ -1,146 +0,0 @@ -commit 8af0d0c8aabe9ef6bb76c0e5032836d3c8bdc9d7 -Author: Andrew Beekhof <andrew@beekhof.net> -Date: Tue Aug 13 12:31:25 2013 +1000 - - Feature: Fencing: Support agents that need the host to be unfenced at startup - -diff --git a/fencing/commands.c b/fencing/commands.c -index c7c1bf0..73a7fc1 100644 ---- a/fencing/commands.c -+++ b/fencing/commands.c -@@ -635,8 +635,9 @@ target_list_type(stonith_device_t * dev) - return check_type; - } - --static void --schedule_internal_command(stonith_device_t * device, -+void -+schedule_internal_command(const char *origin, -+ stonith_device_t * device, - const char *action, - const char *victim, - int timeout, -@@ -654,12 +655,12 @@ schedule_internal_command(stonith_device_t * device, - cmd->action = strdup(action); - cmd->victim = victim ? strdup(victim) : NULL; - cmd->device = strdup(device->id); -- cmd->origin = strdup("st_internal_cmd"); -- cmd->client = strdup("st_internal_client"); -- cmd->client_name = strdup("st_internal_client_name"); -+ cmd->origin = strdup(origin); -+ cmd->client = strdup(crm_system_name); -+ cmd->client_name = strdup(crm_system_name); - - cmd->internal_user_data = internal_user_data; -- cmd->done_cb = done_cb; -+ cmd->done_cb = done_cb; /* cmd, not internal_user_data, is passed to 'done_cb' as the userdata */ - - schedule_stonith_command(cmd, device); - } -@@ -1093,9 +1094,7 @@ can_fence_host_with_device(stonith_device_t * dev, struct device_search_s *searc - time_t now = time(NULL); - - if (dev->targets == NULL || dev->targets_age + 60 < now) { -- schedule_internal_command(dev, -- "list", -- NULL, -+ schedule_internal_command(__FUNCTION__, dev, "list", NULL, - search->per_device_timeout, search, dynamic_list_search_cb); - - /* we'll respond to this search request async in the cb */ -@@ -1107,9 +1106,7 @@ can_fence_host_with_device(stonith_device_t * dev, struct device_search_s *searc - } - - } else if (safe_str_eq(check_type, "status")) { -- schedule_internal_command(dev, -- "status", -- search->host, -+ schedule_internal_command(__FUNCTION__, dev, "status", search->host, - search->per_device_timeout, search, status_search_cb); - /* we'll respond to this search request async in the cb */ - return; -@@ -1395,6 +1392,26 @@ stonith_send_async_reply(async_command_t * cmd, const char *output, int rc, GPid - free_xml(reply); - } - -+void -+unfence_cb(GPid pid, int rc, const char *output, gpointer user_data) -+{ -+ async_command_t * cmd = user_data; -+ stonith_device_t *dev = g_hash_table_lookup(device_list, cmd->device); -+ -+ log_operation(cmd, rc, pid, NULL, output); -+ -+ if(dev) { -+ dev->active_pid = 0; -+ mainloop_set_trigger(dev->work); -+ } else { -+ crm_trace("Device %s does not exist", cmd->device); -+ } -+ -+ if(rc != 0) { -+ crm_exit(DAEMON_RESPAWN_STOP); -+ } -+} -+ - static void - cancel_stonith_command(async_command_t * cmd) - { -diff --git a/fencing/internal.h b/fencing/internal.h -index 737fc18..9a8b096 100644 ---- a/fencing/internal.h -+++ b/fencing/internal.h -@@ -162,6 +162,18 @@ bool fencing_peer_active(crm_node_t *peer); - - int stonith_manual_ack(xmlNode * msg, remote_fencing_op_t * op); - -+void unfence_cb(GPid pid, int rc, const char *output, gpointer user_data); -+ -+void -+schedule_internal_command(const char *origin, -+ stonith_device_t * device, -+ const char *action, -+ const char *victim, -+ int timeout, -+ void *internal_user_data, -+ void (*done_cb) (GPid pid, int rc, const char *output, -+ gpointer user_data)); -+ - extern char *stonith_our_uname; - extern gboolean stand_alone; - extern GHashTable *device_list; -diff --git a/fencing/main.c b/fencing/main.c -index e002125..3fa7b5a 100644 ---- a/fencing/main.c -+++ b/fencing/main.c -@@ -573,6 +573,7 @@ fencing_topology_init(xmlNode * msg) - } - - #define rsc_name(x) x->clone_name?x->clone_name:x->id -+static bool have_fence_scsi = FALSE; - - static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) - { -@@ -661,6 +662,22 @@ static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) - data = create_device_registration_xml(rsc_name(rsc), provider, agent, params); - stonith_device_register(data, NULL, TRUE); - -+ /* If required, unfence ourselves on cluster startup -+ * -+ * Make this generic/smarter if/when more than a single agent needs this -+ */ -+ if(have_fence_scsi == FALSE && safe_str_eq(agent, "fence_scsi")) { -+ stonith_device_t *device = g_hash_table_lookup(device_list, rsc->id); -+ -+ if(device) { -+ have_fence_scsi = TRUE; -+ crm_notice("Unfencing ourselves with %s (%s)", agent, device->id); -+ schedule_internal_command(__FUNCTION__, device, "on", stonith_our_uname, 0, NULL, unfence_cb); -+ } else { -+ crm_err("Device %s does not exist", rsc->id); -+ } -+ } -+ - stonith_key_value_freeall(params, 1, 1); - free_xml(data); - } diff --git a/SPECS/pacemaker.spec b/SPECS/pacemaker.spec index 1183d20..4d26109 100644 --- a/SPECS/pacemaker.spec +++ b/SPECS/pacemaker.spec @@ -2,9 +2,10 @@ %global uname hacluster %global pcmk_docdir %{_docdir}/%{name} -%global specversion 32 -%global upstream_prefix pacemaker -%global upstream_version Pacemaker-1.1.10 +%global specversion 22 +%global commit a14efad51ca8f1e3742fd8520e051cd7a0864f04 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global github_owner ClusterLabs # Turn off the auto compilation of python files not in the site-packages directory # Needed so that the -devel package is multilib compliant @@ -46,148 +47,49 @@ %endif %if %{with pre_release} -%global pcmk_release 0.%{specversion}.%{upstream_version}.git +%global pcmk_release 0.%{specversion}.%{shortcommit}.git %else %global pcmk_release %{specversion} %endif Name: pacemaker Summary: Scalable High-Availability cluster resource manager -Version: 1.1.10 -Release: %{pcmk_release}%{?dist}.1 +Version: 1.1.12 +Release: %{pcmk_release}%{?dist} License: GPLv2+ and LGPLv2+ Url: http://www.clusterlabs.org Group: System Environment/Daemons -Source0: https://github.com/ClusterLabs/pacemaker/archive/%{upstream_version}.tar.gz -Patch1: pacemaker-fix_crmd_prevent_recurring_monitors_being_cancelled_due_to_notify_operations.patch -Patch2: pacemaker-fix_pe_do_not_restart_resources_that_depend_on_unmanaged_resources.patch -Patch3: pacemaker-fix_crmd_prevent_crash_by_passing_log_arguments_in_the_correct_order.patch -Patch4: pacemaker-fix_pe_do_not_re-allocate_clone_instances_that_are_blocked_in_the_stopped_state.patch -Patch5: pacemaker-fix_pe_do_not_allow_colocation_with_blocked_clone_instances.patch -Patch6: pacemaker-test_pe_do_not_allow_colocation_with_blocked_clone_instances.patch -Patch7: pacemaker-fix_systemd_prevent_glib_assertion_-_only_call_g_error_free_with_non-null_arguments.patch -Patch8: pacemaker-fix_logging_glib_crit_messages_should_not_produce_core_files_by_default.patch -Patch9: pacemaker-doc_controld_update_the_description.patch -Patch10: pacemaker-fix_pe_correctly_account_for_the_location_preferences_of_things_colocated_with_a_group.patch -Patch11: pacemaker-log_crm_mon_clean_up_the_output_for_failed_operations.patch -Patch12: pacemaker-fix_cib_correctly_log_short-form_xml_diffs.patch -Patch13: pacemaker-fix_crmd_correcty_update_the_history_cache_when_recurring_ops_change_their_return_code.patch -Patch14: pacemaker-log_pe_better_indicate_when_a_resource_has_failed.patch -Patch15: pacemaker-test_pe_better_indicate_when_a_resource_has_failed.patch -Patch16: pacemaker-fix_services_prevent_use-of-null_in_g_error_free.patch -Patch17: pcmk-fencing_support_agents_that_need_the_host_to_be_unfenced_at_startup.patch -Patch18: pcmk-crm_report_collect_corosync_quorum_data.patch -Patch19: bz902407-pcmk-location_constraints_are_allowed_to_specify_a_role.patch -Patch20: bz902407-pcmk-crm_resource_handle_ban_for_master_slave_resources_as_advertised.patch -Patch21: pacemaker-fix-setting-remote-node-attributes.patch -Patch22: pacemaker-fix-orphaned-connection-resources.patch -Patch23: pacemaker-add-RemoteLXC-cts-test.patch -Patch24: bz902407-pcmk-provide_a_meaningful_error_if_master_is_used_for_primitives_and_groups.patch -Patch25: bz996576-pcmk-observe_pcmk_host_list_during_automatic_unfencing.patch -Patch26: bz996576-pcmk-crm_report_correctly_redirect_error_message_to_dev_null.patch -Patch27: bz1011618-pcmk-consistently_use_slave_as_the_role_for_unpromoted_master_slave_resources.patch -Patch28: bz902407-pcmk-pe_location_constraints_with_role_started_should_prevent_masters_from_running_at_all.patch -Patch29: bz902407-pcmk-crm_resource_observe_master_modifier_for_move.patch -Patch30: bz996850-pcmk-log_crmd_supply_arguments_in_the_correct_order.patch -Patch31: bz720543-pcmk-crmd_don_t_add_node_state_to_cib_if_we_have_not_seen_or_fenced_this_node_yet.patch -Patch32: bz720543-pcmk-prevent_use_of_null_when_ping_resources_do_not_define_a_host_list.patch -Patch33: bz720543-pcmk-reduce_duplication_by_merging_the_lrmd_exec_rc_enum_with_ocf_exitcode.patch -Patch34: bz720543-pcmk-pe_don_t_prevent_clones_from_running_due_to_dependant_resources.patch -Patch35: bz720543-pcmk-pe_update_regression_test_scores.patch -Patch36: bz720543-pcmk-cib_allow_values_to_be_added_updated_and_removed_in_a_single_update.patch -Patch37: bz720543-pcmk-crm_report_record_the_output_of_the_collector.patch -Patch38: bz720543-pcmk-crm_report_do_not_print_garbage_when_collecting_from_the_local_node.patch -Patch39: bz720543-pcmk-ipc_raise_the_default_buffer_size_to_128k.patch - -Patch41: bz720543-pcmk-lrmd_correctly_cancel_monitor_actions_for_lsb_systemd_service_resources_on_cleaning_up.patch -Patch42: bz720543-pcmk-fencing_do_not_broadcast_suicide_if_the_on_action_is_being_executed.patch -Patch43: bz720543-pcmk-fencing_allow_fencing_for_node_after_topology_entries_are_deleted.patch -Patch44: bz720543-pcmk-iso8601_prevent_dates_from_jumping_backwards_a_day_in_some_timezones.patch -Patch45: bz720543-pcmk-crmd_correctly_update_expected_state_when_the_previous_dc_shuts_down.patch -Patch46: bz720543-pcmk-crm_resource_wait_for_all_replies_when_cleaning_up_resources.patch -Patch47: bz720543-pcmk-cli_do_not_enabled_blackbox_for_cli_tools.patch -Patch48: bz720543-pcmk-crmd_cache_rsc_info_retrieved_from_lrmd_and_pacemaker_remoted.patch -Patch49: bz720543-pcmk-crmd_pad_internal_lrmd_rsc_info_and_metadata_retrieval_timeout.patch -Patch50: bz720543-pcmk-remote_properly_version_the_remote_connection_protocol.patch -Patch51: bz720543-pcmk-remote_improved_logging_of_recv_errors.patch -Patch52: bz720543-pcmk-ipc_use_the_higher_of_the_configured_buffer_size_or_the_default.patch -Patch53: bz720543-pcmk-fencing_deep_copy_current_topology_level_list_on_remote_op.patch -Patch54: bz720543-pcmk-remote_handle_endian_changes_between_client_and_server_and_improve_forward_compatibility.patch -Patch55: bz720543-pcmk-command_line_tools_should_stop_after_an_assertion_failure.patch -Patch56: bz720543-pcmk-pe_probe_containers_not_expected_to_be_up.patch -Patch57: bz720543-pcmk-pcmk_remote_ipv6_support.patch -Patch58: bz1028627-pcmk-fix_controld_use_corosync2_dlm_variant.patch -Patch59: bz720543-pcmk-tools_fixes_formatting_of_remote_nodes_in_crm_mon_and_crm_simulate.patch -Patch60: bz720543-pcmk-corosync_attempt_to_retrieve_a_peer_s_node_name_if_it_is_not_already_known.patch -Patch61: bz720543-pcmk-removes_unnecessary_newlines_in_crm_resource_o_output.patch -Patch62: bz1057697-pcmk-services_detect_missing_agents_and_permission_errors_before_forking.patch -Patch63: bz1057697-pcmk-use_native_dbus_library_for_systemd_support_to_avoid_problematic_use_of_threads.patch -Patch64: bz1057697-pcmk-use_native_dbus_library_for_systemd_async_support_to_avoid_problematic_use_of_threads.patch -Patch65: bz1057697-pcmk-systemd_simplify_dbus_api_usage.patch -Patch66: bz1057697-pcmk-portability_use_basic_types_for_dbus_compatability_struct.patch -Patch67: bz1057697-pcmk-use_native_dbus_library_for_upstart_support_to_avoid_problematic_use_of_threads.patch -Patch68: bz1057697-pcmk-dbus_use_native_function_for_adding_arguments_to_messages.patch -Patch69: bz1057697-pcmk-services_keep_dbus_build_support_optional.patch -Patch70: bz1060205-pcmk-mcp_tell_systemd_not_to_respawn_us_if_we_return_100.patch -Patch71: bz1064519-pcmk-controld-handles-dlm-startup-fencing.patch -Patch72: bz1067536-pcmk-controld-wait-for-address-list.patch -Patch73: bz1069284-pcmk-prevent_resources_in_an_anti_colocation_from_even_temporarily_running_on_a_same_node.patch -Patch74: bz1070916-pcmk-send_details_of_stonith_api_time_and_stonith_api_kick_to_syslog.patch -Patch75: bz1070916-pcmk-fencing_pass_the_correct_options_when_looking_up_the_history_by_node_name.patch -Patch76: bz1070916-pcmk-api_time_helper_now_returns_when_the_most_recent_fencing_operation_completed.patch -Patch77: bz1070916-pcmk-crm_report_allow_ssh_alternatives_to_be_used.patch -Patch78: bz1070916-pcmk-crm_report_additional_dlm_detail.patch -Patch79: bz1070916-pcmk-crm_report_only_gather_dlm_data_if_dlm_controld_is_running.patch -Patch80: bz1070916-pcmk-pe_gracefully_handle_bad_values_for_xml_attr_transition_magic.patch -Patch81: bz1070916-pcmk-crmd_gracefully_handle_actions_that_cannot_be_initiated.patch -Patch82: bz1070916-pcmk-test_tools_set_up_override_for_local_schema_file_locations.patch -Patch83: bz1070916-pcmk-pengine_update_regression_tests.patch -Patch84: bz1070916-pcmk-crm_resource_prevent_use_of_null.patch -Patch85: bz1070916-pcmk-systemd_prevent_use_of_null_when_determining_if_an_agent_exists.patch -Patch86: bz1070916-pcmk-fencing_remove_shadow_definition_and_use_of_variable_progress.patch -Patch87: bz1078504-pcmk-pengine_fixes_invalid_transition_caused_by_clones_with_more_than_10_instances.patch -Patch88: bz1064519-pcmk-remove_q_0_from_default_dlm_controld_arguments.patch -Patch89: bz1078078-pcmk-crmd_correctly_react_to_successful_unfencing_operations.patch -Patch90: bz1078078-pcmk-pe_indicate_the_type_of_fencing_in_the_fencing_operation_key.patch -Patch91: bz1078078-pcmk-pe_potential_memory_leak.patch -Patch92: bz1078078-pcmk-pe_fix_comments_and_formatting_for_pe_ordering_enum.patch -Patch93: bz1078078-pcmk-pe_ensure_actions_like_shutdown_and_fence_have_a_unique_key.patch -Patch94: bz1078078-pcmk-pe_include_stonith_operation_in_dot_graph_regression_test_results.patch -Patch95: bz1078078-pcmk-pe_include_stonith_operation_in_the_summary_results_and_handle_unfencing.patch -Patch96: bz1078078-pcmk-pe_store_non_resource_actions_in_a_hashtable_where_we_can_easily_and_cheaply_find_them_again.patch -Patch97: bz1078078-pcmk-pe_automatically_re_unfence_a_node_if_the_fencing_device_definition_changes.patch -Patch98: bz1078078-pcmk-pe_fencing_devices_default_to_only_requiring_quorum_in_order_to_start.patch -Patch99: bz1078078-pcmk-pe_delay_unfencing_until_after_we_know_the_state_of_all_resources_that_require_unfencing.patch -Patch100: bz1078078-pcmk-lrmd_provide_stderr_output_from_agents_if_available_otherwise_fall_back_to_stdout.patch -Patch101: bz1078078-pcmk-crmd_report_unsuccessful_unfencing_operations.patch -Patch102: bz1078078-pcmk-fencing_automatically_switch_from_list_to_status_to_static_list_if_those_actions_are_not_advertised_in_the_metadata.patch -Patch103: bz1078078-pcmk-filter_self_fencing_at_the_peers_to_allow_unfencing_to_work_correctly.patch -Patch104: bz1078078-pcmk-pe_ensure_unfencing_occurs_before_fencing_devices_are_re_probed.patch -Patch105: bz1078078-pcmk-logging_daemons_always_get_a_log_file_unless_explicitly_set_to_configured_none.patch -Patch106: bz1078078-pcmk-logging_simplify_processing_of_logging_directives.patch -Patch107: bz1078078-pcmk-lrmd_expose_logging_variables_expected_by_ocf_agents.patch -Patch108: bz1078078-pcmk-fencing_correctly_record_which_peer_performed_the_fencing_operation.patch -Patch109: bz1078078-pcmk-crmd_do_not_erase_the_status_section_for_unfenced_nodes.patch -Patch110: bz1078078-pcmk-crmd_device_isn_t_hooked_up_yet_don_t_bother_logging_it.patch -Patch111: bz1078078-pcmk-pe_ensure_unfencing_only_happens_once_even_if_the_transition_is_interrupted.patch -Patch112: bz1078078-pcmk-pe_do_not_unfence_nodes_that_are_offline_unclean_or_shutting_down.patch -Patch113: bz1078078-pcmk-warn_about_fencing_when_fencing_is_disabled.patch -Patch114: bz1078078-pcmk-crmd_do_not_overwrite_existing_node_state_when_fencing_completes.patch -Patch115: bz1078078-pcmk-unfencing_is_based_on_device_probes_there_is_no_need_to_unfence_when_normal_resources_are_found_active.patch -Patch116: bz1078078-pcmk-pe_repair_regression_tests.patch -Patch117: bz1078078-pcmk-crm_resource_wait_for_the_correct_number_of_replies_when_cleaning_up_resources.patch -Patch118: bz1078078-pcmk-crm_report_suppress_logging_errors_after_the_target_directory_has_been_compressed.patch -Patch119: bz1078078-pcmk-fence_using_all_required_devices.patch -Patch120: bz1078078-pcmk-execute_all_required_fencing_devices_regardless_of_what_topology_level_they_are_at.patch -Patch121: bz1078078-pcmk-default_to_off_when_agent_does_not_advertise_reboot_in_metadata.patch -Patch122: bz1115024-pcmk-handle_systemd_reporting_done_before_a_resource_is_actually_stopped.patch -Patch123: bz1139701-pcmk-unref_reply_to_prevent_systemd_action_timeouts.patch +# eg. https://github.com/ClusterLabs/pacemaker/archive/a14efad51ca8f1e3742fd8520e051cd7a0864f04/pacemaker-a14efad51ca8f1e3742fd8520e051cd7a0864f04.tar.gz +Source0: https://github.com/%{github_owner}/%{name}/archive/%{commit}/%{name}-%{commit}.tar.gz +Patch1: pacemaker-rollup-be1e835.patch +Patch2: pacemaker-rollup-031e46c.patch +Patch3: pacemaker-no-quorum-log.patch +Patch4: pacemaker-coverity-fixes.patch +Patch5: pacemaker-startup-without-sbd.patch +Patch6: pacemaker-async-systemd-reload.patch +Patch7: pacemaker-resource-restart.patch +Patch8: bz1162727-pcmk-membership-cleanup.patch +Patch9: bz1165423-pcmk-long-systemd-stop.patch +Patch10: bz1165423-pcmk-coverity.patch +Patch11: pacemaker-094c0ea-to-d9a51c6.patch +Patch12: bz1176210-require-all.patch +Patch13: pacemaker-f43678b-to-fe1ef5c-acl-fix.patch +Patch14: pacemaker-5147bbf46b81708a1ac544a4cfd204b50938c67c-crmd-memleak.patch +Patch15: pacemaker-6d482cf1c1226f75e59569b930cf916ccb0d350f-pcmk-remote-timer-fix.patch +Patch16: pacemaker-8ffcf86bcab8bf98d5477a68b73e5062eb0c0fad-pacemakerd-memleak.patch +Patch17: pacemaker-3414f1cd3ebcc2e6f787ea14d8e31510f36fbe4a-update-membership.patch +Patch18: bz1117341-remote-imply-stop-on-fence.patch +Patch19: pacemaker-7170ed-fix-acl-correctly-implement-the-reference-acl-direct.patch +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 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) AutoReqProv: on Requires: python >= 2.4 -Requires: resource-agents +Requires: resource-agents sbd Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-cluster-libs = %{version}-%{release} Requires: %{name}-cli = %{version}-%{release} @@ -199,7 +101,7 @@ Provides: rgmanager >= 3.2.0 %endif %if 0%{?rhel} > 0 -ExclusiveArch: i686 x86_64 +ExclusiveArch: i686 x86_64 s390x %endif # Required for core functionality @@ -370,7 +272,7 @@ manager for Corosync, CMAN and/or Linux-HA. %prep -%autosetup -n %{upstream_prefix}-%{upstream_version} -p1 +%autosetup -n %{name}-%{commit} -p1 # Add '-S git' to have RPM generate a git repo out of the patches @@ -406,7 +308,8 @@ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool make %{_smp_mflags} V=1 docdir=%{pcmk_docdir} all %check -./BasicSanity.sh -V pengine cli +# Prevent false positives in rpmlint +./BasicSanity.sh -V pengine cli 2>&1 | sed s/[fF]ail/faiil/g %install rm -rf %{buildroot} @@ -498,6 +401,7 @@ exit 0 %exclude %{_datadir}/pacemaker/tests +%config(noreplace) %{_sysconfdir}/logrotate.d/pacemaker %config(noreplace) %{_sysconfdir}/sysconfig/pacemaker %{_sbindir}/pacemakerd @@ -651,15 +555,86 @@ exit 0 %doc AUTHORS %changelog -* Mon Sep 22 2014 Andrew Beekhof <beekhof@redhat.com> - 1.1.10-32.el7_0.1 -- Fix: Bug rhbz#1139701 - Unref dbus reply to prevent systemd action timeouts - Resolves: rhbz#1145740 +* Thu Jan 15 2015 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-22 +- Fix segfault encountered with orphaned remote node connections + + Resolves: rhbz#1176210 + +* Thu Jan 15 2015 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-21 +- Fix use-after-free in CLI tool when restarting a resource + +* Tue Jan 13 2015 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-20 +- Expose the -N/--node option for attrd_updater to allow attributes to + be set for other nodes + +* Sun Jan 11 2015 David Vossel <dvossel@redhat.com> - 1.1.12-19 +- Imply stop on actions within containers during host fencing +- acl correctly implement the reference acl direct + + Resolves: rhbz#1117341 + +* Tue Jan 6 2015 David Vossel <dvossel@redhat.com> - 1.1.12-18 +- clone order constraint require-all option. +- fix memory leaks in crmd and pacemakerd + + Resolves: rhbz#1176210 + +* Tue Dec 16 2014 David Vossel <dvossel@redhat.com> - 1.1.12-15 +- Include ipc and pacemaker remote related upstream fixes. + +* Wed Nov 26 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-13 +- Update patch level to upstream a433de6 +- Ensure we wait for long running systemd stop operations to complete + Resolves: rhbz#1165423 + +* Tue Nov 18 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-11 +- Update patch level to upstream 7dd9022 +- Ensure all internal caches are updated when nodes are removed from the cluster + Resolves: rhbz#1162727 + +* Wed Nov 05 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-10 +- Update patch level to upstream 98b6688 +- Support an intelligent resource restart operation +- Exclusive discovery implies running the resource is only possible on the listed nodes + +* Wed Nov 05 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-9 +- Update patch level to upstream fb94901 +- Prevent blocking by performing systemd reloads asynchronously + +* Tue Oct 28 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-8 +- Repair the ability to start when sbd is not enabled + +* Mon Oct 27 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-7 +- Update patch level to upstream afa0f33 + - Resolve coverity defects + +* Fri Oct 24 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-5 +- Update patch level to upstream 031e46c + - Prevent glib assert triggered by timers being removed from mainloop more than once + - Allow rsc discovery to be disabled in certain situations + - Allow remote-nodes to be placed in maintenance mode + - Improved sbd integration + +* Thu Oct 16 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-4 +- Add install dependancy on sbd + +* Wed Oct 01 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-3 +- Update patch level to upstream be1e835 + Resolves: rhbz#1147989 + +* Fri Sep 19 2014 Fabio M. Di Nitto <fdinitto@redhat.com> - 1.1.12-2 +- Enable build on s390x + Resolves: rhbz#1140917 + +* Mon Sep 08 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.12-1 +- Rebase to upstream a14efad51ca8f1e3742fd8520e051cd7a0864f04 (1.1.12+) + Resolves: rhbz#1059626 * Fri Jul 04 2014 Andrew Beekhof <abeekhof@redhat.com> - 1.1.10-32 - Fix: lrmd: Handle systemd reporting 'done' before a resource is actually stopped - Resolves: rhbz#1115024 + Resolves: rhbz#1111747 * Thu Apr 17 2014 David Vossel <dvossel@redhat.com> - 1.1.10-31 @@ -849,7 +824,7 @@ exit 0 + Fix: crmd: Prevent recurring monitors being cancelled due to notify operations * Fri Jul 26 2013 Andrew Beekhof <andrew@beekhof.net> Pacemaker-1.1.10-6 -- Update source tarball to revision: 368c726 +- Update source tarball to revision: 368c726 (Pacemaker-1.1.10-rc7) - Changesets: 18 - Diff: 9 files changed, 245 insertions(+), 170 deletions(-)