File pacemaker#3543-0001-Fix-tools-crm_verify-distinguishes-configuration-war.patch of Package pacemaker.36799
From 956aa45399b64fb69cdaa416701492cdc0541f9a Mon Sep 17 00:00:00 2001
From: "Gao,Yan" <ygao@suse.com>
Date: Wed, 19 Jun 2024 08:56:03 +0200
Subject: [PATCH 1/2] Fix: tools: crm_verify distinguishes configuration
warnings and errors
The output of crm_verify no longer distinguished configuration warnings
from errors as brought up from:
https://github.com/ClusterLabs/pacemaker/pull/3266#discussion_r1636411072
Regression introduced in 2.1.7 by 0c5a32624a
This commit fixes it by splitting output_config_issue() into separate
error and warning handlers, and add the "warning:" or "error:" prefix to
the message.
Fixes T834
---
tools/crm_verify.c | 34 +++++++++++++++++++++++++++++-----
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/tools/crm_verify.c b/tools/crm_verify.c
index 81e375a4cc..e781c8905a 100644
--- a/tools/crm_verify.c
+++ b/tools/crm_verify.c
@@ -114,7 +114,7 @@ build_arg_context(pcmk__common_args_t *args, GOptionGroup **group) {
/*!
* \internal
- * \brief Output a configuration issue
+ * \brief Output a configuration error
*
* \param[in] ctx Output object
* \param[in] msg printf(3)-style format string
@@ -122,7 +122,7 @@ build_arg_context(pcmk__common_args_t *args, GOptionGroup **group) {
*/
G_GNUC_PRINTF(2, 3)
static void
-output_config_issue(void *ctx, const char *msg, ...)
+output_config_error(void *ctx, const char *msg, ...)
{
va_list ap;
char *buf = NULL;
@@ -131,7 +131,31 @@ output_config_issue(void *ctx, const char *msg, ...)
va_start(ap, msg);
CRM_ASSERT(vasprintf(&buf, msg, ap) > 0);
if (options.verbosity > 0) {
- out->err(out, "%s", buf);
+ out->err(out, "error: %s", buf);
+ }
+ va_end(ap);
+}
+
+/*!
+ * \internal
+ * \brief Output a configuration warning
+ *
+ * \param[in] ctx Output object
+ * \param[in] msg printf(3)-style format string
+ * \param[in] ... Format string arguments
+ */
+G_GNUC_PRINTF(2, 3)
+static void
+output_config_warning(void *ctx, const char *msg, ...)
+{
+ va_list ap;
+ char *buf = NULL;
+ pcmk__output_t *out = ctx;
+
+ va_start(ap, msg);
+ CRM_ASSERT(vasprintf(&buf, msg, ap) > 0);
+ if (options.verbosity > 0) {
+ out->err(out, "warning: %s", buf);
}
va_end(ap);
}
@@ -187,8 +211,8 @@ main(int argc, char **argv)
pcmk__register_lib_messages(out);
- pcmk__set_config_error_handler(output_config_issue, out);
- pcmk__set_config_warning_handler(output_config_issue, out);
+ pcmk__set_config_error_handler(output_config_error, out);
+ pcmk__set_config_warning_handler(output_config_warning, out);
if (pcmk__str_eq(args->output_ty, "xml", pcmk__str_none)) {
args->verbosity = 1;
--
2.35.3