From d3edf95058b4adea228b2d19af1023ff3cc62907 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 24 Aug 2021 22:36:16 +0000 Subject: [PATCH] import pacemaker-2.1.0-8.el8 --- SOURCES/019-crm_resource.patch | 114 +++++++++++++++++++++++++++++++ SOURCES/020-fence_watchdog.patch | 25 +++++++ SPECS/pacemaker.spec | 12 +++- 3 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 SOURCES/019-crm_resource.patch create mode 100644 SOURCES/020-fence_watchdog.patch diff --git a/SOURCES/019-crm_resource.patch b/SOURCES/019-crm_resource.patch new file mode 100644 index 0000000..237dde2 --- /dev/null +++ b/SOURCES/019-crm_resource.patch @@ -0,0 +1,114 @@ +From b4e426a016a4d7c9ade39e60a83644fc537bce26 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Wed, 11 Aug 2021 12:10:32 +0200 +Subject: [PATCH 1/2] Fix: crm_resource: translate LSB rc to exit code and fix + resources_find_service_class() call + +--- + tools/crm_resource_runtime.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c +index ce037c514..e9d8aa687 100644 +--- a/tools/crm_resource_runtime.c ++++ b/tools/crm_resource_runtime.c +@@ -1718,10 +1718,10 @@ cli_resource_execute_from_params(pcmk__output_t *out, const char *rsc_name, + crm_exit(CRM_EX_UNIMPLEMENT_FEATURE); + } else if (pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_SERVICE, + pcmk__str_casei) && !pcmk__str_eq( +- resources_find_service_class(rsc_name), PCMK_RESOURCE_CLASS_LSB, ++ resources_find_service_class(rsc_type), PCMK_RESOURCE_CLASS_LSB, + pcmk__str_casei)) { + out->err(out, "Sorry, the %s option doesn't support %s resources", +- rsc_action, resources_find_service_class(rsc_name)); ++ rsc_action, resources_find_service_class(rsc_type)); + crm_exit(CRM_EX_UNIMPLEMENT_FEATURE); + } + +@@ -1798,9 +1798,17 @@ cli_resource_execute_from_params(pcmk__output_t *out, const char *rsc_name, + if (services_action_sync(op)) { + exit_code = op->rc; + ++ /* Lookup exit code based on rc for LSB resources */ ++ if (( pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_LSB, pcmk__str_casei) || ++ (pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_SERVICE, pcmk__str_casei) && ++ pcmk__str_eq(resources_find_service_class(rsc_type), PCMK_RESOURCE_CLASS_LSB, pcmk__str_casei)) ) && ++ pcmk__str_eq(rsc_action, "force-check", pcmk__str_casei)) { ++ exit_code = services_get_ocf_exitcode(action, exit_code); ++ } ++ + out->message(out, "resource-agent-action", resource_verbose, rsc_class, +- rsc_prov, rsc_type, rsc_name, rsc_action, override_hash, op->rc, +- op->status, op->stdout_data, op->stderr_data); ++ rsc_prov, rsc_type, rsc_name, rsc_action, override_hash, ++ exit_code, op->status, op->stdout_data, op->stderr_data); + } else { + exit_code = op->rc == 0 ? CRM_EX_ERROR : op->rc; + } +-- +2.27.0 + + +From 9a6beb74adfb4710fb3a4e588bef79a562c101f3 Mon Sep 17 00:00:00 2001 +From: Oyvind Albrigtsen +Date: Thu, 12 Aug 2021 18:54:30 +0200 +Subject: [PATCH 2/2] Refactor: crm_resource: simplify rsc_class logic by + getting actual class early if it's of class "service" + +--- + tools/crm_resource_runtime.c | 23 +++++++++-------------- + 1 file changed, 9 insertions(+), 14 deletions(-) + +diff --git a/tools/crm_resource_runtime.c b/tools/crm_resource_runtime.c +index e9d8aa687..13b78b6b9 100644 +--- a/tools/crm_resource_runtime.c ++++ b/tools/crm_resource_runtime.c +@@ -1702,26 +1702,23 @@ cli_resource_execute_from_params(pcmk__output_t *out, const char *rsc_name, + int timeout_ms, int resource_verbose, gboolean force, + int check_level) + { ++ const char *class = NULL; + const char *action = NULL; + GHashTable *params_copy = NULL; + crm_exit_t exit_code = CRM_EX_OK; + svc_action_t *op = NULL; + +- if (pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_STONITH, pcmk__str_casei)) { ++ class = !pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_SERVICE, pcmk__str_casei) ? ++ rsc_class : resources_find_service_class(rsc_type); ++ ++ if (pcmk__str_eq(class, PCMK_RESOURCE_CLASS_STONITH, pcmk__str_casei)) { + out->err(out, "Sorry, the %s option doesn't support %s resources yet", +- rsc_action, rsc_class); ++ rsc_action, class); + crm_exit(CRM_EX_UNIMPLEMENT_FEATURE); +- } else if (pcmk__strcase_any_of(rsc_class, PCMK_RESOURCE_CLASS_SYSTEMD, ++ } else if (pcmk__strcase_any_of(class, PCMK_RESOURCE_CLASS_SYSTEMD, + PCMK_RESOURCE_CLASS_UPSTART, PCMK_RESOURCE_CLASS_NAGIOS, NULL)) { + out->err(out, "Sorry, the %s option doesn't support %s resources", +- rsc_action, rsc_class); +- crm_exit(CRM_EX_UNIMPLEMENT_FEATURE); +- } else if (pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_SERVICE, +- pcmk__str_casei) && !pcmk__str_eq( +- resources_find_service_class(rsc_type), PCMK_RESOURCE_CLASS_LSB, +- pcmk__str_casei)) { +- out->err(out, "Sorry, the %s option doesn't support %s resources", +- rsc_action, resources_find_service_class(rsc_type)); ++ rsc_action, class); + crm_exit(CRM_EX_UNIMPLEMENT_FEATURE); + } + +@@ -1799,9 +1796,7 @@ cli_resource_execute_from_params(pcmk__output_t *out, const char *rsc_name, + exit_code = op->rc; + + /* Lookup exit code based on rc for LSB resources */ +- if (( pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_LSB, pcmk__str_casei) || +- (pcmk__str_eq(rsc_class, PCMK_RESOURCE_CLASS_SERVICE, pcmk__str_casei) && +- pcmk__str_eq(resources_find_service_class(rsc_type), PCMK_RESOURCE_CLASS_LSB, pcmk__str_casei)) ) && ++ if (pcmk__str_eq(class, PCMK_RESOURCE_CLASS_LSB, pcmk__str_casei) && + pcmk__str_eq(rsc_action, "force-check", pcmk__str_casei)) { + exit_code = services_get_ocf_exitcode(action, exit_code); + } +-- +2.27.0 + diff --git a/SOURCES/020-fence_watchdog.patch b/SOURCES/020-fence_watchdog.patch new file mode 100644 index 0000000..76abe27 --- /dev/null +++ b/SOURCES/020-fence_watchdog.patch @@ -0,0 +1,25 @@ +From 46dd1118cae948649e000b2159e8e92623520ad9 Mon Sep 17 00:00:00 2001 +From: Klaus Wenninger +Date: Thu, 19 Aug 2021 09:28:54 +0200 +Subject: [PATCH] Fix: fence_watchdog: fix malformed xml in metadata + +--- + daemons/fenced/fence_watchdog.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/daemons/fenced/fence_watchdog.in b/daemons/fenced/fence_watchdog.in +index 700065e0e..eefa7395e 100755 +--- a/daemons/fenced/fence_watchdog.in ++++ b/daemons/fenced/fence_watchdog.in +@@ -124,7 +124,7 @@ def metadata(avail_opt, options): + for option, dummy in sorted_options(avail_opt): + if "shortdesc" in ALL_OPT[option]: + print(' ') ++ '" required="' + ALL_OPT[option]["required"] + '">') + + default = "" + default_name_arg = "-" + ALL_OPT[option]["getopt"][:-1] +-- +2.27.0 + diff --git a/SPECS/pacemaker.spec b/SPECS/pacemaker.spec index 035733e..65a1299 100644 --- a/SPECS/pacemaker.spec +++ b/SPECS/pacemaker.spec @@ -36,7 +36,7 @@ ## can be incremented to build packages reliably considered "newer" ## than previously built packages with the same pcmkversion) %global pcmkversion 2.1.0 -%global specversion 6 +%global specversion 8 ## Upstream commit (full commit ID, abbreviated commit ID, or tag) to build %global commit 7c3f660707a495a1331716ad32cd3ac9d9f8ff58 @@ -281,6 +281,8 @@ Patch15: 015-sbd.patch Patch16: 016-cts.patch Patch17: 017-watchdog-fixes.patch Patch18: 018-controller.patch +Patch19: 019-crm_resource.patch +Patch20: 020-fence_watchdog.patch # downstream-only commits #Patch1xx: 1xx-xxxx.patch @@ -978,6 +980,14 @@ exit 0 %license %{nagios_name}-%{nagios_hash}/COPYING %changelog +* Fri Aug 20 2021 Ken Gaillot - 2.1.0-8 +- Fix XML issue in fence_watchdog meta-data +- Resolves: rhbz1443666 + +* Thu Aug 12 2021 Ken Gaillot - 2.1.0-7 +- Fix minor issue with crm_resource error message change +- Resolves: rhbz1447918 + * Tue Aug 10 2021 Ken Gaillot - 2.1.0-6 - Fix watchdog agent version information - Ensure transient attributes are cleared when multiple nodes are lost