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

openSUSE Build Service is sponsored by