From 6d0b9b102383ada3fb8a8d50ae0dae9dca6cde9f Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Tue, 15 Sep 2020 17:18:07 -0500 Subject: [PATCH 01/11] Refactor: controller: simplify default handling for private agent parameters This is an efficiency gain since the setting of default private parameters only has to be done once when meta-data is read rather than every time an action result is recorded, but mainly this is to make the code simpler and easier to follow. --- daemons/controld/controld_execd.c | 31 +------------------------------ daemons/controld/controld_metadata.c | 19 ++++++++++++++++++- daemons/controld/controld_metadata.h | 1 - 3 files changed, 19 insertions(+), 32 deletions(-) diff --git a/daemons/controld/controld_execd.c b/daemons/controld/controld_execd.c index f4dc414..0122e2b 100644 --- a/daemons/controld/controld_execd.c +++ b/daemons/controld/controld_execd.c @@ -498,39 +498,10 @@ build_parameter_list(const lrmd_event_data_t *op, { char *list = NULL; size_t len = 0; - size_t max = 0; - - /* Newer resource agents support the "private" parameter attribute to - * indicate sensitive parameters. For backward compatibility with older - * agents, this list is used if the agent doesn't specify any as "private". - */ - const char *secure_terms[] = { - "password", - "passwd", - "user", - }; - - if (!pcmk_is_set(metadata->ra_flags, ra_uses_private) - && (param_type == ra_param_private)) { - - max = DIMOF(secure_terms); - } for (GList *iter = metadata->ra_params; iter != NULL; iter = iter->next) { struct ra_param_s *param = (struct ra_param_s *) iter->data; - bool accept = FALSE; - - if (pcmk_is_set(param->rap_flags, param_type)) { - accept = TRUE; - - } else if (max) { - for (int lpc = 0; lpc < max; lpc++) { - if (pcmk__str_eq(secure_terms[lpc], param->rap_name, pcmk__str_casei)) { - accept = TRUE; - break; - } - } - } + bool accept = pcmk_is_set(param->rap_flags, param_type); if (accept) { crm_trace("Attr %s is %s", param->rap_name, ra_param_flag2text(param_type)); diff --git a/daemons/controld/controld_metadata.c b/daemons/controld/controld_metadata.c index da9da60..ef6281e 100644 --- a/daemons/controld/controld_metadata.c +++ b/daemons/controld/controld_metadata.c @@ -182,6 +182,7 @@ metadata_cache_update(GHashTable *mdc, lrmd_rsc_info_t *rsc, xmlNode *metadata = NULL; xmlNode *match = NULL; struct ra_metadata_s *md = NULL; + bool any_private_params = false; CRM_CHECK(mdc && rsc && metadata_str, return NULL); @@ -238,12 +239,28 @@ metadata_cache_update(GHashTable *mdc, lrmd_rsc_info_t *rsc, goto err; } if (pcmk_is_set(p->rap_flags, ra_param_private)) { - controld_set_ra_flags(md, key, ra_uses_private); + any_private_params = true; } md->ra_params = g_list_prepend(md->ra_params, p); } } + /* Newer resource agents support the "private" parameter attribute to + * indicate sensitive parameters. For backward compatibility with older + * agents, implicitly treat a few common names as private when the agent + * doesn't specify any explicitly. + */ + if (!any_private_params) { + for (GList *iter = md->ra_params; iter != NULL; iter = iter->next) { + struct ra_param_s *p = iter->data; + + if (pcmk__str_any_of(p->rap_name, "password", "passwd", "user", + NULL)) { + controld_set_ra_param_flags(p, ra_param_private); + } + } + } + g_hash_table_replace(mdc, key, md); free_xml(metadata); return md; diff --git a/daemons/controld/controld_metadata.h b/daemons/controld/controld_metadata.h index 010092f..398d12a 100644 --- a/daemons/controld/controld_metadata.h +++ b/daemons/controld/controld_metadata.h @@ -12,7 +12,6 @@ enum ra_flags_e { ra_supports_reload = 0x01, - ra_uses_private = 0x02, }; enum ra_param_flags_e { -- 1.8.3.1 From 683062145fcfe2afa6aab100d7a8b4b1add6cea9 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Wed, 16 Sep 2020 18:41:40 -0500 Subject: [PATCH 02/11] Fix: scheduler: properly compute digest of non-sensitive resource parameters The controller records op-secure-digest as a hash of all resource parameters (specifically, those listed in the resource agent's meta-data) except those marked as private. Previously, the scheduler compared that against a digest of *all* parameters (including meta-attributes, etc.) after filtering private parameters and running pcmk__filter_op_for_digest(). The latter usually made the hash identical to the controller's, but not always. Now, it only digests resource instance attributes. --- lib/pengine/utils.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c index bfb67da..2ad8780 100644 --- a/lib/pengine/utils.c +++ b/lib/pengine/utils.c @@ -2123,7 +2123,12 @@ rsc_action_digest(pe_resource_t *rsc, const char *task, const char *key, data->digest_all_calc = calculate_operation_digest(data->params_all, op_version); if (calc_secure) { - data->params_secure = copy_xml(data->params_all); + /* The controller doesn't create a digest of *all* non-sensitive + * parameters, only those listed in resource agent meta-data. The + * equivalent here is rsc->parameters. + */ + data->params_secure = create_xml_node(NULL, XML_TAG_PARAMS); + g_hash_table_foreach(rsc->parameters, hash2field, data->params_secure); if(secure_list) { filter_parameters(data->params_secure, secure_list, FALSE); } -- 1.8.3.1 From 7c654b1e34ce79c96c80f2919d7204fa3f1b2669 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Thu, 17 Sep 2020 09:29:49 -0500 Subject: [PATCH 03/11] Refactor: libcrmcommon: separate agent-related API into own header --- include/crm/common/Makefile.am | 2 +- include/crm/common/agents.h | 58 ++++++++++++++++++++++++++++++++++++++++++ include/crm/common/util.h | 25 +----------------- 3 files changed, 60 insertions(+), 25 deletions(-) create mode 100644 include/crm/common/agents.h diff --git a/include/crm/common/Makefile.am b/include/crm/common/Makefile.am index f30e75f..2686dc0 100644 --- a/include/crm/common/Makefile.am +++ b/include/crm/common/Makefile.am @@ -12,7 +12,7 @@ MAINTAINERCLEANFILES = Makefile.in headerdir=$(pkgincludedir)/crm/common header_HEADERS = xml.h ipc.h util.h iso8601.h mainloop.h logging.h results.h \ - nvpair.h acl.h ipc_controld.h ipc_pacemakerd.h + nvpair.h acl.h agents.h ipc_controld.h ipc_pacemakerd.h noinst_HEADERS = internal.h alerts_internal.h \ iso8601_internal.h remote_internal.h xml_internal.h \ ipc_internal.h output_internal.h cmdline_internal.h \ diff --git a/include/crm/common/agents.h b/include/crm/common/agents.h new file mode 100644 index 0000000..b585ada --- /dev/null +++ b/include/crm/common/agents.h @@ -0,0 +1,58 @@ +/* + * Copyright 2017-2020 the Pacemaker project contributors + * + * The version control history for this file may have further details. + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + +#ifndef PCMK__AGENTS__H +# define PCMK__AGENTS__H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \file + * \brief API related to resource agents + * \ingroup core + */ + +#include // uint32_t +#include + +// Capabilities supported by a resource agent standard +enum pcmk_ra_caps { + pcmk_ra_cap_none = 0, + pcmk_ra_cap_provider = (1 << 0), // Requires provider + pcmk_ra_cap_status = (1 << 1), // Supports status instead of monitor + pcmk_ra_cap_params = (1 << 2), // Supports parameters + pcmk_ra_cap_unique = (1 << 3), // Supports unique clones + pcmk_ra_cap_promotable = (1 << 4), // Supports promotable clones + pcmk_ra_cap_stdin = (1 << 5), // Reads from standard input + pcmk_ra_cap_fence_params = (1 << 6), // Supports pcmk_monitor_timeout, etc. +}; + +uint32_t pcmk_get_ra_caps(const char *standard); +char *crm_generate_ra_key(const char *standard, const char *provider, + const char *type); +int crm_parse_agent_spec(const char *spec, char **standard, char **provider, + char **type); + +#ifndef PCMK__NO_COMPAT +/* Everything here is deprecated and kept only for public API backward + * compatibility. It will be moved to compatibility.h in a future release. + */ + +//! \deprecated Use pcmk_get_ra_caps() instead +bool crm_provider_required(const char *standard); + +#endif // PCMK__NO_COMPAT + +#ifdef __cplusplus +} +#endif + +#endif // PCMK__AGENTS__H diff --git a/include/crm/common/util.h b/include/crm/common/util.h index 74fd6bd..0a2ee6c 100644 --- a/include/crm/common/util.h +++ b/include/crm/common/util.h @@ -32,6 +32,7 @@ extern "C" { # include # include +# include # include # define ONLINESTATUS "online" // Status of an online client @@ -133,27 +134,6 @@ xmlNode *crm_create_op_xml(xmlNode *parent, const char *prefix, const char *timeout); #define CRM_DEFAULT_OP_TIMEOUT_S "20s" -// Public resource agent functions (from agents.c) - -// Capabilities supported by a resource agent standard -enum pcmk_ra_caps { - pcmk_ra_cap_none = 0, - pcmk_ra_cap_provider = (1 << 0), // Requires provider - pcmk_ra_cap_status = (1 << 1), // Supports status instead of monitor - pcmk_ra_cap_params = (1 << 2), // Supports parameters - pcmk_ra_cap_unique = (1 << 3), // Supports unique clones - pcmk_ra_cap_promotable = (1 << 4), // Supports promotable clones - pcmk_ra_cap_stdin = (1 << 5), // Reads from standard input - pcmk_ra_cap_fence_params = (1 << 6), // Supports pcmk_monitor_timeout, etc. -}; - -uint32_t pcmk_get_ra_caps(const char *standard); -char *crm_generate_ra_key(const char *standard, const char *provider, - const char *type); -int crm_parse_agent_spec(const char *spec, char **standard, char **provider, - char **type); - - int compare_version(const char *version1, const char *version2); /* coverity[+kill] */ @@ -255,9 +235,6 @@ is_set_any(long long word, long long bit) return ((word & bit) != 0); } -//! \deprecated Use pcmk_get_ra_caps() instead -bool crm_provider_required(const char *standard); - //! \deprecated Use strcmp or strcasecmp instead gboolean crm_str_eq(const char *a, const char *b, gboolean use_case); -- 1.8.3.1 From 6fe49fa36be9fd67f071b126561ee6d57d0cb491 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Thu, 17 Sep 2020 09:41:57 -0500 Subject: [PATCH 04/11] Refactor: libcrmcommon,libstonithd: expose special attribute constants These will be needed in libcrmcommon, so move them from libstonithd. Also make them public API, since they're Pacemaker-specific strings that external users might find useful. --- daemons/fenced/cts-fence-helper.c | 25 +++++++++++++++++-------- daemons/fenced/fenced_commands.c | 25 +++++++++++++------------ daemons/fenced/pacemaker-fenced.c | 34 +++++++++++++++++++++------------- include/crm/common/agents.h | 13 +++++++++++++ include/crm/fencing/internal.h | 8 -------- include/crm/msg_xml.h | 12 +++++++++++- lib/fencing/st_client.c | 10 ++++++---- lib/pengine/unpack.c | 2 +- lib/pengine/utils.c | 3 ++- 9 files changed, 84 insertions(+), 48 deletions(-) diff --git a/daemons/fenced/cts-fence-helper.c b/daemons/fenced/cts-fence-helper.c index a248829..af006b5 100644 --- a/daemons/fenced/cts-fence-helper.c +++ b/daemons/fenced/cts-fence-helper.c @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -184,7 +185,8 @@ run_fence_failure_test(void) { stonith_key_value_t *params = NULL; - params = stonith_key_value_add(params, "pcmk_host_map", "false_1_node1=1,2 false_1_node2=3,4"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "false_1_node1=1,2 false_1_node2=3,4"); params = stonith_key_value_add(params, "mode", "fail"); single_test(st-> @@ -208,7 +210,8 @@ run_fence_failure_rollover_test(void) { stonith_key_value_t *params = NULL; - params = stonith_key_value_add(params, "pcmk_host_map", "false_1_node1=1,2 false_1_node2=3,4"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "false_1_node1=1,2 false_1_node2=3,4"); params = stonith_key_value_add(params, "mode", "fail"); single_test(st-> @@ -216,7 +219,8 @@ run_fence_failure_rollover_test(void) "Register device1 for rollover test", 1, 0); stonith_key_value_freeall(params, 1, 1); params = NULL; - params = stonith_key_value_add(params, "pcmk_host_map", "false_1_node1=1,2 false_1_node2=3,4"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "false_1_node1=1,2 false_1_node2=3,4"); params = stonith_key_value_add(params, "mode", "pass"); single_test(st-> @@ -244,7 +248,8 @@ run_standard_test(void) { stonith_key_value_t *params = NULL; - params = stonith_key_value_add(params, "pcmk_host_map", "false_1_node1=1,2 false_1_node2=3,4"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "false_1_node1=1,2 false_1_node2=3,4"); params = stonith_key_value_add(params, "mode", "pass"); params = stonith_key_value_add(params, "mock_dynamic_hosts", "false_1_node1 false_1_node2"); @@ -320,7 +325,8 @@ standard_dev_test(void) crm_exit(CRM_EX_DISCONNECT); } - params = stonith_key_value_add(params, "pcmk_host_map", "some-host=pcmk-7 true_1_node1=3,4"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "some-host=pcmk-7 true_1_node1=3,4"); rc = st->cmds->register_device(st, st_opts, "test-id", "stonith-ng", "fence_xvm", params); crm_debug("Register: %d", rc); @@ -498,19 +504,22 @@ test_register_async_devices(int check_event) char buf[16] = { 0, }; stonith_key_value_t *params = NULL; - params = stonith_key_value_add(params, "pcmk_host_map", "false_1_node1=1,2"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "false_1_node1=1,2"); params = stonith_key_value_add(params, "mode", "fail"); st->cmds->register_device(st, st_opts, "false_1", "stonith-ng", "fence_dummy", params); stonith_key_value_freeall(params, 1, 1); params = NULL; - params = stonith_key_value_add(params, "pcmk_host_map", "true_1_node1=1,2"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "true_1_node1=1,2"); params = stonith_key_value_add(params, "mode", "pass"); st->cmds->register_device(st, st_opts, "true_1", "stonith-ng", "fence_dummy", params); stonith_key_value_freeall(params, 1, 1); params = NULL; - params = stonith_key_value_add(params, "pcmk_host_map", "custom_timeout_node1=1,2"); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_MAP, + "custom_timeout_node1=1,2"); params = stonith_key_value_add(params, "mode", "fail"); params = stonith_key_value_add(params, "delay", "1000"); snprintf(buf, sizeof(buf) - 1, "%d", MAINLOOP_DEFAULT_TIMEOUT + CUSTOM_TIMEOUT_ADDITION); diff --git a/daemons/fenced/fenced_commands.c b/daemons/fenced/fenced_commands.c index d9db985..45fb469 100644 --- a/daemons/fenced/fenced_commands.c +++ b/daemons/fenced/fenced_commands.c @@ -128,7 +128,7 @@ get_action_delay_max(stonith_device_t * device, const char * action) return 0; } - value = g_hash_table_lookup(device->params, STONITH_ATTR_DELAY_MAX); + value = g_hash_table_lookup(device->params, PCMK_STONITH_DELAY_MAX); if (value) { delay_max = crm_parse_interval_spec(value) / 1000; } @@ -146,7 +146,7 @@ get_action_delay_base(stonith_device_t * device, const char * action) return 0; } - value = g_hash_table_lookup(device->params, STONITH_ATTR_DELAY_BASE); + value = g_hash_table_lookup(device->params, PCMK_STONITH_DELAY_BASE); if (value) { delay_base = crm_parse_interval_spec(value) / 1000; } @@ -269,7 +269,7 @@ get_action_limit(stonith_device_t * device) const char *value = NULL; int action_limit = 1; - value = g_hash_table_lookup(device->params, STONITH_ATTR_ACTION_LIMIT); + value = g_hash_table_lookup(device->params, PCMK_STONITH_ACTION_LIMIT); if (value) { action_limit = crm_parse_int(value, "1"); if (action_limit == 0) { @@ -897,12 +897,12 @@ build_device_from_xml(xmlNode * msg) device->namespace = crm_element_value_copy(dev, "namespace"); device->params = xml2device_params(device->id, dev); - value = g_hash_table_lookup(device->params, STONITH_ATTR_HOSTLIST); + value = g_hash_table_lookup(device->params, PCMK_STONITH_HOST_LIST); if (value) { device->targets = stonith__parse_targets(value); } - value = g_hash_table_lookup(device->params, STONITH_ATTR_HOSTMAP); + value = g_hash_table_lookup(device->params, PCMK_STONITH_HOST_MAP); device->aliases = build_port_aliases(value, &(device->targets)); device->agent_metadata = get_agent_metadata(device->agent); @@ -942,13 +942,13 @@ target_list_type(stonith_device_t * dev) { const char *check_type = NULL; - check_type = g_hash_table_lookup(dev->params, STONITH_ATTR_HOSTCHECK); + check_type = g_hash_table_lookup(dev->params, PCMK_STONITH_HOST_CHECK); if (check_type == NULL) { - if (g_hash_table_lookup(dev->params, STONITH_ATTR_HOSTLIST)) { + if (g_hash_table_lookup(dev->params, PCMK_STONITH_HOST_LIST)) { check_type = "static-list"; - } else if (g_hash_table_lookup(dev->params, STONITH_ATTR_HOSTMAP)) { + } else if (g_hash_table_lookup(dev->params, PCMK_STONITH_HOST_MAP)) { check_type = "static-list"; } else if (pcmk_is_set(dev->flags, st_device_supports_list)) { check_type = "dynamic-list"; @@ -1067,7 +1067,8 @@ dynamic_list_search_cb(GPid pid, int rc, const char *output, gpointer user_data) if (rc != 0 && !dev->targets) { crm_notice("Disabling port list queries for %s (%d): %s", dev->id, rc, output); /* Fall back to status */ - g_hash_table_replace(dev->params, strdup(STONITH_ATTR_HOSTCHECK), strdup("status")); + g_hash_table_replace(dev->params, + strdup(PCMK_STONITH_HOST_CHECK), strdup("status")); g_list_free_full(dev->targets, free); dev->targets = NULL; @@ -1658,7 +1659,7 @@ can_fence_host_with_device(stonith_device_t * dev, struct device_search_s *searc if (string_in_list(dev->targets, host)) { can = TRUE; - } else if (g_hash_table_lookup(dev->params, STONITH_ATTR_HOSTMAP) + } else if (g_hash_table_lookup(dev->params, PCMK_STONITH_HOST_MAP) && g_hash_table_lookup(dev->aliases, host)) { can = TRUE; } @@ -1689,8 +1690,8 @@ can_fence_host_with_device(stonith_device_t * dev, struct device_search_s *searc /* we'll respond to this search request async in the cb */ return; } else { - crm_err("Invalid value for " STONITH_ATTR_HOSTCHECK ": %s", check_type); - check_type = "Invalid " STONITH_ATTR_HOSTCHECK; + crm_err("Invalid value for " PCMK_STONITH_HOST_CHECK ": %s", check_type); + check_type = "Invalid " PCMK_STONITH_HOST_CHECK; } if (pcmk__str_eq(host, alias, pcmk__str_casei)) { diff --git a/daemons/fenced/pacemaker-fenced.c b/daemons/fenced/pacemaker-fenced.c index 092f604..5c2cc3a 100644 --- a/daemons/fenced/pacemaker-fenced.c +++ b/daemons/fenced/pacemaker-fenced.c @@ -653,7 +653,7 @@ static void cib_device_update(pe_resource_t *rsc, pe_working_set_t *data_set) 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); + rsc_provides = g_hash_table_lookup(rsc->meta, PCMK_STONITH_PROVIDES); g_hash_table_iter_init(&gIter, rsc->parameters); while (g_hash_table_iter_next(&gIter, (gpointer *) & name, (gpointer *) & value)) { @@ -1331,7 +1331,8 @@ main(int argc, char **argv) printf(" \n"); #endif - printf(" \n", STONITH_ATTR_HOSTARG); + printf(" \n", + PCMK_STONITH_HOST_ARGUMENT); printf (" Advanced use only: An alternate parameter to supply instead of 'port'\n"); printf @@ -1342,7 +1343,8 @@ main(int argc, char **argv) printf(" \n"); printf(" \n"); - printf(" \n", STONITH_ATTR_HOSTMAP); + printf(" \n", + PCMK_STONITH_HOST_MAP); printf (" A mapping of host names to ports numbers for devices that do not support host names.\n"); printf @@ -1350,25 +1352,28 @@ main(int argc, char **argv) printf(" \n"); printf(" \n"); - printf(" \n", STONITH_ATTR_HOSTLIST); - printf - (" A list of machines controlled by this device (Optional unless %s=static-list).\n", - STONITH_ATTR_HOSTCHECK); + printf(" \n", + PCMK_STONITH_HOST_LIST); + printf(" A list of machines controlled by " + "this device (Optional unless %s=static-list).\n", + PCMK_STONITH_HOST_CHECK); printf(" \n"); printf(" \n"); - printf(" \n", STONITH_ATTR_HOSTCHECK); + printf(" \n", + PCMK_STONITH_HOST_CHECK); printf (" How to determine which machines are controlled by the device.\n"); printf(" Allowed values: dynamic-list " "(query the device via the 'list' command), static-list " - "(check the " STONITH_ATTR_HOSTLIST " attribute), status " + "(check the " PCMK_STONITH_HOST_LIST " attribute), status " "(query the device via the 'status' command), none (assume " "every device can fence every machine)\n"); printf(" \n"); printf(" \n"); - printf(" \n", STONITH_ATTR_DELAY_MAX); + printf(" \n", + PCMK_STONITH_DELAY_MAX); printf (" Enable a random delay for stonith actions and specify the maximum of random delay.\n"); printf @@ -1378,7 +1383,8 @@ main(int argc, char **argv) printf(" \n"); printf(" \n"); - printf(" \n", STONITH_ATTR_DELAY_BASE); + printf(" \n", + PCMK_STONITH_DELAY_BASE); printf (" Enable a base delay for stonith actions and specify base delay value.\n"); printf @@ -1388,7 +1394,8 @@ main(int argc, char **argv) printf(" \n"); printf(" \n"); - printf(" \n", STONITH_ATTR_ACTION_LIMIT); + printf(" \n", + PCMK_STONITH_ACTION_LIMIT); printf (" The maximum number of actions can be performed in parallel on this device\n"); printf @@ -1507,7 +1514,8 @@ main(int argc, char **argv) xmlNode *xml; stonith_key_value_t *params = NULL; - params = stonith_key_value_add(params, STONITH_ATTR_HOSTLIST, stonith_our_uname); + params = stonith_key_value_add(params, PCMK_STONITH_HOST_LIST, + stonith_our_uname); xml = create_device_registration_xml("watchdog", st_namespace_internal, STONITH_WATCHDOG_AGENT, params, diff --git a/include/crm/common/agents.h b/include/crm/common/agents.h index b585ada..e9089ae 100644 --- a/include/crm/common/agents.h +++ b/include/crm/common/agents.h @@ -23,6 +23,19 @@ extern "C" { #include // uint32_t #include +/* Special stonith-class agent parameters interpreted directly by Pacemaker + * (not including the pcmk_ACTION_{action,retries,timeout} parameters) + */ +#define PCMK_STONITH_ACTION_LIMIT "pcmk_action_limit" +#define PCMK_STONITH_DELAY_BASE "pcmk_delay_base" +#define PCMK_STONITH_DELAY_MAX "pcmk_delay_max" +#define PCMK_STONITH_HOST_ARGUMENT "pcmk_host_argument" +#define PCMK_STONITH_HOST_CHECK "pcmk_host_check" +#define PCMK_STONITH_HOST_LIST "pcmk_host_list" +#define PCMK_STONITH_HOST_MAP "pcmk_host_map" +#define PCMK_STONITH_PROVIDES "provides" +#define PCMK_STONITH_STONITH_TIMEOUT "stonith-timeout" + // Capabilities supported by a resource agent standard enum pcmk_ra_caps { pcmk_ra_cap_none = 0, diff --git a/include/crm/fencing/internal.h b/include/crm/fencing/internal.h index f33957f..391ab72 100644 --- a/include/crm/fencing/internal.h +++ b/include/crm/fencing/internal.h @@ -152,14 +152,6 @@ void stonith__device_parameter_flags(uint32_t *device_flags, # define T_STONITH_TIMEOUT_VALUE "st-async-timeout-value" # define T_STONITH_NOTIFY "st_notify" -# define STONITH_ATTR_HOSTARG "pcmk_host_argument" -# define STONITH_ATTR_HOSTMAP "pcmk_host_map" -# define STONITH_ATTR_HOSTLIST "pcmk_host_list" -# define STONITH_ATTR_HOSTCHECK "pcmk_host_check" -# define STONITH_ATTR_DELAY_MAX "pcmk_delay_max" -# define STONITH_ATTR_DELAY_BASE "pcmk_delay_base" -# define STONITH_ATTR_ACTION_LIMIT "pcmk_action_limit" - # define STONITH_ATTR_ACTION_OP "action" # define STONITH_OP_EXEC "st_execute" diff --git a/include/crm/msg_xml.h b/include/crm/msg_xml.h index 1fcb72d..c8b528b 100644 --- a/include/crm/msg_xml.h +++ b/include/crm/msg_xml.h @@ -208,7 +208,6 @@ extern "C" { # define XML_RSC_ATTR_FAIL_TIMEOUT "failure-timeout" # define XML_RSC_ATTR_MULTIPLE "multiple-active" # 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_RSC_ATTR_MAINTENANCE "maintenance" @@ -425,6 +424,17 @@ extern "C" { # define ID(x) crm_element_value(x, XML_ATTR_ID) # define TYPE(x) crm_element_name(x) + +#ifndef PCMK__NO_COMPAT +/* Everything here is deprecated and kept only for public API backward + * compatibility. It will be moved to compatibility.h in a future release. + */ + +//! \deprecated Use PCMK_STONITH_PROVIDES instead +# define XML_RSC_ATTR_PROVIDES "provides" + +#endif + #ifdef __cplusplus } #endif diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c index 9d7d030..d5784dc 100644 --- a/lib/fencing/st_client.c +++ b/lib/fencing/st_client.c @@ -516,7 +516,8 @@ make_args(const char *agent, const char *action, const char *victim, append_arg(STONITH_ATTR_ACTION_OP, action, &arg_list); if (victim && device_args) { const char *alias = victim; - const char *param = g_hash_table_lookup(device_args, STONITH_ATTR_HOSTARG); + const char *param = g_hash_table_lookup(device_args, + PCMK_STONITH_HOST_ARGUMENT); if (port_map && g_hash_table_lookup(port_map, victim)) { alias = g_hash_table_lookup(port_map, victim); @@ -2046,14 +2047,15 @@ stonith_api_validate(stonith_t *st, int call_options, const char *rsc_id, // Convert parameter list to a hash table for (; params; params = params->next) { - if (pcmk__str_eq(params->key, STONITH_ATTR_HOSTARG, pcmk__str_casei)) { + if (pcmk__str_eq(params->key, PCMK_STONITH_HOST_ARGUMENT, + pcmk__str_casei)) { host_arg = params->value; } // Strip out Pacemaker-implemented parameters if (!pcmk__starts_with(params->key, "pcmk_") - && strcmp(params->key, "provides") - && strcmp(params->key, "stonith-timeout")) { + && strcmp(params->key, PCMK_STONITH_PROVIDES) + && strcmp(params->key, PCMK_STONITH_STONITH_TIMEOUT)) { g_hash_table_insert(params_table, strdup(params->key), strdup(params->value)); } diff --git a/lib/pengine/unpack.c b/lib/pengine/unpack.c index a9bbf4b..44dba47 100644 --- a/lib/pengine/unpack.c +++ b/lib/pengine/unpack.c @@ -169,7 +169,7 @@ pe_fence_node(pe_working_set_t * data_set, pe_node_t * node, // nvpair with provides or requires set to unfencing #define XPATH_UNFENCING_NVPAIR XML_CIB_TAG_NVPAIR \ - "[(@" XML_NVPAIR_ATTR_NAME "='" XML_RSC_ATTR_PROVIDES "'" \ + "[(@" XML_NVPAIR_ATTR_NAME "='" PCMK_STONITH_PROVIDES "'" \ "or @" XML_NVPAIR_ATTR_NAME "='" XML_RSC_ATTR_REQUIRES "') " \ "and @" XML_NVPAIR_ATTR_VALUE "='unfencing']" diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c index 2ad8780..fd238df 100644 --- a/lib/pengine/utils.c +++ b/lib/pengine/utils.c @@ -2362,7 +2362,8 @@ find_unfencing_devices(GListPtr candidates, GListPtr matches) { for (GListPtr gIter = candidates; gIter != NULL; gIter = gIter->next) { pe_resource_t *candidate = gIter->data; - const char *provides = g_hash_table_lookup(candidate->meta, XML_RSC_ATTR_PROVIDES); + const char *provides = g_hash_table_lookup(candidate->meta, + PCMK_STONITH_PROVIDES); const char *requires = g_hash_table_lookup(candidate->meta, XML_RSC_ATTR_REQUIRES); if(candidate->children) { -- 1.8.3.1 From 6d492f2dff0931ff2d59686e2680c5616f8da580 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Mon, 5 Oct 2020 12:48:04 -0500 Subject: [PATCH 05/11] Refactor: libcrmcommon,libstonithd: add API for detecting special stonith params This includes a slight behavioral change. Previously, the stonith API validate method would strip out all parameters starting with "pcmk_" (which could be an issue if a fence agent named one of its own parameters like that); now, it only strips the specific parameters that Pacemaker handles directly. --- include/crm/common/agents.h | 1 + lib/common/agents.c | 39 +++++++++++++++++++++++++++++++++++++++ lib/fencing/st_client.c | 6 +----- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/include/crm/common/agents.h b/include/crm/common/agents.h index e9089ae..b185977 100644 --- a/include/crm/common/agents.h +++ b/include/crm/common/agents.h @@ -53,6 +53,7 @@ char *crm_generate_ra_key(const char *standard, const char *provider, const char *type); int crm_parse_agent_spec(const char *spec, char **standard, char **provider, char **type); +bool pcmk_stonith_param(const char *param); #ifndef PCMK__NO_COMPAT /* Everything here is deprecated and kept only for public API backward diff --git a/lib/common/agents.c b/lib/common/agents.c index 1ee55ac..0291b0b 100644 --- a/lib/common/agents.c +++ b/lib/common/agents.c @@ -171,3 +171,42 @@ crm_provider_required(const char *standard) { return pcmk_is_set(pcmk_get_ra_caps(standard), pcmk_ra_cap_provider); } + +/*! + * \brief Check whether a given stonith parameter is handled by Pacemaker + * + * Return true if a given string is the name of one of the special resource + * instance attributes interpreted directly by Pacemaker for stonith-class + * resources. + * + * \param[in] param Parameter name to check + * + * \return true if \p param is a special fencing parameter + */ +bool +pcmk_stonith_param(const char *param) +{ + if (param == NULL) { + return false; + } + if (pcmk__str_any_of(param, PCMK_STONITH_PROVIDES, + PCMK_STONITH_STONITH_TIMEOUT, NULL)) { + return true; + } + if (!pcmk__starts_with(param, "pcmk_")) { // Short-circuit common case + return false; + } + if (pcmk__str_any_of(param, + PCMK_STONITH_ACTION_LIMIT, + PCMK_STONITH_DELAY_BASE, + PCMK_STONITH_DELAY_MAX, + PCMK_STONITH_HOST_ARGUMENT, + PCMK_STONITH_HOST_CHECK, + PCMK_STONITH_HOST_LIST, + PCMK_STONITH_HOST_MAP, + NULL)) { + return true; + } + param = strchr(param + 5, '_'); // Skip past "pcmk_ACTION" + return pcmk__str_any_of(param, "_action", "_timeout", "_retries", NULL); +} diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c index d5784dc..e5adbf6 100644 --- a/lib/fencing/st_client.c +++ b/lib/fencing/st_client.c @@ -2051,11 +2051,7 @@ stonith_api_validate(stonith_t *st, int call_options, const char *rsc_id, pcmk__str_casei)) { host_arg = params->value; } - - // Strip out Pacemaker-implemented parameters - if (!pcmk__starts_with(params->key, "pcmk_") - && strcmp(params->key, PCMK_STONITH_PROVIDES) - && strcmp(params->key, PCMK_STONITH_STONITH_TIMEOUT)) { + if (!pcmk_stonith_param(params->key)) { g_hash_table_insert(params_table, strdup(params->key), strdup(params->value)); } -- 1.8.3.1 From d77b525b00c0ab74beb66fe3ef240a67a2c87cd5 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Mon, 5 Oct 2020 12:48:57 -0500 Subject: [PATCH 06/11] Test: libcrmcommon: add unit tests for stonith parameter name checker --- configure.ac | 1 + lib/common/tests/Makefile.am | 2 +- lib/common/tests/agents/Makefile.am | 29 ++++++++++++ lib/common/tests/agents/pcmk_stonith_param_test.c | 58 +++++++++++++++++++++++ 4 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 lib/common/tests/agents/Makefile.am create mode 100644 lib/common/tests/agents/pcmk_stonith_param_test.c diff --git a/configure.ac b/configure.ac index 36e85a9..7d11d1e 100644 --- a/configure.ac +++ b/configure.ac @@ -2006,6 +2006,7 @@ AC_CONFIG_FILES(Makefile \ lib/pacemaker-cluster.pc \ lib/common/Makefile \ lib/common/tests/Makefile \ + lib/common/tests/agents/Makefile \ lib/common/tests/cmdline/Makefile \ lib/common/tests/flags/Makefile \ lib/common/tests/operations/Makefile \ diff --git a/lib/common/tests/Makefile.am b/lib/common/tests/Makefile.am index f3eaeec..2c33cc5 100644 --- a/lib/common/tests/Makefile.am +++ b/lib/common/tests/Makefile.am @@ -1 +1 @@ -SUBDIRS = cmdline flags operations strings utils +SUBDIRS = agents cmdline flags operations strings utils diff --git a/lib/common/tests/agents/Makefile.am b/lib/common/tests/agents/Makefile.am new file mode 100644 index 0000000..40cb5f7 --- /dev/null +++ b/lib/common/tests/agents/Makefile.am @@ -0,0 +1,29 @@ +# +# Copyright 2020 the Pacemaker project contributors +# +# The version control history for this file may have further details. +# +# This source code is licensed under the GNU General Public License version 2 +# or later (GPLv2+) WITHOUT ANY WARRANTY. +# +AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include +LDADD = $(top_builddir)/lib/common/libcrmcommon.la + +include $(top_srcdir)/mk/glib-tap.mk + +# Add each test program here. Each test should be written as a little standalone +# program using the glib unit testing functions. See the documentation for more +# information. +# +# https://developer.gnome.org/glib/unstable/glib-Testing.html +# +# Add "_test" to the end of all test program names to simplify .gitignore. +test_programs = pcmk_stonith_param_test + +# If any extra data needs to be added to the source distribution, add it to the +# following list. +dist_test_data = + +# If any extra data needs to be used by tests but should not be added to the +# source distribution, add it to the following list. +test_data = diff --git a/lib/common/tests/agents/pcmk_stonith_param_test.c b/lib/common/tests/agents/pcmk_stonith_param_test.c new file mode 100644 index 0000000..bf509e9 --- /dev/null +++ b/lib/common/tests/agents/pcmk_stonith_param_test.c @@ -0,0 +1,58 @@ +/* + * Copyright 2020 the Pacemaker project contributors + * + * The version control history for this file may have further details. + * + * This source code is licensed under the GNU Lesser General Public License + * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. + */ + +#include + +#include +#include + +static void +is_stonith_param(void) +{ + g_assert_cmpint(pcmk_stonith_param(NULL), ==, false); + g_assert_cmpint(pcmk_stonith_param(""), ==, false); + g_assert_cmpint(pcmk_stonith_param("unrecognized"), ==, false); + g_assert_cmpint(pcmk_stonith_param("pcmk_unrecognized"), ==, false); + g_assert_cmpint(pcmk_stonith_param("x" PCMK_STONITH_ACTION_LIMIT), ==, false); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_ACTION_LIMIT "x"), ==, false); + + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_ACTION_LIMIT), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_DELAY_BASE), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_DELAY_MAX), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_HOST_ARGUMENT), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_HOST_CHECK), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_HOST_LIST), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_HOST_MAP), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_PROVIDES), ==, true); + g_assert_cmpint(pcmk_stonith_param(PCMK_STONITH_STONITH_TIMEOUT), ==, true); +} + +static void +is_stonith_action_param(void) +{ + /* Currently, the function accepts any string not containing underbars as + * the action name, so we do not need to verify particular action names. + */ + g_assert_cmpint(pcmk_stonith_param("pcmk_on_unrecognized"), ==, false); + g_assert_cmpint(pcmk_stonith_param("pcmk_on_action"), ==, true); + g_assert_cmpint(pcmk_stonith_param("pcmk_on_timeout"), ==, true); + g_assert_cmpint(pcmk_stonith_param("pcmk_on_retries"), ==, true); +} + +int +main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + + g_test_add_func("/common/utils/parse_op_key/is_stonith_param", + is_stonith_param); + g_test_add_func("/common/utils/parse_op_key/is_stonith_action_param", + is_stonith_action_param); + return g_test_run(); +} -- 1.8.3.1 From 775851a6dd765eb1a31f167533018031f4d5e1a1 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Thu, 17 Sep 2020 12:35:54 -0500 Subject: [PATCH 07/11] Refactor: libstonithd: simplify creation of fencing arguments It was unnecessarily complicated. --- cts/cts-fencing.in | 2 +- lib/fencing/st_client.c | 140 ++++++++++++++++++++++-------------------------- 2 files changed, 66 insertions(+), 76 deletions(-) diff --git a/cts/cts-fencing.in b/cts/cts-fencing.in index 4444024..feeedbb 100644 --- a/cts/cts-fencing.in +++ b/cts/cts-fencing.in @@ -1168,7 +1168,7 @@ class Tests(object): test.add_cmd("stonith_admin", "--output-as=xml -R true1 -a fence_dummy -o \"mode=pass\" -o \"pcmk_host_list=%s\"" % (our_uname)) test.add_cmd("stonith_admin", "--output-as=xml -F %s -t 3" % (our_uname)) - test.add_stonith_log_pattern("For stonith action (off) for victim %s, adding nodeid" % (our_uname)) + test.add_stonith_log_pattern("as nodeid with fence action 'off' targeting %s" % (our_uname)) ### verify nodeid is _NOT_ supplied when nodeid is not in the metadata parameters test = self.new_test("cpg_do_not_supply_nodeid", diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c index e5adbf6..ce2459b 100644 --- a/lib/fencing/st_client.c +++ b/lib/fencing/st_client.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -457,39 +458,20 @@ stonith_api_register_level(stonith_t * st, int options, const char *node, int le } static void -append_arg(const char *key, const char *value, GHashTable **args) -{ - CRM_CHECK(key != NULL, return); - CRM_CHECK(value != NULL, return); - CRM_CHECK(args != NULL, return); - - if (strstr(key, "pcmk_")) { - return; - } else if (strstr(key, CRM_META)) { - return; - } else if (pcmk__str_eq(key, "crm_feature_set", pcmk__str_casei)) { - return; - } - - if (!*args) { - *args = crm_str_table_new(); - } - - CRM_CHECK(*args != NULL, return); - crm_trace("Appending: %s=%s", key, value); - g_hash_table_replace(*args, strdup(key), strdup(value)); -} - -static void append_config_arg(gpointer key, gpointer value, gpointer user_data) { - /* The fencer will filter action out when it registers the device, - * but ignore it here just in case any other library callers - * fail to do so. + /* The fencer will filter "action" out when it registers the device, + * but ignore it here in case any external API users don't. */ - if (!pcmk__str_eq(key, STONITH_ATTR_ACTION_OP, pcmk__str_casei)) { - append_arg(key, value, user_data); - return; + if (!pcmk__str_eq(key, STONITH_ATTR_ACTION_OP, pcmk__str_casei) + && (strstr(key, "pcmk_") == NULL) + && (strstr(key, CRM_META) == NULL) + && !pcmk__str_eq(key, "crm_feature_set", pcmk__str_casei)) { + + crm_trace("Passing %s=%s with fence action", + (const char *) key, (const char *) (value? value : "")); + g_hash_table_insert((GHashTable *) user_data, + strdup(key), strdup(value? value : "")); } } @@ -498,76 +480,84 @@ make_args(const char *agent, const char *action, const char *victim, uint32_t victim_nodeid, GHashTable * device_args, GHashTable * port_map, const char *host_arg) { - char buffer[512]; GHashTable *arg_list = NULL; const char *value = NULL; CRM_CHECK(action != NULL, return NULL); - snprintf(buffer, sizeof(buffer), "pcmk_%s_action", action); + arg_list = crm_str_table_new(); + + // Add action to arguments (using an alias if requested) if (device_args) { + char buffer[512]; + + snprintf(buffer, sizeof(buffer), "pcmk_%s_action", action); value = g_hash_table_lookup(device_args, buffer); + if (value) { + crm_debug("Substituting '%s' for fence action %s targeting %s", + value, action, victim); + action = value; + } } - if (value) { - crm_debug("Substituting action '%s' for requested operation '%s'", value, action); - action = value; - } + g_hash_table_insert(arg_list, strdup(STONITH_ATTR_ACTION_OP), + strdup(action)); - append_arg(STONITH_ATTR_ACTION_OP, action, &arg_list); + /* If this is a fencing operation against another node, add more standard + * arguments. + */ if (victim && device_args) { - const char *alias = victim; - const char *param = g_hash_table_lookup(device_args, - PCMK_STONITH_HOST_ARGUMENT); + const char *param = NULL; - if (port_map && g_hash_table_lookup(port_map, victim)) { - alias = g_hash_table_lookup(port_map, victim); - } - - /* Always supply the node's name, too: + /* Always pass the target's name, per * https://github.com/ClusterLabs/fence-agents/blob/master/doc/FenceAgentAPI.md */ - append_arg("nodename", victim, &arg_list); + g_hash_table_insert(arg_list, strdup("nodename"), strdup(victim)); + + // If the target's node ID was specified, pass it, too if (victim_nodeid) { - char nodeid_str[33] = { 0, }; - if (snprintf(nodeid_str, 33, "%u", (unsigned int)victim_nodeid)) { - crm_info("For stonith action (%s) for victim %s, adding nodeid (%s) to parameters", - action, victim, nodeid_str); - append_arg("nodeid", nodeid_str, &arg_list); - } - } + char *nodeid = crm_strdup_printf("%" PRIu32, victim_nodeid); - /* Check if we need to supply the victim in any other form */ - if(pcmk__str_eq(agent, "fence_legacy", pcmk__str_casei)) { - value = agent; + // cts-fencing looks for this log message + crm_info("Passing '%s' as nodeid with fence action '%s' targeting %s", + nodeid, action, victim); + g_hash_table_insert(arg_list, strdup("nodeid"), nodeid); + } - } else if (param == NULL) { - // By default, `port` is added - if (host_arg == NULL) { - param = "port"; + // Check whether target must be specified in some other way + param = g_hash_table_lookup(device_args, PCMK_STONITH_HOST_ARGUMENT); + if (!pcmk__str_eq(agent, "fence_legacy", pcmk__str_none) + && !pcmk__str_eq(param, "none", pcmk__str_casei)) { - } else { - param = host_arg; + if (param == NULL) { + /* Use the caller's default for pcmk_host_argument, or "port" if + * none was given + */ + param = (host_arg == NULL)? "port" : host_arg; } - value = g_hash_table_lookup(device_args, param); - } else if (pcmk__str_eq(param, "none", pcmk__str_casei)) { - value = param; /* Nothing more to do */ - - } else { - value = g_hash_table_lookup(device_args, param); - } + if (pcmk__str_eq(value, "dynamic", + pcmk__str_casei|pcmk__str_null_matches)) { + /* If the host argument was "dynamic" or not explicitly specified, + * add it with the target + */ + const char *alias = NULL; - /* Don't overwrite explictly set values for $param */ - if (pcmk__str_eq(value, "dynamic", pcmk__str_null_matches | pcmk__str_casei)) { - crm_debug("Performing '%s' action targeting '%s' as '%s=%s'", action, victim, param, - alias); - append_arg(param, alias, &arg_list); + if (port_map) { + alias = g_hash_table_lookup(port_map, victim); + } + if (alias == NULL) { + alias = victim; + } + crm_debug("Passing %s='%s' with fence action %s targeting %s", + param, alias, action, victim); + g_hash_table_insert(arg_list, strdup(param), strdup(alias)); + } } } if (device_args) { - g_hash_table_foreach(device_args, append_config_arg, &arg_list); + g_hash_table_foreach(device_args, append_config_arg, arg_list); } return arg_list; -- 1.8.3.1 From 717f2decd99466555287b41331dfc5d693043d56 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Thu, 17 Sep 2020 12:39:48 -0500 Subject: [PATCH 08/11] Low: libstonithd: improve filtering of Pacemaker-handled parameters Previously, when creating arguments to pass to fence agents, we would filter out parameters whose name contained the substring "pcmk_" anywhere. Now, use the new API call to filter out only the parameters interpreted directly by Pacemaker. --- lib/fencing/st_client.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/fencing/st_client.c b/lib/fencing/st_client.c index ce2459b..b8348fe 100644 --- a/lib/fencing/st_client.c +++ b/lib/fencing/st_client.c @@ -462,9 +462,11 @@ append_config_arg(gpointer key, gpointer value, gpointer user_data) { /* The fencer will filter "action" out when it registers the device, * but ignore it here in case any external API users don't. + * + * Also filter out parameters handled directly by Pacemaker. */ if (!pcmk__str_eq(key, STONITH_ATTR_ACTION_OP, pcmk__str_casei) - && (strstr(key, "pcmk_") == NULL) + && !pcmk_stonith_param(key) && (strstr(key, CRM_META) == NULL) && !pcmk__str_eq(key, "crm_feature_set", pcmk__str_casei)) { -- 1.8.3.1 From 3e960c22a1cd686efd18754f6535167fc34a223c Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Thu, 17 Sep 2020 16:26:23 -0500 Subject: [PATCH 09/11] Low: scheduler: use same default private parameter list as controller If the controller doesn't find any parameters marked private in resource agent meta-data, it uses "password", "passwd", and "user" as the default list (in metadata_cache_update()). If the scheduler came across a resource operation history entry with no op-secure-params list, it previously used " passwd password " as the default. Even though these are two different situations, and the scheduler should only find that situation in old saved CIBs, use the same default list for consistency. --- lib/pengine/utils.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c index fd238df..a80dab3 100644 --- a/lib/pengine/utils.c +++ b/lib/pengine/utils.c @@ -2066,9 +2066,9 @@ rsc_action_digest(pe_resource_t *rsc, const char *task, const char *key, const char *ra_version = NULL; #endif - const char *op_version; + const char *op_version = NULL; const char *restart_list = NULL; - const char *secure_list = " passwd password "; + const char *secure_list = NULL; data = calloc(1, sizeof(op_digest_cache_t)); CRM_ASSERT(data != NULL); @@ -2102,6 +2102,7 @@ rsc_action_digest(pe_resource_t *rsc, const char *task, const char *key, #endif } else { + secure_list = " passwd password user "; op_version = CRM_FEATURE_SET; } -- 1.8.3.1 From c396a66016cfbb2ace3e166d674a90b4204fff6e Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Wed, 16 Sep 2020 19:06:56 -0500 Subject: [PATCH 10/11] Fix: scheduler: filter Pacemaker-supplied stonith parameters from secure hash Pacemaker calculates "secure digests" of resource operations as hashes of non-sensitive resource parameters, for use when running crm_simulate on sanitized data sets. Previously, the controller and scheduler could calculate different secure digests for the same resource history entry for stonith resources. The controller created its hash based on all resource parameters listed in the agent meta-data. The scheduler created its hash based on all configured resource parameters, which could include the special parameters (such as "provides") that are interpreted directly by Pacemaker and not passed to the agent. Now, the scheduler excludes the special parameters before hashing. This avoids the annoying situation where running crm_simulate on a sanitized data set shows unnecessary stonith resource restarts. --- lib/pengine/utils.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/pengine/utils.c b/lib/pengine/utils.c index a80dab3..a78bd24 100644 --- a/lib/pengine/utils.c +++ b/lib/pengine/utils.c @@ -2124,6 +2124,9 @@ rsc_action_digest(pe_resource_t *rsc, const char *task, const char *key, data->digest_all_calc = calculate_operation_digest(data->params_all, op_version); if (calc_secure) { + const char *class = crm_element_value(rsc->xml, + XML_AGENT_ATTR_CLASS); + /* The controller doesn't create a digest of *all* non-sensitive * parameters, only those listed in resource agent meta-data. The * equivalent here is rsc->parameters. @@ -2133,6 +2136,23 @@ rsc_action_digest(pe_resource_t *rsc, const char *task, const char *key, if(secure_list) { filter_parameters(data->params_secure, secure_list, FALSE); } + if (pcmk_is_set(pcmk_get_ra_caps(class), + pcmk_ra_cap_fence_params)) { + /* For stonith resources, Pacemaker adds special parameters, + * but these are not listed in fence agent meta-data, so the + * controller will not hash them. That means we have to filter + * them out before calculating our hash for comparison. + */ + for (xmlAttrPtr iter = data->params_secure->properties; + iter != NULL; ) { + const char *prop_name = (const char *) iter->name; + + iter = iter->next; // Grab next now in case we remove current + if (pcmk_stonith_param(prop_name)) { + xml_remove_prop(data->params_secure, prop_name); + } + } + } data->digest_secure_calc = calculate_operation_digest(data->params_secure, op_version); } -- 1.8.3.1 From 644b7ee1979d4da88497a67bb7f96ebfb91cf1d5 Mon Sep 17 00:00:00 2001 From: Ken Gaillot Date: Thu, 17 Sep 2020 17:20:50 -0500 Subject: [PATCH 11/11] Test: scheduler: update tests for digest fix This has been bugging me for years! There are still a few regression tests where fencing devices are sanitized (i.e. have a parameter value of "****") and yet are still restarting. These are all correct, because either some value not marked as private (e.g. "user") was sanitized, or they pre-date op-secure-params and op-secure-digest. --- cts/scheduler/asymmetrical-order-restart.dot | 5 - cts/scheduler/asymmetrical-order-restart.exp | 35 -- cts/scheduler/asymmetrical-order-restart.scores | 2 + cts/scheduler/asymmetrical-order-restart.summary | 6 +- cts/scheduler/bug-cl-5247.dot | 34 -- cts/scheduler/bug-cl-5247.exp | 280 ++---------- cts/scheduler/bug-cl-5247.scores | 4 + cts/scheduler/bug-cl-5247.summary | 20 +- cts/scheduler/nested-remote-recovery.dot | 45 -- cts/scheduler/nested-remote-recovery.exp | 483 ++++----------------- cts/scheduler/nested-remote-recovery.scores | 18 + cts/scheduler/nested-remote-recovery.summary | 54 +-- cts/scheduler/no-promote-on-unrunnable-guest.dot | 15 - cts/scheduler/no-promote-on-unrunnable-guest.exp | 273 ++++-------- .../no-promote-on-unrunnable-guest.scores | 6 + .../no-promote-on-unrunnable-guest.summary | 18 +- cts/scheduler/notifs-for-unrunnable.dot | 15 - cts/scheduler/notifs-for-unrunnable.exp | 195 ++------- cts/scheduler/notifs-for-unrunnable.scores | 6 + cts/scheduler/notifs-for-unrunnable.summary | 18 +- cts/scheduler/on-fail-ignore.dot | 10 - cts/scheduler/on-fail-ignore.exp | 73 +--- cts/scheduler/on-fail-ignore.scores | 4 + cts/scheduler/on-fail-ignore.summary | 12 +- cts/scheduler/remote-recover-all.dot | 14 - cts/scheduler/remote-recover-all.exp | 234 ++++------ cts/scheduler/remote-recover-all.scores | 4 + cts/scheduler/remote-recover-all.summary | 12 +- cts/scheduler/remote-recover-connection.dot | 10 - cts/scheduler/remote-recover-connection.exp | 198 +++------ cts/scheduler/remote-recover-connection.scores | 4 + cts/scheduler/remote-recover-connection.summary | 12 +- cts/scheduler/remote-recover-no-resources.dot | 12 - cts/scheduler/remote-recover-no-resources.exp | 198 +++------ cts/scheduler/remote-recover-no-resources.scores | 4 + cts/scheduler/remote-recover-no-resources.summary | 12 +- cts/scheduler/remote-recover-unknown.dot | 14 - cts/scheduler/remote-recover-unknown.exp | 206 +++------ cts/scheduler/remote-recover-unknown.scores | 4 + cts/scheduler/remote-recover-unknown.summary | 12 +- cts/scheduler/remote-recovery.dot | 10 - cts/scheduler/remote-recovery.exp | 198 +++------ cts/scheduler/remote-recovery.scores | 4 + cts/scheduler/remote-recovery.summary | 12 +- 44 files changed, 706 insertions(+), 2099 deletions(-) diff --git a/cts/scheduler/asymmetrical-order-restart.dot b/cts/scheduler/asymmetrical-order-restart.dot index d12a4a5..8bb3a93 100644 --- a/cts/scheduler/asymmetrical-order-restart.dot +++ b/cts/scheduler/asymmetrical-order-restart.dot @@ -1,9 +1,4 @@ digraph "g" { -"cesr104ipmi_monitor_60000 cesr105-p16" [ style=bold color="green" fontcolor="black"] -"cesr104ipmi_start_0 cesr105-p16" -> "cesr104ipmi_monitor_60000 cesr105-p16" [ style = bold] -"cesr104ipmi_start_0 cesr105-p16" [ style=bold color="green" fontcolor="black"] -"cesr104ipmi_stop_0 cesr105-p16" -> "cesr104ipmi_start_0 cesr105-p16" [ style = bold] -"cesr104ipmi_stop_0 cesr105-p16" [ style=bold color="green" fontcolor="black"] "sleep_b_monitor_10000 cesr109-p16" [ style=dashed color="red" fontcolor="black"] "sleep_b_start_0 cesr109-p16" -> "sleep_b_monitor_10000 cesr109-p16" [ style = dashed] "sleep_b_start_0 cesr109-p16" [ style=dashed color="red" fontcolor="black"] diff --git a/cts/scheduler/asymmetrical-order-restart.exp b/cts/scheduler/asymmetrical-order-restart.exp index bb4a2c5..c0b627a 100644 --- a/cts/scheduler/asymmetrical-order-restart.exp +++ b/cts/scheduler/asymmetrical-order-restart.exp @@ -1,41 +1,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cts/scheduler/asymmetrical-order-restart.scores b/cts/scheduler/asymmetrical-order-restart.scores index 35fd8fe..49bb33d 100644 --- a/cts/scheduler/asymmetrical-order-restart.scores +++ b/cts/scheduler/asymmetrical-order-restart.scores @@ -1,4 +1,6 @@ Allocation scores: +Only 'private' parameters to cesr104ipmi_monitor_60000 on cesr105-p16 changed: 0:0;1167:0:0:540ff5bf-81ee-4648-97cb-e922b82b370c +Only 'private' parameters to cesr104ipmi_start_0 on cesr105-p16 changed: 0:0;1166:0:0:540ff5bf-81ee-4648-97cb-e922b82b370c Using the original execution date of: 2018-08-09 18:55:41Z pcmk__native_allocate: cesr104ipmi allocation score on cesr105-p16: 0 pcmk__native_allocate: cesr104ipmi allocation score on cesr109-p16: 0 diff --git a/cts/scheduler/asymmetrical-order-restart.summary b/cts/scheduler/asymmetrical-order-restart.summary index 9e2e9fd..7811801 100644 --- a/cts/scheduler/asymmetrical-order-restart.summary +++ b/cts/scheduler/asymmetrical-order-restart.summary @@ -8,14 +8,12 @@ Online: [ cesr105-p16 cesr109-p16 ] sleep_a (ocf::classe:anything): Stopped (disabled) sleep_b (ocf::classe:anything): FAILED cesr109-p16 +Only 'private' parameters to cesr104ipmi_start_0 on cesr105-p16 changed: 0:0;1166:0:0:540ff5bf-81ee-4648-97cb-e922b82b370c +Only 'private' parameters to cesr104ipmi_monitor_60000 on cesr105-p16 changed: 0:0;1167:0:0:540ff5bf-81ee-4648-97cb-e922b82b370c Transition Summary: - * Restart cesr104ipmi ( cesr105-p16 ) due to resource definition change * Stop sleep_b ( cesr109-p16 ) due to unrunnable sleep_a start Executing cluster transition: - * Resource action: cesr104ipmi stop on cesr105-p16 - * Resource action: cesr104ipmi start on cesr105-p16 - * Resource action: cesr104ipmi monitor=60000 on cesr105-p16 * Resource action: sleep_b stop on cesr109-p16 Using the original execution date of: 2018-08-09 18:55:41Z diff --git a/cts/scheduler/bug-cl-5247.dot b/cts/scheduler/bug-cl-5247.dot index 71e816f..f5d6fa3 100644 --- a/cts/scheduler/bug-cl-5247.dot +++ b/cts/scheduler/bug-cl-5247.dot @@ -1,22 +1,4 @@ digraph "g" { -"grpStonith1_running_0" [ style=bold color="green" fontcolor="orange"] -"grpStonith1_start_0" -> "grpStonith1_running_0" [ style = bold] -"grpStonith1_start_0" -> "prmStonith1-2_start_0 bl460g8n4" [ style = bold] -"grpStonith1_start_0" [ style=bold color="green" fontcolor="orange"] -"grpStonith1_stop_0" -> "grpStonith1_stopped_0" [ style = bold] -"grpStonith1_stop_0" -> "prmStonith1-2_stop_0 bl460g8n4" [ style = bold] -"grpStonith1_stop_0" [ style=bold color="green" fontcolor="orange"] -"grpStonith1_stopped_0" -> "grpStonith1_start_0" [ style = bold] -"grpStonith1_stopped_0" [ style=bold color="green" fontcolor="orange"] -"grpStonith2_running_0" [ style=bold color="green" fontcolor="orange"] -"grpStonith2_start_0" -> "grpStonith2_running_0" [ style = bold] -"grpStonith2_start_0" -> "prmStonith2-2_start_0 bl460g8n3" [ style = bold] -"grpStonith2_start_0" [ style=bold color="green" fontcolor="orange"] -"grpStonith2_stop_0" -> "grpStonith2_stopped_0" [ style = bold] -"grpStonith2_stop_0" -> "prmStonith2-2_stop_0 bl460g8n3" [ style = bold] -"grpStonith2_stop_0" [ style=bold color="green" fontcolor="orange"] -"grpStonith2_stopped_0" -> "grpStonith2_start_0" [ style = bold] -"grpStonith2_stopped_0" [ style=bold color="green" fontcolor="orange"] "master-group_running_0" [ style=bold color="green" fontcolor="orange"] "master-group_start_0" -> "master-group_running_0" [ style = bold] "master-group_start_0" -> "vip-master_start_0 pgsr01" [ style = bold] @@ -89,27 +71,11 @@ "pgsr02_stop_0 bl460g8n4" [ style=bold color="green" fontcolor="black"] "prmDB2_stop_0 bl460g8n4" -> "stonith 'off' pgsr02" [ style = bold] "prmDB2_stop_0 bl460g8n4" [ style=bold color="green" fontcolor="black"] -"prmStonith1-2_monitor_3600000 bl460g8n4" [ style=bold color="green" fontcolor="black"] -"prmStonith1-2_start_0 bl460g8n4" -> "grpStonith1_running_0" [ style = bold] -"prmStonith1-2_start_0 bl460g8n4" -> "prmStonith1-2_monitor_3600000 bl460g8n4" [ style = bold] -"prmStonith1-2_start_0 bl460g8n4" [ style=bold color="green" fontcolor="black"] -"prmStonith1-2_stop_0 bl460g8n4" -> "grpStonith1_stopped_0" [ style = bold] -"prmStonith1-2_stop_0 bl460g8n4" -> "prmStonith1-2_start_0 bl460g8n4" [ style = bold] -"prmStonith1-2_stop_0 bl460g8n4" [ style=bold color="green" fontcolor="black"] -"prmStonith2-2_monitor_3600000 bl460g8n3" [ style=bold color="green" fontcolor="black"] -"prmStonith2-2_start_0 bl460g8n3" -> "grpStonith2_running_0" [ style = bold] -"prmStonith2-2_start_0 bl460g8n3" -> "prmStonith2-2_monitor_3600000 bl460g8n3" [ style = bold] -"prmStonith2-2_start_0 bl460g8n3" [ style=bold color="green" fontcolor="black"] -"prmStonith2-2_stop_0 bl460g8n3" -> "grpStonith2_stopped_0" [ style = bold] -"prmStonith2-2_stop_0 bl460g8n3" -> "prmStonith2-2_start_0 bl460g8n3" [ style = bold] -"prmStonith2-2_stop_0 bl460g8n3" [ style=bold color="green" fontcolor="black"] "stonith 'off' pgsr02" -> "master-group_stop_0" [ style = bold] "stonith 'off' pgsr02" -> "msPostgresql_stop_0" [ style = bold] "stonith 'off' pgsr02" -> "pgsql_demote_0 pgsr02" [ style = bold] "stonith 'off' pgsr02" -> "pgsql_post_notify_stonith_0" [ style = bold] "stonith 'off' pgsr02" -> "pgsql_stop_0 pgsr02" [ style = bold] -"stonith 'off' pgsr02" -> "prmStonith1-2_start_0 bl460g8n4" [ style = bold] -"stonith 'off' pgsr02" -> "prmStonith2-2_start_0 bl460g8n3" [ style = bold] "stonith 'off' pgsr02" -> "vip-master_start_0 pgsr01" [ style = bold] "stonith 'off' pgsr02" -> "vip-master_stop_0 pgsr02" [ style = bold] "stonith 'off' pgsr02" -> "vip-rep_start_0 pgsr01" [ style = bold] diff --git a/cts/scheduler/bug-cl-5247.exp b/cts/scheduler/bug-cl-5247.exp index 446df3b..252e65a 100644 --- a/cts/scheduler/bug-cl-5247.exp +++ b/cts/scheduler/bug-cl-5247.exp @@ -14,206 +14,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -226,7 +36,7 @@ - + @@ -241,7 +51,7 @@ - + @@ -259,7 +69,7 @@ - + @@ -271,7 +81,7 @@ - + @@ -284,7 +94,7 @@ - + @@ -293,7 +103,7 @@ - + @@ -306,7 +116,7 @@ - + @@ -314,7 +124,7 @@ - + @@ -327,16 +137,16 @@ - + - + - + @@ -349,7 +159,7 @@ - + @@ -358,7 +168,7 @@ - + @@ -374,7 +184,7 @@ - + @@ -389,16 +199,16 @@ - + - + - + @@ -413,7 +223,7 @@ - + @@ -425,7 +235,7 @@ - + @@ -443,7 +253,7 @@ - + @@ -458,7 +268,7 @@ - + @@ -471,7 +281,7 @@ - + @@ -484,7 +294,7 @@ - + @@ -497,7 +307,7 @@ - + @@ -513,7 +323,7 @@ - + @@ -532,7 +342,7 @@ - + @@ -547,7 +357,7 @@ - + @@ -562,7 +372,7 @@ - + @@ -577,7 +387,7 @@ - + @@ -585,7 +395,7 @@ - + @@ -600,7 +410,7 @@ - + @@ -612,7 +422,7 @@ - + @@ -627,7 +437,7 @@ - + @@ -642,7 +452,7 @@ - + @@ -657,7 +467,7 @@ - + @@ -669,7 +479,7 @@ - + @@ -684,7 +494,7 @@ - + @@ -702,16 +512,16 @@ - + - + - + @@ -723,16 +533,16 @@ - + - + - + diff --git a/cts/scheduler/bug-cl-5247.scores b/cts/scheduler/bug-cl-5247.scores index 11a0152..90c7ca6 100644 --- a/cts/scheduler/bug-cl-5247.scores +++ b/cts/scheduler/bug-cl-5247.scores @@ -1,4 +1,8 @@ Allocation scores: +Only 'private' parameters to prmStonith1-2_monitor_3600000 on bl460g8n4 changed: 0:0;12:4:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 +Only 'private' parameters to prmStonith1-2_start_0 on bl460g8n4 changed: 0:0;24:3:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 +Only 'private' parameters to prmStonith2-2_monitor_3600000 on bl460g8n3 changed: 0:0;19:4:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 +Only 'private' parameters to prmStonith2-2_start_0 on bl460g8n3 changed: 0:0;30:3:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 Using the original execution date of: 2015-08-12 02:53:40Z pcmk__clone_allocate: msPostgresql allocation score on bl460g8n3: -INFINITY pcmk__clone_allocate: msPostgresql allocation score on bl460g8n4: -INFINITY diff --git a/cts/scheduler/bug-cl-5247.summary b/cts/scheduler/bug-cl-5247.summary index 52664e6..9e8959f 100644 --- a/cts/scheduler/bug-cl-5247.summary +++ b/cts/scheduler/bug-cl-5247.summary @@ -17,21 +17,19 @@ GuestOnline: [ pgsr01:prmDB1 ] Masters: [ pgsr01 ] Stopped: [ bl460g8n3 bl460g8n4 ] +Only 'private' parameters to prmStonith1-2_start_0 on bl460g8n4 changed: 0:0;24:3:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 +Only 'private' parameters to prmStonith1-2_monitor_3600000 on bl460g8n4 changed: 0:0;12:4:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 +Only 'private' parameters to prmStonith2-2_start_0 on bl460g8n3 changed: 0:0;30:3:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 +Only 'private' parameters to prmStonith2-2_monitor_3600000 on bl460g8n3 changed: 0:0;19:4:0:6cacb40a-dbbb-49b0-bac7-1794a61d2910 Transition Summary: * Fence (off) pgsr02 (resource: prmDB2) 'guest is unclean' * Stop prmDB2 ( bl460g8n4 ) due to node availability - * Restart prmStonith1-2 ( bl460g8n4 ) due to resource definition change - * Restart prmStonith2-2 ( bl460g8n3 ) due to resource definition change * Recover vip-master ( pgsr02 -> pgsr01 ) * Recover vip-rep ( pgsr02 -> pgsr01 ) * Stop pgsql:0 ( Master pgsr02 ) due to node availability * Stop pgsr02 ( bl460g8n4 ) due to node availability Executing cluster transition: - * Pseudo action: grpStonith1_stop_0 - * Resource action: prmStonith1-2 stop on bl460g8n4 - * Pseudo action: grpStonith2_stop_0 - * Resource action: prmStonith2-2 stop on bl460g8n3 * Resource action: vip-master monitor on pgsr01 * Resource action: vip-rep monitor on pgsr01 * Pseudo action: msPostgresql_pre_notify_demote_0 @@ -39,23 +37,13 @@ Executing cluster transition: * Resource action: pgsr02 stop on bl460g8n4 * Resource action: pgsr02 monitor on bl460g8n3 * Resource action: prmDB2 stop on bl460g8n4 - * Pseudo action: grpStonith1_stopped_0 - * Pseudo action: grpStonith1_start_0 - * Pseudo action: grpStonith2_stopped_0 - * Pseudo action: grpStonith2_start_0 * Resource action: pgsql notify on pgsr01 * Pseudo action: msPostgresql_confirmed-pre_notify_demote_0 * Pseudo action: msPostgresql_demote_0 * Pseudo action: stonith-pgsr02-off on pgsr02 - * Resource action: prmStonith1-2 start on bl460g8n4 - * Resource action: prmStonith1-2 monitor=3600000 on bl460g8n4 - * Resource action: prmStonith2-2 start on bl460g8n3 - * Resource action: prmStonith2-2 monitor=3600000 on bl460g8n3 * Pseudo action: pgsql_post_notify_stop_0 * Pseudo action: pgsql_demote_0 * Pseudo action: msPostgresql_demoted_0 - * Pseudo action: grpStonith1_running_0 - * Pseudo action: grpStonith2_running_0 * Pseudo action: msPostgresql_post_notify_demoted_0 * Resource action: pgsql notify on pgsr01 * Pseudo action: msPostgresql_confirmed-post_notify_demoted_0 diff --git a/cts/scheduler/nested-remote-recovery.dot b/cts/scheduler/nested-remote-recovery.dot index 02a267f..2afc6e9 100644 --- a/cts/scheduler/nested-remote-recovery.dot +++ b/cts/scheduler/nested-remote-recovery.dot @@ -86,49 +86,4 @@ "stonith 'reboot' galera-bundle-0" -> "galera_promote_0 galera-bundle-0" [ style = bold] "stonith 'reboot' galera-bundle-0" -> "galera_start_0 galera-bundle-0" [ style = bold] "stonith 'reboot' galera-bundle-0" [ style=bold color="green" fontcolor="orange"] -"stonith-fence_ipmilan-5254000203a2_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254000203a2_start_0 controller-2" -> "stonith-fence_ipmilan-5254000203a2_monitor_60000 controller-2" [ style = bold] -"stonith-fence_ipmilan-5254000203a2_start_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254000203a2_stop_0 controller-2" -> "stonith-fence_ipmilan-5254000203a2_start_0 controller-2" [ style = bold] -"stonith-fence_ipmilan-5254000203a2_stop_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254002f6d57_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254002f6d57_start_0 controller-1" -> "stonith-fence_ipmilan-5254002f6d57_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-5254002f6d57_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254002f6d57_stop_0 controller-1" -> "stonith-fence_ipmilan-5254002f6d57_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-5254002f6d57_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254003296a5_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254003296a5_start_0 controller-1" -> "stonith-fence_ipmilan-5254003296a5_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-5254003296a5_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254003296a5_stop_0 controller-1" -> "stonith-fence_ipmilan-5254003296a5_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-5254003296a5_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254005f9a33_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254005f9a33_start_0 controller-2" -> "stonith-fence_ipmilan-5254005f9a33_monitor_60000 controller-2" [ style = bold] -"stonith-fence_ipmilan-5254005f9a33_start_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254005f9a33_stop_0 controller-2" -> "stonith-fence_ipmilan-5254005f9a33_start_0 controller-2" [ style = bold] -"stonith-fence_ipmilan-5254005f9a33_stop_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540065418e_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540065418e_start_0 controller-2" -> "stonith-fence_ipmilan-52540065418e_monitor_60000 controller-2" [ style = bold] -"stonith-fence_ipmilan-52540065418e_start_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540065418e_stop_0 controller-2" -> "stonith-fence_ipmilan-52540065418e_start_0 controller-2" [ style = bold] -"stonith-fence_ipmilan-52540065418e_stop_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540066e27e_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540066e27e_start_0 controller-1" -> "stonith-fence_ipmilan-52540066e27e_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-52540066e27e_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540066e27e_stop_0 controller-1" -> "stonith-fence_ipmilan-52540066e27e_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-52540066e27e_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540098c9ff_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540098c9ff_start_0 controller-1" -> "stonith-fence_ipmilan-52540098c9ff_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-52540098c9ff_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-52540098c9ff_stop_0 controller-1" -> "stonith-fence_ipmilan-52540098c9ff_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-52540098c9ff_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400a16c0d_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400a16c0d_start_0 controller-1" -> "stonith-fence_ipmilan-525400a16c0d_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-525400a16c0d_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400a16c0d_stop_0 controller-1" -> "stonith-fence_ipmilan-525400a16c0d_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-525400a16c0d_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400aab9d9_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400aab9d9_start_0 controller-2" -> "stonith-fence_ipmilan-525400aab9d9_monitor_60000 controller-2" [ style = bold] -"stonith-fence_ipmilan-525400aab9d9_start_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400aab9d9_stop_0 controller-2" -> "stonith-fence_ipmilan-525400aab9d9_start_0 controller-2" [ style = bold] -"stonith-fence_ipmilan-525400aab9d9_stop_0 controller-2" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/nested-remote-recovery.exp b/cts/scheduler/nested-remote-recovery.exp index 37c51c1..795a6ea 100644 --- a/cts/scheduler/nested-remote-recovery.exp +++ b/cts/scheduler/nested-remote-recovery.exp @@ -1,45 +1,45 @@ - + - + - + - + - + - + - + - + - + - + @@ -48,23 +48,23 @@ - + - + - + - + - + @@ -73,121 +73,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -196,40 +196,40 @@ - + - + - + - + - + - + - + - + @@ -239,7 +239,7 @@ - + @@ -255,10 +255,10 @@ - + - + @@ -271,29 +271,29 @@ - + - + - + - + - + @@ -312,327 +312,12 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -646,62 +331,62 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -710,49 +395,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/cts/scheduler/nested-remote-recovery.scores b/cts/scheduler/nested-remote-recovery.scores index e3b75dd..83ae5aa 100644 --- a/cts/scheduler/nested-remote-recovery.scores +++ b/cts/scheduler/nested-remote-recovery.scores @@ -1,4 +1,22 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-5254000203a2_monitor_60000 on controller-2 changed: 0:0;216:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254000203a2_start_0 on controller-2 changed: 0:0;222:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254002f6d57_monitor_60000 on controller-1 changed: 0:0;229:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-5254002f6d57_start_0 on controller-1 changed: 0:0;237:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-5254003296a5_monitor_60000 on controller-1 changed: 0:0;216:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-5254003296a5_start_0 on controller-1 changed: 0:0;224:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-5254005f9a33_monitor_60000 on controller-2 changed: 0:0;211:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254005f9a33_start_0 on controller-2 changed: 0:0;217:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-52540065418e_monitor_60000 on controller-2 changed: 0:0;223:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-52540065418e_start_0 on controller-2 changed: 0:0;229:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-52540066e27e_monitor_60000 on controller-1 changed: 0:0;219:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-52540066e27e_start_0 on controller-1 changed: 0:0;227:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-52540098c9ff_monitor_60000 on controller-1 changed: 0:0;211:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-52540098c9ff_start_0 on controller-1 changed: 0:0;219:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-525400a16c0d_monitor_60000 on controller-1 changed: 0:0;229:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-525400a16c0d_start_0 on controller-1 changed: 0:0;235:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-525400aab9d9_monitor_60000 on controller-2 changed: 0:0;226:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-525400aab9d9_start_0 on controller-2 changed: 0:0;232:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 Using the original execution date of: 2018-09-11 21:23:25Z galera:0 promotion score on galera-bundle-0: 100 galera:1 promotion score on galera-bundle-1: 100 diff --git a/cts/scheduler/nested-remote-recovery.summary b/cts/scheduler/nested-remote-recovery.summary index a8552b7..fef6ba3 100644 --- a/cts/scheduler/nested-remote-recovery.summary +++ b/cts/scheduler/nested-remote-recovery.summary @@ -45,50 +45,32 @@ GuestOnline: [ galera-bundle-1:galera-bundle-docker-1 galera-bundle-2:galera-bun stonith-fence_ipmilan-525400a16c0d (stonith:fence_ipmilan): Started controller-1 stonith-fence_ipmilan-5254002f6d57 (stonith:fence_ipmilan): Started controller-1 +Only 'private' parameters to stonith-fence_ipmilan-525400aab9d9_start_0 on controller-2 changed: 0:0;232:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-525400aab9d9_monitor_60000 on controller-2 changed: 0:0;226:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254000203a2_start_0 on controller-2 changed: 0:0;222:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254000203a2_monitor_60000 on controller-2 changed: 0:0;216:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-52540065418e_start_0 on controller-2 changed: 0:0;229:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-52540065418e_monitor_60000 on controller-2 changed: 0:0;223:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254005f9a33_start_0 on controller-2 changed: 0:0;217:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254005f9a33_monitor_60000 on controller-2 changed: 0:0;211:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254002f6d57_start_0 on controller-1 changed: 0:0;237:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-5254002f6d57_monitor_60000 on controller-1 changed: 0:0;229:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-52540066e27e_start_0 on controller-1 changed: 0:0;227:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-52540066e27e_monitor_60000 on controller-1 changed: 0:0;219:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-525400a16c0d_start_0 on controller-1 changed: 0:0;235:1:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-525400a16c0d_monitor_60000 on controller-1 changed: 0:0;229:2:0:018a4c7f-d5cb-4ef8-85a4-031ed2cffd23 +Only 'private' parameters to stonith-fence_ipmilan-5254003296a5_start_0 on controller-1 changed: 0:0;224:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-5254003296a5_monitor_60000 on controller-1 changed: 0:0;216:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-52540098c9ff_start_0 on controller-1 changed: 0:0;219:1:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 +Only 'private' parameters to stonith-fence_ipmilan-52540098c9ff_monitor_60000 on controller-1 changed: 0:0;211:2:0:79eb6bb3-23ce-41d1-863c-4f68a738af58 Transition Summary: * Fence (reboot) galera-bundle-0 (resource: galera-bundle-docker-0) 'guest is unclean' * Recover galera-bundle-docker-0 ( database-0 ) * Recover galera-bundle-0 ( controller-0 ) * Recover galera:0 ( Master galera-bundle-0 ) - * Restart stonith-fence_ipmilan-5254005f9a33 ( controller-2 ) due to resource definition change - * Restart stonith-fence_ipmilan-52540098c9ff ( controller-1 ) due to resource definition change - * Restart stonith-fence_ipmilan-5254000203a2 ( controller-2 ) due to resource definition change - * Restart stonith-fence_ipmilan-5254003296a5 ( controller-1 ) due to resource definition change - * Restart stonith-fence_ipmilan-52540066e27e ( controller-1 ) due to resource definition change - * Restart stonith-fence_ipmilan-52540065418e ( controller-2 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400aab9d9 ( controller-2 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400a16c0d ( controller-1 ) due to resource definition change - * Restart stonith-fence_ipmilan-5254002f6d57 ( controller-1 ) due to resource definition change Executing cluster transition: * Resource action: galera-bundle-0 stop on controller-0 - * Resource action: stonith-fence_ipmilan-5254005f9a33 stop on controller-2 - * Resource action: stonith-fence_ipmilan-5254005f9a33 start on controller-2 - * Resource action: stonith-fence_ipmilan-5254005f9a33 monitor=60000 on controller-2 - * Resource action: stonith-fence_ipmilan-52540098c9ff stop on controller-1 - * Resource action: stonith-fence_ipmilan-52540098c9ff start on controller-1 - * Resource action: stonith-fence_ipmilan-52540098c9ff monitor=60000 on controller-1 - * Resource action: stonith-fence_ipmilan-5254000203a2 stop on controller-2 - * Resource action: stonith-fence_ipmilan-5254000203a2 start on controller-2 - * Resource action: stonith-fence_ipmilan-5254000203a2 monitor=60000 on controller-2 - * Resource action: stonith-fence_ipmilan-5254003296a5 stop on controller-1 - * Resource action: stonith-fence_ipmilan-5254003296a5 start on controller-1 - * Resource action: stonith-fence_ipmilan-5254003296a5 monitor=60000 on controller-1 - * Resource action: stonith-fence_ipmilan-52540066e27e stop on controller-1 - * Resource action: stonith-fence_ipmilan-52540066e27e start on controller-1 - * Resource action: stonith-fence_ipmilan-52540066e27e monitor=60000 on controller-1 - * Resource action: stonith-fence_ipmilan-52540065418e stop on controller-2 - * Resource action: stonith-fence_ipmilan-52540065418e start on controller-2 - * Resource action: stonith-fence_ipmilan-52540065418e monitor=60000 on controller-2 - * Resource action: stonith-fence_ipmilan-525400aab9d9 stop on controller-2 - * Resource action: stonith-fence_ipmilan-525400aab9d9 start on controller-2 - * Resource action: stonith-fence_ipmilan-525400aab9d9 monitor=60000 on controller-2 - * Resource action: stonith-fence_ipmilan-525400a16c0d stop on controller-1 - * Resource action: stonith-fence_ipmilan-525400a16c0d start on controller-1 - * Resource action: stonith-fence_ipmilan-525400a16c0d monitor=60000 on controller-1 - * Resource action: stonith-fence_ipmilan-5254002f6d57 stop on controller-1 - * Resource action: stonith-fence_ipmilan-5254002f6d57 start on controller-1 - * Resource action: stonith-fence_ipmilan-5254002f6d57 monitor=60000 on controller-1 * Pseudo action: galera-bundle_demote_0 * Pseudo action: galera-bundle-master_demote_0 * Pseudo action: galera_demote_0 diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.dot b/cts/scheduler/no-promote-on-unrunnable-guest.dot index 6063640..b9696fc 100644 --- a/cts/scheduler/no-promote-on-unrunnable-guest.dot +++ b/cts/scheduler/no-promote-on-unrunnable-guest.dot @@ -110,19 +110,4 @@ "ovndb_servers_stop_0 ovn-dbs-bundle-0" -> "ovn-dbs-bundle-master_stopped_0" [ style = bold] "ovndb_servers_stop_0 ovn-dbs-bundle-0" -> "ovndb_servers_start_0 ovn-dbs-bundle-0" [ style = dashed] "ovndb_servers_stop_0 ovn-dbs-bundle-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254005e097a_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254005e097a_start_0 controller-0" -> "stonith-fence_ipmilan-5254005e097a_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-5254005e097a_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254005e097a_stop_0 controller-0" -> "stonith-fence_ipmilan-5254005e097a_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-5254005e097a_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400985679_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400985679_start_0 controller-1" -> "stonith-fence_ipmilan-525400985679_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-525400985679_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400985679_stop_0 controller-1" -> "stonith-fence_ipmilan-525400985679_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-525400985679_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400afe30e_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400afe30e_start_0 controller-2" -> "stonith-fence_ipmilan-525400afe30e_monitor_60000 controller-2" [ style = bold] -"stonith-fence_ipmilan-525400afe30e_start_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400afe30e_stop_0 controller-2" -> "stonith-fence_ipmilan-525400afe30e_start_0 controller-2" [ style = bold] -"stonith-fence_ipmilan-525400afe30e_stop_0 controller-2" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.exp b/cts/scheduler/no-promote-on-unrunnable-guest.exp index 4417f6e..b675aed 100644 --- a/cts/scheduler/no-promote-on-unrunnable-guest.exp +++ b/cts/scheduler/no-promote-on-unrunnable-guest.exp @@ -8,23 +8,23 @@ - + - + - + - + @@ -37,7 +37,7 @@ - + @@ -50,7 +50,7 @@ - + @@ -63,7 +63,7 @@ - + @@ -76,32 +76,32 @@ - + - + - + - + - + - + @@ -111,7 +111,7 @@ - + @@ -133,7 +133,7 @@ - + @@ -146,7 +146,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -172,19 +172,19 @@ - + - + - + @@ -196,28 +196,28 @@ - + - + - + - + - + @@ -229,61 +229,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -295,28 +295,28 @@ - + - + - + - + - + @@ -331,7 +331,7 @@ - + @@ -339,131 +339,131 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -473,174 +473,69 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.scores b/cts/scheduler/no-promote-on-unrunnable-guest.scores index f368ad4..3e6776f 100644 --- a/cts/scheduler/no-promote-on-unrunnable-guest.scores +++ b/cts/scheduler/no-promote-on-unrunnable-guest.scores @@ -1,4 +1,10 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-5254005e097a_monitor_60000 on controller-0 changed: 0:0;218:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-5254005e097a_start_0 on controller-0 changed: 0:0;217:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400985679_monitor_60000 on controller-1 changed: 0:0;224:64:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400985679_start_0 on controller-1 changed: 0:0;223:64:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400afe30e_monitor_60000 on controller-2 changed: 0:0;220:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400afe30e_start_0 on controller-2 changed: 0:0;219:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 Using the original execution date of: 2020-05-14 10:49:31Z galera:0 promotion score on galera-bundle-0: 100 galera:1 promotion score on galera-bundle-1: 100 diff --git a/cts/scheduler/no-promote-on-unrunnable-guest.summary b/cts/scheduler/no-promote-on-unrunnable-guest.summary index fd6b926..fdc2668 100644 --- a/cts/scheduler/no-promote-on-unrunnable-guest.summary +++ b/cts/scheduler/no-promote-on-unrunnable-guest.summary @@ -26,27 +26,21 @@ GuestOnline: [ galera-bundle-0:galera-bundle-podman-0 galera-bundle-1:galera-bun Container bundle: openstack-cinder-volume [cluster.common.tag/rhosp16-openstack-cinder-volume:pcmklatest] openstack-cinder-volume-podman-0 (ocf::heartbeat:podman): Started controller-0 +Only 'private' parameters to stonith-fence_ipmilan-5254005e097a_start_0 on controller-0 changed: 0:0;217:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-5254005e097a_monitor_60000 on controller-0 changed: 0:0;218:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400985679_start_0 on controller-1 changed: 0:0;223:64:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400985679_monitor_60000 on controller-1 changed: 0:0;224:64:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400afe30e_start_0 on controller-2 changed: 0:0;219:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 +Only 'private' parameters to stonith-fence_ipmilan-525400afe30e_monitor_60000 on controller-2 changed: 0:0;220:60:0:515fab44-df8e-4e73-a22c-ed4886e03330 Transition Summary: * Stop ovn-dbs-bundle-podman-0 ( controller-0 ) due to node availability * Stop ovn-dbs-bundle-0 ( controller-0 ) due to unrunnable ovn-dbs-bundle-podman-0 start * Stop ovndb_servers:0 ( Slave ovn-dbs-bundle-0 ) due to unrunnable ovn-dbs-bundle-podman-0 start * Promote ovndb_servers:1 ( Slave -> Master ovn-dbs-bundle-1 ) - * Restart stonith-fence_ipmilan-5254005e097a ( controller-0 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400afe30e ( controller-2 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400985679 ( controller-1 ) due to resource definition change Executing cluster transition: * Resource action: ovndb_servers cancel=30000 on ovn-dbs-bundle-1 * Pseudo action: ovn-dbs-bundle-master_pre_notify_stop_0 - * Resource action: stonith-fence_ipmilan-5254005e097a stop on controller-0 - * Resource action: stonith-fence_ipmilan-5254005e097a start on controller-0 - * Resource action: stonith-fence_ipmilan-5254005e097a monitor=60000 on controller-0 - * Resource action: stonith-fence_ipmilan-525400afe30e stop on controller-2 - * Resource action: stonith-fence_ipmilan-525400afe30e start on controller-2 - * Resource action: stonith-fence_ipmilan-525400afe30e monitor=60000 on controller-2 - * Resource action: stonith-fence_ipmilan-525400985679 stop on controller-1 - * Resource action: stonith-fence_ipmilan-525400985679 start on controller-1 - * Resource action: stonith-fence_ipmilan-525400985679 monitor=60000 on controller-1 * Pseudo action: ovn-dbs-bundle_stop_0 * Resource action: ovndb_servers notify on ovn-dbs-bundle-0 * Resource action: ovndb_servers notify on ovn-dbs-bundle-1 diff --git a/cts/scheduler/notifs-for-unrunnable.dot b/cts/scheduler/notifs-for-unrunnable.dot index f17e9b4..aa4039e 100644 --- a/cts/scheduler/notifs-for-unrunnable.dot +++ b/cts/scheduler/notifs-for-unrunnable.dot @@ -74,19 +74,4 @@ "redis:0_start_0 redis-bundle-0" -> "redis:0_monitor_45000 redis-bundle-0" [ style = dashed] "redis:0_start_0 redis-bundle-0" -> "redis:0_monitor_60000 redis-bundle-0" [ style = dashed] "redis:0_start_0 redis-bundle-0" [ style=dashed color="red" fontcolor="black"] -"stonith-fence_ipmilan-5254002ff217_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254002ff217_start_0 controller-2" -> "stonith-fence_ipmilan-5254002ff217_monitor_60000 controller-2" [ style = bold] -"stonith-fence_ipmilan-5254002ff217_start_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254002ff217_stop_0 controller-2" -> "stonith-fence_ipmilan-5254002ff217_start_0 controller-2" [ style = bold] -"stonith-fence_ipmilan-5254002ff217_stop_0 controller-2" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254008f971a_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254008f971a_start_0 controller-1" -> "stonith-fence_ipmilan-5254008f971a_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-5254008f971a_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-5254008f971a_stop_0 controller-1" -> "stonith-fence_ipmilan-5254008f971a_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-5254008f971a_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400fec0c8_monitor_60000 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400fec0c8_start_0 controller-1" -> "stonith-fence_ipmilan-525400fec0c8_monitor_60000 controller-1" [ style = bold] -"stonith-fence_ipmilan-525400fec0c8_start_0 controller-1" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400fec0c8_stop_0 controller-1" -> "stonith-fence_ipmilan-525400fec0c8_start_0 controller-1" [ style = bold] -"stonith-fence_ipmilan-525400fec0c8_stop_0 controller-1" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/notifs-for-unrunnable.exp b/cts/scheduler/notifs-for-unrunnable.exp index 82067ae..44bb4c3 100644 --- a/cts/scheduler/notifs-for-unrunnable.exp +++ b/cts/scheduler/notifs-for-unrunnable.exp @@ -1,46 +1,46 @@ - + - + - + - + - + - + - + - + @@ -48,97 +48,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -146,191 +146,86 @@ - + - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/cts/scheduler/notifs-for-unrunnable.scores b/cts/scheduler/notifs-for-unrunnable.scores index cd9df1c..8434da8 100644 --- a/cts/scheduler/notifs-for-unrunnable.scores +++ b/cts/scheduler/notifs-for-unrunnable.scores @@ -1,4 +1,10 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-5254002ff217_monitor_60000 on controller-2 changed: 0:0;181:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-5254002ff217_start_0 on controller-2 changed: 0:0;180:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-5254008f971a_monitor_60000 on controller-1 changed: 0:0;183:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-5254008f971a_start_0 on controller-1 changed: 0:0;182:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-525400fec0c8_monitor_60000 on controller-1 changed: 0:0;179:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-525400fec0c8_start_0 on controller-1 changed: 0:0;178:2:0:8b283351-71e8-4848-b470-8664f73af1e9 Using the original execution date of: 2018-02-13 23:40:47Z galera:0 promotion score on galera-bundle-0: -1 galera:1 promotion score on galera-bundle-1: 100 diff --git a/cts/scheduler/notifs-for-unrunnable.summary b/cts/scheduler/notifs-for-unrunnable.summary index d8d00fd..3f1680c 100644 --- a/cts/scheduler/notifs-for-unrunnable.summary +++ b/cts/scheduler/notifs-for-unrunnable.summary @@ -32,6 +32,12 @@ GuestOnline: [ galera-bundle-1:galera-bundle-docker-1 galera-bundle-2:galera-bun stonith-fence_ipmilan-5254002ff217 (stonith:fence_ipmilan): Started controller-2 stonith-fence_ipmilan-5254008f971a (stonith:fence_ipmilan): Started controller-1 +Only 'private' parameters to stonith-fence_ipmilan-525400fec0c8_start_0 on controller-1 changed: 0:0;178:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-525400fec0c8_monitor_60000 on controller-1 changed: 0:0;179:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-5254008f971a_start_0 on controller-1 changed: 0:0;182:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-5254008f971a_monitor_60000 on controller-1 changed: 0:0;183:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-5254002ff217_start_0 on controller-2 changed: 0:0;180:2:0:8b283351-71e8-4848-b470-8664f73af1e9 +Only 'private' parameters to stonith-fence_ipmilan-5254002ff217_monitor_60000 on controller-2 changed: 0:0;181:2:0:8b283351-71e8-4848-b470-8664f73af1e9 Transition Summary: * Start rabbitmq-bundle-0 ( controller-1 ) due to unrunnable rabbitmq-bundle-docker-0 start (blocked) * Start rabbitmq:0 ( rabbitmq-bundle-0 ) due to unrunnable rabbitmq-bundle-docker-0 start (blocked) @@ -39,22 +45,10 @@ Transition Summary: * Start galera:0 ( galera-bundle-0 ) due to unrunnable galera-bundle-docker-0 start (blocked) * Start redis-bundle-0 ( controller-1 ) due to unrunnable redis-bundle-docker-0 start (blocked) * Start redis:0 ( redis-bundle-0 ) due to unrunnable redis-bundle-docker-0 start (blocked) - * Restart stonith-fence_ipmilan-525400fec0c8 ( controller-1 ) due to resource definition change - * Restart stonith-fence_ipmilan-5254002ff217 ( controller-2 ) due to resource definition change - * Restart stonith-fence_ipmilan-5254008f971a ( controller-1 ) due to resource definition change Executing cluster transition: * Pseudo action: rabbitmq-bundle-clone_pre_notify_start_0 * Pseudo action: redis-bundle-master_pre_notify_start_0 - * Resource action: stonith-fence_ipmilan-525400fec0c8 stop on controller-1 - * Resource action: stonith-fence_ipmilan-525400fec0c8 start on controller-1 - * Resource action: stonith-fence_ipmilan-525400fec0c8 monitor=60000 on controller-1 - * Resource action: stonith-fence_ipmilan-5254002ff217 stop on controller-2 - * Resource action: stonith-fence_ipmilan-5254002ff217 start on controller-2 - * Resource action: stonith-fence_ipmilan-5254002ff217 monitor=60000 on controller-2 - * Resource action: stonith-fence_ipmilan-5254008f971a stop on controller-1 - * Resource action: stonith-fence_ipmilan-5254008f971a start on controller-1 - * Resource action: stonith-fence_ipmilan-5254008f971a monitor=60000 on controller-1 * Pseudo action: redis-bundle_start_0 * Pseudo action: galera-bundle_start_0 * Pseudo action: rabbitmq-bundle_start_0 diff --git a/cts/scheduler/on-fail-ignore.dot b/cts/scheduler/on-fail-ignore.dot index 66d22cc..d8f1c9f 100644 --- a/cts/scheduler/on-fail-ignore.dot +++ b/cts/scheduler/on-fail-ignore.dot @@ -1,12 +1,2 @@ digraph "g" { -"fence_db1_monitor_60000 407892-db2" [ style=bold color="green" fontcolor="black"] -"fence_db1_start_0 407892-db2" -> "fence_db1_monitor_60000 407892-db2" [ style = bold] -"fence_db1_start_0 407892-db2" [ style=bold color="green" fontcolor="black"] -"fence_db1_stop_0 407892-db2" -> "fence_db1_start_0 407892-db2" [ style = bold] -"fence_db1_stop_0 407892-db2" [ style=bold color="green" fontcolor="black"] -"fence_db2_monitor_60000 407888-db1" [ style=bold color="green" fontcolor="black"] -"fence_db2_start_0 407888-db1" -> "fence_db2_monitor_60000 407888-db1" [ style = bold] -"fence_db2_start_0 407888-db1" [ style=bold color="green" fontcolor="black"] -"fence_db2_stop_0 407888-db1" -> "fence_db2_start_0 407888-db1" [ style = bold] -"fence_db2_stop_0 407888-db1" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/on-fail-ignore.exp b/cts/scheduler/on-fail-ignore.exp index fc3fb5b..56e315f 100644 --- a/cts/scheduler/on-fail-ignore.exp +++ b/cts/scheduler/on-fail-ignore.exp @@ -1,72 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/cts/scheduler/on-fail-ignore.scores b/cts/scheduler/on-fail-ignore.scores index 85040ba..64c9896 100644 --- a/cts/scheduler/on-fail-ignore.scores +++ b/cts/scheduler/on-fail-ignore.scores @@ -1,4 +1,8 @@ Allocation scores: +Only 'private' parameters to fence_db1_monitor_60000 on 407892-db2 changed: 0:0;5:3:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d +Only 'private' parameters to fence_db1_start_0 on 407892-db2 changed: 0:0;4:3:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d +Only 'private' parameters to fence_db2_monitor_60000 on 407888-db1 changed: 0:0;8:4:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d +Only 'private' parameters to fence_db2_start_0 on 407888-db1 changed: 0:0;7:4:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d Using the original execution date of: 2017-10-26 14:23:50Z pcmk__native_allocate: fence_db1 allocation score on 407888-db1: 0 pcmk__native_allocate: fence_db1 allocation score on 407892-db2: 100 diff --git a/cts/scheduler/on-fail-ignore.summary b/cts/scheduler/on-fail-ignore.summary index fb4b0f3..7605f37 100644 --- a/cts/scheduler/on-fail-ignore.summary +++ b/cts/scheduler/on-fail-ignore.summary @@ -7,17 +7,13 @@ Online: [ 407888-db1 407892-db2 ] fence_db2 (stonith:fence_ipmilan): Started 407888-db1 nfs_snet_ip (ocf::heartbeat:IPaddr2): Started 407888-db1 (failure ignored) +Only 'private' parameters to fence_db2_start_0 on 407888-db1 changed: 0:0;7:4:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d +Only 'private' parameters to fence_db2_monitor_60000 on 407888-db1 changed: 0:0;8:4:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d +Only 'private' parameters to fence_db1_start_0 on 407892-db2 changed: 0:0;4:3:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d +Only 'private' parameters to fence_db1_monitor_60000 on 407892-db2 changed: 0:0;5:3:0:dcc10f17-10a1-4e5d-89af-ef7ff033520d Transition Summary: - * Restart fence_db1 ( 407892-db2 ) due to resource definition change - * Restart fence_db2 ( 407888-db1 ) due to resource definition change Executing cluster transition: - * Resource action: fence_db1 stop on 407892-db2 - * Resource action: fence_db1 start on 407892-db2 - * Resource action: fence_db1 monitor=60000 on 407892-db2 - * Resource action: fence_db2 stop on 407888-db1 - * Resource action: fence_db2 start on 407888-db1 - * Resource action: fence_db2 monitor=60000 on 407888-db1 Using the original execution date of: 2017-10-26 14:23:50Z Revised cluster status: diff --git a/cts/scheduler/remote-recover-all.dot b/cts/scheduler/remote-recover-all.dot index 819e5eb..d513ce4 100644 --- a/cts/scheduler/remote-recover-all.dot +++ b/cts/scheduler/remote-recover-all.dot @@ -117,8 +117,6 @@ "stonith 'reboot' galera-2" -> "ip-172.17.4.11_start_0 controller-2" [ style = bold] "stonith 'reboot' galera-2" -> "stonith 'reboot' messaging-1" [ style = bold] "stonith 'reboot' galera-2" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] -"stonith 'reboot' galera-2" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith 'reboot' galera-2" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] "stonith 'reboot' galera-2" [ style=bold color="green" fontcolor="black"] "stonith 'reboot' messaging-1" -> "galera-0_start_0 controller-2" [ style = bold] "stonith 'reboot' messaging-1" -> "ip-172.17.1.14_start_0 controller-2" [ style = bold] @@ -128,22 +126,10 @@ "stonith 'reboot' messaging-1" -> "rabbitmq_post_notify_stonith_0" [ style = bold] "stonith 'reboot' messaging-1" -> "rabbitmq_stop_0 messaging-1" [ style = bold] "stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] -"stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] "stonith 'reboot' messaging-1" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" -> "stonith-fence_ipmilan-5254005bdbb5_monitor_60000 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" [ style=bold color="green" fontcolor="orange"] -"stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/remote-recover-all.exp b/cts/scheduler/remote-recover-all.exp index 0cb51f6..7edc970 100644 --- a/cts/scheduler/remote-recover-all.exp +++ b/cts/scheduler/remote-recover-all.exp @@ -1,7 +1,7 @@ - + @@ -9,27 +9,27 @@ - + - + - + - + @@ -41,7 +41,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -113,13 +113,13 @@ - + - + @@ -128,22 +128,22 @@ - + - + - + - + @@ -155,16 +155,16 @@ - + - + - + @@ -173,13 +173,13 @@ - + - + @@ -195,28 +195,28 @@ - + - + - + - + - + @@ -224,28 +224,28 @@ - + - + - + - + - + @@ -284,7 +284,7 @@ - + @@ -293,7 +293,7 @@ - + @@ -306,7 +306,7 @@ - + @@ -319,7 +319,7 @@ - + @@ -335,7 +335,7 @@ - + @@ -348,7 +348,7 @@ - + @@ -357,13 +357,13 @@ - + - + @@ -375,28 +375,28 @@ - + - + - + - + - + @@ -408,7 +408,7 @@ - + @@ -416,22 +416,22 @@ - + - + - + - + @@ -440,26 +440,26 @@ - + - + - + - + @@ -469,7 +469,7 @@ - + @@ -481,7 +481,7 @@ - + @@ -490,26 +490,26 @@ - + - + - + - + @@ -519,7 +519,7 @@ - + @@ -531,7 +531,7 @@ - + @@ -540,26 +540,26 @@ - + - + - + - + @@ -569,7 +569,7 @@ - + @@ -581,7 +581,7 @@ - + @@ -590,13 +590,13 @@ - + - + @@ -605,28 +605,28 @@ - + - + - + - + - + @@ -638,88 +638,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -731,7 +649,7 @@ - + @@ -750,7 +668,7 @@ - + @@ -758,7 +676,7 @@ - + @@ -773,7 +691,7 @@ - + @@ -788,7 +706,7 @@ - + diff --git a/cts/scheduler/remote-recover-all.scores b/cts/scheduler/remote-recover-all.scores index e411dfd..82f53ed 100644 --- a/cts/scheduler/remote-recover-all.scores +++ b/cts/scheduler/remote-recover-all.scores @@ -1,4 +1,8 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Using the original execution date of: 2017-05-03 13:33:24Z galera:0 promotion score on galera-1: 100 galera:1 promotion score on none: 0 diff --git a/cts/scheduler/remote-recover-all.summary b/cts/scheduler/remote-recover-all.summary index 6b64e42..988114f 100644 --- a/cts/scheduler/remote-recover-all.summary +++ b/cts/scheduler/remote-recover-all.summary @@ -37,6 +37,10 @@ RemoteOnline: [ galera-0 galera-1 galera-2 messaging-0 messaging-1 messaging-2 ] stonith-fence_ipmilan-525400b4f6bd (stonith:fence_ipmilan): Started controller-0 stonith-fence_ipmilan-5254005bdbb5 (stonith:fence_ipmilan): Started controller-1 (UNCLEAN) +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Transition Summary: * Fence (reboot) messaging-1 'resources are active and the connection is unrecoverable' * Fence (reboot) galera-2 'resources are active and the connection is unrecoverable' @@ -51,8 +55,6 @@ Transition Summary: * Move ip-172.17.1.17 ( controller-1 -> controller-2 ) * Move ip-172.17.4.11 ( controller-1 -> controller-2 ) * Stop haproxy:0 ( controller-1 ) due to node availability - * Restart stonith-fence_ipmilan-525400bbf613 ( controller-0 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400b4f6bd ( controller-0 ) due to resource definition change * Move stonith-fence_ipmilan-5254005bdbb5 ( controller-1 -> controller-2 ) Executing cluster transition: @@ -61,8 +63,6 @@ Executing cluster transition: * Pseudo action: galera-2_stop_0 * Pseudo action: galera-master_demote_0 * Pseudo action: redis-master_pre_notify_stop_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 stop on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd stop on controller-0 * Pseudo action: stonith-fence_ipmilan-5254005bdbb5_stop_0 * Fencing controller-1 (reboot) * Pseudo action: redis_post_notify_stop_0 @@ -90,10 +90,6 @@ Executing cluster transition: * Pseudo action: ip-172.17.1.14_stop_0 * Pseudo action: ip-172.17.1.17_stop_0 * Pseudo action: ip-172.17.4.11_stop_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 start on controller-0 - * Resource action: stonith-fence_ipmilan-525400bbf613 monitor=60000 on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd start on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd monitor=60000 on controller-0 * Resource action: stonith-fence_ipmilan-5254005bdbb5 start on controller-2 * Resource action: galera-0 monitor=20000 on controller-2 * Resource action: rabbitmq notify on messaging-2 diff --git a/cts/scheduler/remote-recover-connection.dot b/cts/scheduler/remote-recover-connection.dot index 33c4fd0..86192f3 100644 --- a/cts/scheduler/remote-recover-connection.dot +++ b/cts/scheduler/remote-recover-connection.dot @@ -95,14 +95,4 @@ "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" [ style=bold color="green" fontcolor="orange"] -"stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/remote-recover-connection.exp b/cts/scheduler/remote-recover-connection.exp index d1d33c8..cfcba98 100644 --- a/cts/scheduler/remote-recover-connection.exp +++ b/cts/scheduler/remote-recover-connection.exp @@ -1,33 +1,33 @@ - + - + - + - + - + @@ -35,33 +35,33 @@ - + - + - + - + - + @@ -69,33 +69,33 @@ - + - + - + - + - + @@ -110,7 +110,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -136,7 +136,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -181,7 +181,7 @@ - + @@ -194,7 +194,7 @@ - + @@ -207,7 +207,7 @@ - + @@ -223,7 +223,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -245,13 +245,13 @@ - + - + @@ -263,28 +263,28 @@ - + - + - + - + - + @@ -296,7 +296,7 @@ - + @@ -304,22 +304,22 @@ - + - + - + - + @@ -328,26 +328,26 @@ - + - + - + - + @@ -357,13 +357,13 @@ - + - + @@ -372,26 +372,26 @@ - + - + - + - + @@ -401,13 +401,13 @@ - + - + @@ -416,26 +416,26 @@ - + - + - + - + @@ -445,13 +445,13 @@ - + - + @@ -460,13 +460,13 @@ - + - + @@ -475,28 +475,28 @@ - + - + - + - + - + @@ -508,76 +508,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -589,7 +519,7 @@ - + @@ -602,7 +532,7 @@ - + @@ -610,7 +540,7 @@ - + diff --git a/cts/scheduler/remote-recover-connection.scores b/cts/scheduler/remote-recover-connection.scores index 328f1d3..391d7c8 100644 --- a/cts/scheduler/remote-recover-connection.scores +++ b/cts/scheduler/remote-recover-connection.scores @@ -1,4 +1,8 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Using the original execution date of: 2017-05-03 13:33:24Z galera:0 promotion score on galera-1: 100 galera:1 promotion score on galera-2: 100 diff --git a/cts/scheduler/remote-recover-connection.summary b/cts/scheduler/remote-recover-connection.summary index bacd5a9..f87c150 100644 --- a/cts/scheduler/remote-recover-connection.summary +++ b/cts/scheduler/remote-recover-connection.summary @@ -37,6 +37,10 @@ RemoteOnline: [ galera-0 galera-1 galera-2 messaging-0 messaging-1 messaging-2 ] stonith-fence_ipmilan-525400b4f6bd (stonith:fence_ipmilan): Started controller-0 stonith-fence_ipmilan-5254005bdbb5 (stonith:fence_ipmilan): Started controller-1 (UNCLEAN) +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Transition Summary: * Fence (reboot) controller-1 'peer is no longer part of the cluster' * Move messaging-1 ( controller-1 -> controller-2 ) @@ -47,8 +51,6 @@ Transition Summary: * Move ip-172.17.1.17 ( controller-1 -> controller-2 ) * Move ip-172.17.4.11 ( controller-1 -> controller-2 ) * Stop haproxy:0 ( controller-1 ) due to node availability - * Restart stonith-fence_ipmilan-525400bbf613 ( controller-0 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400b4f6bd ( controller-0 ) due to resource definition change * Move stonith-fence_ipmilan-5254005bdbb5 ( controller-1 -> controller-2 ) Executing cluster transition: @@ -56,12 +58,6 @@ Executing cluster transition: * Pseudo action: galera-0_stop_0 * Pseudo action: galera-2_stop_0 * Pseudo action: redis-master_pre_notify_stop_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 stop on controller-0 - * Resource action: stonith-fence_ipmilan-525400bbf613 start on controller-0 - * Resource action: stonith-fence_ipmilan-525400bbf613 monitor=60000 on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd stop on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd start on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd monitor=60000 on controller-0 * Pseudo action: stonith-fence_ipmilan-5254005bdbb5_stop_0 * Fencing controller-1 (reboot) * Resource action: messaging-1 start on controller-2 diff --git a/cts/scheduler/remote-recover-no-resources.dot b/cts/scheduler/remote-recover-no-resources.dot index 8db3fb6..bae902f 100644 --- a/cts/scheduler/remote-recover-no-resources.dot +++ b/cts/scheduler/remote-recover-no-resources.dot @@ -102,22 +102,10 @@ "stonith 'reboot' messaging-1" -> "rabbitmq_post_notify_stonith_0" [ style = bold] "stonith 'reboot' messaging-1" -> "rabbitmq_stop_0 messaging-1" [ style = bold] "stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] -"stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] "stonith 'reboot' messaging-1" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" -> "stonith-fence_ipmilan-5254005bdbb5_monitor_60000 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" [ style=bold color="green" fontcolor="orange"] -"stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/remote-recover-no-resources.exp b/cts/scheduler/remote-recover-no-resources.exp index 90470fb..394933f 100644 --- a/cts/scheduler/remote-recover-no-resources.exp +++ b/cts/scheduler/remote-recover-no-resources.exp @@ -1,7 +1,7 @@ - + @@ -9,27 +9,27 @@ - + - + - + - + @@ -38,7 +38,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -110,13 +110,13 @@ - + - + @@ -125,22 +125,22 @@ - + - + - + - + @@ -159,7 +159,7 @@ - + @@ -195,7 +195,7 @@ - + @@ -204,7 +204,7 @@ - + @@ -217,7 +217,7 @@ - + @@ -230,7 +230,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -259,7 +259,7 @@ - + @@ -268,13 +268,13 @@ - + - + @@ -286,28 +286,28 @@ - + - + - + - + - + @@ -319,7 +319,7 @@ - + @@ -327,22 +327,22 @@ - + - + - + - + @@ -351,26 +351,26 @@ - + - + - + - + @@ -380,7 +380,7 @@ - + @@ -389,7 +389,7 @@ - + @@ -398,26 +398,26 @@ - + - + - + - + @@ -427,7 +427,7 @@ - + @@ -436,7 +436,7 @@ - + @@ -445,26 +445,26 @@ - + - + - + - + @@ -474,7 +474,7 @@ - + @@ -483,7 +483,7 @@ - + @@ -492,13 +492,13 @@ - + - + @@ -507,28 +507,28 @@ - + - + - + - + - + @@ -540,82 +540,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -627,7 +551,7 @@ - + @@ -643,7 +567,7 @@ - + @@ -651,7 +575,7 @@ - + @@ -666,7 +590,7 @@ - + diff --git a/cts/scheduler/remote-recover-no-resources.scores b/cts/scheduler/remote-recover-no-resources.scores index 378974e..cd4444c 100644 --- a/cts/scheduler/remote-recover-no-resources.scores +++ b/cts/scheduler/remote-recover-no-resources.scores @@ -1,4 +1,8 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Using the original execution date of: 2017-05-03 13:33:24Z galera:0 promotion score on galera-1: 100 galera:1 promotion score on galera-0: 100 diff --git a/cts/scheduler/remote-recover-no-resources.summary b/cts/scheduler/remote-recover-no-resources.summary index 7f2a90c..16ac8ac 100644 --- a/cts/scheduler/remote-recover-no-resources.summary +++ b/cts/scheduler/remote-recover-no-resources.summary @@ -37,6 +37,10 @@ RemoteOnline: [ galera-0 galera-1 galera-2 messaging-0 messaging-1 messaging-2 ] stonith-fence_ipmilan-525400b4f6bd (stonith:fence_ipmilan): Started controller-0 stonith-fence_ipmilan-5254005bdbb5 (stonith:fence_ipmilan): Started controller-1 (UNCLEAN) +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Transition Summary: * Fence (reboot) messaging-1 'resources are active and the connection is unrecoverable' * Fence (reboot) controller-1 'peer is no longer part of the cluster' @@ -49,8 +53,6 @@ Transition Summary: * Move ip-172.17.1.17 ( controller-1 -> controller-2 ) * Move ip-172.17.4.11 ( controller-1 -> controller-2 ) * Stop haproxy:0 ( controller-1 ) due to node availability - * Restart stonith-fence_ipmilan-525400bbf613 ( controller-0 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400b4f6bd ( controller-0 ) due to resource definition change * Move stonith-fence_ipmilan-5254005bdbb5 ( controller-1 -> controller-2 ) Executing cluster transition: @@ -58,8 +60,6 @@ Executing cluster transition: * Pseudo action: galera-0_stop_0 * Pseudo action: galera-2_stop_0 * Pseudo action: redis-master_pre_notify_stop_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 stop on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd stop on controller-0 * Pseudo action: stonith-fence_ipmilan-5254005bdbb5_stop_0 * Fencing controller-1 (reboot) * Pseudo action: redis_post_notify_stop_0 @@ -77,10 +77,6 @@ Executing cluster transition: * Pseudo action: redis-master_stopped_0 * Pseudo action: haproxy_stop_0 * Pseudo action: haproxy-clone_stopped_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 start on controller-0 - * Resource action: stonith-fence_ipmilan-525400bbf613 monitor=60000 on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd start on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd monitor=60000 on controller-0 * Resource action: stonith-fence_ipmilan-5254005bdbb5 start on controller-2 * Resource action: galera-0 monitor=20000 on controller-2 * Resource action: rabbitmq notify on messaging-2 diff --git a/cts/scheduler/remote-recover-unknown.dot b/cts/scheduler/remote-recover-unknown.dot index 902e0b5..eea6eea 100644 --- a/cts/scheduler/remote-recover-unknown.dot +++ b/cts/scheduler/remote-recover-unknown.dot @@ -101,8 +101,6 @@ "stonith 'reboot' galera-2" -> "ip-172.17.4.11_start_0 controller-2" [ style = bold] "stonith 'reboot' galera-2" -> "stonith 'reboot' messaging-1" [ style = bold] "stonith 'reboot' galera-2" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] -"stonith 'reboot' galera-2" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith 'reboot' galera-2" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] "stonith 'reboot' galera-2" [ style=bold color="green" fontcolor="black"] "stonith 'reboot' messaging-1" -> "galera-0_start_0 controller-2" [ style = bold] "stonith 'reboot' messaging-1" -> "ip-172.17.1.14_start_0 controller-2" [ style = bold] @@ -112,22 +110,10 @@ "stonith 'reboot' messaging-1" -> "rabbitmq_post_notify_stonith_0" [ style = bold] "stonith 'reboot' messaging-1" -> "rabbitmq_stop_0 messaging-1" [ style = bold] "stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] -"stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith 'reboot' messaging-1" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] "stonith 'reboot' messaging-1" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_monitor_60000 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" -> "stonith-fence_ipmilan-5254005bdbb5_monitor_60000 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" [ style=bold color="green" fontcolor="orange"] -"stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/remote-recover-unknown.exp b/cts/scheduler/remote-recover-unknown.exp index 82cb65f7..1d14684 100644 --- a/cts/scheduler/remote-recover-unknown.exp +++ b/cts/scheduler/remote-recover-unknown.exp @@ -1,7 +1,7 @@ - + @@ -9,27 +9,27 @@ - + - + - + - + @@ -41,7 +41,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -113,13 +113,13 @@ - + - + @@ -128,22 +128,22 @@ - + - + - + - + @@ -162,7 +162,7 @@ - + @@ -198,7 +198,7 @@ - + @@ -207,7 +207,7 @@ - + @@ -220,7 +220,7 @@ - + @@ -233,7 +233,7 @@ - + @@ -249,7 +249,7 @@ - + @@ -262,7 +262,7 @@ - + @@ -271,13 +271,13 @@ - + - + @@ -289,28 +289,28 @@ - + - + - + - + - + @@ -322,7 +322,7 @@ - + @@ -330,22 +330,22 @@ - + - + - + - + @@ -354,26 +354,26 @@ - + - + - + - + @@ -383,7 +383,7 @@ - + @@ -395,7 +395,7 @@ - + @@ -404,26 +404,26 @@ - + - + - + - + @@ -433,7 +433,7 @@ - + @@ -445,7 +445,7 @@ - + @@ -454,26 +454,26 @@ - + - + - + - + @@ -483,7 +483,7 @@ - + @@ -495,7 +495,7 @@ - + @@ -504,13 +504,13 @@ - + - + @@ -519,28 +519,28 @@ - + - + - + - + - + @@ -552,88 +552,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -645,7 +563,7 @@ - + @@ -664,7 +582,7 @@ - + @@ -672,7 +590,7 @@ - + @@ -687,7 +605,7 @@ - + @@ -702,7 +620,7 @@ - + diff --git a/cts/scheduler/remote-recover-unknown.scores b/cts/scheduler/remote-recover-unknown.scores index 378974e..cd4444c 100644 --- a/cts/scheduler/remote-recover-unknown.scores +++ b/cts/scheduler/remote-recover-unknown.scores @@ -1,4 +1,8 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Using the original execution date of: 2017-05-03 13:33:24Z galera:0 promotion score on galera-1: 100 galera:1 promotion score on galera-0: 100 diff --git a/cts/scheduler/remote-recover-unknown.summary b/cts/scheduler/remote-recover-unknown.summary index 330c4cb..af5f724 100644 --- a/cts/scheduler/remote-recover-unknown.summary +++ b/cts/scheduler/remote-recover-unknown.summary @@ -37,6 +37,10 @@ RemoteOnline: [ galera-0 galera-1 galera-2 messaging-0 messaging-1 messaging-2 ] stonith-fence_ipmilan-525400b4f6bd (stonith:fence_ipmilan): Started controller-0 stonith-fence_ipmilan-5254005bdbb5 (stonith:fence_ipmilan): Started controller-1 (UNCLEAN) +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Transition Summary: * Fence (reboot) galera-2 'resources are in an unknown state and the connection is unrecoverable' * Fence (reboot) messaging-1 'resources are active and the connection is unrecoverable' @@ -50,8 +54,6 @@ Transition Summary: * Move ip-172.17.1.17 ( controller-1 -> controller-2 ) * Move ip-172.17.4.11 ( controller-1 -> controller-2 ) * Stop haproxy:0 ( controller-1 ) due to node availability - * Restart stonith-fence_ipmilan-525400bbf613 ( controller-0 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400b4f6bd ( controller-0 ) due to resource definition change * Move stonith-fence_ipmilan-5254005bdbb5 ( controller-1 -> controller-2 ) Executing cluster transition: @@ -59,8 +61,6 @@ Executing cluster transition: * Pseudo action: galera-0_stop_0 * Pseudo action: galera-2_stop_0 * Pseudo action: redis-master_pre_notify_stop_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 stop on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd stop on controller-0 * Pseudo action: stonith-fence_ipmilan-5254005bdbb5_stop_0 * Fencing controller-1 (reboot) * Pseudo action: redis_post_notify_stop_0 @@ -79,10 +79,6 @@ Executing cluster transition: * Pseudo action: redis-master_stopped_0 * Pseudo action: haproxy_stop_0 * Pseudo action: haproxy-clone_stopped_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 start on controller-0 - * Resource action: stonith-fence_ipmilan-525400bbf613 monitor=60000 on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd start on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd monitor=60000 on controller-0 * Resource action: stonith-fence_ipmilan-5254005bdbb5 start on controller-2 * Resource action: galera-0 monitor=20000 on controller-2 * Resource action: rabbitmq notify on messaging-2 diff --git a/cts/scheduler/remote-recovery.dot b/cts/scheduler/remote-recovery.dot index 33c4fd0..86192f3 100644 --- a/cts/scheduler/remote-recovery.dot +++ b/cts/scheduler/remote-recovery.dot @@ -95,14 +95,4 @@ "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style=bold color="green" fontcolor="black"] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" -> "stonith-fence_ipmilan-5254005bdbb5_start_0 controller-2" [ style = bold] "stonith-fence_ipmilan-5254005bdbb5_stop_0 controller-1" [ style=bold color="green" fontcolor="orange"] -"stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" -> "stonith-fence_ipmilan-525400b4f6bd_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400b4f6bd_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_monitor_60000 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style=bold color="green" fontcolor="black"] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" -> "stonith-fence_ipmilan-525400bbf613_start_0 controller-0" [ style = bold] -"stonith-fence_ipmilan-525400bbf613_stop_0 controller-0" [ style=bold color="green" fontcolor="black"] } diff --git a/cts/scheduler/remote-recovery.exp b/cts/scheduler/remote-recovery.exp index d1d33c8..cfcba98 100644 --- a/cts/scheduler/remote-recovery.exp +++ b/cts/scheduler/remote-recovery.exp @@ -1,33 +1,33 @@ - + - + - + - + - + @@ -35,33 +35,33 @@ - + - + - + - + - + @@ -69,33 +69,33 @@ - + - + - + - + - + @@ -110,7 +110,7 @@ - + @@ -123,7 +123,7 @@ - + @@ -136,7 +136,7 @@ - + @@ -172,7 +172,7 @@ - + @@ -181,7 +181,7 @@ - + @@ -194,7 +194,7 @@ - + @@ -207,7 +207,7 @@ - + @@ -223,7 +223,7 @@ - + @@ -236,7 +236,7 @@ - + @@ -245,13 +245,13 @@ - + - + @@ -263,28 +263,28 @@ - + - + - + - + - + @@ -296,7 +296,7 @@ - + @@ -304,22 +304,22 @@ - + - + - + - + @@ -328,26 +328,26 @@ - + - + - + - + @@ -357,13 +357,13 @@ - + - + @@ -372,26 +372,26 @@ - + - + - + - + @@ -401,13 +401,13 @@ - + - + @@ -416,26 +416,26 @@ - + - + - + - + @@ -445,13 +445,13 @@ - + - + @@ -460,13 +460,13 @@ - + - + @@ -475,28 +475,28 @@ - + - + - + - + - + @@ -508,76 +508,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -589,7 +519,7 @@ - + @@ -602,7 +532,7 @@ - + @@ -610,7 +540,7 @@ - + diff --git a/cts/scheduler/remote-recovery.scores b/cts/scheduler/remote-recovery.scores index 328f1d3..391d7c8 100644 --- a/cts/scheduler/remote-recovery.scores +++ b/cts/scheduler/remote-recovery.scores @@ -1,4 +1,8 @@ Allocation scores: +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Using the original execution date of: 2017-05-03 13:33:24Z galera:0 promotion score on galera-1: 100 galera:1 promotion score on galera-2: 100 diff --git a/cts/scheduler/remote-recovery.summary b/cts/scheduler/remote-recovery.summary index bacd5a9..f87c150 100644 --- a/cts/scheduler/remote-recovery.summary +++ b/cts/scheduler/remote-recovery.summary @@ -37,6 +37,10 @@ RemoteOnline: [ galera-0 galera-1 galera-2 messaging-0 messaging-1 messaging-2 ] stonith-fence_ipmilan-525400b4f6bd (stonith:fence_ipmilan): Started controller-0 stonith-fence_ipmilan-5254005bdbb5 (stonith:fence_ipmilan): Started controller-1 (UNCLEAN) +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_start_0 on controller-0 changed: 0:0;124:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400bbf613_monitor_60000 on controller-0 changed: 0:0;129:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_start_0 on controller-0 changed: 0:0;126:17:0:e47e0f5b-bac4-432e-9993-f38bc43128ea +Only 'private' parameters to stonith-fence_ipmilan-525400b4f6bd_monitor_60000 on controller-0 changed: 0:0;132:18:0:e47e0f5b-bac4-432e-9993-f38bc43128ea Transition Summary: * Fence (reboot) controller-1 'peer is no longer part of the cluster' * Move messaging-1 ( controller-1 -> controller-2 ) @@ -47,8 +51,6 @@ Transition Summary: * Move ip-172.17.1.17 ( controller-1 -> controller-2 ) * Move ip-172.17.4.11 ( controller-1 -> controller-2 ) * Stop haproxy:0 ( controller-1 ) due to node availability - * Restart stonith-fence_ipmilan-525400bbf613 ( controller-0 ) due to resource definition change - * Restart stonith-fence_ipmilan-525400b4f6bd ( controller-0 ) due to resource definition change * Move stonith-fence_ipmilan-5254005bdbb5 ( controller-1 -> controller-2 ) Executing cluster transition: @@ -56,12 +58,6 @@ Executing cluster transition: * Pseudo action: galera-0_stop_0 * Pseudo action: galera-2_stop_0 * Pseudo action: redis-master_pre_notify_stop_0 - * Resource action: stonith-fence_ipmilan-525400bbf613 stop on controller-0 - * Resource action: stonith-fence_ipmilan-525400bbf613 start on controller-0 - * Resource action: stonith-fence_ipmilan-525400bbf613 monitor=60000 on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd stop on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd start on controller-0 - * Resource action: stonith-fence_ipmilan-525400b4f6bd monitor=60000 on controller-0 * Pseudo action: stonith-fence_ipmilan-5254005bdbb5_stop_0 * Fencing controller-1 (reboot) * Resource action: messaging-1 start on controller-2 -- 1.8.3.1